软件工程总体设计的ppt

简介 相关

截图

软件工程总体设计的ppt

简介

这是软件工程总体设计ppt,包括了软件设计的重要性,设计过程,软件总体设计,设计基本原理,体系结构设计,结构化设计,IDEF0图设计方法,软件结构优化等内容,欢迎点击下载。

软件工程总体设计的ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.

软件工程 Software EngineeringrAH红软基地
第五章 总体设计rAH红软基地
第五章  总体设计rAH红软基地
软件设计的重要性rAH红软基地
设计过程 rAH红软基地
软件总体设计 rAH红软基地
设计基本原理 rAH红软基地
体系结构设计 rAH红软基地
结构化设计 rAH红软基地
IDEF0图设计方法 rAH红软基地
软件结构优化rAH红软基地
总体设计rAH红软基地
总体设计的基本目标就是概要地回答系统应该如何实现。所以设计在任何工程产品或系统中,是开发阶段的第一步。设计(design)可以定义为应用各种技术和原理,对一个设备、一个过程或一个系统,作出足够详细的决策,使之有可能在物理上得以实现的过程。rAH红软基地
总体设计rAH红软基地
系统的总体设计是在前面系统分析的基础上,为后期将要构造的系统实体建立一个模型(model)或表达式(representation)。构造这样的模型需要有开发人员的直觉和以前开发这类实体经验的判断、开发方法的采用、产品质量的准则,是一个综合的过程。而且经过多次的重复,直到最终拿出最后的设计模型。rAH红软基地
5.1 软件设计的重要性 rAH红软基地
软件设计处于软件工程过程的技术核心地位rAH红软基地
5.1 软件设计的重要性rAH红软基地
软件设计的重要性还反映在质量上。rAH红软基地
5.2 设计过程rAH红软基地
软件设计是一个把需求转换为软件表达式的过程。这个表达式过程一般情况下是分为两步走。rAH红软基地
从软件工程的角度讲是分为总体设计和详细设计。rAH红软基地
总体设计主要是把需求转换为数据结构和软件体系结构,而详细设计主要集中在体系结构表达式的细化,从而产生详细的数据结构和软件的算法表达式。rAH红软基地
5.2.1 软件设计的发展 rAH红软基地
早期的设计工作中,着重在开发模块化程序模块所需要的准则,以及按照自顶向下(top-down)的方式逐步细化软件体系结构上。rAH红软基地
接着,设计定义的过程方面逐渐发展成为一种叫做结构化编程(structured programming)的原则。rAH红软基地
之后,提出了把数据流和数据结构翻译成设计定义的方法。rAH红软基地
近年来,则建立采用OO的设计方法。rAH红软基地
总结过去软件设计的发展,可以归纳为是一个持续发展的过程。rAH红软基地
5.2.2设计活动间的关系rAH红软基地
总体设计和详细设计除了必须有先进的设计技术外,还要有同步的管理技术支持。如图5-3所示rAH红软基地
5.2.3 设计与软件质量rAH红软基地
在整个设计过程中,设计每一步的质量都要进行正式的技术评审(formal technical reviews)。要按照设计准则对于设计表达式的质量的评价。我们这里给出下列软件设计原则:rAH红软基地
(1)设计应当模块化(modular),也就是说,软件应被逻辑地划分为能完成特定功能和子功能的构件。rAH红软基地
(2)设计应形成具有独立功能特征的模块(如子程序或过程)。rAH红软基地
软件设计原则(续)rAH红软基地
(3)设计应使模块之间和与外剖环境之间接口的复杂性尽量地减少。rAH红软基地
(4)设计应该有一个分层的组织结构,这样人们可对软件各个构件进行理性的控制。rAH红软基地
(5)设计应有性质不同的可区分的数据和过程表达式。rAH红软基地
(6)设计应利用软件需求分析中得到的信息和可重复的方法。rAH红软基地
5.3  软件总体设计rAH红软基地
需求分析阶段所形成的数据流图是软件总体设计的基础。我们要从可供选择的方案中选取合理的方案,为每一个方案准备一份系统流程图,列出系统组成的物理元素,进行效益分析,制定实现方案的进度。我们要从合理的方案中选择一个最佳的方案向用户推荐。rAH红软基地
当用户接受方案后,就要为这个最佳的方案设计软件结构,一般情况下,这个软件结构要通过反复修改使之合理。rAH红软基地
同时还要进行必要的数据库设计。在分布式系统中还要进行网络设计。rAH红软基地
另外,还要制定测试计划和确定测试要求。rAH红软基地
在详细设计前一定要进行软件总体设计。 rAH红软基地
5.3.1  总体设计基本任务rAH红软基地
1.软件系统结构设计rAH红软基地
(1)采用某种设计方法,将一个复杂的系统按功能划分成模块。rAH红软基地
(2)确定每个模块的功能。rAH红软基地
(3)确定模块之间的调用关系。rAH红软基地
(4)确定模块之间的接口,即模块之间传递的信息。rAH红软基地
(5)评价模块结构的质量。rAH红软基地
总体设计基本任务(续)rAH红软基地
2.数据结构及数据库设计rAH红软基地
1)数据结构的设计rAH红软基地
2)数据库的设计rAH红软基地
(1)概念设计rAH红软基地
(2)逻辑设计rAH红软基地
(3)物理设计rAH红软基地
3. 网络系统设计rAH红软基地
总体设计基本任务(续)rAH红软基地
4. 软件总体设计文档rAH红软基地
总体设计说明书的主要内容如下:rAH红软基地
(1)引言:编写目的,背景,定义,参考资料。rAH红软基地
(2)总体设计:需求规定,运行环境,基本设计概念和处理流程,结构。rAH红软基地
(3)接口设计:用户接口,外部接口,内部接口。rAH红软基地
(4)运行设计:运行模块组合,运行控制,运行时间。rAH红软基地
(5)系统数据结构设计:逻辑结构设计,物理结构设计,数据结构与程序的关系。rAH红软基地
(6)系统出错处理设计:出错信息,补救措施,系统恢复设计。rAH红软基地
5.评审rAH红软基地
5.4 设计基本原理rAH红软基地
软件设计要回答下列问题:rAH红软基地
(1)使用什么样的准则才能把软件划分成为各个单独的构件?rAH红软基地
(2)怎样把功能或数据结构的细节从软件概念表达式中分离出来?rAH红软基地
(3)定义软件设计的技术质量有统一的准则吗? rAH红软基地
设计基本原理rAH红软基地
5.4.1  抽象rAH红软基地
5.4.2  细化rAH红软基地
5.4.3  模块化rAH红软基地
5.4.4  软件体系结构 rAH红软基地
软件总体设计的主要任务就是软件结构的设计。软件体系结构(software architecture)包含了计算机程序的两个重要特性:rAH红软基地
(1)过程构件(模块)的层次结构。rAH红软基地
(2)数据结构。rAH红软基地
软件的需求分析到设计的转换图rAH红软基地
不同结构的表示rAH红软基地
从下图可以看出,一个问题可以有多种可供选择的结构。选择某种结构又由软件设计方法来决定。 rAH红软基地
5.4.5  程序结构rAH红软基地
程序结构(program structure)给出了程序构件(模块)的组织(通常叫分层),这种组织包含了控制的层次。 rAH红软基地
程序结构可以用许多不同的符号来表示。rAH红软基地
1 树形结构图。 rAH红软基地
2 Warnier-Orr图rAH红软基地
3 Jackson图 rAH红软基地
5.4.6  数据结构rAH红软基地
数据结构(data structure)定义是一种数据各元素之间逻辑关系的表达式。rAH红软基地
一个数据结构的组织和复杂性只受设计者创造性的限制。但是典型的数据结构可以组成更复杂的结构造块。 rAH红软基地
数据结构可以给出不同层次的抽象。 rAH红软基地
5.4.7  软件过程rAH红软基地
软件过程rAH红软基地
5.5 体系结构设计rAH红软基地
软件体系结构设计(architectural design)的主要目标是设计一个模块化的程序结构。体系结构设计融合了程序结构和数据结构,接口定义能使数据流经程序。要给出各个模块之间的控制关系。 rAH红软基地
5.5.1 软件结构图 rAH红软基地
软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。rAH红软基地
软件结构往往用树状或网状结构的图形来表示。软件工程中,一般采用结构图(Structure Chart)简称SC)的工具来表示软件结构。rAH红软基地
结构图的主要内容rAH红软基地
(1)模块rAH红软基地
(2)模块的控制关系rAH红软基地
(3)模块间的信息传递rAH红软基地
(4)两个附加符号:表示模块有选择调用或循环调用rAH红软基地
(5)结构图的形态特征rAH红软基地
包括 ①深度 ②宽度 ③扇出 ④扇入rAH红软基地
画结构图应注意的事项 rAH红软基地
①同一名字的模块在结构图中仅出现一次。rAH红软基地
②调用关系只能从上到下。rAH红软基地
③不严格表示模块的调用次序,习惯上从左到右。有时为了减少连线的交叉,适当地调整同一层模块左右位置,以保持结构图的清晰性。rAH红软基地
5.5.2扇出和扇入与深度和宽度rAH红软基地
深度表示控制的层数,宽度表示同一层上控制的最大模块数目。rAH红软基地
扇出是被某一模块直接控制的模块数目的度量,扇入则是对某一给定模块被多少个模块直接控制的度量。rAH红软基地
一个系统的大小和系统的复杂程度在一定程度上可以用深度和宽度表示。 rAH红软基地
高层模块应有较高的扇出,低层模块特别是底层模块应有较高的扇入。rAH红软基地
扇出和扇入与深度和宽度rAH红软基地
扇出实际上是对问题解的分解。分解过程中需要考虑的问题就是,前面是否已经有一个模块与当前所需要的模块功能相同或相似。若完全相同,则可以共享;若功能类似,则应区分哪些部分相同,这样可以把相同的部分分离出来成为单独的模块,如图5-14至5—16。rAH红软基地
扇出和扇入与深度和宽度rAH红软基地
扇出和扇入与深度和宽度rAH红软基地
高层模块应有较高的扇出,低层模块特别是底层模块应有较高的扇入。 rAH红软基地
扇入越大,表示该模块被更多的上级模块共享。多个扇入入口相同,这就避免了程序的重复,因此希望扇入高一点。rAH红软基地
但过多又可能是把许多不相关的功能硬凑在一起,形成通用模块。这样的模块必然是低聚合的。rAH红软基地
5.5.3模块的藕合rAH红软基地
藕合(Coupling)表示软件结构内不同模块彼此之间相互依赖(连接)的紧密程度,是衡量软件模块结构质量好坏的度量,是对模块独立性的直接衡量指标。 rAH红软基地
软件设计应追求尽可能松散藕合,避免强藕合rAH红软基地
藕合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。  rAH红软基地
藕合分类 rAH红软基地
数据藕合rAH红软基地
控制藕合rAH红软基地
共用藕合rAH红软基地
内容藕合。rAH红软基地
数据藕合rAH红软基地
如果两个模块之间只是通过参数交换信息,而且所交换的信息仅仅是数据。被调用模块的输入和输出都只是简单的数据。那么这种藕合称为数据藕合。rAH红软基地
数据藕合是最低程度的藕合。rAH红软基地
控制藕合 rAH红软基地
如果两个模块之间所交换的信息包含控制信息,那么这种藕合称为控制藕合。例如,图5--18中模块A的内部处理逻辑判断是决定执行C还是执行D,这要取决于模块B传来的信息“标志”status。控制藕合是中等程度的藕合。rAH红软基地
公用藕合 rAH红软基地
当两个或多个模块通过一个公共区相互作用时,它们之间的藕合称为共用藕合。这类公共区可以是全程数据区、共享通信区、内存公共覆盖区、任何介质上的文件、物理设备等。例如图5--19中就存在共用藕合 rAH红软基地
内容藕合 rAH红软基地
内容藕合是最高程度藕合,是应该避免的。内容藕合是指一个模块与另一个模块的内容直接发生联系。例如,一个模块直接转移到另一个模块内部,一个模块使用另一个模块内部的数据等都会产生内容藕合。 rAH红软基地
使用藕合的设计原则rAH红软基地
尽量使用数据藕合rAH红软基地
少用控制藕合rAH红软基地
限制共用藕合rAH红软基地
完全不用内容藕合。rAH红软基地
5.5.4模块的内聚rAH红软基地
内聚(Cohesion)表示一个模块内部各个元素彼此结合的紧密程度,是衡量一个模块内部组成部分间整体统一性的度量,它是信息隐蔽概念的自然扩展。理想的模块只做一件事情。rAH红软基地
根据模块内部构成情况,模块的内聚可以划分成高、中、低三大类内聚。 rAH红软基地
常见的内聚可分成:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚七类。它们内聚程度依此从高到低,一般认为功能内聚和顺序内聚是高内聚,通信内聚、过程内聚是中内聚,时间内聚、逻辑内聚和偶然内聚是低内聚。rAH红软基地
功能内聚 rAH红软基地
如果一个模块内所有处理元素完成一个,且仅完成一个功能,则称为功能内聚(Functional Cohesion)。rAH红软基地
功能内聚是最高的内聚。rAH红软基地
在软件结构中,并不是每个模块都能归结为完成一个功能而设计成一个功能内聚模块。rAH红软基地
顺序内聚rAH红软基地
如果一个模块内处理元素和同一个功能密切相关,而且这些处理元素必须顺序执行,则称为顺序内聚(Sequential Cohesion)。rAH红软基地
通常一个处理元素的输出是另一个处理元素的输入。rAH红软基地
通信内聚 rAH红软基地
如果一个模块中所有处理元素都使用同一个输入数据和(或)产生同一个输出数据,称为通信内聚(Communicational Cohesion)。 rAH红软基地
过程内聚 rAH红软基地
如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为过程内聚(Procedural Cohesion)。过程内聚模块的各组成功能由控制流联结在一起,实际上是若干个处理功能的公共过程单元。rAH红软基地
过程内聚与顺序内聚的区别主要在于:顺序内聚中是数据流从一个处理元流到另一个处理元,而过程内聚中是控制流从一个动作流向另一个动作。rAH红软基地
时间内聚 rAH红软基地
如果一个模块包含的任务必须在同一段时间内执行称为时间内聚(Temporal Cohesion),也称瞬时内聚。例如,模块完成各种初始化工作,处理故障模块等。下图关闭文件、报警、保留现场等任务都必须无中断地同时处理。rAH红软基地
逻辑内聚 rAH红软基地
如果一个模块完成的任务在逻辑上属于相同或相似的一类(例如,一个模块产生各种类型的全部输出),称为逻辑内聚(Logical Cohesion)。rAH红软基地
对逻辑内聚模块的调用,常常需要有一个功能开关,由上层调用模块向它发出一个控制信号,在多个关连性功能中选择执行某一个功能。rAH红软基地
这种内聚较差,增加了模块之间的联系,不易修改。 rAH红软基地
偶然内聚rAH红软基地
如果一个模块由完成若干毫无关系(或关系不大)的功能的处理元素偶然组合在一起的,就叫偶然内聚(Coincidental Cohesion)。偶然内聚是最差的一种内聚。rAH红软基地
常犯这种错误的一种情况是:有时在写完程序后,发现一组语句在多处出现,于是为了节省空间而将这些语句作为一个模块设计,这就出现了藕合内聚。rAH红软基地
5.5.5 模块设计一般准则rAH红软基地
改进软件结构提高模块独立性rAH红软基地
模块规模要适中rAH红软基地
深度、宽度、扇入和扇出应适当rAH红软基地
降低接口复杂性rAH红软基地
设计单入口单出口的模块rAH红软基地
5.5.6模块的作用域与控制域rAH红软基地
模块的控制域是该模块本身以及所有直接或间接从属于它的模块的集合。rAH红软基地
模块的作用域是该模块内一个判断影响的模块的集合。rAH红软基地
控制域也成为控制范围,作用域也称为作用范围或影响范围。rAH红软基地
控制域是从结构方面考虑的,作用域则是从功能方面考虑的。rAH红软基地
模块设计中模块控制域与作用域考虑方面 rAH红软基地
作用域应在控制域之内。rAH红软基地
判断点位置要适中,尽量使其影响到的模块成为其直接下属模块。rAH红软基地
作用域不在控制域范围之内的改进方法 rAH红软基地
将包含判断的模块状合并到它的调用模块状之中,使判断处于足够高的位置。rAH红软基地
将受判断影响的模块下移到控制域之内。rAH红软基地
把判断上移到足够高的位置。rAH红软基地
5.6  结构化设计rAH红软基地
结构化设计是以结构化分析产生的数据流图为基础,将数据流图按一定的步骤映射成软件结构。L.Constantine和E.Yourdon等人提出结构图是进行软件设计的有力工具。rAH红软基地
在需求分析阶段,信息六是考虑的关键问题。我们用数据流图来描述信息在系统中的流动情况。通常所说的结构化方法也就是基于数据流的设计方法。rAH红软基地
5.6.1  数据流的类型 rAH红软基地
变换型数据流图rAH红软基地
事务型数据流图 rAH红软基地
1.变换型数据流图 rAH红软基地
2.事务型的数据流图rAH红软基地
5.6.2  过程步骤rAH红软基地
(1)精华数据流图 rAH红软基地
(2)确定数据流图类型rAH红软基地
(3)找出变换中心rAH红软基地
(4)第一层分解rAH红软基地
(5)第二层分解rAH红软基地
(6)根据优化准则对软件结构求精rAH红软基地
(7)描述模块功能、接口及全局数据结构rAH红软基地
(8)复查,如果有错,转(2)修改完善,否则进入详细设计rAH红软基地
5.6.3  变换分析设计 rAH红软基地
1.确定数据流图中的变换中心、逻辑输入和逻辑输出rAH红软基地
2.设计软件结构的顶层和第一层——变换结构rAH红软基地
3.设计中、下层模块rAH红软基地
4.设计的优化rAH红软基地
5.6.4  事务分析设计 rAH红软基地
1)确定数据流图中的事务中心和加工路径rAH红软基地
2)设计软件结构的顶层和第一层——事务结构,事务型软件结构应包括接收分支和发送分支两个部分。rAH红软基地
(1)接收分支:负责接收数据rAH红软基地
(2)发送分支:通常包含一个调度模块,它控制管理所有的下层的事务处理模块。rAH红软基地
3)事务结构中、下层模块的设计、优化等工作同变换结构。rAH红软基地
5.6.5  混合流设计 rAH红软基地
混合数据流图的映射步骤rAH红软基地
(1)确定数据流图整体上的类型rAH红软基地
(2)标出局部的数据流图范围,确定其类型rAH红软基地
(3)按整体和局部的数据流图特征,设计出软件结构rAH红软基地
分层数据流图的映射方法rAH红软基地
(1)主图是变换型,子图是事务型rAH红软基地
(2)主图是事务型,子图是变换型rAH红软基地
5.6.6  结构化设计方法应用示例rAH红软基地
销售管理系统的数据流图转换为软件结构图。分析该系统的0层图,它有4个主要功能,即订货处理、进货处理、缺货处理和销售统计。其中,订货处理包括订单处理和供货处理两部分。这4个处理可平行工作,因此从整体上分析可按事务型数据流图来设计,根据功能键来选择4个处理中的一个。 rAH红软基地
5.6.7  设计的后的处理rAH红软基地
(1)为每个模块提供一份接口说明rAH红软基地
(2)为每个模块写一份处理说明rAH红软基地
(3)给出设计约束或限制rAH红软基地
(4)数据结构说明rAH红软基地
(5)进行设计评审rAH红软基地
(6)设计优化rAH红软基地
5.7  IDEF0图设计方法 rAH红软基地
在系统总体设计时,一般按照IDEF0图的分解层次,逐层将其转换成软件结构图。对于某一层的IDEF0图按以下方法转换:rAH红软基地
(1)找出该层IDEF0图的父图,搞清父、子图之间的输入/输出、控制关系rAH红软基地
(2)以父图的活动为上层模块,子图中的活动为下层模块,画出系统的单层结构图rAH红软基地
(3)根据IDEF0图各个活动的输入/输出数据、控制信息及数据库的结构、数据项定义等,确定模块的接口rAH红软基地
(4)混合所有层次的结构图,得到系统初始的软件结构图rAH红软基地
(5)根据软件结构的优化准则进行精化rAH红软基地
5.8 软件结构优化rAH红软基地
5.8.1  软件结构设计优化准则rAH红软基地
模块独立性准则rAH红软基地
控制与作用范围之间的准则rAH红软基地
结构特征准则rAH红软基地
模块的接口准则rAH红软基地
5.8.2  软件结构的HIPO图实例rAH红软基地
5.9 小结rAH红软基地
软件设计的重要性rAH红软基地
设计过程 rAH红软基地
软件总体设计 rAH红软基地
设计基本原理 rAH红软基地
体系结构设计 rAH红软基地
结构化设计 rAH红软基地
IDEF0图设计方法 rAH红软基地
软件结构优化rAH红软基地
练习题rAH红软基地
1.结构化设计方法的基本思想是什么?它怎样与结构化分析衔接?rAH红软基地
2.简述软件总体设计阶段的基本任务。rAH红软基地
3.举例说明各种类型的模块耦合。rAH红软基地
4.说明:模块,模块化,模块化设计的概念。rAH红软基地
5.什么是模块的独立性?设计中为什么模块要独立?对于独立性怎样度量?rAH红软基地
练习题rAH红软基地
6.试论“一个模块,一个功能”的优点。rAH红软基地
7.简述变换流的设计步骤。rAH红软基地
8.简述事务流的设计步骤。rAH红软基地
9.将第四章练习题10所得的数据流图设计成相应的软件结构图。rAH红软基地
10.试论软件设计与软件质量的关系。rAH红软基地
谢谢rAH红软基地

展开

同类推荐

热门PPT

相关PPT