软件工程_总体设计_第1页
软件工程_总体设计_第2页
软件工程_总体设计_第3页
软件工程_总体设计_第4页
软件工程_总体设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章第四章 总体设计总体设计软件工程(Software Engineering)总体设计总体设计 总体设计总体设计(Summary Design)又称为概要设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成或初步设计。通过这个阶段的工作将划分出组成系统的物理元素系统的物理元素程序程序(Program)、文件、文件(File)、数据库数据库(Dada base)、人工过程和文档、人工过程和文档(Document)等等,但是每个物理元素仍然处于黑盒子等等,但是每个物理元素仍然处于黑盒子(Black Box)级,这些黑盒子里的具体内容将在以后仔细级,这些黑盒子里的具体内容将在以后仔细设计

2、。设计。 总体设计阶段的另一项重要任务是:总体设计阶段的另一项重要任务是: 设计软件的结构设计软件的结构 确定系统中每个程序是由哪些模块组成确定系统中每个程序是由哪些模块组成 确定模块相互间的关系确定模块相互间的关系 前一页总体的设计过程总体的设计过程 软件设计的概念和原理软件设计的概念和原理 启发式规则启发式规则 图形工具图形工具 面向数据流的设计方法面向数据流的设计方法 本章主要内容本章主要内容前一页前一页总体的设计过程总体的设计过程设想供选择的方案设想供选择的方案 选取合理的方案选取合理的方案 推荐最佳方案推荐最佳方案 功能分解功能分解 设计软件结构设计软件结构 数据库设计数据库设计 制

3、定测试计划制定测试计划 书写文档书写文档审核和复审审核和复审 前一页总总体体的的设设计计过过程程设想供选择的方案 在总体设计阶段分析员应该考虑各种在总体设计阶段分析员应该考虑各种可能的实现方案可能的实现方案(Project),并且力求从中,并且力求从中选出最佳方案。在总体设计阶段开始时只选出最佳方案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案。分析比较不同的物理实现方案。 设想供选择的方案的一种常用的方法设想供选择的方案的一种常用的方法是:设想在数据流图中处理分组的各种可是:设想在数据流图中处理分组的各种可能的方法,

4、抛弃在技术上行不通的方法,能的方法,抛弃在技术上行不通的方法,余下的方法作为可能实现的策略,并且可余下的方法作为可能实现的策略,并且可以启发供选择的物理系统。以启发供选择的物理系统。 前一页总总体体的的设设计计过过程程选取合理方案 通常至少选取低成本、中等成本和高成通常至少选取低成本、中等成本和高成本的三种方案。对每个合理的方案分析员都本的三种方案。对每个合理的方案分析员都应该准备下列四份资料:应该准备下列四份资料: (1)系统流程图)系统流程图 (2)组成系统的物理元素的清单)组成系统的物理元素的清单 (3)成本)成本/效益分析效益分析 (4)实现这个系统的进度计划)实现这个系统的进度计划

5、前一页总总体体的的设设计计过过程程推荐最佳方案 分析员应该综合分析对比各种合理的方案,分析员应该综合分析对比各种合理的方案,推荐一个最佳的方案,并且为推荐的方案制定推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。详细的实现计划。 用户和有关的技术专家应该认真审查分析用户和有关的技术专家应该认真审查分析员所推荐的最佳系统,如果该系统确实符合用员所推荐的最佳系统,如果该系统确实符合用户的需要,并且是在现有条件下完全能够实现户的需要,并且是在现有条件下完全能够实现的,则应该提请使用部门负责人进一步审批。的,则应该提请使用部门负责人进一步审批。在接受分析员所推荐的方案之后,将进入总体在接受分析

6、员所推荐的方案之后,将进入总体设计过程的下一个重要阶段设计过程的下一个重要阶段结构设计。结构设计。 前一页总总体体的的设设计计过过程程功能分解 为了最终实现目标系统,必须设计出组成为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:分为两个阶段完成: 结构设计结构设计(Structure Design) :是总体设:是总体设计阶段的任务,确定程序由那些模块组计阶段的任务,确定程序由那些模块组成,以及这些模块之间的关系。成,以及这些模块

7、之间的关系。 过程设计过程设计(Process Design):是详细设计:是详细设计阶段的任务,确定每个模块的处理过程。阶段的任务,确定每个模块的处理过程。 前一页总总体体的的设设计计过过程程设计软件结构 为确定软件结构,首先需要从实现角为确定软件结构,首先需要从实现角度把复杂的功能进一步分解,通常程序中度把复杂的功能进一步分解,通常程序中的一个模块完成一个适当的子功能。应该的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块把模块组织成良好的层次系统,顶层模块调用它下层模块以实现程序的完整功能,调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而每个

