软件工程5.总体设计.ppt

上传人:p** 文档编号:165979 上传时间:2023-03-10 格式:PPT 页数:31 大小:462.50KB
下载 相关 举报
软件工程5.总体设计.ppt_第1页
第1页 / 共31页
软件工程5.总体设计.ppt_第2页
第2页 / 共31页
软件工程5.总体设计.ppt_第3页
第3页 / 共31页
软件工程5.总体设计.ppt_第4页
第4页 / 共31页
软件工程5.总体设计.ppt_第5页
第5页 / 共31页
软件工程5.总体设计.ppt_第6页
第6页 / 共31页
软件工程5.总体设计.ppt_第7页
第7页 / 共31页
软件工程5.总体设计.ppt_第8页
第8页 / 共31页
软件工程5.总体设计.ppt_第9页
第9页 / 共31页
软件工程5.总体设计.ppt_第10页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《软件工程5.总体设计.ppt》由会员分享,可在线阅读,更多相关《软件工程5.总体设计.ppt(31页珍藏版)》请在第壹文秘上搜索。

1、12n系统设计阶段系统设计阶段:确定系统的具:确定系统的具体实现方案体实现方案n结构设计阶段结构设计阶段:确定软件结构:确定软件结构3n综合考虑各种可能的实现方案,并且力求从中选出最佳方案。综合考虑各种可能的实现方案,并且力求从中选出最佳方案。n需求分析阶段得到的数据流图是极好的出发点。需求分析阶段得到的数据流图是极好的出发点。n参考需求分析阶段确定的工程规模和目标,从可选方案中选择参考需求分析阶段确定的工程规模和目标,从可选方案中选择若干个合理的方案,通常至少选择低成本、中等成本、高成本若干个合理的方案,通常至少选择低成本、中等成本、高成本三种方案。三种方案。n对于每种方案应准备:系统流程图

2、、组成系统的物理元素清单、对于每种方案应准备:系统流程图、组成系统的物理元素清单、成本成本/效益分析、实现系统的进度计划。效益分析、实现系统的进度计划。3. 推荐最佳方案推荐最佳方案n综合分析、对比各种合理方案的利弊,推荐一个最佳的方案,综合分析、对比各种合理方案的利弊,推荐一个最佳的方案,并为推荐的最佳方案制定一个详细的实现计划。并为推荐的最佳方案制定一个详细的实现计划。n用户和有关人员评审所推荐的最佳方案。用户和有关人员评审所推荐的最佳方案。4n确定系统有哪些模块构成,以及这些模块之间的关确定系统有哪些模块构成,以及这些模块之间的关系。系。n对于复杂的功能或模块,结合数据流图,进一步分对于

3、复杂的功能或模块,结合数据流图,进一步分解。解。n系统软件是由实现各个子功能的模块构成,系统软件是由实现各个子功能的模块构成,软件结软件结构是指模块组成的层次关系。构是指模块组成的层次关系。n软件结构用层次图或结构图表示。软件结构用层次图或结构图表示。n数据流图细化到适当的层次,可以映射出软件结构。数据流图细化到适当的层次,可以映射出软件结构。6. n结合需求分析阶段所确定的系统数据需求,进一步结合需求分析阶段所确定的系统数据需求,进一步设计数据库。设计数据库。5n开发早期考虑并制定测试计划,有助于在设计时注意提高软件的可测开发早期考虑并制定测试计划,有助于在设计时注意提高软件的可测试性。试性

4、。n系统说明系统说明:主要包括用系统流程图描绘的系统构成方案,组成系统的主要包括用系统流程图描绘的系统构成方案,组成系统的物理元素清单,成本物理元素清单,成本/ /效益分析;对最佳方案的概括描述,精化的数效益分析;对最佳方案的概括描述,精化的数据流图,用层次图或结构图描绘的软件结构,用据流图,用层次图或结构图描绘的软件结构,用IPOIPO图或其他工具简图或其他工具简要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模要描述的各个模块的算法,模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系等。块三者之间的交叉参照关系等。n用户手册用户手册:根据总体设计阶段的结果,更正在需求分

