软件工程总体设计幻灯片.ppt
《软件工程总体设计幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程总体设计幻灯片.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程总体设计第1页,共31页,编辑于2022年,星期三15.1 5.1 设计过程设计过程n系统设计阶段系统设计阶段:确定系统的具:确定系统的具体实现方案体实现方案n结构设计阶段结构设计阶段:确定软件结构:确定软件结构第2页,共31页,编辑于2022年,星期三2典型的总体设计过程(一)典型的总体设计过程(一)1.1.设想供选择的方案设想供选择的方案设想供选择的方案设想供选择的方案n综合考虑各种可能的实现方案,并且力求从中选出最佳方案。综合考虑各种可能的实现方案,并且力求从中选出最佳方案。n需求分析阶段得到的数据流图是极好的出发点。需求分析阶段得到的数据流图是极好的出发点。2.2.选取合理的方
2、案选取合理的方案选取合理的方案选取合理的方案n参考需求分析阶段确定的工程规模和目标,从可选方案中选择若干个参考需求分析阶段确定的工程规模和目标,从可选方案中选择若干个合理的方案,通常至少选择低成本、中等成本、高成本三种方案。合理的方案,通常至少选择低成本、中等成本、高成本三种方案。n对于每种方案应准备:系统流程图、组成系统的物理元素清单、成本对于每种方案应准备:系统流程图、组成系统的物理元素清单、成本/效益分析、实现系统的进度计划。效益分析、实现系统的进度计划。3.推荐最佳方案推荐最佳方案n综合分析、对比各种合理方案的利弊,推荐一个最佳的方案,并为推综合分析、对比各种合理方案的利弊,推荐一个最
3、佳的方案,并为推荐的最佳方案制定一个详细的实现计划。荐的最佳方案制定一个详细的实现计划。n用户和有关人员评审所推荐的最佳方案。用户和有关人员评审所推荐的最佳方案。第3页,共31页,编辑于2022年,星期三3典型的总体设计过程(二)典型的总体设计过程(二)4.功能分解功能分解n确定系统有哪些模块构成,以及这些模块之间的关系。确定系统有哪些模块构成,以及这些模块之间的关系。n对于复杂的功能或模块,结合数据流图,进一步分解。对于复杂的功能或模块,结合数据流图,进一步分解。5.设计软件结构设计软件结构n系统软件是由实现各个子功能的模块构成,系统软件是由实现各个子功能的模块构成,软件结构是软件结构是指模
4、块组成的层次关系。指模块组成的层次关系。n软件结构用层次图或结构图表示。软件结构用层次图或结构图表示。n数据流图细化到适当的层次,可以映射出软件结构。数据流图细化到适当的层次,可以映射出软件结构。6.设计数据库设计数据库n结合需求分析阶段所确定的系统数据需求,进一步设结合需求分析阶段所确定的系统数据需求,进一步设计数据库。计数据库。第4页,共31页,编辑于2022年,星期三4典型的总体设计过程(三)典型的总体设计过程(三)7.7.制定测试计划制定测试计划制定测试计划制定测试计划n开发早期考虑并制定测试计划,有助于在设计时注意提高软件的可测试性。开发早期考虑并制定测试计划,有助于在设计时注意提高
5、软件的可测试性。8.8.书写文档书写文档书写文档书写文档n系统说明系统说明:主要包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,主要包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本成本/效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用软件结构,用IPOIPO图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等。需求、功能和模块三者之间的交叉参照关系等。n用户
6、手册用户手册:根据总体设计阶段的结果,更正在需求分析阶段产生的用户手册。:根据总体设计阶段的结果,更正在需求分析阶段产生的用户手册。n测试计划测试计划:包括测试策略,测试方案,预期的测试结果,测试进度计划等。:包括测试策略,测试方案,预期的测试结果,测试进度计划等。n详细的实现计划详细的实现计划n数据库设计结构数据库设计结构9.审查和复审审查和复审n技术审查系统开发方技术审查系统开发方n管理复审系统使用者管理复审系统使用者第5页,共31页,编辑于2022年,星期三55.2 5.2 设计原理设计原理n n模块化模块化n n抽象抽象n n逐步求精逐步求精n n信息隐藏和局部化信息隐藏和局部化n n
7、模块独立模块独立第6页,共31页,编辑于2022年,星期三6模块化(一)模块化(一)n n定义:定义:定义:定义:是指能够相对独立的实现一定功能的程序代码。简是指能够相对独立的实现一定功能的程序代码。简单的讲,单的讲,模块化就是把程序划分成独立命名且可独立访问模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。构成一个整体,可以完成指定的功能满足用户的需求。“复复杂的问题分解成许多容易解决的小问题杂的问题分解成许多容易解决的小问题”。n n表现形式:表现形式
8、:表现形式:表现形式:过程、函数、子程序、宏;面向对象方法学中过程、函数、子程序、宏;面向对象方法学中的对象、对象内的方法。的对象、对象内的方法。n n优点:优点:优点:优点:u软件结构清晰,便于设计、交流软件结构清晰,便于设计、交流u容易测试、调试,有助于提高软件的可靠性容易测试、调试,有助于提高软件的可靠性u提高软件的可修改性提高软件的可修改性u有助于软件开发项目的组织与管理有助于软件开发项目的组织与管理第7页,共31页,编辑于2022年,星期三7模块化(二)模块化(二)n n缺点:缺点:缺点:缺点:当模块数目增加时每个模块的规模将减小,开发当模块数目增加时每个模块的规模将减小,开发单个模
9、块需要的成本单个模块需要的成本(工作量工作量)减少了;但是,随着模块减少了;但是,随着模块数目增加,设计模块间接口所需要的工作量将增加,并数目增加,设计模块间接口所需要的工作量将增加,并且在模块交互时易发生错误。且在模块交互时易发生错误。图图5.1 5.1 模块化和软件成本模块化和软件成本 第8页,共31页,编辑于2022年,星期三8抽象抽象n n定义:定义:定义:定义:是指是指是指是指抽出事物的本质特性并加以描述,但是不考虑它们抽出事物的本质特性并加以描述,但是不考虑它们的细节。的细节。n n应用:应用:应用:应用:一个复杂系统可以用一些高级的抽象概念构造和理解,这一个复杂系统可以用一些高级
10、的抽象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。下去,直至最低层次的具体元素。软件工程过程的每一步都是对软件解法的抽象层次的一次精化。软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个完整部件;在需求在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述;分析期间,软件解法是使用在问题环境内熟悉的方式描述;当由总体设计向详细设计过渡时,抽象的程度随之减少;最当由总体设计向详细设计过渡时,抽象的
11、程度随之减少;最后,当源程序实现,即达到抽象的最低层。后,当源程序实现,即达到抽象的最低层。n n抽象与模块化的关系:抽象与模块化的关系:抽象与模块化的关系:抽象与模块化的关系:软件结构顶层的模块,控制系统的主要软件结构顶层的模块,控制系统的主要功能并且影响全局;在软件结构底层的模块,完成对数据的一功能并且影响全局;在软件结构底层的模块,完成对数据的一个具体处理,用自顶向下由抽象到具体的方式分配控制,简化个具体处理,用自顶向下由抽象到具体的方式分配控制,简化软件的设计和实现,提高软件的可理解性和可测试性,并且使软件的设计和实现,提高软件的可理解性和可测试性,并且使软件更容易维护。软件更容易维护
12、。第9页,共31页,编辑于2022年,星期三9逐步求精逐步求精n n定义:定义:定义:定义:是一种是一种是一种是一种自顶向下的设计策略:通过逐步分解对功能的自顶向下的设计策略:通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。表达的程序。n n实质:实质:实质:实质:求精就是细化的过程。求精就是细化的过程。n n求精与抽象的关系:求精与抽象的关系:求精与抽象的关系:求精与抽象的关系:互补性:互补性:互补性:互补性:抽象使设计者说明过程和数抽象使设计者说明过程和数据,但却忽略低层的细节;逐步求精则帮助设计者在设
13、计过据,但却忽略低层的细节;逐步求精则帮助设计者在设计过程中逐步揭示出低层的细节。程中逐步揭示出低层的细节。第10页,共31页,编辑于2022年,星期三10信息隐藏与局部化信息隐藏与局部化n n定义:定义:定义:定义:划分模块时,使得一个模块内包含的信息划分模块时,使得一个模块内包含的信息(过程和数过程和数据据)对于不需要这些信息的模块来说,是不能访问的。对于不需要这些信息的模块来说,是不能访问的。即隐即隐藏每个模块所包含的私有信息藏每个模块所包含的私有信息。所谓所谓局部化局部化是指把一些关系密切的软件元素物理地放得彼此是指把一些关系密切的软件元素物理地放得彼此靠近。局部化有助于实现信息隐藏。
14、靠近。局部化有助于实现信息隐藏。n n应用:应用:应用:应用:在在在在模块中,隐藏的是模块的实现细节;模块之间的交互模块中,隐藏的是模块的实现细节;模块之间的交互是为了完成系统功能而必须交换的信息。是为了完成系统功能而必须交换的信息。n n优点:优点:优点:优点:易修改。易修改。易修改。易修改。第11页,共31页,编辑于2022年,星期三11模块独立(一)模块独立(一)n n定义:定义:定义:定义:是指每个模块完成一个相对独立的特定子功能,是指每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。并且和其他模块之间的关系很简单。n n优点:优点:优点:优点:u容易设计和开发。功
15、能分割相对独立,可以简化接口,并容易设计和开发。功能分割相对独立,可以简化接口,并且便于分工合作开发。且便于分工合作开发。u独立的模块比较容易测试和维护。独立的模块比较容易测试和维护。n n度量标准:度量标准:度量标准:度量标准:u耦合耦合:衡量不同模块彼此间互相依赖衡量不同模块彼此间互相依赖(连接连接)的紧密程的紧密程度。度。u内聚内聚:衡量一个模块内部各个元素彼此结合的紧密程:衡量一个模块内部各个元素彼此结合的紧密程度。度。第12页,共31页,编辑于2022年,星期三12模块独立(二):耦合模块独立(二):耦合分类分类n n数据耦合:数据耦合:数据耦合:数据耦合:两个模块间通过参数交换的信
16、息仅是必须的数两个模块间通过参数交换的信息仅是必须的数据。据。n n控制耦合:控制耦合:控制耦合:控制耦合:传递的交换信息中有控制信息,有时这种控制信传递的交换信息中有控制信息,有时这种控制信息以数据的形式出现。息以数据的形式出现。n特征耦合:特征耦合:整个数据结构作为参数传递而被调用的模块只需要使整个数据结构作为参数传递而被调用的模块只需要使用其中的一部分数据元素。用其中的一部分数据元素。即:被调用的模块可以使用的数据多于即:被调用的模块可以使用的数据多于它确实需要的数据,它确实需要的数据,这将导致对数据的访问失去控制。这将导致对数据的访问失去控制。n公共环境耦合:公共环境耦合:两个或多个模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 总体 设计 幻灯片
限制150内