软件开发过程与质量保证4软件设计_001.ppt

上传人:b****2 文档编号:2155495 上传时间:2022-10-27 格式:PPT 页数:45 大小:3.61MB
下载 相关 举报
软件开发过程与质量保证4软件设计_001.ppt_第1页
第1页 / 共45页
软件开发过程与质量保证4软件设计_001.ppt_第2页
第2页 / 共45页
软件开发过程与质量保证4软件设计_001.ppt_第3页
第3页 / 共45页
软件开发过程与质量保证4软件设计_001.ppt_第4页
第4页 / 共45页
软件开发过程与质量保证4软件设计_001.ppt_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

软件开发过程与质量保证4软件设计_001.ppt

《软件开发过程与质量保证4软件设计_001.ppt》由会员分享,可在线阅读,更多相关《软件开发过程与质量保证4软件设计_001.ppt(45页珍藏版)》请在冰豆网上搜索。

软件开发过程与质量保证4软件设计_001.ppt

SoftwareEngineering软件开发过程与质量保证软件开发过程与质量保证第四章软件设计

(1)场景互动场景互动场景互动场景互动v已经对用户的需求进行了深入的理解和整理,下面已经对用户的需求进行了深入的理解和整理,下面为软件的最终实现,我们还需要做哪些工作?

为软件的最终实现,我们还需要做哪些工作?

数据存储方式是什么?

数据库?

还是文件?

如何表数据存储方式是什么?

数据库?

还是文件?

如何表示?

示?

如何解决软件的复杂度,确保可支持性(可理解、如何解决软件的复杂度,确保可支持性(可理解、可维护、可扩展),有效地组织开发?

可维护、可扩展),有效地组织开发?

如何实现用户的性能上的要求?

效率如何提高?

如如何实现用户的性能上的要求?

效率如何提高?

如何节省空间?

何节省空间?

与外界进行沟通的形式是什么?

与外界进行沟通的形式是什么?

一、软件设计概述一、软件设计概述v数据设计数据设计将分析时创建的数据模型变换成实现软件所需将分析时创建的数据模型变换成实现软件所需的数据结构。

在实体关系图中定义的数据对象的数据结构。

在实体关系图中定义的数据对象和关系以及数据字典中描述的详细数据内容提和关系以及数据字典中描述的详细数据内容提供了数据设计活动的基础。

供了数据设计活动的基础。

详细的数据结构设计将在过程设计中进行。

详细的数据结构设计将在过程设计中进行。

数据存储方式是什么?

数据库?

还是文件?

如何表示?

数据存储方式是什么?

数据库?

还是文件?

如何表示?

v体系结构设计体系结构设计是建立系统的体系结构框架、详细设计必须符合是建立系统的体系结构框架、详细设计必须符合的组建结构以及组件之间相互通信的规范。

的组建结构以及组件之间相互通信的规范。

体系结构设计的表示是从分析阶段的系统模型中体系结构设计的表示是从分析阶段的系统模型中导出。

导出。

如何解决软件的复杂度,确保可支持性(可理解、可如何解决软件的复杂度,确保可支持性(可理解、可维护、可扩展),有效地组织开发?

维护、可扩展),有效地组织开发?

v接口设计接口设计描述了软件内部、软件和需要协作的系统之间以及软描述了软件内部、软件和需要协作的系统之间以及软件和人之间如何进行交互。

件和人之间如何进行交互。

数据和数据流图提供了接口设计所需要的信息。

数据和数据流图提供了接口设计所需要的信息。

v构件级设计构件级设计也称为过程设计,将软件体系结构的结构性元素变换也称为过程设计,将软件体系结构的结构性元素变换成为对软件构件的过程性描述,也就是模块的数据结成为对软件构件的过程性描述,也就是模块的数据结构与算法的设计。

构与算法的设计。

如何实现用户的性能上的要求?

效率如何提高?

如何如何实现用户的性能上的要求?

效率如何提高?

如何节省空间?

节省空间?

与外界进行沟通的形式是什么?

与外界进行沟通的形式是什么?

v从技术角度来看的设计过程中包含的内容从技术角度来看的设计过程中包含的内容1.1.1.1.软件设计的过程软件设计的过程软件设计的过程软件设计的过程软件开发阶段的信息流软件开发阶段的信息流v从工程管理的角度来看的设计过程从工程管理的角度来看的设计过程最初只是描绘出软件的总的框架(概要设计),然最初只是描绘出软件的总的框架(概要设计),然后进一步细化,在此框架中填入细节,把它加工成后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示(详细在程序细节上非常接近于源程序的软件表示(详细设计)。

设计)。

