软件开发过程与质量保证软件设计实用教案_第1页
软件开发过程与质量保证软件设计实用教案_第2页
软件开发过程与质量保证软件设计实用教案_第3页
软件开发过程与质量保证软件设计实用教案_第4页
软件开发过程与质量保证软件设计实用教案_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、场景(chng jng)互动 已经对用户的需求进行了深入的理解和整理,下面为软件的最终实现,我们还需要做哪些工作? 数据存储方式是什么?数据库?还是文件?如何表示? 如何解决软件的复杂度,确保可支持性(可理解、可维护、可扩展),有效地组织开发? 如何实现用户的性能上的要求?效率如何提高?如何节省空间? 与外界(wiji)进行沟通的形式是什么?第1页/共45页第一页,共45页。一、软件设计概述(i sh) 数据设计 将分析时创建的数据模型变换成实现软件所需的数据结构。在实体关系图中定义的数据对象和关系以及数据字典中描述的详细数据内容提供了数据设计活动(hu dng)的基础。 详细的数据结构设计将

2、在过程设计中进行。数据存储方式是什么?数据库?还是文件?如何数据存储方式是什么?数据库?还是文件?如何(rh)表示?表示?第2页/共45页第二页,共45页。 体系结构设计 是建立系统的体系结构框架(kun ji)、详细设计必须符合的组建结构以及组件之间相互通信的规范。 体系结构设计的表示是从分析阶段的系统模型中导出。如何解决软件的复杂度,确保可支持性(可理解、可维护如何解决软件的复杂度,确保可支持性(可理解、可维护(wih)、可扩展),有效地组织开发?、可扩展),有效地组织开发?第3页/共45页第三页,共45页。 接口设计 描述了软件内部、软件和需要协作的系统之间以及软件和人之间如何进行交互。

3、 数据和数据流图提供了接口设计所需要的信息。 构件级设计 也称为过程设计,将软件体系结构的结构性元素变换成为对软件构件的过程性描述,也就是模块(m kui)的数据结构与算法的设计。如何实现用户的性能如何实现用户的性能(xngnng)上的要求?效率如何提高?上的要求?效率如何提高?如何节省空间?如何节省空间?与外界进行沟通与外界进行沟通(gutng)的形式是什么?的形式是什么?第4页/共45页第四页,共45页。v从技术角度从技术角度(jiod)来看的设计过程中包含的内容来看的设计过程中包含的内容1. 软件设计的过程(guchng)软件开发阶段软件开发阶段(jidun)(jidun)的信息流的信息

4、流第5页/共45页第五页,共45页。 从工程管理的角度来看的设计过程 最初只是描绘出软件的总的框架(概要设计),然后(rnhu)进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示(详细设计)。 概要设计 将软件需求转化为数据结构和软件的体系结构。 详细设计 确定软件各个组成部分内的算法以及各部分的内部数据组织 选定某种过程的表达形式来描述各种算法。第6页/共45页第六页,共45页。 软件设计不同观察角度(jiod)之间的关系第7页/共45页第七页,共45页。2. 软件设计的目的(md) 设计是一个建模活动(hu dng),它使用分析阶段得出的信息(即需求模型)并把

5、这些信息转换为叫做解决方案的模型。第8页/共45页第八页,共45页。3. 软件设计的目标(mbio) 层次关系明晰 软件实体有明显的层次关系,利于软件元素(yun s)间控制 软件实体模块化 软件实体应该是模块化的,模块具有独立功能 软件实体与环境的界面清晰 设计规格说明清晰、简洁、完整、无二义性第9页/共45页第九页,共45页。 抽象 逐步求精 模块化 信息(xnx)隐藏 控制层次4. 软件设计的概念(ginin)第10页/共45页第十页,共45页。 抽象 “抽象”的心理学观念使人能够集中于某个一般性级别上的问题,而不去考虑无关(wgun)的底层细节。 这种解决问题的方式也应用于软件领域。软

6、件过程中的每一个步骤都是软件解决方案抽象级别上的求精 。3计算(j sun)手续费第11页/共45页第十一页,共45页。 逐步求精 逐步求精是由Niklaus Wirth最初提出的一种自顶向下设计策略,系统是通过过程细节的连续的精化层次开发的,层次结构通过逐步地分解功能的宏观声明直至形成程序设计语言的语句而开发。 逐步求精和抽象是互补的概念(ginin)。随着抽象层次的降低,逐步求精越来越精化,并不断揭示底层的一些细节。 第12页/共45页第十二页,共45页。 模块化 软件被划分成独立(dl)命名和可独立(dl)访问的被称作模块的构成成分,它们集合到一起满足问题的需求。v 模块划分的目的模块划

