软件工程培训讲义上(编辑修改稿)内容摘要:

上、下数据流对应关系在数据字典中给出,但包内 数据流的性质(输入、输出)必须一致。 一幅图中的图元个数应控制在 7+/2以内 与每一加工相关的数据流的数目应适中 ( 与层次有关 ) 分析数据内容,确定是否所有的输入信息都用于 产生输出信息; 分析加工,确定一个加工所产生的输出,是否都 能由该加工的输入信息导出 实例讲解 : 图书管理系统 —问题陈述见 P35。 根据问题陈述,在一定的层次上,可以把该系统分为两“ 大块 ” ,即:借还书等事务的处理,以及咨询事务处理。 进行功能抽象。 ( 注:不同的功能抽象将导致不同的结果。 但应该是等价的。 ) 于是,可以根据这一抽象,可以识别: 1)顶层数据流: 借还书等事务处理要求 咨询事务要求 以及相关的数据流 2)数据源和数据潭为:图书管理人员,读者以及时钟。 基于以上分析,可形成该系统的环境图: 图书管理系统 图书管理员 图书管理要求 查询要求 图书统计表 图书情况 读者情况 读者 系统时钟 当前日期 罚款单 其中: 3个输入流 : 图书管理要求 , 查询要求,系统时钟 图书管理要求 =入库单 借书单 还书单 注销单 查询要求 =读者情况 图书情况 图书统计表 4个输出流 : 图书统计表,图书情况,读者情况 通过 “ 打碎 ” 、 “ 分派 ” ,可形成如下 0层 DFD: 1 处理借还 书等事务 2 处理咨询 事务 图书管理要求 查询要求 当前日期 目录文件 借书文件 读者文件 罚款单 读者情况 图书情况 图书统计表 其中:保持输入与输出的一致; 引入三个文件,对顶层 DFD进行细化。 (注:存在数据库设计问题) 以同样方式,对加工 1进行分解,形成: 1。 1 入库新书 1。 2 借书 1。 3 还 书 1。 4 注销图书 图书管理要求 处理图书管理要求 目录文件 罚款单 当前日期 借书文件 读者文件 入库单 借书单 注销单 还书单 其中:注意平衡问题;平面化问题。 当然,还可以继续细化 1。 2 借书 目录文件 借书文件 例如:借书 读者文件 借书单 1。 2。 1 检查读者的有效性 读者文件 1。 2。 2 检查读者的资格 1。 2。 3 办理借书 1。 2。 4 检查图书库存 借书单 无效读者 有效读者借书单 借书超限 核准后的借书单 该书已借完 借书记录 借书文件 目录文件 注意:其中粗线数据流。 图书管理系统的 USE CASE模型(基本思路): 借书 还书 新书入库 注销图书 图书管理员 读 者 请: 在这一思路的基础上,建立该系统的 USE CASE模型;并给出每一 USE CASE的描述。 对该系统的两种模型进行比较。 (在哪些方法进行。 ) 关于需求验证 有关 SRS内容方面: ( 1)正确性: 指的是 SRS中陈述的每个需求是否都表达了 系统的某个要求。 ( 2)无二义性: 指的是 SRS中陈述的每个需求是否都只有 一种解释。 ( 3)完整性: 未来系统所做的任何事情都包含在 SRS的陈述中; 未来系统响应所有可能的输入(包括有效和无效); SRS中没有被标识为“待定”的内容。 ( 4)可验证性: SRS中陈述的每个需求都是可验证的 即当且仅当存在一个有限代价的过程(人工或机器) 可以检查构造的软件产品是否符合用户的需求。 ( 5)一致性: SRS中陈述的需求没有与以前的文档发生冲突; SRS中陈述的各个需求之间没有发生冲突。 ( 6)可理解性: 有关 SRS格式与风格方面 ( 7)可修改性: 指的是 SRS的结构和风格使任何对需求的 必要修改都易于完整、一致的进行。 ( 8) 可被跟踪性: 指的是 SRS中的每个需求的出处都是清 楚的,这意味着 SRS中包含对前期支持文档的引用表。 ( 9) 可跟踪性: 指的是 SRS的书写方式有助于对其中陈述 的每个需求进行引用。 ( 10) 设计无关性: 指的是 SRS不暗示特定的软件结构和 算法。 第四章 结构化设计 要回答如何解决问题 -即给出软件解决方案 1〕 总体设计的任务:如何将 DFD转化为 MSD 分二步实现: 第一步:如何将 DFD转化为初始的 MSD 分类:变换型数据流图 事务型数据流图 变换设计 事务设计 数据流图分类 变换型 : 事务型 1 2 3 4 5 6 7 8 a b c d e f h g y x z 1 2 3 5 4 6 a b c d e f g y 变换设计 XX系统 变换模块 get e put h put g get c get d c,de ef fg,h hy put y gx put x xz put z get a get b bd ac e e g,h h g z z x x g y y h d b c a c d e e f g,h f x a b 事务设计 事务中心 输入模块 路径 1 路径 2 输出模块 a y c g b f ce c e eg e g bd b d df d f 3 4 6 8 2 5 7 9 A2 c b d e f g i h m k n 1 10 A1 x 一个系统的 DFD, 通常是变换型数据流图和事务型数据流 图的组合。 如下所示: 第二步:如何将初始的 MSD转化为最终可供详 细设计使用的 MSD  概念:模块  模块化 模块化度量:内聚 耦合  设计规则-经验规则  精化初始的 MSD -体现设计人员的创造 1)耦合:不同模块之间相互依赖程度的度量。 耦合类型: ( 1)内容耦合: ( 2)公共耦合:两个以上的模块共同引用一个全局数据项。 ( 3)控制耦合:一个模块向另一模块传递一个控制信号, 接受信号的模块将依据该信号值进行必要的活动。 ( 4)标记耦合:两个模块至少有一个通过界面传递的公共 有结构的参数。 ( 5)数据耦合:模块间通过参数传递基本类型的数据。 2)内聚:一个模块之内各成分之间相互依赖程度的度量。 内聚类型: ( 1)偶然内聚:一个模块之内各成分之间没有任何关系。 ( 2)逻辑内聚:几个逻辑上相关的功能放在同一模块中。 ( 3)时间内聚:一个模块完成的功能必须在同一时间内完成,而 这些功能只是因为时间因素关联在一起。 ( 4)过程内聚:处理成分必须以特定的次序执行。 ( 5)通信内聚:各成分都操作在同一数据集或生成同一数据集。 ( 6)顺序内聚:各成分与一个功能相关,且一个成分的输出作为 另一成分的输入。 ( 7)功能内聚:模块的所有成分对完成单一功能是最基本的,且 该模块对完成这一功能而言是充分必要的。 启发性规则 经验的总结 ( 1)改进软件结构,提高模块独立性; ( 2)模块规模适中 每页 60行语句; ( 3)深度、宽度、扇入和扇出适中; ( 4)模块的作用域力争在控制域之内; ( 5)降低模块接口的复杂性; ( 6)模块功能应该可以预测。 示例:数字仪表板系统的精化 读旋转信号 收集并 求平均 转换成 转 /分 计算 gph 读并 校核 确定 加速 /减速 计算里程 计算 mph 和超速值 计算 燃料消耗 产生 加速 /减速显示 产生 里程显示 发出 铃声 产生 mph显示 产生 mpg显示 旋转信号 信号 /秒 (sps) sps 燃烧流 传感器信号 燃烧流 gph sps rpm rpm 箭头指示 上箭头 下箭头 水平线 英里 超速值 mph mpg mpg显示 mph显示 铃声 里程显示 输入部分 Get gph Get rpm Get sps Get 燃料流 变换燃料流为 ghp Get 燃转信号 变换燃转信 号为燃料流 变换 sps为 rpm Get sps Get sps 转换为 sps Get 转速信号 变换为 sps 变换为 sps 数字仪表板系统输入部分的精化 输入部分的初始模块结构图 转速信号 转速信号 燃料流 燃料流 燃料流 gph sps sps rpm sps rpm gph sps sps sps sps sps sps sps 转速信号 转速信号 输入部分 计算 gph 计算 rpm 计算 sps 读燃转信号 采集 sps 读转速信号 使用启发式规则 1, 并考虑其它规则 , 可以将输入部分的模块结构图精化为: 其中: sps为转速的每秒信号量; sps 为 sps的平均值; sps为 sps的瞬时 变化值; rpm为每分钟转速; mph为每小时英里数; gph为每小时燃烧 的燃料加仑数; rpm为行进里程。 输出部分 PUT mpg PUT mph PUT里程 PUT 加 /减速 PUT 超速量 显示 显示 显示 数字仪表板系统输出部分的精化 输出部分的初始模块结构图 显示 对于这一初始的模块结构图 , 一般情况下应:  把相同或类似的物理输出合并为一个模块 , 以减少模块之间的关联。 就本例而言: 左边前三个 “ 显示 ” , 基本上属于相似的物理输出 , 因此可以把它们合并为一个显示模块。 而将 “ PUT mpg”模块和相关的 “ 生成显示 ‘ 的模块合并为一个模块;同样地 , 应把“ PUT mph”模块 、 “ PUT里程 ” 各自与相关的生成显示的模块合并为一个模块 , 参见下图。  其它求精的规则 , 与输入部分类同。 例如 , 可以将 “ PUT 加 /减速 ” 模块与其下属的两个模块合并为一个模块 , 将“ PUT 超速量 ” 模块与其下属的两个模块合并为一个模块。 输出模块 生成 mpg 显示 生成 mph 显示 生成里程 显示 生成加 /减速显示 生成蜂鸣 显示 通过以上求精之后 ,可得如下 的模块结构图 变换模块 计算 mpg 计算 mph 计算里程 计算加 /减速 变换部分的精化 1) 首先 , 应该了解:对于变换部分的求精 ,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。