软件工程总体设计方案.pptx

上传人:uij****hh 文档编号:94204863 上传时间:2023-07-25 格式:PPTX 页数:111 大小:2.62MB
返回 下载 相关 举报
软件工程总体设计方案.pptx_第1页
第1页 / 共111页
软件工程总体设计方案.pptx_第2页
第2页 / 共111页
点击查看更多>>
资源描述

《软件工程总体设计方案.pptx》由会员分享,可在线阅读,更多相关《软件工程总体设计方案.pptx(111页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、信息科学与技术学院 闵笛软件工程软件工程第五章总体设计第五章总体设计v5.1 设计过程设计过程 v5.2 设计原理设计原理 v5.3 启发规则启发规则 v5.4 描绘软件结构的图形工具描绘软件结构的图形工具v5.5 面向数据流的设计方法面向数据流的设计方法 v5.6 小结小结v习题习题信息科学与技术学院 闵笛软件工程软件工程学习要求学习要求v掌握:掌握:v1、软件设计过程中应遵循的基本原理和相、软件设计过程中应遵循的基本原理和相关概念;关概念;v2、描绘软件结构的图形工具的运用;、描绘软件结构的图形工具的运用;v3、面向数据流设计方法概念;变换分析、面向数据流设计方法概念;变换分析、事务分析法

2、过程和应用。事务分析法过程和应用。v理解:理解:v1、典型的总体设计过程包括的步骤;、典型的总体设计过程包括的步骤;v2、设计中的启发式规则、设计中的启发式规则;信息科学与技术学院 闵笛软件工程软件工程重点和难点重点和难点v重点重点:v软件设计过程中应遵循的基本原理;软件设计过程中应遵循的基本原理;v面向数据流的设计方法面向数据流的设计方法v难点难点:v变换分析、事务分析法的过程和应用变换分析、事务分析法的过程和应用信息科学与技术学院 闵笛软件工程软件工程软件设计的目标和任务软件设计的目标和任务v软件需求:解决软件需求:解决“做什么做什么”v软件设计:解决软件设计:解决“怎么做怎么做”v软件设

3、计的任务:软件设计的任务:以软件需求规格说明书为以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结依据,着手实现软件的需求,并将设计的结果反映在果反映在“设计规格说明书设计规格说明书”文档中。文档中。v软件设计的重要性:软件设计的重要性:是软件开发阶段的第一是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的步,最终影响软件实现的成败和软件维护的难易程度。难易程度。信息科学与技术学院 闵笛软件工程软件工程软件设计的两个阶段软件设计的两个阶段v第一阶段:概要设计(总体设计)第一阶段:概要设计(总体设计)v根据软件需求,设计软件系统结构和数据结根据软件需求,设计软件系统结构和数据结

4、构,确定程序的组成模块及模块之间的相互构,确定程序的组成模块及模块之间的相互关系。关系。v回答回答“概括地说,系统应该如何实现?概括地说,系统应该如何实现?”。v其重要性是:站在全局高度,从较抽象的层其重要性是:站在全局高度,从较抽象的层次上分析对比多种可能的系统实现方案和软次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软结构,从而用较低成本开发出较高质量的软件系统。件系统。信息科学与技术学院 闵笛软件工程软件工程软件设计的两个阶段软件设计的两个阶段v第二阶段:详细设计(过程设计)第二阶段:

5、详细设计(过程设计)v确定模块内部的算法和数据结构;选定某种确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评描述各模块程序过程的详细文档,并进行评审。审。信息科学与技术学院 闵笛软件工程软件工程将需求分析模型转换为软件设计将需求分析模型转换为软件设计v软件结构设计以需求分析中得到的数据流图软件结构设计以需求分析中得到的数据流图为基础而进行。为基础而进行。信息科学与技术学院 闵笛软件工程软件工程第一个阶段总体设计的任务第一个阶段总体设计的任务v 制定规范制定规范 v 设计软件系统结构(简称软件

6、结构)设计软件系统结构(简称软件结构)v 处理方式设计处理方式设计v数据结构及数据库设计数据结构及数据库设计 v 可靠性设计可靠性设计 v 编写概要设计文档编写概要设计文档v 概要设计评审概要设计评审信息科学与技术学院 闵笛软件工程软件工程 制定规范制定规范v为软件开发小组制定在进行软件设计时,应为软件开发小组制定在进行软件设计时,应该共同遵守的标准,以便协调组内各成员的该共同遵守的标准,以便协调组内各成员的工作。工作。信息科学与技术学院 闵笛软件工程软件工程 软件结构设计软件结构设计v包括:包括:v将系统按功能划分成模块将系统按功能划分成模块v确定每个模块的功能确定每个模块的功能v确定模块之

7、间的调用关系确定模块之间的调用关系v确定模块之间的接口,即模块之间传递的信息确定模块之间的接口,即模块之间传递的信息v评价模块结构的质量评价模块结构的质量信息科学与技术学院 闵笛软件工程软件工程 处理方式设计处理方式设计v包括:包括:v功能设计:功能设计:确定实现功能算法,评估算法的确定实现功能算法,评估算法的性能性能v性能设计:性能设计:确定实现性能需求必须的算法和确定实现性能需求必须的算法和模块间的控制方式模块间的控制方式信息科学与技术学院 闵笛软件工程软件工程5.1 设计的过程设计的过程信息科学与技术学院 闵笛软件工程软件工程5.2 设计原理设计原理v5.2.1模块化模块化v5.2.2抽

8、象抽象v5.2.3逐步求精逐步求精v5.2.4信息隐蔽和局部化信息隐蔽和局部化v5.2.5模块独立模块独立信息科学与技术学院 闵笛软件工程软件工程5.2.1 模块化模块化(Modularity)v 什么是模块和模块化思想?什么是模块和模块化思想?v采取自顶向下的方式,逐层把软件系统划分采取自顶向下的方式,逐层把软件系统划分成若干可单独命名和可编址的部分成若干可单独命名和可编址的部分“模块模块”,每个模块完成一个特定的子功能每个模块完成一个特定的子功能;所有;所有模块按某种方法组成一个整体,完成整个系模块按某种方法组成一个整体,完成整个系统所要求的功能。统所要求的功能。v软件系统就是通过这些模块

9、的组合来实现软件系统就是通过这些模块的组合来实现。信息科学与技术学院 闵笛软件工程软件工程 模块化的优点模块化的优点v模块化是软件解决复杂问题所具备的手段,模块化是软件解决复杂问题所具备的手段,可降低软件复杂性,减少开发工作量,从而可降低软件复杂性,减少开发工作量,从而降低开发成本,提高软件生产率,以下是模降低开发成本,提高软件生产率,以下是模块化的依据。块化的依据。信息科学与技术学院 闵笛软件工程软件工程 模块化与软件成本的关系模块化与软件成本的关系接口接口信息科学与技术学院 闵笛软件工程软件工程 模块的基本属性模块的基本属性v接口:接口:指模块的输入与输出。指模块的输入与输出。v功能:功能

10、:指模块实现什么功能。指模块实现什么功能。v模块化好处模块化好处:v模块化使软件容易测试和调试,因而有助提模块化使软件容易测试和调试,因而有助提高软件的可靠性。高软件的可靠性。v模块化能提高软件的可修改性。模块化能提高软件的可修改性。v模块化有助于软件开发工程的组织管理。模块化有助于软件开发工程的组织管理。信息科学与技术学院 闵笛软件工程软件工程5.2.2 抽象(抽象(Abstraction)v 什么是抽象?什么是抽象?v认识复杂事物和现象时,认识复杂事物和现象时,抽出事物本质的共同特抽出事物本质的共同特 性而暂不考虑它们的细性而暂不考虑它们的细节。节。v 软件开发中的抽象软件开发中的抽象v过

11、程的抽象过程的抽象v数据的抽象数据的抽象学生学生大学生大学生湛江师范学院的学生湛江师范学院的学生湛师信息学院的学生湛师信息学院的学生湛师信息学院湛师信息学院11计本的学计本的学生生信息科学与技术学院 闵笛软件工程软件工程抽象抽象v什么是抽象思想什么是抽象思想?在认识事物、分析和解决问题的过程中,在认识事物、分析和解决问题的过程中,忽略忽略那那些与当前研究目标些与当前研究目标不相关不相关的部分的部分,以便将注意力以便将注意力集中于集中于与当前目标与当前目标相关相关的方面的方面v软件开发实际上就是一个从软件开发实际上就是一个从高层次抽象高层次抽象到到低低层次抽象层次抽象逐步过渡的过程。逐步过渡的过

12、程。v一个复杂的系统先用一些高级的抽象概念构一个复杂的系统先用一些高级的抽象概念构造和理解,这些高级概念又用较低级的概念造和理解,这些高级概念又用较低级的概念构造和理解,如此进行下去,直到具体元素。构造和理解,如此进行下去,直到具体元素。信息科学与技术学院 闵笛软件工程软件工程形体形体衣着衣着性格性格抽象抽象抽象例子抽象例子外表外表信息科学与技术学院 闵笛软件工程软件工程5.2.3 逐步求精逐步求精v逐步求精:逐步求精:为了能集中精力解决主要问题而为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。尽量推迟对问题细节的考虑。v可把逐步求精看作是一项把一个时期内必须可把逐步求精看作是一项把一个

13、时期内必须解决的种种问题解决的种种问题按优先级排序按优先级排序的技术。的技术。v逐步求精是一种逐步求精是一种自顶向下自顶向下的设计策略,按这的设计策略,按这种设计策略,程序的体系结构是通过逐步精种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。化处理过程的层次而设计出来的。信息科学与技术学院 闵笛软件工程软件工程逐步求精逐步求精外表外表形体形体衣着衣着性格性格头发头发脸形脸形领带领带抽象抽象逐步求精的例子逐步求精的例子信息科学与技术学院 闵笛软件工程软件工程自顶向下,逐步求精的基本思想自顶向下,逐步求精的基本思想v将功能、信息的说明分为多个层次,将功能、信息的说明分为多个层次

14、,最高层最高层也最抽象也最抽象 仅仅只是仅仅只是概念性概念性地描述功能或信地描述功能或信息,息,不不提供功能的内部工作情况或信息的内提供功能的内部工作情况或信息的内部结构;部结构;v设计者从最高层开始,仔细推敲,进行功能设计者从最高层开始,仔细推敲,进行功能和信息的细化,给出下和信息的细化,给出下层实现的细节层实现的细节;v随着每个后续细化逐步的完成,提供越来越随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的多的细节,最终得出用程序设计语言表达的程序。程序。信息科学与技术学院 闵笛软件工程软件工程结合了模块化和逐步细化思想建立的软件结构图结合了模块化和逐步细化思想建

15、立的软件结构图信息科学与技术学院 闵笛软件工程软件工程5.2.4 信息隐蔽和局部化信息隐蔽和局部化v信息隐蔽:信息隐蔽:在设计和确定模块时,使得一个在设计和确定模块时,使得一个模块模块内内包含的信息(过程或数据),不允许包含的信息(过程或数据),不允许其它其它不需要不需要这些信息的这些信息的模块访问模块访问,独立的模,独立的模块间仅仅交换为完成系统功能而必须交换的块间仅仅交换为完成系统功能而必须交换的信息。信息。v局部化:局部化:将一些关系密切的软件元素物理地将一些关系密切的软件元素物理地放得彼此靠近。放得彼此靠近。信息科学与技术学院 闵笛软件工程软件工程5.2.5 模块独立模块独立v1、什么

16、是模块独立性(、什么是模块独立性(module independence)v模块只完成系统要求的相对独立的功能模块只完成系统要求的相对独立的功能v符合信息隐蔽原则符合信息隐蔽原则v模块间关联和依赖程度尽量小模块间关联和依赖程度尽量小 v2、模块独立的优点、模块独立的优点v容易开发、测试和维护容易开发、测试和维护信息科学与技术学院 闵笛软件工程软件工程3、衡量模块独立性的两个准则、衡量模块独立性的两个准则v 耦合性(耦合性(coupling)v 内聚性(内聚性(cohesion)信息科学与技术学院 闵笛软件工程软件工程 耦合性(耦合性(coupling)v也称块间的联系。是对软件系统结构中,各也

17、称块间的联系。是对软件系统结构中,各模块间相互联系紧密程度的一种度量。模块间相互联系紧密程度的一种度量。v设计目标:低耦合设计目标:低耦合信息科学与技术学院 闵笛软件工程软件工程无直接耦合无直接耦合v两个模块没有直接关系,模块独立性最强。两个模块没有直接关系,模块独立性最强。信息科学与技术学院 闵笛软件工程软件工程数据耦合数据耦合v属松散耦合。一模块访问另一模块时,通过属松散耦合。一模块访问另一模块时,通过数据参数交换输入、输出信息。数据参数交换输入、输出信息。信息科学与技术学院 闵笛软件工程软件工程控制耦合控制耦合v模块之间传递的是控制信息(如开关、标志、模块之间传递的是控制信息(如开关、标

18、志、名字等),名字等),控制被调用模块的内部逻辑控制被调用模块的内部逻辑。信息科学与技术学院 闵笛软件工程软件工程控制耦合举例控制耦合举例信息科学与技术学院 闵笛软件工程软件工程去除模块间控制耦合的方法去除模块间控制耦合的方法v控制耦合增加了理解和编程的复杂性,调用控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了模块必须知道被调模块的内部逻辑,增加了相互依赖。解决方法:相互依赖。解决方法:v(1)将被调用模块内的判定上移到调用模块)将被调用模块内的判定上移到调用模块中进行中进行 v(2)被调用模块分解成若干单一功能模块)被调用模块分解成若干单一功能模块信息科学与技术

19、学院 闵笛软件工程软件工程改控制耦合为数据耦合举例改控制耦合为数据耦合举例信息科学与技术学院 闵笛软件工程软件工程特征耦合特征耦合v两个模块通过传递两个模块通过传递数据结构数据结构加以联系,或都加以联系,或都与一个与一个数据结构数据结构有关系,则称这两个模块间有关系,则称这两个模块间存在特征耦合。存在特征耦合。v可能出现的情况:当把可能出现的情况:当把整个数据结构作为参整个数据结构作为参数数传递时,被调用的模块虽然只需要使用其传递时,被调用的模块虽然只需要使用其中的一部分数据元素,但实际可以使用的数中的一部分数据元素,但实际可以使用的数据多于它真正需要的数据,这将导致对数据据多于它真正需要的数

20、据,这将导致对数据访问失去控制。访问失去控制。信息科学与技术学院 闵笛软件工程软件工程特征耦合举例特征耦合举例v说明:说明:v“住户情况住户情况”是一个是一个数据结构数据结构,图中模块都与此数,图中模块都与此数据结构有关。据结构有关。v“计算水费计算水费”和和“计算电费计算电费”本无关,由于引用了本无关,由于引用了此数据结构产生依赖关系,它们之间也是此数据结构产生依赖关系,它们之间也是特征偶合特征偶合。信息科学与技术学院 闵笛软件工程软件工程将特征耦合修改为数据耦合举例将特征耦合修改为数据耦合举例信息科学与技术学院 闵笛软件工程软件工程公共环境耦合公共环境耦合v一组模块引用同一个公用数据区(也

21、称全局一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。数据区、公共数据环境)。v公共数据区公共数据区指:指:v全局数据结构。全局数据结构。v共享通讯区。共享通讯区。v内存公共覆盖区等。内存公共覆盖区等。信息科学与技术学院 闵笛软件工程软件工程公共环境耦合举例公共环境耦合举例v模块模块 A、B、C 间存在错综复杂的联系间存在错综复杂的联系信息科学与技术学院 闵笛软件工程软件工程公共耦合存在的问题公共耦合存在的问题v(1)软件可理解性降低软件可理解性降低 v(2)诊断错误困难诊断错误困难 v(3)软件可维护性差软件可维护性差v(4)软件可靠性差软件可靠性差信息科学与技术学院 闵笛软件

22、工程软件工程内容耦合内容耦合v有下列情况之一的。是最不好的耦合形式!有下列情况之一的。是最不好的耦合形式!信息科学与技术学院 闵笛软件工程软件工程模块间耦合强度模块间耦合强度信息科学与技术学院 闵笛软件工程软件工程耦合强度依赖的因素:耦合强度依赖的因素:v一模块对另一模块的引用一模块对另一模块的引用v一模块向另一模块传递的数据量一模块向另一模块传递的数据量v一模块施加到另一模块的控制的数量一模块施加到另一模块的控制的数量v模块间接口的复杂程度模块间接口的复杂程度信息科学与技术学院 闵笛软件工程软件工程降低耦合度的设计原则降低耦合度的设计原则v1、根据问题特点,选择合适的、根据问题特点,选择合适

23、的 耦合类型。耦合类型。尽量使用数据耦合,少用控制耦合和特征耦尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦合的范围,完全不用内容耦合,限制公共耦合的范围,完全不用内容耦合合v2、降低模块接口的复杂性。、降低模块接口的复杂性。v减少每个模块的参数个数;尽量使用标准过减少每个模块的参数个数;尽量使用标准过程调用方式,少用直接引用的方式;传送的程调用方式,少用直接引用的方式;传送的信息以标准、直接的方式提供。信息以标准、直接的方式提供。v3、把模块的通信信息放在缓冲区中。、把模块的通信信息放在缓冲区中。信息科学与技术学院 闵笛软件工程软件工程 内聚性(内聚性(cohesion)v又称块内联系

24、。指一个模块内部各个元素彼又称块内联系。指一个模块内部各个元素彼此结合的紧密程度的度量。此结合的紧密程度的度量。v若一个模块内各元素(语句之间、程序段之若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越间)联系的越紧密,则它的内聚性就越v设计目标:高内聚设计目标:高内聚信息科学与技术学院 闵笛软件工程软件工程巧合内聚(偶然内聚巧合内聚(偶然内聚)v块内各组成成份在功能上是互不相关的。块内各组成成份在功能上是互不相关的。模块模块 M 中的三个语句没有任何联系。中的三个语句没有任何联系。缺点:可理解性差,可修改性差缺点:可理解性差,可修改性差信息科学与技术学院 闵笛软件工程软

25、件工程逻辑内聚逻辑内聚v把几种相关功能(逻辑上相似的功能)组合把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确在一模块内,每次调用由传给模块的参数确定执行哪种功能。定执行哪种功能。信息科学与技术学院 闵笛软件工程软件工程逻辑内聚模块信息科学与技术学院 闵笛软件工程软件工程时间内聚(经典内聚)时间内聚(经典内聚)v模块完成的功能必须在模块完成的功能必须在同一时间同一时间内执行,这内执行,这些功能只因时间因素关联在一起。些功能只因时间因素关联在一起。v例:例:初始化系统模块初始化系统模块v系统结束模块、系统结束模块、v紧急故障处理模块等紧急故障处理模块等信息科学与技术学

26、院 闵笛软件工程软件工程过程内聚(顺序性组合)过程内聚(顺序性组合)v模块内各处理成分相关,且必须以特定次序模块内各处理成分相关,且必须以特定次序执行。执行。信息科学与技术学院 闵笛软件工程软件工程通信内聚通信内聚v模块内各部分使用模块内各部分使用相同的输入数据相同的输入数据,或产生,或产生相同的输出结果相同的输出结果信息科学与技术学院 闵笛软件工程软件工程顺序内聚顺序内聚v模块完成模块完成多个功能多个功能,各功能都在,各功能都在同一数据结同一数据结构构上操作,每一功能有唯一入口。上操作,每一功能有唯一入口。信息科学与技术学院 闵笛软件工程软件工程功能内聚功能内聚v模块仅包括为完成某个功能所必

27、须的所有成模块仅包括为完成某个功能所必须的所有成分。分。v模块所有成分共同模块所有成分共同完成一个功能完成一个功能,缺一不可,缺一不可v内聚性最强内聚性最强信息科学与技术学院 闵笛软件工程软件工程模块间内聚的类型模块间内聚的类型信息科学与技术学院 闵笛软件工程软件工程总结:耦合、内聚与模块独立性关系总结:耦合、内聚与模块独立性关系v耦合与内聚都是耦合与内聚都是模块独立性模块独立性的定性标准,都的定性标准,都反映模块独立性的良好程度。反映模块独立性的良好程度。v但耦合是直接的主导因素,内聚则辅助耦合但耦合是直接的主导因素,内聚则辅助耦合共同对模块独立性进行衡量。共同对模块独立性进行衡量。v设计要

28、求:低耦合,高内聚设计要求:低耦合,高内聚信息科学与技术学院 闵笛软件工程软件工程5.3 启发规则启发规则v改进原则改进原则:高内聚、低耦合:高内聚、低耦合v 改进软件结构,提高模块独立性改进软件结构,提高模块独立性 v 模块规模适中模块规模适中v 深度、宽度、扇出和扇入适中深度、宽度、扇出和扇入适中 v 将模块的影响限制在控制范围内将模块的影响限制在控制范围内 v 降低模块接口的复杂性降低模块接口的复杂性 v 设计单入口单出口的模块设计单入口单出口的模块v 模块功能可预测模块功能可预测信息科学与技术学院 闵笛软件工程软件工程 改进软件结构,提高模块独立性改进软件结构,提高模块独立性v通过模块

29、分解或合并,降低耦合提高内聚通过模块分解或合并,降低耦合提高内聚信息科学与技术学院 闵笛软件工程软件工程 模块规模适中模块规模适中v模块过大:可理解程度下降模块过大:可理解程度下降v模块过小:开销大于有效操作系统接口复杂模块过小:开销大于有效操作系统接口复杂v 在考虑模块的独立性同时,为了增加可在考虑模块的独立性同时,为了增加可理解性,模块的大小最好在理解性,模块的大小最好在 50 一一 150 条语条语句左右,可以用句左右,可以用 1 一一 2 页打印纸打印,便于页打印纸打印,便于人们阅读与研究。人们阅读与研究。信息科学与技术学院 闵笛软件工程软件工程 深度、宽度、扇出和扇入适中深度、宽度、

30、扇出和扇入适中v软件结构度量术语信息科学与技术学院 闵笛软件工程软件工程例:避免平铺结构例:避免平铺结构信息科学与技术学院 闵笛软件工程软件工程增加中间层降低扇出增加中间层降低扇出信息科学与技术学院 闵笛软件工程软件工程v作用域作用域是指受模块内一个判定影响的所有模块的集合是指受模块内一个判定影响的所有模块的集合v控制域控制域是指这个模块本身及其所有的下属模块的集合是指这个模块本身及其所有的下属模块的集合 将模块的作用域限制在控制范围内将模块的作用域限制在控制范围内信息科学与技术学院 闵笛软件工程软件工程v模块模块 C 的控制范的控制范围:围:C、D、E、F、G、H。v如果模块如果模块 C 作

31、出作出的决策影响了模的决策影响了模块块 L,L超出了超出了 C 的控制范围的控制范围使任一模块的作用域在其控制域内使任一模块的作用域在其控制域内信息科学与技术学院 闵笛软件工程软件工程 降低模块接口的复杂性降低模块接口的复杂性v接口传递信息应简单且和模块功能一致。接口传递信息应简单且和模块功能一致。v模块的接口要简单、清晰、含义明确,便于模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。理解,易于实现、测试与维护。信息科学与技术学院 闵笛软件工程软件工程 设计单入口单出口的模块设计单入口单出口的模块v不要使模块间出现内容耦合。不要使模块间出现内容耦合。信息科学与技术学院 闵笛软

32、件工程软件工程 模块功能可预测,但防止模块功能模块功能可预测,但防止模块功能过分局限过分局限v如果一个模块可以当作一个黑盒子,相同输如果一个模块可以当作一个黑盒子,相同输入产生相同输出,其功能为可预测的。入产生相同输出,其功能为可预测的。v若模块带有内部若模块带有内部“存储器存储器”,其功能可能是,其功能可能是不可预测的,难理解、难测试、难维护。不可预测的,难理解、难测试、难维护。v单一的模块具有高内聚。但模块功能过分局单一的模块具有高内聚。但模块功能过分局限,可使用范围将过分狭窄,缺乏灵活性和限,可使用范围将过分狭窄,缺乏灵活性和扩充性。扩充性。信息科学与技术学院 闵笛软件工程软件工程5.4

33、 描绘软件结构的图形具描绘软件结构的图形具v 5.4.1 层次图和层次图和 HIPO 图图v描述软件的层次结构。描述软件的层次结构。v层次图中,一个方框代表一个模块,方框间层次图中,一个方框代表一个模块,方框间的连线表示调用关系。的连线表示调用关系。vHIPO 图图=层次图层次图 IPO 图图信息科学与技术学院 闵笛软件工程软件工程正文加工系统正文加工系统层次图层次图主控模块信息科学与技术学院 闵笛软件工程软件工程酒店管理信息系统功能结构图酒店管理信息系统功能结构图信息科学与技术学院 闵笛软件工程软件工程5.4.2 结构图(SC Structure Chart)信息科学与技术学院 闵笛软件工程

34、软件工程v主要成分说明:主要成分说明:v一个方框表示一个一个方框表示一个模块模块;v一个模块指向另一个模块的箭头或直线,表示前一个模块指向另一个模块的箭头或直线,表示前一模块对后一模块的一模块对后一模块的调用调用;v调用直线边的小箭头,表示调用时从一个模块传调用直线边的小箭头,表示调用时从一个模块传给另一个模块的给另一个模块的数据数据,也指出了传送方向。,也指出了传送方向。信息科学与技术学院 闵笛软件工程软件工程SC 中的四种模块中的四种模块v从下属模从下属模块取得数块取得数据,经过据,经过处理,再处理,再传入上级传入上级模块模块v从上级模从上级模块获得数块获得数据,经过据,经过处理,再处理,

35、再传送给下传送给下属模块属模块v加工模块。加工模块。从上级模块从上级模块获得数据,获得数据,经过处理,经过处理,转换成其他转换成其他形式,再送形式,再送回上级模块。回上级模块。v对所有下对所有下属模块进属模块进行协调和行协调和管理的模管理的模块块信息科学与技术学院 闵笛软件工程软件工程结构图(结构图(SC)举例)举例信息科学与技术学院 闵笛软件工程软件工程SC中的选择调用中的选择调用信息科学与技术学院 闵笛软件工程软件工程SC中的循环调用中的循环调用信息科学与技术学院 闵笛软件工程软件工程5.5 面向数据流的设计方法面向数据流的设计方法v5.5.1 概念概念v把信息流映射成软件结构把信息流映射

36、成软件结构,信息流的类型决定信息流的类型决定了映射的方法了映射的方法,信息流可分为两种类型信息流可分为两种类型v变换型流变换型流v事务型流事务型流信息科学与技术学院 闵笛软件工程软件工程变换型数据流基本模型变换型数据流基本模型v特点:具有明确的传入、变换(或称主加工)特点:具有明确的传入、变换(或称主加工)和传出界面的和传出界面的 DFD信息科学与技术学院 闵笛软件工程软件工程另一种表示图另一种表示图信息科学与技术学院 闵笛软件工程软件工程变换型数据流举例变换型数据流举例信息科学与技术学院 闵笛软件工程软件工程事务型数据流基本模型事务型数据流基本模型事务中心的任务:事务中心的任务:接受输入数据

37、(事务)接受输入数据(事务)分析每个事务以确定它的类型。分析每个事务以确定它的类型。根据事务类型选取一条活动通路根据事务类型选取一条活动通路信息科学与技术学院 闵笛软件工程软件工程事务型数据流举例事务型数据流举例信息科学与技术学院 闵笛软件工程软件工程针对两种数据流的设计方法针对两种数据流的设计方法信息科学与技术学院 闵笛软件工程软件工程系统结构特征可归纳为两种典型形式系统结构特征可归纳为两种典型形式信息科学与技术学院 闵笛软件工程软件工程大型系统的大型系统的 DFD 中,变换型和事务型中,变换型和事务型往往共存往往共存信息科学与技术学院 闵笛软件工程软件工程5.5.2 变换分析变换分析v例1

38、:有如下数据流图信息科学与技术学院 闵笛软件工程软件工程v步骤步骤1:区分输入、变换中心、输出部分,:区分输入、变换中心、输出部分,在在 DFD 上标明分界线上标明分界线注意;所谓注意;所谓“输入输入”、“输出输出”是站在整个是站在整个系统的角度来看的,是整个系统的输入、输出系统的角度来看的,是整个系统的输入、输出部分部分信息科学与技术学院 闵笛软件工程软件工程步骤步骤2:第一级分解。设计顶层和第一层:第一级分解。设计顶层和第一层模块模块信息科学与技术学院 闵笛软件工程软件工程第一级分解后第一级分解后 SC 的数据流的数据流信息科学与技术学院 闵笛软件工程软件工程步骤步骤3:第二级分解。自顶向

39、下分解:第二级分解。自顶向下分解 SC 各分各分支,设计出每个分支的中、下层模块支,设计出每个分支的中、下层模块信息科学与技术学院 闵笛软件工程软件工程1、传入分支的分解、传入分支的分解(1)信息科学与技术学院 闵笛软件工程软件工程1、传入分支的分解、传入分支的分解(2)v若有必要,继续分解。v以“输入金额”为例,可将此分支也看成一个变换型数据流 得结构图:信息科学与技术学院 闵笛软件工程软件工程继续分解继续分解“金额校验金额校验”信息科学与技术学院 闵笛软件工程软件工程11、传入分支的分解(、传入分支的分解(3)信息科学与技术学院 闵笛软件工程软件工程2.传出分支的分解传出分支的分解信息科学

40、与技术学院 闵笛软件工程软件工程3、中心加工分支的分解、中心加工分支的分解信息科学与技术学院 闵笛软件工程软件工程5.5.3 事务分析事务分析v当数据流具有明显的事务特征时,应该采用当数据流具有明显的事务特征时,应该采用事务流的分析方法事务流的分析方法v基本步骤基本步骤步骤步骤1.复审基本系统模型复审基本系统模型步骤步骤2.复审和精化数据流图复审和精化数据流图步骤步骤3.确定数据流图的类型:变换流还是事务流确定数据流图的类型:变换流还是事务流信息科学与技术学院 闵笛软件工程软件工程步骤步骤4.识别事务流各个组成部分识别事务流各个组成部分v把整个事务型把整个事务型DFD划分为以下三个部分划分为以

41、下三个部分 接受路径部分:接受事务的输入接受路径部分:接受事务的输入 事务处理中心事务处理中心 动作路径部分动作路径部分v判定在每一条动作路径上数据流的特征:变判定在每一条动作路径上数据流的特征:变换流或者事务流换流或者事务流信息科学与技术学院 闵笛软件工程软件工程事务型事务型DFD划分例子划分例子信息科学与技术学院 闵笛软件工程软件工程步骤步骤5.把事务型把事务型DFD映射为软件结构映射为软件结构信息科学与技术学院 闵笛软件工程软件工程步骤步骤6.分解精化事务结构以及每个动分解精化事务结构以及每个动作路径作路径信息科学与技术学院 闵笛软件工程软件工程步骤步骤7.精化初步软件结构精化初步软件结

42、构信息科学与技术学院 闵笛软件工程软件工程教材:事务分析的映射方法教材:事务分析的映射方法信息科学与技术学院 闵笛软件工程软件工程配置信息信息科学与技术学院 闵笛软件工程软件工程用户命令交互子系统顶层用户命令交互子系统顶层SC信息科学与技术学院 闵笛软件工程软件工程信息科学与技术学院 闵笛软件工程软件工程分解了分解了“系统设置控制器系统设置控制器”分支的系统分支的系统SC信息科学与技术学院 闵笛软件工程软件工程信息科学与技术学院 闵笛软件工程软件工程分解了分解了“密码处理控制器密码处理控制器”分支的系统分支的系统SC信息科学与技术学院 闵笛软件工程软件工程附:混合流设计附:混合流设计信息科学与技术学院 闵笛软件工程软件工程总结:面向数据流的设计过程总结:面向数据流的设计过程信息科学与技术学院 闵笛软件工程软件工程总结:面向数据流设计方法的设计步骤总结:面向数据流设计方法的设计步骤1.精化精化 DFD 2.确定确定 DFD 类型类型 3.把把 DFD 映射到系统模块结构,设计模块结映射到系统模块结构,设计模块结构的上层构的上层4.基于基于 DFD逐步分解高层模块,设计下层模逐步分解高层模块,设计下层模块块5.根据模块独立性原理,精化模块结构根据模块独立性原理,精化模块结构 6.对模块接口进行描述对模块接口进行描述

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 其他报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