5、析阶段产生的用:根据总体设计阶段的结果,更正在需求分析阶段产生的用户手册。户手册。n测试计划测试计划:包括测试策略,测试方案,预期的测试结果,测试进度计:包括测试策略,测试方案,预期的测试结果,测试进度计划等。划等。n详细的实现计划详细的实现计划n数据库设计结构数据库设计结构9. 审查和复审审查和复审n技术审查系统开发方技术审查系统开发方n管理复审系统使用者管理复审系统使用者67是指能够相对独立的实现一定功能的程序代码。是指能够相对独立的实现一定功能的程序代码。简单的讲,简单的讲,模块化就是把程序划分成独立命名且可独模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这

6、些模立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足块集成起来构成一个整体,可以完成指定的功能满足用户的需求。用户的需求。“复杂的问题分解成许多容易解决的小复杂的问题分解成许多容易解决的小问题问题”。过程、函数、子程序、宏;面向对象方法过程、函数、子程序、宏;面向对象方法学中的对象、对象内的方法。学中的对象、对象内的方法。u软件结构清晰,便于设计、交流软件结构清晰,便于设计、交流u容易测试、调试,有助于提高软件的可靠性容易测试、调试,有助于提高软件的可靠性u提高软件的可修改性提高软件的可修改性u有助于软件开发项目的组织与管理有助于软件开发项目的组织与

7、管理8当模块数目增加时每个模块的规模将减小,当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本开发单个模块需要的成本( (工作量工作量) )减少了;但是,减少了;但是,随着模块数目增加,设计模块间接口所需要的工作随着模块数目增加,设计模块间接口所需要的工作量将增加,并且在模块交互时易发生错误。量将增加,并且在模块交互时易发生错误。图图5.1 5.1 模块化和软件成本模块化和软件成本 9抽出事物的本质特性并加以描述,但是不考抽出事物的本质特性并加以描述,但是不考虑它们的细节。虑它们的细节。一个复杂系统可以用一些高级的抽象概念构造和一个复杂系统可以用一些高级的抽象概念构造和理解,这些高级

8、概念又可以用一些较低级的概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。理解,如此进行下去,直至最低层次的具体元素。 软件工程过程的每一步都是对软件解法的抽象层次软件工程过程的每一步都是对软件解法的抽象层次的一次精化。的一次精化。在可行性研究阶段,软件作为系统的一个在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述;当由总体设计向详细设计过渡时,境内熟悉的方式描述;当由总体设计向详细设计过渡时,抽象的程度随之减少;最后,当源程序实现,即达到抽

9、抽象的程度随之减少;最后,当源程序实现,即达到抽象的最低层。象的最低层。软件结构顶层的模块,控制系统软件结构顶层的模块,控制系统的主要功能并且影响全局;在软件结构底层的模块,完的主要功能并且影响全局;在软件结构底层的模块,完成对数据的一个具体处理,用自顶向下由抽象到具体的成对数据的一个具体处理,用自顶向下由抽象到具体的方式分配控制,简化软件的设计和实现,提高软件的可方式分配控制,简化软件的设计和实现,提高软件的可理解性和可测试性,并且使软件更容易维护。理解性和可测试性,并且使软件更容易维护。10自顶向下的设计策略:通过逐步分解自顶向下的设计策略:通过逐步分解对功能的宏观陈述而开发出层次结构,直

10、至最终得对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。出用程序设计语言表达的程序。求精就是细化的过程。求精就是细化的过程。抽象使设计者说明过抽象使设计者说明过程和数据,但却忽略低层的细节;逐步求精则帮助程和数据,但却忽略低层的细节;逐步求精则帮助设计者在设计过程中逐步揭示出低层的细节。设计者在设计过程中逐步揭示出低层的细节。11划分模块时,使得一个模块内包含的信息划分模块时,使得一个模块内包含的信息( (过程和过程和数据数据) )对于不需要这些信息的模块来说,是不能访问的。对于不需要这些信息的模块来说,是不能访问的。即隐藏每个模块所包含的私有信息即隐藏每个模块所包含的

11、私有信息。 所谓所谓局部化局部化是指把一些关系密切的软件元素物理地是指把一些关系密切的软件元素物理地放得彼此靠近。局部化有助于实现信息隐藏。放得彼此靠近。局部化有助于实现信息隐藏。模块中,隐藏的是模块的实现细节;模块之间模块中,隐藏的是模块的实现细节;模块之间的交互是为了完成系统功能而必须交换的信息。的交互是为了完成系统功能而必须交换的信息。12是指每个模块完成一个相对独立的特定子功能,是指每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。并且和其他模块之间的关系很简单。u容易设计和开发。功能分割相对独立,可以简化容易设计和开发。功能分割相对独立,可以简化接口,并且便于分工

