软件工程 第5章总体设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程 第5章总体设计.ppt》由会员分享,可在线阅读,更多相关《软件工程 第5章总体设计.ppt(98页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程Software Engineering2022年12月22日1广东工业大学计算机学院第第5章章 总体设计总体设计o本章内容:本章内容:o5.1 软件设计的重要性软件设计的重要性o5.2 设计过程设计过程o5.3 软件总体设计软件总体设计o5.4 设计基本原理设计基本原理o5.5 体系结构设计体系结构设计o5.6 结构化设计结构化设计o5.7 软件结构优化软件结构优化2022/12/222广东工业大学计算机学院o5.1 软件设计的重要性软件设计的重要性 o软件设计处于软件工程过程的技术核心地位。软件设计处于软件工程过程的技术核心地位。2022/12/223广东工业大学计算机学院
2、o在设计中所作的决策将最终影响软件实现的成功与在设计中所作的决策将最终影响软件实现的成功与否、也影响软件维护的难易程度。所以,在软件设否、也影响软件维护的难易程度。所以,在软件设计过程中的这些决策是开发阶段非常关键的一步。计过程中的这些决策是开发阶段非常关键的一步。o软件设计的重要性还反映在质量(软件设计的重要性还反映在质量(quality)上。)上。2022/12/224广东工业大学计算机学院2022/12/225广东工业大学计算机学院5.2 设计过程设计过程 o软件设计是一个把需求转换为软件表达式的过程。软件设计是一个把需求转换为软件表达式的过程。o从软件工程的角度讲是分为总体设计和详细设
3、计。从软件工程的角度讲是分为总体设计和详细设计。总体设计主要是把需求转换为数据结构和软件体系总体设计主要是把需求转换为数据结构和软件体系结构,而详细设计主要集中在体系结构表达式的细结构,而详细设计主要集中在体系结构表达式的细化,从而产生详细的数据结构和软件的算法表达式。化,从而产生详细的数据结构和软件的算法表达式。2022/12/226广东工业大学计算机学院o总体设计和详细设计除了必须有先进的设计技术外,总体设计和详细设计除了必须有先进的设计技术外,还要有同步的管理技术支持。还要有同步的管理技术支持。2022/12/227广东工业大学计算机学院o软件设计原则:软件设计原则:o1)设计应当模块化
4、()设计应当模块化(modular),也就是说,),也就是说,软件应被逻辑地划分为能完成特定功能和子功能的软件应被逻辑地划分为能完成特定功能和子功能的构件。构件。o(2)设计应形成具有独立功能特征的模块(如子)设计应形成具有独立功能特征的模块(如子程序或过程)。程序或过程)。o(3)设计应使模块之间和与外部环境之间接口的)设计应使模块之间和与外部环境之间接口的复杂性尽量地减少。复杂性尽量地减少。2022/12/228广东工业大学计算机学院o(4)设计应该有一个分层的组织结构,这样人们)设计应该有一个分层的组织结构,这样人们可对软件各个构件进行理性的控制。可对软件各个构件进行理性的控制。o(5)
5、设计应有性质不同的可区分的数据和过程表)设计应有性质不同的可区分的数据和过程表达式。达式。o(6)设计应利用软件需求分析中得到的信息和可)设计应利用软件需求分析中得到的信息和可重复的方法。重复的方法。2022/12/229广东工业大学计算机学院5.3 软件总体设计软件总体设计o1.软件系统结构设计软件系统结构设计o(1)采用某种设计方法,将一个复杂的系统按功)采用某种设计方法,将一个复杂的系统按功能划分成模块。能划分成模块。o(2)确定每个模块的功能。)确定每个模块的功能。o(3)确定模块之间的调用关系。)确定模块之间的调用关系。o(4)确定模块之间的接口,即模块之间传递的信)确定模块之间的接
6、口,即模块之间传递的信息。息。o(5)评价模块结构的质量。)评价模块结构的质量。2022/12/2210广东工业大学计算机学院o2.数据结构及数据库设计数据结构及数据库设计o1)数据结构的设计o根据需求分析阶段对系统数据的组成、操作约束和根据需求分析阶段对系统数据的组成、操作约束和数据之间的关系的描述,确定数据结构特性。数据之间的关系的描述,确定数据结构特性。2022/12/2211广东工业大学计算机学院o2)数据库的设计o一般的软件系统都有数据的存储,存储要借助数据一般的软件系统都有数据的存储,存储要借助数据库技术。数据库的设计是指数据存储文件的设计。库技术。数据库的设计是指数据存储文件的设
7、计。设计包括以下三个方面:设计包括以下三个方面:o(1)概念设计。)概念设计。o(2)逻辑设计。)逻辑设计。o(3)物理设计。)物理设计。2022/12/2212广东工业大学计算机学院o3.网络系统设计网络系统设计o如果采用的是网络环境,则要进行网络系统的设计。如果采用的是网络环境,则要进行网络系统的设计。要分析网络负荷与容量,遵照网络系统设计原则,要分析网络负荷与容量,遵照网络系统设计原则,确定网络系统的需求。要进行网络结构设计,选择确定网络系统的需求。要进行网络结构设计,选择好网络操作系统,确定网络系统配置,制定网络拓好网络操作系统,确定网络系统配置,制定网络拓扑结构。扑结构。2022/1
8、2/2213广东工业大学计算机学院o4.软件总体设计文档软件总体设计文档o总体设计说明书是总体设计阶段结束时提交的技术总体设计说明书是总体设计阶段结束时提交的技术文档。按国标文档。按国标GB857688的的计算机软件产品计算机软件产品开发文件编制指南开发文件编制指南规定,软件设计文档可分为规定,软件设计文档可分为“总体设计说明书总体设计说明书”、“详细设计说明书详细设计说明书”和和“数据库数据库设计说明书设计说明书”。这些文档的内容与格式请参考有关。这些文档的内容与格式请参考有关资料。资料。2022/12/2214广东工业大学计算机学院o5.评审评审o在该阶段,对设计部分是否完整地实现了需求中
9、规在该阶段,对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性、关键定的功能、性能等要求,设计方案的可行性、关键的处理及内外部接口定义正确性、有效性以及各部的处理及内外部接口定义正确性、有效性以及各部分之间的一致性等,都一一进行评审。分之间的一致性等,都一一进行评审。2022/12/2215广东工业大学计算机学院5.4 设计基本原理设计基本原理 o软件设计要回答下列问题:软件设计要回答下列问题:o(1)使用什么样的准则才能把软件划分成为各个)使用什么样的准则才能把软件划分成为各个单独的构件?单独的构件?o(2)怎样把功能或数据结构的细节从软件概念表)怎样把功能或数据结构的
10、细节从软件概念表达式中分离出来?达式中分离出来?o(3)定义软件设计的技术质量有统一的准则吗?)定义软件设计的技术质量有统一的准则吗?2022/12/2216广东工业大学计算机学院5.4.1 抽象抽象 o抽象是认识复杂现象过程中使用的思维工具,即抽抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同特性而暂不考虑它的细节,不考出事物本质的共同特性而暂不考虑它的细节,不考虑其他因素。虑其他因素。o随着对抽象不同层次的展开,过程抽象随着对抽象不同层次的展开,过程抽象(Procedural Abstraction)和数据抽象)和数据抽象(Data Abstraction)就建立了。)就建立了
11、。2022/12/2217广东工业大学计算机学院5.4.2 细化细化 o逐步细化是一种自顶向下的设计策略。程序的体系逐步细化是一种自顶向下的设计策略。程序的体系结构开发是由过程细节层次不断地细化而成的。分结构开发是由过程细节层次不断地细化而成的。分层的开发则是以逐步的方式由分解一个宏功能直到层的开发则是以逐步的方式由分解一个宏功能直到获得编程语言语句。获得编程语言语句。o细化实际上是一个详细描述的过程。在高层抽象定细化实际上是一个详细描述的过程。在高层抽象定义时,从功能说明或信息描述开始,就是说明功能义时,从功能说明或信息描述开始,就是说明功能或信息的概念,而不给出功能内部的工作细节或信或信息
12、的概念,而不给出功能内部的工作细节或信息的内部结构。细化则是设计者在原始说明的基础息的内部结构。细化则是设计者在原始说明的基础上进行详细说明,随着不断的细化(详细说明)给上进行详细说明,随着不断的细化(详细说明)给出更多的细节。出更多的细节。2022/12/2218广东工业大学计算机学院5.4.3 模块化模块化 o模块具有以下几种基本属性:模块具有以下几种基本属性:o(1)接口:指模块的输入与输出。)接口:指模块的输入与输出。o(2)功能:指模块实现什么功能。)功能:指模块实现什么功能。o(3)逻辑:描述内部如何实现要求的功能及所需)逻辑:描述内部如何实现要求的功能及所需的数据。的数据。o(4
13、)状态:指该模块的运行环境,即模块的调用)状态:指该模块的运行环境,即模块的调用与被调用关系。与被调用关系。2022/12/2219广东工业大学计算机学院o模块化是指解决一个复杂问题时自顶向下逐层把软模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。成为一个整体,完成整个系统所要求的功能。2022/12/2220广东工业大学计算机学院o问题复杂性与工作量关系问题复杂性与工作量关系o设问题
14、设问题x,表示它的复杂性函数为,表示它的复杂性函数为C(x),解决它所,解决它所需的工作量函数为需的工作量函数为E(x)。对于问题。对于问题P1和和P2;如;如果:果:oC(P1)C(P2)o即即P1比比P2复杂,那么:复杂,那么:oE(P1)E(P2)o即问题越复杂,所需要的工作量越大。即问题越复杂,所需要的工作量越大。2022/12/2221广东工业大学计算机学院o根据解决一般问题的经验,规律为:根据解决一般问题的经验,规律为:oC(P1+P2)C(P1)+C(P2)o即一个问题同问题组合而成的复杂度大于分别考虑即一个问题同问题组合而成的复杂度大于分别考虑每个问题的复杂度之和。这样,可以推
15、出:每个问题的复杂度之和。这样,可以推出:oE(P1+P2)E(P1)+E(P2)o所得结果对于模块化和软件具有重要的意义。那么,所得结果对于模块化和软件具有重要的意义。那么,从上面所得的不等式是否可以得出这样的结论:从上面所得的不等式是否可以得出这样的结论:o如果把软件无限细分,那么最后开发软件所需要的如果把软件无限细分,那么最后开发软件所需要的工作量就小得可以忽略了。但是,事实上,影响软工作量就小得可以忽略了。但是,事实上,影响软件开发工作量的因素还有许多件开发工作量的因素还有许多 2022/12/2222广东工业大学计算机学院o模块数目与软件成本模块数目与软件成本 2022/12/222
16、3广东工业大学计算机学院5.4.4 软件体系结构软件体系结构 o软件总体设计的主要任务就是软件结构的设计。软软件总体设计的主要任务就是软件结构的设计。软件体系结构(件体系结构(software architecture)包含了)包含了计算机程序的两个重要特性:计算机程序的两个重要特性:o(1)过程构件(模块)的层次结构。)过程构件(模块)的层次结构。o(2)数据结构。)数据结构。2022/12/2224广东工业大学计算机学院o结构化演化结构化演化 2022/12/2225广东工业大学计算机学院o不同结构不同结构 2022/12/2226广东工业大学计算机学院5.4.5 程序结构程序结构 o程序
17、结构(程序结构(program structure)给出了程序)给出了程序构件(模块)的组织(通常叫分层),这种组织包构件(模块)的组织(通常叫分层),这种组织包含了控制的层次。它们不给出软件的过程方面,如含了控制的层次。它们不给出软件的过程方面,如过程的序列、决策的出现或次序,或操作的重复等。过程的序列、决策的出现或次序,或操作的重复等。2022/12/2227广东工业大学计算机学院o结构专用名词结构专用名词 2022/12/2228广东工业大学计算机学院5.4.6 数据结构数据结构 o在软件体系结构的表达式中,数据结构与程序结构在软件体系结构的表达式中,数据结构与程序结构同样重要。数据结构
18、决定信息的组织、存取方法、同样重要。数据结构决定信息的组织、存取方法、结合的程度,以及可选的处理方法。结合的程度,以及可选的处理方法。2022/12/2229广东工业大学计算机学院o典型的数据结构典型的数据结构 2022/12/2230广东工业大学计算机学院o当组织标量项作为一列或连接的组时,就形成一个当组织标量项作为一列或连接的组时,就形成一个顺序向量(顺序向量(sequential vector)。向量是数据)。向量是数据结构中最常用的。可看下面这个结构中最常用的。可看下面这个C语言程序段的例语言程序段的例子:子:oint aa100;ooprocedure ps(int aa;int n
19、;int sum)o int i;o2022/12/2231广东工业大学计算机学院osum=0;o for(i=1;i=n;i+)o sum=sum+aai;o;ooo例子中定义例子中定义aa为为100个标量整数项的顺序向量。个标量整数项的顺序向量。在过程在过程ps中标引中标引aa的每个元素的存储,这样数据的每个元素的存储,这样数据结构的每个元素都可按定义的顺序引用。结构的每个元素都可按定义的顺序引用。2022/12/2232广东工业大学计算机学院5.4.7 软件过程软件过程 o软件过程(软件过程(software procedure),则侧重于),则侧重于每一个单独模块的处理细节研究。过程必
20、须提供精每一个单独模块的处理细节研究。过程必须提供精确的事件的顺序、确切的抉择点、重复的操作,以确的事件的顺序、确切的抉择点、重复的操作,以及数据的组织与结构处理规格说明。及数据的组织与结构处理规格说明。2022/12/2233广东工业大学计算机学院o一个模块内的过程一个模块内的过程 2022/12/2234广东工业大学计算机学院o过程的分层过程的分层 2022/12/2235广东工业大学计算机学院5.5 体系结构设计体系结构设计 o软件体系结构设计(软件体系结构设计(architectural design)的)的主要目标是设计一个模块化的程序结构。体系结构主要目标是设计一个模块化的程序结构
21、。体系结构设计融合了程序结构和数据结构,接口定义能使数设计融合了程序结构和数据结构,接口定义能使数据流经程序。要给出各个模块之间的控制关系。据流经程序。要给出各个模块之间的控制关系。2022/12/2236广东工业大学计算机学院5.5.1 软件结构图软件结构图 o软件结构图是软件系统的模块层次结构,反映了整软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。个系统的功能实现,即将来程序的控制层次体系。o软件结构往往用树状或网状结构的图形来表示。软件结构往往用树状或网状结构的图形来表示。o1.模块模块o用方框表示,并用名字标识该模块,名字应体现该用方框表示,并
22、用名字标识该模块,名字应体现该模块的功能。模块的功能。o2.模块的控制关系模块的控制关系o两个模块间用单向箭头或直线连接起来表示它们的两个模块间用单向箭头或直线连接起来表示它们的控制关系。控制关系。2022/12/2237广东工业大学计算机学院o3.模块间的信息传递模块间的信息传递o模块间还经常用带注释的短箭头表示模块调用过程模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。中来回传递的信息。o模块间的控制关系及信息传递模块间的控制关系及信息传递 2022/12/2238广东工业大学计算机学院o4.两个附加符号两个附加符号o表示模块有选择调用或循环调用表示模块有选择调用或循环调用
23、2022/12/2239广东工业大学计算机学院o5.结构图的形态特征结构图的形态特征 2022/12/2240广东工业大学计算机学院o结构图的形态特征包括:结构图的形态特征包括:o(1)深度:指结构图控制的层次,即模块的层数。)深度:指结构图控制的层次,即模块的层数。o(2)宽度:指一层中最大的模块个数。)宽度:指一层中最大的模块个数。o(3)扇出:指一个模块直接下属模块的个数。)扇出:指一个模块直接下属模块的个数。o(4)扇入:指一个模块直接上属模块的个数。)扇入:指一个模块直接上属模块的个数。2022/12/2241广东工业大学计算机学院o6.画结构图应注意的事项画结构图应注意的事项o(1
24、)同一名字的模块在结构图中仅出现一次。)同一名字的模块在结构图中仅出现一次。o(2)调用关系只能从上到下。)调用关系只能从上到下。o(3)不严格表示模块的调用次序,习惯上从左到)不严格表示模块的调用次序,习惯上从左到右。右。2022/12/2242广东工业大学计算机学院5.5.2 模块的大小模块的大小 o前面在讨论模块设计的原理时,已经知道一个系统前面在讨论模块设计的原理时,已经知道一个系统应当由若干个模块构成。其目的是为了降低系统的应当由若干个模块构成。其目的是为了降低系统的复杂度。复杂度。o模块设计的准则不应该是语句的多少,而应当是模模块设计的准则不应该是语句的多少,而应当是模块是否是一个
25、独立的功能。块是否是一个独立的功能。2022/12/2243广东工业大学计算机学院5.5.3 扇出和扇入与深度和宽度扇出和扇入与深度和宽度o由结构图的形态特征可以知道,一个系统的大小和由结构图的形态特征可以知道,一个系统的大小和系统的复杂程度在一定程度上可以用深度和宽度表系统的复杂程度在一定程度上可以用深度和宽度表示。示。o大量的系统研究表明,认为高层模块应有较高的扇大量的系统研究表明,认为高层模块应有较高的扇出,低层模块特别是底层模块应有较高的扇入。扇出,低层模块特别是底层模块应有较高的扇入。扇入越大,表示该模块被更多的上级模块共享。多个入越大,表示该模块被更多的上级模块共享。多个扇入入口相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第5章 总体设计 总体 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内