概要设计概要设计将软件需求转化为数据结构和软件的体系结构。

将软件需求转化为数据结构和软件的体系结构。

详细设计详细设计确定软件各个组成部分内的算法以及各部分的内部确定软件各个组成部分内的算法以及各部分的内部数据组织数据组织选定某种过程的表达形式来描述各种算法。

选定某种过程的表达形式来描述各种算法。

v软件设计不同观察角度之间的关系软件设计不同观察角度之间的关系2.2.2.2.软件设计的目的软件设计的目的软件设计的目的软件设计的目的v设计是一个建模活动,它使用分析阶段得出的信息设计是一个建模活动,它使用分析阶段得出的信息(即需求模型)并把这些信息转换为叫做解决方案(即需求模型)并把这些信息转换为叫做解决方案的模型。

的模型。

3.3.3.3.软件设计的目标软件设计的目标软件设计的目标软件设计的目标v层次关系明晰层次关系明晰软件实体有明显的层次关系,利于软件元素软件实体有明显的层次关系,利于软件元素间控制间控制v软件实体模块化软件实体模块化软件实体应该是模块化的,模块具有独立功软件实体应该是模块化的,模块具有独立功能能v软件实体与环境的界面清晰软件实体与环境的界面清晰v设计规格说明清晰、简洁、完整、无二义性设计规格说明清晰、简洁、完整、无二义性v抽象抽象v逐步求精逐步求精v模块化模块化v信息隐藏信息隐藏v控制层次控制层次4.4.4.4.软件设计的概念软件设计的概念软件设计的概念软件设计的概念v抽象抽象“抽象抽象”的心理学观念使的心理学观念使人能够集中于某个一般性人能够集中于某个一般性级别上的问题,而不去考级别上的问题,而不去考虑无关的底层细节。

虑无关的底层细节。

这种解决问题的方式也应这种解决问题的方式也应用于软件领域。

软件过程用于软件领域。

软件过程中的每一个步骤都是软件中的每一个步骤都是软件解决方案抽象级别上的求解决方案抽象级别上的求精精。

3计算手续费v逐步求精逐步求精逐步求精是由逐步求精是由NiklausWirth最初提出的一种自顶最初提出的一种自顶向下设计策略,系统是通过过程细节的连续的精向下设计策略,系统是通过过程细节的连续的精化层次开发的,层次结构通过逐步地分解功能的化层次开发的,层次结构通过逐步地分解功能的宏观声明直至形成程序设计语言的语句而开发。

宏观声明直至形成程序设计语言的语句而开发。

逐步求精和抽象是互补的概念。

随着抽象层次的逐步求精和抽象是互补的概念。

随着抽象层次的降低,逐步求精越来越精化,并不断揭示底层的降低,逐步求精越来越精化,并不断揭示底层的一些细节。

一些细节。

v模块化模块化软件被划分成独立命名和可独立访问的被称作模块的构成成软件被划分成独立命名和可独立访问的被称作模块的构成成分,它们集合到一起满足问题的需求。

分,它们集合到一起满足问题的需求。

v模块划分的目的模块划分的目的进行功能分解,把复杂的大的功能划进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每分成简单的小的子功能,尽量降低每个模块的成本。

个模块的成本。

尽量使每个模块间的接口不能太多,尽量使每个模块间的接口不能太多,太多会使接口成本增加。

兼顾二者可太多会使接口成本增加。

兼顾二者可取得最佳的划分状态,确保软件总成取得最佳的划分状态,确保软件总成本最低。

本最低。

最小成本区最小成本区M2M1n1n2模块数模块数成本成本成本成本/模块模块接口成本接口成本软件总成本软件总成本模块化和软件成本之间的关系模块化和软件成本之间的关系模块化和软件成本之间的关系模块化和软件成本之间的关系v信息隐藏信息隐藏信息隐藏的原则提出信息隐藏的原则提出“特征在于每个模块都对其他特征在于每个模块都对其他模块隐藏的设计决策模块隐藏的设计决策”,也就是说模块应该设计成,也就是说模块应该设计成其中包含的信息(过程和数据)对不需要这些信息其中包含的信息(过程和数据)对不需要这些信息的其他模块式不可访问的。

的其他模块式不可访问的。

信息隐藏为后期的软件测试和维护提供了极大的方信息隐藏为后期的软件测试和维护提供了极大的方便。

一旦在进行测试时发现缺陷,那么对模块的变便。

一旦在进行测试时发现缺陷,那么对模块的变更不会影响或者至少很少影响其他模块,不会将影更不会影响或者至少很少影响其他模块,不会将影响扩大并传播。

响扩大并传播。