8、下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完完成程序的一个子功能,最下层的模块完成最具体的功能成最具体的功能 。前一页总总体体的的设设计计过过程程数据库设计数据库设计通常包括下述四个步骤数据库设计通常包括下述四个步骤: (1)模式设计()模式设计(Pattern Design) 模式设计的目的是确定物理数据库结构。第三范模式设计的目的是确定物理数据库结构。第三范式的实体及关系数据模型是模式设计过程的输入,模式的实体及关系数据模型是模式设计过程的输入,模式设计的主要问题是处理具体的数据库管理系统的结式设计的主要问题是处理具体的数据库管理系统的结构约束。构约束。 (2)子模

9、式设计)子模式设计 子模式是用户使用的数据视图。子模式是用户使用的数据视图。 (3)完整性)完整性(Integrality)和安全性和安全性(Security)设计设计 (4)优化)优化(Optimize) 主要目的是改进模式和子模式以优化数据的存取。主要目的是改进模式和子模式以优化数据的存取。 前一页总总体体的的设设计计过过程程制定测试计划 在软件开发的早期阶段考虑测试在软件开发的早期阶段考虑测试(Testing)问题,能促使软件设计人员问题,能促使软件设计人员在设计时注意提高软件的可测试性在设计时注意提高软件的可测试性 。前一页总总体体的的设设计计过过程程书写文档 1.系统说明系统说明 2

10、.用户手册用户手册 3.测试计划测试计划 4.详细的实现计划详细的实现计划 5.数据库设计结果数据库设计结果 前一页总总体体的的设设计计过过程程审核和复审 最后应该对总体设计的结果进最后应该对总体设计的结果进行严格的技术审查,通过之后再由行严格的技术审查,通过之后再由使用部门从管理和应用的角度进行使用部门从管理和应用的角度进行复审。复审。软件设计的概念和原理软件设计的概念和原理模块化模块化 抽象抽象 信息隐蔽和局部化信息隐蔽和局部化 模块独立模块独立 前一页主要内容前一页软件设计的概念和原理模块化 模块模块(Modular)是数据说明、可执行语是数据说明、可执行语句等程序对象的集合,它是单独命

11、名的而且句等程序对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序划分可通过名字来访问。模块化就是把程序划分成若干个模块,每个模块完成一个子功能,成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完把这些模块集总起来组成一个整体,可以完成指定的功能满足问题的要求。成指定的功能满足问题的要求。 前一页软件设计的概念和原理模块化 设函数设函数C(x)定义问题)定义问题x的复杂程度,的复杂程度,函数函数E(x)确定解决问题)确定解决问题x需要的工作量需要的工作量(时间),对于两个问题(时间),对于两个问题p1和和p2,如果,如果 C(p1) C(p2) E(p1

12、) E(p2) C(p1p2) C(P1) + C(p2) E(p1p2) E(p1)+ E(p2) 前一页模块化与软件成本前一页软件设计的概念和原理抽 象 人类在认识复杂现象的过程中使用的人类在认识复杂现象的过程中使用的最强有力的思维工具抽象最强有力的思维工具抽象(Abstract)。人们。人们在实践中认识到,在现实世界中一定事物、在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面状态或过程之间总存在着某些相似的方面(共性(共性)。把这些相似的方面集中和概括起。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。来,暂时忽略它们之间的差异,这就是抽象。

13、前一页软件设计的概念和原理信息的隐蔽和局部化 使得一个模块内包括的信息使得一个模块内包括的信息(过程和过程和数据)对于不需要这些信息的模块来说,数据)对于不需要这些信息的模块来说,是不能访问的。是不能访问的。 “隐蔽隐蔽”(Hiding)意味着有效的模块意味着有效的模块化可以通过定义一组独立的模块而实现,化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。完成系统功能而必须交换的信息。 前一页软件设计的概念和原理模块独立 模块独立模块独立(Independence)的概念是模块化、的概念是模块化、抽象、信息隐

14、蔽和局部化概念的直接结果。开发抽象、信息隐蔽和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没有过多的相具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立互作用的模块,就可以做到模块独立 。 第一,有效的模块化(即具有独立的模块)第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。的软件比较容易开发出来。 第二,独立的模块比较容易测试和维护。模第二,独立的模块比较容易测试和维护。模块的独立程度可以由两个定性标准度量,这两个块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合,内聚衡量一个模块内标准分别称为内聚和耦合,内聚衡量一个模块内部各

