欢迎来到天天文库
浏览记录
ID:39994832
大小:4.63 MB
页数:61页
时间:2019-07-16
《[研究生入学考试]软件工程课件第五章总体设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、分析:问题定义,可行性研究,需求分析问题定义:“我”(用户)要一辆代步工具,“你”(开发人员)能给我设计出来吗?可行性研究:“你”(用户)这个问题“我们”(开发人员)能给设计,你是要(1)速度快/慢;(2)密闭/非密闭;(3)木质/钢铁;(4)人力/他力/机械力需求分析:“你”要一辆自动挡的带敞篷的小轿车;(1)普通自动档汽车的功能它得有;(2)能打开/合上敞篷;2、设计阶段第5章:总体设计5.1设计过程5.2设计原理5.3启发规则5.4描绘软件结构的图形工具5.5面向数据流的设计方法主要内容5.1设计过程---主要任务1.设计方案(1-3):制定最佳方案的详细实现计划(可行性研究:
2、草拟开发计划)2.设计软件体系结构(4-5):确定软件系统中的每个程序是由哪些模块组成的,以及这些模块之间的关系。5.1设计过程1.设想供选择的方案2.选择合理的方案对每个合理的方案要提供(详细的实现计划):A.系统流程图B.组成系统的物理元素清单C.成本/效益分析D.实现这个系统的进度计划3.推荐最佳方案4.功能分解(组成系统的所有程序和文件/数据库)5.设计软件结构(1、层次图或结构图5.4节)(2、面向数据流的设计方法5.5节)6.数据库设计7.制定测试计划8.书写文档A.系统说明B.用户手册C.测试计划D.详细的实现计划E.数据库设计结果9.审查和复审5.2设计原理把复杂的问题分
3、解成许多容易解决的小问题5.2.1模块化(模块:由边界元素限定的相邻程序元素[接口、实现])5.2.2抽象(听得多,用的多,但意思表达不出来)5.2.3逐步求精(为了能集中精力解决问题而尽量推迟对问题细节的考虑)(1)魔法数字7+-2的存在(2)把一个时期内必须解决的问题按优先级进行排序5.2.4信息隐藏和局部化隐藏:不需要访问我(模块内的各种信息)的就找不到我;局部化:把密切相关的软件元素物理的放的很近。5.2设计原理5.2.5模块独立使得每个模块完成一个相对独立的子功能,且和其他模块之间的关系很简单。(1)独立的模块易于开发(功能清晰且接口简单)(2)独立的模块易于测试和维护一、耦合
4、耦合:指软件结构内不同模块彼此之间相互依赖的紧密程度。模块独立程度由两个定性标准度量:耦合与内聚(低耦合高内聚)耦合的强弱所依赖的因素1、一个模块对另一个模块的引用2、一个模块向另一个模块传递的数据量3、一个模块施加到另一个模块的控制的数量4、模块之间接口的复杂程度耦合的类型(由强到弱)1、内容耦合:一个模块直接修改或操作另一个模块的数据。2、公共环境耦合:两个以上的模块共同引用一个全局数据项。3、控制耦合:一个模块向另一模块传递一个控制信号,接受信号的模块将依据该信号值进行必要的活动。4、数据耦合:模块间通过参数传递基本类型的数据。图中存在公用耦合,假设模块A、C、E都存取全程数据区(
5、如公用一个磁盘文件)中的一个数据项。如果A模块读取该项数据,然后调用C模块对该项重新计算,并进行数据更新。ABCDE全程数据区(3)公用耦合4)内容耦合一个模块与另一个模块的内容直接发生联系。内容耦合对维护会带来严重的困难。模块A…LAB:MOVE1…模块B…GOTOLAB…内容耦合(4)内容耦合程序中如果一个模块直接把程序转移到另一个模块中,或一个模块使用另一个模块内部的数据,都会产生内容耦合。内容耦合是最高程度的耦合,应该避免采用。建议:尽量使用数据耦合,少用控制耦合,限制公用耦合,完全不用内容偶合。二、内聚内聚:一个模块内部各个元素彼此结合的紧密程度。常见的内聚有七类。内聚分类(由
6、低到高)1、偶然内聚:一个模块之内各成分之间没有任何关系。2、逻辑内聚:几个逻辑上相关的功能放在同一模块中。3、时间内聚:一个模块完成的功能必须在同一时间内完成,而这些功能只是因为时间因素关联在一起。4、过程内聚:处理成分必须以特定的次序执行。5、通信内聚:各成分都操作在同一数据集或生成同一数据集。6、顺序内聚:各成分与一个功能相关,且一个成分的输出作为另一成分的输入。7、功能内聚:模块的所有成分对完成单一功能是最基本的,且该模块对完成这一功能而言是充分必要的。模块A的处理单元将根据同一个数据文件FILE的数据产生不同的表格,因此它存在通信内聚。A从文件FILE中读出数据1.由数据产生报
7、表A2.由数据产生报表B通信内聚示例完成各种初始化工作的模块,或者处理故障的模块都存在时间内聚。如图,在“紧急故障处理模块”中,“关闭文件”、“报警”、“保留现场”等任务都必须无中断地同时处理。紧急故障处理模块1.关闭文件2.报警3.保留现场时间内聚示例如图,A、B、C模块合并成ABC模块之后,ABC模块就是逻辑内聚模块。XYZABCXYZABC合并逻辑内聚示例对逻辑内聚模块的调用,常常需要有一个功能开关,由上层调用模块向它发出一个
此文档下载收益归作者所有