v控制层次控制层次也称为也称为“程序结构程序结构”,它代表了程序构件(模块),它代表了程序构件(模块)的组织并暗示控制的层次结构。

的组织并暗示控制的层次结构。

一般用四个特征来描述:

深度、宽度、扇入和扇出。

一般用四个特征来描述:

深度、宽度、扇入和扇出。

深度深度定义为控制层次的层数,或者说是控制级别的数量。

定义为控制层次的层数,或者说是控制级别的数量。

宽度宽度定义为控制层次的跨度。

定义为控制层次的跨度。

扇入扇入指明有多少个模块直接控制一个给定的模块。

指明有多少个模块直接控制一个给定的模块。

扇出扇出指明被一个模块直接控制的其他模块的数量。

指明被一个模块直接控制的其他模块的数量。

二、独立性原则二、独立性原则二、独立性原则二、独立性原则v含义含义模块独立性模块独立性,是指软件系统中每个模块只涉及软件要是指软件系统中每个模块只涉及软件要求的具体的子功能求的具体的子功能,而和软件系统中其它的模块的接而和软件系统中其它的模块的接口是简单的口是简单的v衡量独立性的标准衡量独立性的标准内聚内聚模块功能强度模块功能强度(一个模块内部各个元素彼此结合的紧一个模块内部各个元素彼此结合的紧密程度密程度)的度量。

的度量。

耦合耦合模块之间的互相连接的紧密程度的度量模块之间的互相连接的紧密程度的度量高内聚低耦合的模块具有较强的模块独立性。

高内聚低耦合的模块具有较强的模块独立性。

1.1.1.1.内聚内聚内聚内聚v偶然内聚偶然内聚设计者随意决定将无关系的几个功能组合在一个模设计者随意决定将无关系的几个功能组合在一个模块中,该模块的内聚程度就是偶然内聚。

块中,该模块的内聚程度就是偶然内聚。

v例子例子为了节省空间,将多个模块中重复出现的语句提取为了节省空间,将多个模块中重复出现的语句提取出来,组成一个新的模块出来,组成一个新的模块v缺点缺点这样的模块使产品的可维护性降低这样的模块使产品的可维护性降低这些模块是不可重用的这些模块是不可重用的v矫正办法矫正办法因为它执行多个操作,可将模块分成更小的模块,因为它执行多个操作,可将模块分成更小的模块,每个小模块执行一个操作。

每个小模块执行一个操作。

v逻辑内聚逻辑内聚把逻辑上相似的功能结合到一个模块中。

把逻辑上相似的功能结合到一个模块中。

放到一个模块中的原因是,使用统一动词但针对不同的对放到一个模块中的原因是,使用统一动词但针对不同的对象,有相同的代码段;起始于某多路开关,以后转向不同象,有相同的代码段;起始于某多路开关,以后转向不同的代码段,但各代码段间关系很少。

的代码段,但各代码段间关系很少。

缺点缺点增加了开关量;接口不易理增加了开关量;接口不易理解;效率低;完成多个操作解;效率低;完成多个操作的代码纠缠在一起,导致严的代码纠缠在一起,导致严重的维护问题。

重的维护问题。

v例子例子1调用模块调用模块new_operrationfunction_code=7;New_operation(function_code,dummy_1,dummy_2,dummy_3);/dummy_1、dummy_2和和dummy_3是伪变量,如是伪变量,如果果function_code等于等于7则不使用它们。

则不使用它们。

v例子例子2一个执行所有输入输出的对象一个执行所有输入输出的对象11、处理所有输入和输出的代码、处理所有输入和输出的代码22、只处理输入的代码、只处理输入的代码33、只处理输出的代码、只处理输出的代码44、处理磁盘和磁带的输入、处理磁盘和磁带的输入/输出的代码输出的代码55、处理磁盘输入输出的代码、处理磁盘输入输出的代码66、处理磁带输入输出的代码、处理磁带输入输出的代码77、处理磁盘输入的代码、处理磁盘输入的代码3737、处理键盘输入的代码、处理键盘输入的代码v时间内聚时间内聚在某一时间同时执行的任务放在同一模块中。

在某一时间同时执行的任务放在同一模块中。

v例如例如初始化模块,集中了初始化功能的模块。

初始化模块,集中了初始化功能的模块。

v过程内聚过程内聚如果一个模块执行一系列与产品要遵循的步骤顺序有关的操作,如果一个模块执行一系列与产品要遵循的步骤顺序有关的操作,则该模块具有过程行内聚则该模块具有过程行内聚这种情况往往发生在流程图中相邻的处理功能。

这种情况往往发生在流程图中相邻的处理功能。

例如:

从数据库读取零件编号并在维护文件中更新修复记

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1