15、个元素彼此结合的紧密程度;耦合衡量不同部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。模块彼此间互相依赖(连接)的紧密程度。 耦合度可以分为七级:耦合度可以分为七级:非直接藕合非直接藕合数据藕合数据藕合控制藕合控制藕合特征藕合特征藕合外部藕合外部藕合公共藕合公共藕合内容藕合内容藕合藕藕合合度度低低高高软件设计时应尽量使用数据软件设计时应尽量使用数据藕合,减少控制藕合,限制藕合,减少控制藕合,限制外部环境藕合和公共数据藕外部环境藕合和公共数据藕合,杜绝内容藕合。合,杜绝内容藕合。耦合度数据耦合数据耦合 (Data Coupling):如果两:如果两个模块彼此间通过

16、参数交换信息,个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。这种耦合称为数据耦合。特征耦合特征耦合 :如果两个模块都与:如果两个模块都与同一数据结构有关。同一数据结构有关。控制耦合控制耦合(Control Coupling) :如果传递的信息中有控制信息,如果传递的信息中有控制信息,则这种耦合称为控制耦合。则这种耦合称为控制耦合。 公共环境耦合公共环境耦合 (Common Coupling):当两个或多个模块通过一个公共数当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦据环境相互作用时,它们之间的耦合称为公共环境耦合

17、。合称为公共环境耦合。前一页 数据耦合是低耦合。系统必须存在这种数据耦合是低耦合。系统必须存在这种耦合,因为只有当某些模块的输出数据作为耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有另一些模块的输入数据时,系统才能完成有价值的功能。价值的功能。 内容耦合内容耦合(Contain Coupling):最高程度的耦:最高程度的耦合是内容耦合。一个模块和合是内容耦合。一个模块和另一个模块的内部属性有关。另一个模块的内部属性有关。 原则:尽量使用数据耦合,少用特征耦原则:尽量使用数据耦合,少用特征耦合和控制耦合,限制公共环境耦合的范围,合和控制耦合,限制公共环境耦合的范围

18、,完全不用内容耦合完全不用内容耦合 。 c 模块内聚启发式规则启发式规则改进软件结构提高模块独立性改进软件结构提高模块独立性模块规模应该适中模块规模应该适中 深度、宽度、扇出和扇入应适当深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内模块的作用域应在控制域之内 尽量降低模块接口的复杂程度尽量降低模块接口的复杂程度 设计单入口出口的模块设计单入口出口的模块 模块功能应该可以预测模块功能应该可以预测 前一页主要内容软件结构形态 “形态”指的是系统结构所表现出来的形状。系统结构的形状用如下特征来定义:(1)深度:指结构图控制的层次。(2)宽度:指一层中最大的模块个数。(3)扇出:指一个模块直

19、接下属模块的个数。(4)扇入:指一个模块直接上属模块的个数。系统的深度能够粗略地描述系统的规模和复杂度。系统宽度的一个主要影响是扇出。一般认为,扇出的域值大约为6或7。ABXB1CYC3C1C2深度为4宽度为4平均扇出为2图5.12 软件结构形态影响范围和控制范围 判定的“影响范围”是指包含“条件依赖”于该判定的处理的全部模块。一个模块的“控制范围”是指模块本身和它的全体子模块。控制范围和影响范围的设计原则:对于任何判定,影响范围应该是这个判定所在模块的控制范围的一个子集。而最理想的情况是,把影响范围限制在给出判定的模块本身和它的直接相连的子模块中。图形工具图形工具层次图和层次图和HIPO图图

20、 结构图结构图 前一页主要内容前一页图形工具层次图和HIPO图 层次图层次图 用来描绘软件的层次结构,层用来描绘软件的层次结构,层次图适合于在自顶向下设计软件的过程中次图适合于在自顶向下设计软件的过程中使用。使用。 HIPO图图 是美国是美国IBM公司发明的层次公司发明的层次图加图加“输入处理输出图输入处理输出图”的英文缩写的英文缩写为了能使为了能使HIPO图具有可追踪性,在图具有可追踪性,在H图图(层次图)里除了最顶层的方框之外,每(层次图)里除了最顶层的方框之外,每个方框都加了编号。个方框都加了编号。 前一页正文加工系统的层次图正文加工系统的层次图前一页带编号的层次图(带编号的层次图(H图

21、)图)前一页图形工具结构图 Yourdon提出的结构图是进行软件结构提出的结构图是进行软件结构设计的另一个有力工具在结构图中通常还用设计的另一个有力工具在结构图中通常还用带注释的箭头表示模块调用过程中来回传递带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是部的形状来区分:尾部是空心圆空心圆表示传递的表示传递的是数据,是数据,实心圆实心圆表示传递的是控制信息。表示传递的是控制信息。 前一页产生最佳解的结构图前一页判定为真时调用A为假时