7、分的目的v 进行功能分解,把复杂的大的功能划分成进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低简单的小的子功能,尽量降低(jingd)每每个模块的成本。个模块的成本。v 尽量使每个模块间的接口不能太多,太多尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低。的划分状态,确保软件总成本最低。第13页/共45页第十三页,共45页。最小成本最小成本(chngbn)区区M2M1n1n2模块模块(m kui)数数成本成本(chngbn)成本成本/模块模块接口成本接口成本软件总成本软件总成本第14页/共

8、45页第十四页,共45页。 信息隐藏 信息隐藏的原则提出“特征在于每个模块都对其他模块隐藏的设计决策”,也就是说模块应该设计成其中包含的信息(过程和数据)对不需要这些信息的其他模块式不可访问的。 信息隐藏为后期(huq)的软件测试和维护提供了极大的方便。一旦在进行测试时发现缺陷,那么对模块的变更不会影响或者至少很少影响其他模块,不会将影响扩大并传播。 第15页/共45页第十五页,共45页。控制层次也称为“程序结构”,它代表了程序构件(模块)的组织并暗示控制的层次结构。一般(ybn)用四个特征来描述:深度、宽度、扇入和扇出。第16页/共45页第十六页,共45页。第17页/共45页第十七页,共45

9、页。 深度 定义(dngy)为控制层次的层数,或者说是控制级别的数量。 宽度 定义(dngy)为控制层次的跨度。 扇入 指明有多少个模块直接控制一个给定的模块。 扇出 指明被一个模块直接控制的其他模块的数量。第18页/共45页第十八页,共45页。二、独立性原则(yunz) 含义 模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的 衡量独立性的标准 内聚 模块功能强度(一个模块内部各个元素彼此结合( jih)的紧密程度)的度量。 耦合 模块之间的互相连接的紧密程度的度量高内聚低耦合的模块高内聚低耦合的模块(m kui)具有较强的模块具有较强

10、的模块(m kui)独立性。独立性。第19页/共45页第十九页,共45页。1.内聚 偶然内聚 设计者随意决定将无关系的几个功能组合在一个模块中,该模块的内聚程度就是偶然内聚。 例子 为了节省空间,将多个模块中重复出现(chxin)的语句提取出来,组成一个新的模块第20页/共45页第二十页,共45页。 缺点 这样的模块使产品的可维护性降低 这些(zhxi)模块是不可重用的 矫正办法 因为它执行多个操作,可将模块分成更小的模块,每个小模块执行一个操作。第21页/共45页第二十一页,共45页。 逻辑内聚 把逻辑上相似的功能结合(jih)到一个模块中。 放到一个模块中的原因是,使用统一动词但针对不同的

11、对象,有相同的代码段;起始于某多路开关,以后转向不同的代码段,但各代码段间关系很少。 缺点缺点(qudin) 增加了开关量;接口不易理增加了开关量;接口不易理解;效率低;完成多个操作解;效率低;完成多个操作的代码纠缠在一起,导致严的代码纠缠在一起,导致严重的维护问题。重的维护问题。第22页/共45页第二十二页,共45页。 例子1 调用(dioyng)模块new_operration function_code=7; New_operation(function_code,dummy_1,dummy_2,dummy_3); /dummy_1、dummy_2和dummy_3是伪变量,如果funct

12、ion_code等于7则不使用它们。第23页/共45页第二十三页,共45页。 例子2 一个(y )执行所有输入输出的对象1 1、处理所有输入和输出的代码、处理所有输入和输出的代码2 2、只处理输入的代码、只处理输入的代码3 3、只处理输出的代码、只处理输出的代码4 4、处理磁盘和磁带的输入、处理磁盘和磁带的输入/ /输出的代码输出的代码5 5、处理磁盘输入输出的代码、处理磁盘输入输出的代码6 6、处理磁带输入输出的代码、处理磁带输入输出的代码7 7、处理磁盘输入的代码、处理磁盘输入的代码3737、处理键盘输入的代码、处理键盘输入的代码第24页/共45页第二十四页,共45页。 时间(shjin)