12、合作开发。接口,并且便于分工合作开发。u独立的模块比较容易测试和维护。独立的模块比较容易测试和维护。u耦合耦合:衡量不同模块彼此间互相依赖衡量不同模块彼此间互相依赖( (连接连接) )的紧的紧密程度。密程度。u内聚内聚:衡量一个模块内部各个元素彼此结合的紧:衡量一个模块内部各个元素彼此结合的紧密程度。密程度。13两个模块间通过参数交换的信息仅是必须的两个模块间通过参数交换的信息仅是必须的数据。数据。传递的交换信息中有控制信息,有时这种控传递的交换信息中有控制信息,有时这种控制信息以数据的形式出现。制信息以数据的形式出现。n特征耦合:特征耦合:整个数据结构作为参数传递而被调用的模块整个数据结构作

13、为参数传递而被调用的模块只需要使用其中的一部分数据元素。只需要使用其中的一部分数据元素。即:被调用的模块即:被调用的模块可以使用的数据多于它确实需要的数据,可以使用的数据多于它确实需要的数据,这将导致对数这将导致对数据的访问失去控制。据的访问失去控制。n公共环境耦合:公共环境耦合:两个或多个模块通过一个公共数据环境两个或多个模块通过一个公共数据环境相互作用。公共环境可以是全程变量、共享的通信区、相互作用。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、存储介质上的文件、物理设备等。内存的公共覆盖区、存储介质上的文件、物理设备等。u一个模块访问另一个模块的内部数据一个模块访问另一个模块的

14、内部数据u一个模块不通过正常入口而转到另一个模块的内部一个模块不通过正常入口而转到另一个模块的内部u两个模块有一部分程序代码重叠两个模块有一部分程序代码重叠u一个模块有多个入口一个模块有多个入口( (这意味着一个模块有几种功能这意味着一个模块有几种功能) )14n尽量使用数据耦合尽量使用数据耦合n少用控制耦合和特征耦合少用控制耦合和特征耦合n限制公共环境耦合的范围限制公共环境耦合的范围n完全不用内容耦合。完全不用内容耦合。15一个模块完成一组任务,这些任务间即使存在关系,一个模块完成一组任务,这些任务间即使存在关系,关系也是很松散的。关系也是很松散的。一个模块完成的任务在逻辑上是相同或相似的。

15、一个模块完成的任务在逻辑上是相同或相似的。一个模块包含的任务必须在同一段时间内执行。一个模块包含的任务必须在同一段时间内执行。u过程内聚:过程内聚:模块内的处理元素是相关的,并且必须以特定的次模块内的处理元素是相关的,并且必须以特定的次序执行。序执行。u通信内聚:通信内聚:模块中所有元素都使用同一个输入数据和模块中所有元素都使用同一个输入数据和( (或或) )产生产生同一个输出数据同一个输出数据。u顺序内聚:顺序内聚:模块内的处理元素和同一个功能密切相关,而且这模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,即:一个处理元素的输出数据作为下一些处理必须顺序执行,即:一个处理元素

16、的输出数据作为下一个处理元素的输入数据。个处理元素的输入数据。u功能内聚:功能内聚:模块内所有处理元素属于一个整体,完成一个单一模块内所有处理元素属于一个整体,完成一个单一的功能。的功能。16功能内聚功能内聚 1010分分时间内聚时间内聚3 3分分顺序内聚顺序内聚 9 9分分逻辑内聚逻辑内聚1 1分分通信内聚通信内聚 7 7分分偶然内聚偶然内聚0 0分分过程内聚过程内聚 5 5分分u设计时不必精确确定内聚的级别,力争做到高内聚。设计时不必精确确定内聚的级别,力争做到高内聚。u辨认低内聚的模块,通过修改设计提高模块的内聚程辨认低内聚的模块,通过修改设计提高模块的内聚程度,降低模块间的耦合程度,以获得较高的模块独立度,降低模块间的耦合程度,以获得较高的模块独立性。性。u模块内的高内聚往往意味着模块间的松耦合模块内的高内聚往往意味着模块间的松耦合u是模块化设计的有力工具是模块化设计的有力工具u实践表明内聚比耦合更重要实践表明内聚比耦合更重要17 例如例如:多个模块共用的一个子功能可以独立:多个模块共用的一个子功能可以独立成一个模块,由这些模块调用;通过分解或合并成一个模块,由这些模块调用;通

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!