22、调用BM循环调用A、B、C面向数据流的设计方法前一页 面向数据流的设计方法的目标是给出面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。设计软件结构的一个系统化的途径。 在软件工程的需求分析阶段,信息流在软件工程的需求分析阶段,信息流是一个关键,通常用数据流图描绘信息在是一个关键,通常用数据流图描绘信息在系统中加工和流动的情况。通常所说的结系统中加工和流动的情况。通常所说的结构化设计方法(简称构化设计方法(简称SD方法),也就是基方法),也就是基于数据流的设计方法。于数据流的设计方法。 面向数据流的设计方法面向数据流的设计方法概念概念 变换流分析设计变换流分析设计 事物流分析设计

23、事物流分析设计混合流分析设计混合流分析设计 设计优化设计优化 前一页主要内容前一页面向数据流的设计方法概念 变换流 根据基本系统模型,信息通常以根据基本系统模型,信息通常以“外外部世界部世界”的形式进入软件系统,经过处理的形式进入软件系统,经过处理以后再以以后再以“外部世界外部世界”的形式离开系统。的形式离开系统。 信息沿输入通路进入系统,同时由外信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数通路变换成外部形式离开软件系统。当数据

24、流图具有这些特征时,这种信息流就叫据流图具有这些特征时,这种信息流就叫作变换流作变换流 。前一页变换流图面向数据流的设计方法前一页概念 事务流 数据沿输入通路到达一个处理数据沿输入通路到达一个处理T,这个处理,这个处理根据输入数据的类型再若干个动作序列中选出根据输入数据的类型再若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的一个来执行。这类数据流应该划为一类特殊的数据流,称为事物流数据流,称为事物流 (1)接收输入数据(输入数据又称为事务);)接收输入数据(输入数据又称为事务); (2)分析每个事物以确定它的类型;)分析每个事物以确定它的类型; (3)根据事物类型选取一条活动通道。

25、)根据事物类型选取一条活动通道。前一页事 务 流前一页概念设计过程前一页面向数据流的设计方法变换流分析设计 把具有变换流特点的数据流图按预先确把具有变换流特点的数据流图按预先确定的模式映射成软件结构定的模式映射成软件结构 。 (1)找出变换的中心;)找出变换的中心; (2)设计软件结构的顶层和第二层;)设计软件结构的顶层和第二层; (3)设计中下层模块。)设计中下层模块。 前一页面向数据流的设计方法变换流分析设计 设计一个安装在汽车上的数字仪表板,功设计一个安装在汽车上的数字仪表板,功能如下:能如下: (1)通过模数转换实现传感器和微处理机接口;)通过模数转换实现传感器和微处理机接口; (2)

26、在发光二极管面板上显示数据;)在发光二极管面板上显示数据; (3)指示每小时英里数()指示每小时英里数(mph),行驶的英里数),行驶的英里数(mpg)等等;)等等; (4)指示加速或减速;)指示加速或减速; (5)超速报警。)超速报警。 前一页面向数据流的设计方法变换流分析设计第第1步步 复查基本系统模型。复查基本系统模型。第第2步步 复查并精化数据流图。复查并精化数据流图。第第3步步 确定数据流图具有变换特性。确定数据流图具有变换特性。第第4步步 确定输入流和输出流的边界,从而孤立出变确定输入流和输出流的边界,从而孤立出变 换中心。换中心。第第5步步 完成完成“第一级分解第一级分解”。第第

27、6步步 完成完成“第二级分解第二级分解”。第第7步步 使用设计度量和启发式规则对第一次分割得使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。到的软件结构进一步精化。 前一页数字仪表板数据流图前一页确定输入流和输出流的边界前一页完成第一级的分解前一页完成第二级的分解前一页未经精化的结构图前一页 精化的软件结构图面向事务流的设计方法前一页事务流的分析设计 事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到软件结构的映射方法不同。 (1)确定事务处理中心和每条加工路径; (2)设计事务流的DFD的软件结构; (3)对处理中心和每条加工路径细化。 前一页事务流分析的映射方法前一页面向混合流的设计方法混合流分析设计 在大型系统中往往既有变换流,也有事在大型系统中往往既有变换流,也有事务流,一般采用变换流为主,事务流为辅的务流,一般采用变换流为主,事务流为辅的原则原则 。 (1)先划出输入输出;)先划出输入输出; (2)设计软件结构的上层;)设计软件结构的上层; (3)根据)根据DFD各部分的特征,进行各部分的特征,进行变换流和事务流设计变换流和事务流设计 。前一页设计优化先使它动起来,先使它动起来, 再使它快起来再使它快起来 。本章内容结束前一页回首页本章

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论