基于任务驱动模式的软件工程与UML建模技术项目四软件设计课件.ppt
《基于任务驱动模式的软件工程与UML建模技术项目四软件设计课件.ppt》由会员分享,可在线阅读,更多相关《基于任务驱动模式的软件工程与UML建模技术项目四软件设计课件.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目四 软件设计 项目四 软件设计 任务一任务一 总体设计总体设计 任务二任务二 详细设计详细设计 任务三任务三 编写文档编写文档 项目四 软件设计 任务一任务一 总总 体体 设设 计计总体设计又称为概要设计或初步设计,基本目的就是回答“系统应该如何实现”这个问题。这个阶段有两个任务:第一,划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,即具体内容将在以后仔细设计;第二,设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。项目四 软件设计 总体设计过程总地来说有以下三个步骤:第一,分析员根据数据流图寻找实现目标
2、系统的各种不同的方案。第二,分析员从供选择的方案中选取若干个合理的方案,并为每个合理的方案准备系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,制定实现这个方案的进度计划。第三,分析员综合分析上述合理方案,从中选出一个最佳方案向用户推荐。如果用户接受了推荐的方案,分析员应进一步为这个最佳方案设计软件结构。项目四 软件设计 操作一操作一 总体设计概述总体设计概述总体设计也称概要设计,其基本目标是能够针对软件需求分析中提出的一系列软件问题,概要地回答问题如何解决。例如,软件系统将采用什么样的体系构架,需要创建哪些功能模块,模块之间的关系如何,数据结构如何,软件系统需要什么样的网络环境提供
3、支持,需要采用什么类型的后台数据库等。总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。项目四 软件设计 项目四 软件设计 对每个合理的方案,分析员都应该准备4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。3.推荐最佳方案推荐最佳方案分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。用户和有关技术专家应认真审查分析员所推荐的最佳系统,如果满足用户的需要,经使用部门审批之后,将进入下一阶段结构设计。项目四 软件设计 4.功能分解功能分解
4、为实现目标系统,必须设计出组成系统的所有功能,以及程序和文件(或数据库)结构。对程序结构的设计,通常分为两个阶段完成:首先进行结构设计,然后进行过程设计。结构设计确定程序由哪些模块组成,以及模块间的关系;过程设计确定每个模块的处理过程。结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。为确定软件结构,首先需要把复杂的功能进一步分解。分解的依据是分析数据流图中的每个处理,如果一个处理的功能过于复杂,则把它的功能适当地分解成一系列比较简单的功能。项目四 软件设计 5.设计软件结构设计软件结构软件结构是由模块组成的层次系统,可以用层次图或结构图来描绘。在设计过程中,把系统模块组织成良好的层
5、次系统,顶层模块调用它的下层模块,每个下层模块再调用更下层的模块,最下层的模块完成具体的功能。如果数据流图已经细化到适当的层次,即模块已分解到适当程序,则可以直接从数据流图映射出软件结构。6.设计数据库设计数据库分析员在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。在数据库课程中已详细讲述了设计数据库的方法。项目四 软件设计 项目四 软件设计(2)用户手册。根据总体设计阶段的结果,修改更正在需求分析阶段产生的初步的用户手册。(3)测试计划。包括测试策略、测试方案、预期的测试结果、测试进度计划等。(4)详细的实现计划。(5)数据库设计结果。9.审查和复审审查和复审分析员对总体设计的
6、结果进行严格的技术审查,在技术审查通过之后再由用户从管理角度进行复审。项目四 软件设计 操作二操作二 软件设计原理软件设计原理1.模块化模块化模块是数据说明、可执行语句等程序对象的集合,它是构成程序的基本构件。每个模块均有标识符标识,如过程、函数、子程序和宏等,都可作为模块。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把若干模块构成一个整体,以完成用户需求。模块化的目的是使一个复杂的大型软件简单化。如果一个大型软件仅由一个模块组成,它将很难理解,因此,经过细分(模块化)之后,软件将变得容易理解,这符合人类解决问题的一般规律。项目四 软件设计 项目四 软件设计 由上
7、面的不等式还能得出下述结论:当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本(工作量)确实减少了;但是,随着模块数目增加,设计模块间接口所需要的工作量也将增加。根据这两个因素,得出图4-1中的总成本曲线。每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小。虽然目前还不能精确地决定M的数值,但是在考虑模块化的时候总成本曲线确实是有用的指南。项目四 软件设计 项目四 软件设计 2.抽象抽象抽象就是抽出事物的本质特性而暂时不考虑它们的细节,即提取共性、忽略差异。软件工程过程的每一步都是对软件解法的抽象层次的一次精化。对于复杂系统,抽象也是自顶向下,逐渐细化的,即由高层到底层
8、,直至可直接实现。一般地,在可行性研究阶段,软件抽象为系统的一个完整部件;在需求分析期间,软件解法抽象为描述问题的数据流图、数据字典等;在总体设计阶段抽象为功能模块、软件结构等;在详细设计阶段抽象为算法流程、数据的物理结构等;在编码阶段抽象为程序代码。随着抽象的深入,抽象的程度也就随之减少了,最后,当源程序写出来以后,也就达到了抽象的最底层。项目四 软件设计 3.逐步求精逐步求精逐步求精是解决复杂问题时采用的基本方法,也是软件工程技术(如规格说明技术、设计和实现技术)的基础。逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略。按照这种设计策略,程序的体系结构是通过逐步精化处
9、理过程的层次而设计出来的。通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。项目四 软件设计 项目四 软件设计 以模块中的错误为例,假如模块内部信息是隐蔽的,则模块中存在的这个错误将比较难于扩散到其他模块。否则,系统可能因为一个小错误的扩散,而使整个系统崩溃。实际上,信息隐蔽还使软件错误定位更加方便。由于软件出错位置容易发现,因此,整个软件纠错工作的效率、质量都会随之提高。5.模块独立模块独立模块独立性是指每个模块只完成系统要求的独立子功能,并与其他模块的联系最少且接口简单。模块独立是模块化、抽象、信息隐藏和局部化概念的直接结果。模块独立性之所以重要,主要原因
10、有:第一,有效模块化(即具有独立的模块)的软件比较容易开发出来;第二,独立的模块比较容易测试和维护。项目四 软件设计 模块的独立程度可用两个定性标准度量:耦合和内聚。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点,以及通过接口的数据。模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。模块的耦合有几种类型,按耦合程度由低至高排列分别为:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合和内容耦合。项目四
11、 软件设计(1)无直接耦合:指两模块之间没有直接关系。(2)数据耦合:指两模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。(3)标记耦合:指两模块之间传递的是数据结构。如高级语言中的数组名、记录名、文件名等即为标记,传递的是这个数据结构的地址。(4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志)。(5)公共耦合:指通过一个公共数据环境相互作用的模块间的耦合。公共数据环境可以是全程变量或数据结构,共享通信区、内存、文件、物理设备等。项目四 软件设计 如果只有两个模块有公共环境,那么这种耦合有两种可能:一个模块往公共环境送数据,另一个模块从公共环境取数据
12、,是数据耦合的一种形式,是比较松散的耦合。两个模块都既往公共环境送数据,又从公共环境取数据。这种耦合比较紧密,介于数据和控制耦合之间。(6)内容耦合:是最高程度的耦合,当一个模块直接使用另一个模块的内部数据,或通过非正常的入口而转入另一模块内部,或两模块间有一部分程序代码重叠(仅在汇编语言中)时,就是内容耦合。项目四 软件设计 为了降低模块间的耦合度,可采取的措施如下:(1)在耦合方式上降低模块间接口的复杂性,包括接口方式、接口信息的结构和数据。(2)在传递信息类型上尽量使用数据耦合,避免控制耦合,限制公共环境耦合,不使用内容耦合。内聚指模块功能强度的度量,即一个模块内部各个元素彼此结合的紧密
13、程序的度量。一个模块内各元素(语句之间、程序段之间)联系得越紧密,则它的内聚性就越高。内聚性按联系紧密程度由低至高排列有以下几种类型:偶然内聚、逻辑内聚、时间内聚、通信内聚、顺序内聚、功能内聚。项目四 软件设计 项目四 软件设计(5)顺序内聚:指一个模块中各处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。(6)功能内聚:指模块内所有元素共同完成一个功能,缺一不可,因此模块不可再分,如“打印日报表”。耦合和内聚是模块独立性的两个定性标准,在软件系统划分模块时,应尽量做到高内聚低耦合,提高模块的独立性,即尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦
14、合的范围,完全不用内容耦合。项目四 软件设计 6.启发规则启发规则启发规则是在开发软件过程中总结出来的原则,能帮助人们改进软件设计,提高软件质量。规则如下:(1)改进软件结构提高模块独立性。设计出软件初步结构后,通过模块分解和合并,力求降低耦合提高内聚,如多个模块公有的一个子功能可独立成一个模块。(2)模块规模应该适中。一个模块的规模不过大,最好能在一页纸内完成(60行语句左右)。(3)深度、宽度、扇出和扇入都应适当。深度:软件结构中控制的层次。宽度:软件结构中同一层上模块的最大数。项目四 软件设计 扇出:一个模块直接调用(控制)的模块数目。平均扇出数通常是34。扇入:一个模块直接被调用(控制
15、)的模块数目。扇入越大则共享该模块的上级模块数目越多,这是有好处的,但不能违背模块独立性原则。图4-2所示模块示意图中,其深度为5,宽度为7,扇出数最大为3,扇入数最大为3(如模块D扇入数为1)。项目四 软件设计 项目四 软件设计(4)模块的作用域应该在控制域之内。模块作用域和控制域示意图如图4-3所示。图4-3 模块作用域和控制域示意图项目四 软件设计 模块的控制域:是模块本身以及所有直接或间接从属于它的模块的集合。模块A的控制域是A、B、C、D、E、F的集合。模块的作用域:受该模块内一个判断影响的所有模块的集合。模块A内的判定就响模块G,则A的作用域是A、G、B、C、D、E、F集合。当模块
16、的作用域不是控制域的子集时,可修改软件结构使作用域是控制域的子集,方法是:把判定点往上移,如把判定从模块A移到模块M中。把在作用域内但不在控制域内的模块移到控制域内,如把模块G移到模块A的下面,成为其直接的下级模块。项目四 软件设计 项目四 软件设计 操作三操作三 总体设计图形工具总体设计图形工具1.层次图和层次图和HIPO图图层次图用来描绘软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系。图4-4是正文加工系统的层次图。注意:层次方框图表示组成数据结构的层次关系,与层次图不同。层次图适于在自顶向下设计软件的过程中使用。HIPO图是“层次图加输入/处理/输出图”。在H
17、图(层次图)里除了最顶层的方框之外,每个方框都加了编号,H图中的每个方框对应着一张IPO图(输入/处理/输出图),用以描绘这个方框代表的模块的处理过程所示。即形成了不同于层次图的HIPO图,如图4-5所示。项目四 软件设计 图4-4 正文加工系统层次结构图项目四 软件设计 图4-5 正文加工系统HIPO图项目四 软件设计 2.结构图结构图结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头(或直线)表示模块的调用关系。结构图中带注释的箭头表示模块调用过程中来回传递的信息。尾部空心圆表示传递的是数据,实心圆表示传递的是控制信息。图
18、4-6是产生最佳解系统的结构图。通常用层次图而非结构图作为描绘软件结构的文档。结构图作为文档并不很合适,因为图上包含的信息太多,反而降低了清晰程度。项目四 软件设计 图4-6 结构图的例子产生最佳解系统的一般结构项目四 软件设计 操作四操作四 结构化设计技术结构化设计技术在软件工程的需求分析阶段,通常用数据流图描绘信息在系统中加工和流动的情况。面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构,其目标是给出设计软件结构。通常所说的结构化设计方法(SD方法),也就是基于数据流的设计方法。1.基本概念基本概念结构化设计方法把信息流映射成软件结构,因此信息流的类型
19、决定了映射的方法。信息流有下述两种类型:1)变换流具有明显的输入、变换(或主加工)和输出界面的数据流称为变换流。如图4-7所示。项目四 软件设计 图4-7 变换流项目四 软件设计 2)事务流数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流称为事务流,如图4-8所示,它完成下述任务:(1)接收输入数据(输入数据又称为事务);(2)分析每个事务以确定它的类型;(3)根据事务类型选取一条活动通路。项目四 软件设计 图4-8 事务流项目四 软件设计 2设计过程设计过程图4-9说明了使用结构化方法逐步设计的过程。应该注意,任何设计过程都不是机械的、一成
20、不变的,设计需要判断力和创造精神。项目四 软件设计 图4-9 设计过程项目四 软件设计 3.变换分析设计步骤变换分析设计步骤第1步:复查基本系统模型。第2步:复查并精化数据流图。第3步:确定数据流图具有变换特性还是事务特性。第4步:确定输入流和输出流的边界,从而孤立出变换中心。第5步:完成“第一级分解”。第6步:完成“第二级分解”。第7步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。项目四 软件设计 4.事务分析设计步骤事务分析设计步骤事务分析设计的步骤和变换分析的设计步骤大部分相同或类似,主要差别在于数据流图到软件结构的映射方法不同。事务流映射成软件结构包括一个接收分支和一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 任务 驱动 模式 软件工程 UML 建模 技术 项目 软件设计 课件
限制150内