13、内聚 在某一时间(shjin)同时执行的任务放在同一模块中。 例如 初始化模块,集中了初始化功能的模块。第25页/共45页第二十五页,共45页。 过程内聚 如果一个模块执行一系列与产品要遵循的步骤顺序有关的操作,则该模块具有过程行内聚 这种情况往往发生在流程图中相邻的处理(chl)功能。 例如:从数据库读取零件编号并在维护文件中更新修复记录第26页/共45页第二十六页,共45页。 通信内聚 如果一个模块执行一系列与产品要遵循的步骤顺序有关的操作,并且如果所有操作都在相同的数据上进行,则该模块具有通信性内聚 例如,更新数据库中的记录(jl),并将该记录(jl)写入审计追踪中第27页/共45页第二

14、十七页,共45页。 信息内聚 一个模块中执行一系列动作,每个动作都有自己的入口点和处理代码(di m),所有的动作都作用在相同的数据结构上,这样的模块具有信息内聚。 对象是一个具有信息内聚的模块第28页/共45页第二十八页,共45页。 功能内聚 模块中的各部分是为了完成一个确定的功能存在于一个模块中的。 只执行一个操作或只达到(d do)一个单一目的的模块 例如,获取室外的温度、计算销售佣金、写入磁盘 第29页/共45页第二十九页,共45页。巧合(qioh)内聚逻辑(lu j)内聚时间(shjin)内聚过程内聚通信内聚信息内聚功能内聚低高弱强模块内聚性模块独立性第30页/共45页第三十页,共4

15、5页。 内容(nirng)耦合 一个模块访问另一个模块边界中的数据或控制,这种耦合是内容(nirng)耦合也是最强的耦合。 如果发生下列情形,两个模块之间就发生了内容(nirng)耦合 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中);2.耦合第31页/共45页第三十一页,共45页。 公共耦合 多个模块都访问一块全局数据区中的数据项(一个磁盘文件、一个全局可访问的内存区),这种耦合程度就是公共耦合。 公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公

16、共耦合有两种情况。松散(sngsn)公共耦合和紧密公共耦合。第32页/共45页第三十二页,共45页。 外部(wib)耦合 当模块连接到软件外部(wib)环境上时会发生的偶合关系,具有相对较高的偶合度。第33页/共45页第三十三页,共45页。 控制耦合 模块与模块之间传递的参数(cnsh)是控制决策作用的。 中级别的耦合度。第34页/共45页第三十四页,共45页。 标记(bioj)耦合 当模块与模块之间传递的参数是数据结构的一部分时,这种耦合是标记(bioj)耦合。是数据耦合的变体。 数据耦合 模块与模块之间需要通过常规的参数表访问,数据通过该列表传递,传递的数据是简单类型的,这种耦合称为数据耦

17、合。第35页/共45页第三十五页,共45页。 非直接耦合 两个模块式不同模块的从属模块,相互之间无关(wgun)因而没有直接耦合发生,称为非直接耦合。第36页/共45页第三十六页,共45页。第37页/共45页第三十七页,共45页。内容(nirng)耦合公共(gnggng)耦合外部(wib)耦合控制耦合数据结构耦合数据耦合非直接耦合高低弱强模块耦合性模块独立性第38页/共45页第三十八页,共45页。 如何降低模块间耦合度? 如模块必须存在耦合,选择适当的耦合类型 原则: 尽量使用数据耦合 少用控制耦合 限制(xinzh)公共耦合的范围 坚决避免使用内容耦合 降低模块间接口的复杂性第39页/共45

18、页第三十九页,共45页。3.内聚与耦合的关系(gun x) 内聚与耦合密切相关,同其它模块强耦合的模块意味着弱内聚,强内聚模块意味着与其它模块间松散耦合。 设计总原则(yunz): 使每个模块执行一个功能 模块间传递数据型参数 模块间共用信息尽量少设计目标设计目标(mbio):力争高内聚、低耦合。:力争高内聚、低耦合。第40页/共45页第四十页,共45页。 练习(linx)1 软件设计中划分程序模块通常遵循的原则是要使各模块间的耦合性尽可能 A 。三种可能的模块耦合是 B 。例如,一个模块直接引用另一模块中的数据。 C 。例如,一个模块把开关量作为参数传递给另一模块。 D 。例如,一个模块把一个数值量作为参数传递给另一模块。其中 E 的耦合性最强。 A: 强 适中 弱 BE:公共耦合 数据耦合 逻辑耦合 外部耦合 内容耦合 控制耦合 第41页/共45页第四十一页,共45页。 练习2 模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度 1、一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是 A 的。 2、将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是 B 的

温馨提示

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

评论

0/150

提交评论