《软件工程》电子教案 第五章

上传人:E**** 文档编号:89438701 上传时间:2019-05-25 格式:PPT 页数:40 大小:272KB
返回 下载 相关 举报
《软件工程》电子教案 第五章_第1页
第1页 / 共40页
《软件工程》电子教案 第五章_第2页
第2页 / 共40页
《软件工程》电子教案 第五章_第3页
第3页 / 共40页
《软件工程》电子教案 第五章_第4页
第4页 / 共40页
《软件工程》电子教案 第五章_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《软件工程》电子教案 第五章》由会员分享,可在线阅读,更多相关《《软件工程》电子教案 第五章(40页珍藏版)》请在金锄头文库上搜索。

1、5.1 总体设计的过程,5.2 软件设计基本原理,5.3 设计准则,5.4 总体设计的图形描述工具,5.5 结构化设计方法,退出,第五章 总体设计,5.1 总体设计的过程,5.1.1 设计供选择的方案,5.1.2 推荐最佳实现方案,退出,5.1.3 设计软件结构,5.1.4 数据库设计,5.1.5 制定测试计划,5.1.1 设计供选择的方案,需求分析阶段得出的数据流图是总体设计的根本出发点。,通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)数据字典; (3)成本效益分析; (4)实现这个系统的进度计划。,5

2、.1.2 推荐最佳方案,分析员从合理方案中选择一个最佳方案向用户推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家应该认真审查。如果确认该方案确实符合用户的需要,并且在现有条件下完全能够实现,则应该提请使用部门负责人进一步审批。在使用部门负责人也接受了分析员所推荐的方案之后,方可进入总体设计过程的下一步工作,即结构设计阶段。,过程设计:确定每个模块的处理过程。,结构设计:确定系统由哪些模块组成,以及这些模块之间的相互关系。,5.1.3 设计软件结构,对于大型系统的设计,通常分为两个阶段:结构设计和过程设计。,其中,结构设计是总体设计阶段的任务,而过程设计则是详细

3、设计阶段的任务。,5.1.4 数据库设计,数据库的应用越来越广泛,目前大多数的系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性设计和优化处理等。,5.1.5 制定测试计划,在软件开发的早期阶段提前考虑软件的测试计划是很有必要的。这样能促使软件设计人员在设计时注意到软件的测试问题,从而有利于提高软件的可测试性。,总体设计阶段的文档,(1)总体设计说明书(包括系统实现方案和软件模块结构); (2)测试计划(包括测试策略、测试方案、预测的测试结果、测试进度计划等); (3)用户手册(根据总体设计阶段的结果,编写的初步的用户操作手册); (4)详细的实现计

4、划; (5)数据库设计结果。,5. 2 软件设计基本原理,5.2.1 模块化,5.2.2 抽象,5.2.3 信息隐蔽,退出,5.2.4 模块独立性,模块:又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。例如高级语言中的过程、函数、子程序等都可作为模块。,5.2.1 模块化,模块化是软件的一个重要属性。模块化的特性提供了人们处理复杂的问题的一种方法,同时也使得软件能够被有效地管理。,这种“分而治之”的思想提供了模块化的根据:把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。,根据前面的结论,我们可以得出下面的不等式: E(P1P2)E(P1)E(P2) 这个不等式表

5、明:单独解决问题P1和P2所需的工作量之和,比把P1和P2合起来作为一个问题来解决时所需的工作量要少。,有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决问题x所需要的工作量(时间)。 对于两个问题P1和P2,如果:C(P1)C(P2) 则:E(P1)E(P2),另一个有趣的特性是:C(P1P2)C(P1)C(P2),模块化和软件成本的关系,我们在考虑问题时,集中考虑和当前问题有关的方面,而忽略和当前问题无关的方面,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。,5.2.2 抽象,软件工程过程的每一步,都是对软件解法的抽象层次的一次细化。在可行性研究阶段,软件被看

6、作是一个完整的系统部分;在需求分析期间,我们使用在问题环境中熟悉的术语来描述软件的解法;当我们由总体设计阶段转入详细设计阶段时,抽象的程度进一步减少;最后,当源程序写出来时,也就达到了抽象的最低层。,信息隐蔽原理认为:模块所包含的信息(过程和数据)对于其他模块来说应该是隐蔽的。也就是说,模块应当被这样规定和设计,使得包含在模块中的信息(过程或数据)对于其它不需要这些信息的模块来说,是不能访问的,或者说是“不可见”的。,5.2.3 信息隐蔽,信息隐蔽对于软件的测试与维护都有很大的好处。因为对于软件的其它部分来说,绝大多数数据和过程都是隐蔽的,这样,在修改期间由于疏忽而引入的错误所造成的影响就可以

7、局限在一个或几个模块内部,不至波及到软件的其他部分。,模块的独立性是软件质量的关键: (1)模块化程度较高的软件容易开发; (2)模块化程度较高的软件也比较容易测试和维护。,5.2.4 模块独立性,模块的独立性的度量标准:耦合和内聚。,1、耦合,耦合:软件结构中各个模块之间相互关联程度的度量。,常见的耦合: (1)非直接耦合 (2)数据耦合 (3)标记耦合 (4)控制耦合 (5)公共耦合 (6)内容耦合,设计原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。,2、内聚,内聚:模块内部各个元素彼此结合的紧密程度的度量。,常见的内聚: (1)偶然内聚 (2)逻辑内聚 (3

8、)时间内聚 (4)过程内聚 (5)通信内聚 (6)顺序内聚 (7)功能内聚,5. 3 设计准则,1尽力提高模块独立性 2选择合适的模块规模 3模块的深度、宽度、扇出和扇入应适当 4模块的作用范围应该在控制范围之内 5降低模块接口的复杂程度 6设计单入口单出口的模块,避免“病态连接”,5. 4 总体设计的图形描述工具,5.4.1 层次图,5.4.2 HIPO图,5.4.3 结构图,退出,5.4.1 层次图,正文加工系统的层次图,5.4.2 HIPO图,带编号的层次图(H图),5.4.3 结构图,软件结构图的基本符号,产生最佳解的结构图,5. 5 结构化设计方法,5.5.1 数据流图的类型,5.5

9、.2 设计步骤,5.5.3 变换设计,退出,5.5.4 事务设计,5.5.5 设计的后处理,5.5.1 数据流图的类型,1、变换型数据流图,2、事务型数据流图,5.5.2 设计步骤,5.5.3 变换设计,我们通过一个汽车数字仪表板的设计来介绍变换分析的过程。假设仪表板的功能如下: (1)通过模数(AD)转换实现传感器和微处理机接口; (2)在发光二极管(LCD)面板上显示数据; (3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等; (4)指示加速或减速; (5)超速警告:如果车速超过55英里小时,则发出超速警告铃声。 在软件需求分析阶段,应该对上述每项性能和其它要

10、求进行全面的分析,并建立起相应的文档资料,得出数据流图。 具体的设计步骤如下:,1、复查基本 系统模型,2、复查并精化 数据流图,3、确定数据流图的类型,这一步的任务是确定数据流图是变换型数据流图还是事务型数据流图。 从上图中可以看出,数据沿着两条输入通路(旋转信号和燃料流量传感器信号)进入系统,然后沿着五条通路(4个显示,一个警告铃声)离开,没有明显的事务中心(虽然变换“计算mph与超速值”可以看作是一个事务中心)。因此,可以认为这个数据流图的类型是变换型数据流图。,4、确定输入流和输出流的边界,从而孤立出变换中心,5、进行“第一级分解”,第一级分解的方法,第一级分解的结果,6、进行“第二级

11、分解”,第二级分解的方法,第二级分解的结果:,未经精化的输入结构 未经精化的变换结构,未经精化的输出结构,7、使用设计度量和设计准则对第一次分割得到的软件结构进一步精化,对于从前面的设计步骤得到的软件结构,还可以进行许多修改: (1)输入结构中的模块“转换成rpm”和“收集sps”可以合并; (2)模块“确定加速减速”可以放在模块“计算mph”下面,以减少耦合; (3)模块“加速减速显示”可以相应地放在模块“显示mph”的下面。,精化的数字仪表板系统的软件结构,5.5.4 事务设计,事务分析的映射方法,5.5.5 设计的后处理,在确定系统的软件结构以后,还必须做好下述工作: 为每个模块开发一份功能说明; 为每个模块提供一份接口说明; 定义局部的和全程的数据结构; 给出所有的设计限制或约束; 进行总体设计评审; 如果需要和可能的话,进行设计“优化”。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号