第4章-软件系统设计课件

上传人:29 文档编号:242659028 上传时间:2024-08-30 格式:PPT 页数:230 大小:2.73MB
返回 下载 相关 举报
第4章-软件系统设计课件_第1页
第1页 / 共230页
第4章-软件系统设计课件_第2页
第2页 / 共230页
第4章-软件系统设计课件_第3页
第3页 / 共230页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.3,软件生存期(,software life cycle),图1.14,概要设计,规格说明书,详细设计,规格说明书,软,件,生,存,期,软件定义部分,软件开发部分,软件运行维护部分,退役,软件维护,运行软件,需求分析,可行性研究,问题定义,综合测试,编码与单元测试,详细设计,概要设计,系统分析报告,可行性分析报告,初步项目计划,需求规格说明书,源程序代码,测试报告,用户手册,维护报告,第,1,章 软件工程,引论,引言,软件生存期,1.3 软件生存期(software life cycle),1,2024/8/30,2,结束,返回,图,3.6,需求分析,模,型,3.1,软件需求分析,3.1.5,需求分析模型,引言,2023/9/6,2,2024/8/30,3,结束,返回,第,4,章 软件概要设计,4.1,软件设计过程,4.2,软件设计的基本概念,4.3,面向数据流的设计方法,4.4,面向数据结构的设计方法,4.5,软件概要设计规格说明,与评审,2023/9/6,3,第,4,章 软件概要设计,2024/8/30,4,结束,返回,【,学习目的,】,1.,掌握解软件概要设计的原则和过程。,2.,掌握模块划分的评价准则,模块独立性的判别。,3.,掌握结构化设计方法。,4.,掌握数据设计和文件设计的原则。,5.,了解软件概要设计规格说明和设计评审的主要内容。,6.,了解,Jackson,系统开发方法和,Jackson,程序设计方法。,第4章 软件概要设计2023/9/6,4,第,4,章 软件概要设计,2024/8/30,5,结束,返回,【,难重点,】,软件设计从技术上的,体系结构设计、数据结构设计、接口设计和过程设计。,第4章 软件概要设计2023/9/6,5,第,4,章 软件概要设计,2024/8/30,6,结束,返回,4.1,软件设计的过程,Who,为谁设计,用户是谁?,What,要解决哪些问题?,Why,为什么要解决这些问题,3W,图,4.1,软件设计前需要考虑的问题,软件设计前要考虑的问题:,第4章 软件概要设计2023/9/6,6,第,4,章 软件概要设计,2024/8/30,7,结束,返回,编,码,测,试,设,计,信息描述,功能描述,行为描述,其他需求,总体结构设计,数据结构设计,过程设计,程序模块,集成并确,认的软件,图,4.2,软件开发部分的信息流,4.1,软件设计的过程,软件开发部分包括,:,软件设计、编码和测试阶段。,第4章 软件概要设计2023/9/6,7,第,4,章 软件概要设计,2024/8/30,8,结束,返回,4.1.1,软件设计的重要性,软件需求分析,软件设计,做什么,怎么做,图,4.3,软件设计的作用,任务,任务,第4章 软件概要设计2023/9/6,8,第,4,章 软件概要设计,2024/8/30,9,结束,返回,4.1.2,软件设计的方法,图,4.4,软件设计的方法,结构化设计方法,面向对象设计,(OOD),面向数据流的设计,SD,面向数据结构的设计,Jackson,软,件,设,计,方,法,结构化设计,(SD,Structure Design),面向对象设计,(OOD,Object Oriented,Design,),第4章 软件概要设计2023/9/6,9,第,4,章 软件概要设计,2024/8/30,10,结束,返回,4.1.3,软件设计的过程概述,软件设计,是一个,把,软件需求,变换成,软件表示,的过程。,最初,这种表示只是描绘出软件的总的框架;,然后,进一步细化,在此框架中填入细节;,最后把,它加工成在程序细节上非常接近于源程序的,软件表示,。,第4章 软件概要设计2023/9/6,10,第,4,章 软件概要设计,2024/8/30,11,结束,返回,4.1.3,软件设计的过程概述,图,4.5,从技术和管理的角度看设计的关系,从管理和技术两个不同的角度对软件设计的认识,可以用,下图表示,。,首先做,概要设计,,将软件需求转化为数据结构和软件的系统结构。,然后是,详细设计,,即,过程设计,。通过对结构表示进行细化,得到软件的详细的数据结构和算法。,从,工程管理,的角度来看,软件设计分两步完成。,从,技术观点,来看,软件设计包括:,软件结构设计,数据设计,接口设计,过程设计,第4章 软件概要设计2023/9/6,11,第,4,章 软件概要设计,2024/8/30,12,结束,返回,4.1.3,软件设计的过程概述,软件设计的,基本目标,是,用,比较抽象概括的方式,确定,目标系统,如何完成预定的,任务,。即软件设计是,确定系统的物理模型,。,将需求分析模型转换为软件设计,请见图,4.6,第4章 软件概要设计2023/9/6,12,第,4,章 软件概要设计,2024/8/30,13,结束,返回,图,4.6,将分析模型转换为设计,数据字典,数,据,流,图,实,体,关,系,图,状态转换图,加,工,规,格,说,明,控,制,规,格,说,明,数,据,对,象,描,述,过程设计,接口设计,体系结构设计,数据设计,将分析模型转换为设计,第4章 软件概要设计2023/9/6,13,第,4,章 软件概要设计,2024/8/30,14,结束,返回,工资计算系统,ER,图,图,3.12,数据设计,将实体,关系图中描述的对象和关系,以及数据字典中描述的详细数据内容,转化,为,数据结构,的定义。,例如:,表,4-1,职工基本信息表结构,列名,(字段名),属性,数据类型及长度,说明及是否为空,id,职工号,(,主键,),char,(,10,),N,name,姓名,varChar(50),N,gender,性别,nChar(1),N,age,年龄,Int,N,wages,工资,int,n,duty,职称,/,职务,varChar(15),n,did,部门代号(外键),Char(10),N,第4章 软件概要设计2023/9/6,14,第,4,章 软件概要设计,2024/8/30,15,结束,返回,图,4.7,工资计算系统的层次结构图,体系结构设计,定义软件系统各主要成份之间的,关系,,如,图,4.7,过程设计,则是把结构成份转换成软件的,过程性描述。,第4章 软件概要设计2023/9/6,15,第,4,章 软件概要设计,2024/8/30,16,结束,返回,图,4.8,精品课程网站首页,例如,:系统首页及登录界面如,图,4.8,。,接口设计,根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的,交互机制,。,第4章 软件概要设计2023/9/6,16,第,4,章 软件概要设计,2024/8/30,17,结束,返回,图,4.9,系统管理界面,管理员登录后,系统管理界面请见,图,4.9,第4章 软件概要设计2023/9/6,17,第,4,章 软件概要设计,2024/8/30,18,结束,返回,4.1.3,软件设计的过程概述,从工程管理的角度来看,软件设计分两步完成:,概要设计和详细设计要完成的任务,:,详细设计,确立,每个模块的实现算法,局部数据结构,用适当方法表示算法和数据结构的细节。,概要设计,将软件需求,转化为软件体系结构,确定系统级接口,全局数据结构或数据库模式。,图,3.19,工资计算系统第一层数据流图,图,4.7,工资计算系统的层次结构图,第4章 软件概要设计2023/9/6,18,第,4,章 软件概要设计,2024/8/30,19,结束,返回,4.1.4,衡量,软件设计的技术标准,(1),设计出来的结构应是,分层结构,,从而建立软件成份之间的控制。,(2),设计应当,模块化,,从逻辑上将软件划分为完成特定功能或子功能的构件。,衡量设计的技术标准如下:,(3),设计应当既包含,数据抽象,,也包含,过程抽象,。,(4),设计应当建立具有,独立功能特征的模块,。,(5),设计应当建立能够,降低,模块与外部环境之间,复杂,连接的,接口,。,(6),设计应能根据软件需求分析获取的信息,建立,可驱动可重复,的方法。,图,4.7,工资计算系统的层次结构图,第4章 软件概要设计2023/9/6,19,第,4,章 软件概要设计,2024/8/30,20,结束,返回,4.1.5,软件概要设计的步骤,在软件概要设计过程中需要完成的工作:,(1),分析需求、制定规范,(2),软件系统结构的总体设计,(3),处理方式设计,(4),数据结构和数据库的设计,(5),可靠性和安全性的设计,(6),编写概要设计阶段的文档,(7),概要设计评审,第4章 软件概要设计2023/9/6,20,第,4,章 软件概要设计,2024/8/30,21,结束,返回,4.1.5,软件概要设计的任务,思考题,:,从管理和技术两个不同的角度分析理解软件设计,两者之间有啥联系?,第4章 软件概要设计2023/9/6,21,第,4,章 软件概要设计,2024/8/30,22,结束,返回,阅读和理解,软件需求说明书,,在给定预算范围内和技术现状下,确认用户的要求,能否实现,。若不能实现,则需明确实现的条件,从而确定设计的目标,以及它们的优先顺序。,根据目标确定最合适的,设计方法,。,规定设计文档的,编制标准,,包括文档体系,用纸及样式,记述的详细程度,图形的画法等。,规定编码的,信息形式,(,代码体系,),,与硬件,操作系统的接口规约,命名规则等。,(1),评审需求与制定规范,4.1.6,软件概要设计过程,第4章 软件概要设计2023/9/6,22,第,4,章 软件概要设计,2024/8/30,23,结束,返回,在需求分析阶段,已经从系统开发的角度,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是所谓的,功能设计,。,在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。它包括:,(2),软件系统结构的总体设计,4.1.6,软件概要设计过程,第4章 软件概要设计2023/9/6,23,第,4,章 软件概要设计,2024/8/30,24,结束,返回,采用某种设计方法,将一个复杂的系统按功能划分成模块的,层次结构,。,确定每个模块的,功能,,建立与已确定的软件需求的对应关系。,确定模块间的,调用关系,。,确定模块间的,接口,,即模块间传递的信息。设计接口的信息结构。,评估模块划分的质量及导出,模块结构,的规则。,4.1.6,软件概要设计过程,第4章 软件概要设计2023/9/6,24,第,4,章 软件概要设计,2024/8/30,25,结束,返回,4.1.6,软件概要设计过程,(3),处理方式设计,确定为实现软件系统的,功能需求,所必需的,算法,,评估算法的性能。,确定为满足软件系统的,性能需求,所必需的,算法,和模块间的控制方式(性能设计)。,确定外部信号的,接收发送形式,(接口设计)。,第4章 软件概要设计2023/9/6,25,第,4,章 软件概要设计,2024/8/30,26,结束,返回,4.1.6,软件概要设计过程,处理方式设计技术指标:,周转时间:,即一旦向计算机发出要求处理的请求之后,从输入开始,经过处理直到输出结果为止的,整个时间,。,响应时间:,这是对于实时联机系统的性能需求。当终端用户向计算机发出处理请求之后,从输入开始到输出最终结果中间的一段时间内,用户需要多次对计算机进行输入输出,而一次输入输出的时间就是,响应时间,。,吞吐量:,单位时间内能够处理的数据量叫做,吞吐量,。这是表示系统能力的指标。,精度:,在进行科学计算或工程计算时,运算,精确度,的要求。,第4章 软件概要设计2023/9/6,26,第,4,章 软件概要设计,2024/8/30,27,结束,返回,4.1.6,软件概要设计过程,(4),数据结构设计,确定软件涉及的文件系统的结构以及数据库的模式、子模式,,进行数据完整性和安全性的设计,。,确定输入,输出文件的详细的,数据结构,。,结合算法设计,确定算法所必需的,逻辑数据结,构及其操作,。,确定对逻辑数据结构所必需的那些操作的,程序,模块,(软件包)。,第4章 软件概要设计2023/9/6,27,第,4,章 软件概要设计,2024/8/30,28,结束,返回,4.1.6,软件概要设计过程,确定详细的,数据结构和使用规则,。,数据库设计,数据库的设计,指数据存储文件的设计,。定义数据结构所含的数据项、类型、长度、它们之间的层次或相互关系的表格等。,数据的保护性设计,冗余性设计:,一致性设计:,防卫性设计:,第4章 软件概要设计2023/9/6,28,第,4,章 软件系统设计,2024/8/30,29,结束,返回,4.1.6,软件概要设计过程,(5),可靠性设计,可靠性设计也叫做,质量设计,。在计算机使用的过程中,可靠性是很重要的。可靠性不高的软件会使得运行结果不能使用而造成严重损失。,软件可靠性简言之是指程序和文档中的错误少。,第4章 软件系统设计2023/9/6,29,第,4,章 软件概要设计,2024/8/30,30,结束,返回,4.1.6,软件概要设计过程,(6),编写概要设计阶段的文档,概要设计阶段完成时应编写以下文档:,概要设计说明书,:给出系统目标、总体设计、数据设计、处理方式设计、运行设计、出错设计等。,数据库设计说明书,:给出所使用数据库简介、数据模式设计、物理设计等。,用户手册,:对需求分析阶段编写的初步的用户手册进行审订。,修订测试计划,:对测试的策略、方法和步骤提出明确的要求。,第4章 软件概要设计2023/9/6,30,第,4,章 软件概要设计,2024/8/30,31,结束,返回,4.1.6,软件概要设计过程,(7),概要设计评审,可追溯性:,即分析该软件的系统结构、子系统结构,确认该软件设计是否复盖了所有已确定的软件需求,软件每一成份是否,可追溯,到某一项需求。,接口:,即分析软件各部分之间的联系,确认该软件的内部接口与外部接口,是否已经明确定义,。模块是否满足,高内聚和低耦合,的要求。模块作用范围是否在其控制范围之内。,第4章 软件概要设计2023/9/6,31,第,4,章 软件概要设计,2024/8/30,32,结束,返回,4.1.6,软件概要设计过程,风险:,即确认该软件设计在现有技术条件下和预算范围内,是否能按时实现,。,实用性:,即确认该软件设计对于需求的解决方案,是否实用,。,技术清晰度:,即确认该软件设计是否以一种易于,翻译成代码,的形式表达。,可维护性:,从软件维护的角度出发,确认该软件设计是否考虑了,方便未来的维护,。,第4章 软件概要设计2023/9/6,32,第,4,章 软件概要设计,2024/8/30,33,结束,返回,4.1.6,软件概要设计过程,质量:,即确认该软件设计是否表现出良好的,质量特征,。,各种选择方案:,看是否考虑过其它方案,比较各种选择方案的标准是什么。,限制:,评估对该软件的限制,是否现实,,是否与需求一致。,其它具体问题:,对于文档、可测试性、设计过程,.,等等进行评估。,第4章 软件概要设计2023/9/6,33,第,4,章 软件概要设计,2024/8/30,34,结束,返回,4.1.7,软件详细设计,在详细设计过程中,需要完成的工作是:,(1),确定软件各个组成部分内的算法以及各部分的,内部数据组织,。,(2),选定某种过程的表达形式来,描述各种算法,。,(3),针对数据库的逻辑设计进行物理设计,设计数据库模式的一些物理细节,,如数据项存储要求、存取方式、建立索引等。,(4),进行详细设计的,评审,第4章 软件概要设计2023/9/6,34,第,4,章 软件概要设计,2024/8/30,35,结束,返回,4.1.7,软件详细设计,在将需求转换为设计时判断设计好坏的三个特征:,设计,必须,实现分析模型中描述的所有显式需求,必须满足用户希望的所有,隐式需求,。,设计,必须,是可读的、可理解的,使得将来易于编程、易于测试、易于维护。,设计,应从,实现角度出发,给出与数据、功能、行为相关的软件全貌。,第4章 软件概要设计2023/9/6,35,第,4,章 软件概要设计,2024/8/30,36,结束,返回,4.2,软件设计的基本概念,在讲述本章内容时,会涉及到软件设计中的一些基本概念和基本原理,下面对这些基本概念和基本原理一一介绍。,第4章 软件概要设计2023/9/6,36,第,4,章 软件概要设计,2024/8/30,37,结束,返回,4.2.1,抽象化,(1),过程抽象,在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对,软件解决方案,的抽象化过程的一次细化。,而在从,概要设计到详细设计,的过程中,抽象化的层次逐次降低。当产生源程序时到达最低的抽象层次。,第4章 软件概要设计2023/9/6,37,第,4,章 软件概要设计,2024/8/30,38,结束,返回,4.2.1,抽象化,(2),数据抽象,数据抽象,与过程抽象一样,,允许设计人员在不同层次上描述数据对象的细节。,(3),控制抽象,与过程抽象和数据抽象一样,,控制抽象可以包含一个程序控制机制而无须规定其内部细节。控制抽象的例子就是在操作系统中用以协调某些活动的同步信号。,第4章 软件概要设计2023/9/6,38,第,4,章 软件概要设计,2024/8/30,39,结束,返回,4.2.2,自顶向下,逐步细化,将软件的体系结构按自顶向下方式,对各个层次的,过程细节和数据细节,逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的,体系结构,。,第4章 软件概要设计2023/9/6,39,第,4,章 软件概要设计,2024/8/30,40,结束,返回,4.2.3,模块化,软件系统的层次结构正是,模块化,的具体体现。就是说,整个软件被划分成若干单独命名和可编址的部分,称之为,模块,。,这些模块可以被,组装起来,以满足整个问题的需求。,把一个大而复杂的,软件系统,划分,成易于理解的比较单纯的,模块结构,。,第4章 软件概要设计2023/9/6,40,第,4,章 软件概要设计,2024/8/30,41,结束,返回,4.2.3,模块化,问题复杂性、开发工作量和模块数之间的关系,:,我们设,C(x),为问题,x,所对应的,复杂度函数,,,E(x),为解决问题,x,所需要的,工作量函数,。对于两个问题,P1,和,P2,,如果:,C(P1) C(P2),即问题,P1,的复杂度比,P2,高,则显然有:,E(P1) E(P2),即解决问题,P1,比,P2,所需的工作量大。,第4章 软件概要设计2023/9/6,41,第,4,章 软件概要设计,2024/8/30,42,结束,返回,4.2.3,模块化,另一个有趣的规律,如果:,C(P1+P2) C(P1)+C(P2),即解决由多个问题复合而成的大问题的复杂度大于单独解决各个问题的复杂度之和,则:,E(P1+P2) E(P1)+E(P2),即将复杂问题分解成若干个小问题,各个击破,所需要的工作量小于直接解决复杂问题所需的工作量。,第4章 软件概要设计2023/9/6,42,第,4,章 软件概要设计,2024/8/30,43,结束,返回,4.2.3,模块化,如果模块是相互独立的,当模块变得,越小,,每个模块花费的,工作量越低,;但当模块,数增加,时,模块间的,联系也随之增加,,把这些模块联接起来的,工作量也随之增加,。,如,图,4.10,所示,。因此,存在一个,模块个数,M,, 它使得总的,开发成本达到最小,。,第4章 软件概要设计2023/9/6,43,第,4,章 软件概要设计,2024/8/30,44,结束,返回,4.2.3,模块化,图,4.10,模块大小、模块数目与费用的关系,第4章 软件概要设计2023/9/6,44,第,4,章 软件系统设计,2024/8/30,45,结束,返回,练习题:,P101 1,,,2,第4章 软件系统设计2023/9/6,45,第,4,章 软件概要设计,2024/8/30,46,结束,返回,4.2.4,模块独立性,模块的基本属性:,功能:,即指该模块实现什么功能;,逻辑:,即描述模块内部怎么做;,状态:,即该模块使用时的环境和条件。,在描述一个模块时,还必须按模块的外部特性与内部特性分别描述。,外部特性:,模块的模块名、参数表、以及给程序以至整个系统造成的影响。,内部特性:,完成其功能的程序代码和仅供该模块内部使用的数据。,第4章 软件概要设计2023/9/6,46,第,4,章 软件概要设计,2024/8/30,47,结束,返回,4.2.4,模块独立性,软件系统中每个模块只涉及软件要求的具体的子功能,,而和软件系统中其它的模块的接口是简单的。见图,4.11,。,用两个准则度量模块独立性。即,模块间的耦合,和,模块的内聚,。,内聚性:,内聚是一个,模块内部各个元素,彼此结合的紧密程度的度量。,耦合性,:,耦合是,模块间互相连接,的紧密程度的度量。它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。,第4章 软件概要设计2023/9/6,47,第,4,章 软件系统设计,2024/8/30,48,结束,返回,模块的独立性是指软件系统中每个模块只,涉及软件要求的具体的子功能,而和软件系统,中其他模块的接口是简单的。,耦合,模块之间的,相对独立性,的度量。,内聚,模块功能强,度的度量。,4.2.4,模块独立性,图,4.11,模块独立性,第4章 软件系统设计2023/9/6,48,第,4,章 软件系统设计,2024/8/30,49,结束,返回,(1),模块,内聚,低,功能,内聚,信息,内聚,通信,内聚,过程,内聚,时间,内聚,逻辑,内聚,巧合性内聚,高,强,弱,内聚,性,模块独立性,图,4.12,内聚,性,模块,内聚分为,7,级,:,第4章 软件系统设计2023/9/6,49,第,4,章 软件系统设计,2024/8/30,50,结束,返回,M STORE RECN() TO N,READ MASTER FILE,ADD 1 TO X,。 。,A,B,C,当模块内各部之间没有联系,或者即使有联,系,这种联系也很松散。则称这种模块为偶然内,聚模块。,偶然性内聚,图,4.13,偶然内聚,第4章 软件系统设计2023/9/6,50,第,4,章 软件系统设计,2024/8/30,51,结束,返回,这种模块是把几种功能组合在一起,每次调用,时,则由传递给模块的判定参数来确定该模块应执,行哪一种功能。,调用模块,判定,读,一,个,记,录,写,一,个,记,录,被调用模块,逻辑性内聚,图,4.14,逻辑性内聚,第4章 软件系统设计2023/9/6,51,第,4,章 软件系统设计,2024/8/30,52,结束,返回,这种模块能完成多个功能,各个功能都在同,一数据结构上操作,每一项功能有一个唯一的入,口点。,数据表,查找,登录,删除,修改,信息性内聚,图,4.15,逻辑性内聚,第4章 软件系统设计2023/9/6,52,第,4,章 软件系统设计,2024/8/30,53,结束,返回,如果一个模块内所有成分都完成一个功能,则称这样的模块为功能模块。,主控模块,录入,查询,打印,低,功能,内聚,信息,内聚,通信,内聚,过程,内聚,时间,内聚,逻辑,内聚,巧合性内聚,高,强,弱,内聚,性,模块独立性,功能性内聚,图,4.16,功能性内聚,第4章 软件系统设计2023/9/6,53,第,4,章 软件系统设计,2024/8/30,54,结束,返回,耦合性是程序结构中各个模块之间相互关联的度量,它取决于各个模块之间接口的复杂程度、调用模块的方,式以及那些信息通过接口。,低,非直接,耦合,数据,耦合,标记,耦合,控制,耦合,外部,耦合,公共,耦合,内容,耦合,高,弱,强,耦合性,模块独立性,(2),模块间的耦合,图,4.17,耦合性,第4章 软件系统设计2023/9/6,54,第,4,章 软件系统设计,2024/8/30,55,结束,返回,(2),模块间的耦合,非直接耦合,两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。,非直接耦合的,模块独立性最强。,主模块,A,B,C,E,F,G,X,Y,Z,图,4.18,非直接耦合,第4章 软件系统设计2023/9/6,55,第,4,章 软件系统设计,2024/8/30,56,结束,返回,(2),模块间的耦合,数据耦合,:,一个模块访问另一个模块时,彼此之间是通过,简单数据参数,(,不是控制参数、公共数据结构或外部变量,),来交换输入、输出信息的。,标记耦合,:,一组模块通过,参数表,传递记录信息,就是标记耦合。这个记录是某一,数据结构的子结构,,而不是简单变量。,第4章 软件系统设计2023/9/6,56,第,4,章 软件系统设计,2024/8/30,57,结束,返回,(2),模块间的耦合,控制耦合,如果一个模,块通过传送,开,关、标志、名,字等控制参数,,,明显地控制选,择另一模块的,功能,就是控,制耦合。,Flag,Flag,f,1,f,2,f,n,图,4.19,控制耦合,第4章 软件系统设计2023/9/6,57,第,4,章 软件系统设计,2024/8/30,58,结束,返回,(2),模块间的耦合,外部耦合,:,一组模块都访问,同一全局简单变量,而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为,外部耦合。,公共耦合,:,若一组模块都访问,同一个公共数据环境,,则它们之间的耦合就称为,公共耦合,。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。,第4章 软件系统设计2023/9/6,58,第,4,章 软件系统设计,2024/8/30,59,结束,返回,(2),模块间的耦合,公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是,两模块间,有公共数据环境,则公共耦合有两种情况。,松散公共耦合和紧密公共耦合。,common,公共数据区,A,B,common,公共数据区,A,B,松散的公共耦合,紧密的公共耦合,图,4.20,第4章 软件系统设计2023/9/6,59,第,4,章 软件系统设计,2024/8/30,60,结束,返回,(2),模块间的耦合,内容耦合,如果发生下列情形,两个模块之间就发生了内容耦合,:,一个模块直接访问另一个模块的内部数据,一个模块不通过正常入口转到另一模块内部,两个模块有一部分程序代码重迭,(,只可能出现在汇编语言中,),一个模块有多个入口,第4章 软件系统设计2023/9/6,60,第,4,章 软件系统设计,2024/8/30,61,结束,返回,4.2.5,控制层次,控制层次也叫做,程序结构,,它表明了程序构件(模块)的组织情况。控制层次往往用程序的层次(,树形或网状,),结构来表示,。,位于最上层根部是顶层模块,它是程序的,主模块,。与其联系的有若干,下属模块,,各下属模块还可以进一步引出更下一层的,下属模块,。如下图所示。,第4章 软件系统设计2023/9/6,61,第,4,章 软件系统设计,2024/8/30,62,结束,返回,图,4.21,程序的层次结构图示例,4.2.5,控制层次,(1),程序结构的深度,程序结构的,层次数,称为结构的,深度,。结构的深度在一定意义上反映了程序结构的规模和复杂程度。,(2),程序结构的宽度,层次结构中,同一层模块的最大模块个数,称为结构的,宽度,。,(3),模块的扇入和扇出,扇出,表示,一个模块直接调用,(或控制)的其它,模块数目。,扇入,则定义为,调用,(或控制)一个给定模块的模块个数。,多扇出,意味着需要控制和协调许多下属模块。而,多扇入,的模块通常是公用模块。,第4章 软件系统设计2023/9/6,62,第,4,章 软件系统设计,2024/8/30,63,结束,返回,4.2.5,控制层次,(4),结构划分,程序结构可以按,水平方向,或,垂直方向,进行划分。,水平划分,按主要的程序功能来定义模块结构的,各个分支,。顶层模块是控制模块,用来协调程序各个功能之间的通信和运行。其下级模块的最简单的水平划分方法是建立三个分支:,输入、处理(数据变换)和输出。,垂直划分,也叫做,因子划分,。主要用在程序的体系结构中,且工作自顶向下逐层分布:顶层模块执行控制功能,少做实际处理工作,而低层模块是实际,输入、计算和输出的具体执行者,。,第4章 软件系统设计2023/9/6,63,第,4,章 软件系统设计,2024/8/30,64,结束,返回,4.2.6,数据结构,数据结构,是数据的各个元素之间的逻辑关系的一种表示。,数据结构设计,应确定数据的组织、存取方式、相关程度、以及信息的不同处理方法。,数据结构的组织方法和复杂程度,可以灵活多样,但典型的数据结构种类是有限的,它们是构成一些更复杂结构的,基本构件块,。,第4章 软件系统设计2023/9/6,64,第,4,章 软件系统设计,2024/8/30,65,结束,返回,4.2.6,数据结构,图,4.22,典型的数据结构,第4章 软件系统设计2023/9/6,65,第,4,章 软件系统设计,2024/8/30,66,结束,返回,4.2.7,软件过程,软件过程着重描述各个模块的处理细节。,软件过程必须提供精确的处理说明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。,程序结构与软件过程是有关系的,。对每个模块的处理必须指明该模块所在的上下级环境。软件过程遵从程序结构的主从关系,因此它也是层次化的。,下图是一个模块内的软件过程。,第4章 软件系统设计2023/9/6,66,第,4,章 软件系统设计,2024/8/30,67,结束,返回,4.2.7,软件过程,图,4.23,一个模块内的软件过程,第4章 软件系统设计2023/9/6,67,第,4,章 软件系统设计,2024/8/30,68,结束,返回,4.2.8,信息隐蔽,信息隐蔽,是指,每个模块的实现细节对于其它模块来说是隐蔽的。就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。,通过信息隐蔽,,则可定义和实施对模块的过程细节和局部数据结构的存取限制。,第4章 软件系统设计2023/9/6,68,第,4,章 软件系统设计,2024/8/30,69,结束,返回,4.3,体系结构设计,4.3.1,体系结构设计,的工具,HIPO(Hierarchy Plus Input/Processing/Output),图是,IBM,公司在,20,世纪,70,年代发展起来的用于描述,软件结构,的图形工具。它实质上是在描述软件总体模块结构的,层次图,(H,图,),的基础上,加入了用于描述每个模块输入,/,输出数据和处理功能的,IPO,图,因此它的中文全名为,层次图加输入,/,处理,/,输出图,。,(1) HIPO,图,第4章 软件系统设计2023/9/6,69,第,4,章 软件系统设计,2024/8/30,70,结束,返回,图,4.24,工资计算系统的,H,图, HIPO,图中的,H,图,H,图,用于在体系结构设计过程中描绘软件的,层次结构,。在,H,图中,每一个矩形框代表一个模块,图中最顶层的矩形框表示系统中的,主控模块,,矩形框之间的连线用于表示模块之间的,调用关系,。,为了使,H,图更具有可追踪性,可以为除顶层矩形框以外的其他矩形框加上能,反映层次关系的编号,。,H,图比较适用于,自顶向下进行分解,的软件结构设计方法。,工资计算系统的,H,图如图,4.24,所示。,第4章 软件系统设计2023/9/6,70,第,4,章 软件系统设计,2024/8/30,71,结束,返回,4.3.1,体系结构设计,的工具, IPO,图,IPO,图,能够方便、清晰地描绘出模块的,输入数据、加工和输出数据之间的关系,。与层次图中每个矩形框相对应,应该有一张,IPO,图描述该矩形框所代表的模块的具体处理过程,作为对层次图中内容的补充说明。,第4章 软件系统设计2023/9/6,71,第,5,章 软件系统设计,2024/8/30,72,结束,返回,5.3.1,体系结构设计,的工具, IPO,图,图,4.25,计算工资模块的,IPO,图,IPO,图的基本形式为,:在图中左边的框中列出模块涉及的所有,输入数据,,在中间的框中列出主要的,加工,,在右边的框中列出处理后产生的,输出数据,;图中的,箭头,用于指明输入数据、加工和输出结果之间的,关系,。,工资计算系统中的计算工资模块的,IPO,图如图,4.25,所示。,第5章 软件系统设计2023/9/6,72,第,4,章 软件系统设计,2024/8/30,73,结束,返回,4.3.1,体系结构设计,的工具,(2),结构图,在软件工程中,软件结构经常采用,20,世纪,70,年代中期由,Yourdon,等人提出的,结构图,(SC,,,Structure Chart),这种图形工具来表示。,结构图,能够描述出软件系统的模块,层次结构,,清楚地反映出程序中各模块之间的调用关系和联系。结构图中的基本符号及其含义,见表,4.1,。,第4章 软件系统设计2023/9/6,73,第,4,章 软件系统设计,2024/8/30,74,结束,返回,表,4.1,结构图中的基本符号,A,B,C,A,B,C,符 号,含 义,用于表示模块,方框中标明模块的名称,用于描述模块之间的调用关系,用于表示模块调用过程中传递的信息,箭头上标明信息的名称;箭头尾部为,空心圆,表示传递的信息是数据,若为,实心圆,则表示传递的是控制信息,表示模块,A,选择调用模块,B,或模块,C,表示模块,A,循环调用模块,B,和模块,C,第4章 软件系统设计2023/9/6,74,第,4,章 软件系统设计,2024/8/30,75,结束,返回,4.3.3,体系结构设计说明书,体系结构设计说明书是体系结构设计阶段中最重要的,技术文档,,其主要,内容应包括,:,(1),引言,:用于说明编写本说明书的目的、背景,定义所用到的术语和缩略语,以及列出文档中所引用的参考资料等。,(2),总体设计,:用于说明软件的需求规定、运行环境要求、处理流程及软件体系结构等。,(3),运行设计,:用于说明软件的运行模块组合、运行控制方式及运行时间等。,第4章 软件系统设计2023/9/6,75,第,4,章 软件系统设计,2024/8/30,76,结束,返回,4.3.3,体系结构设计说明书,(4),模块设计,:用于说明软件中各模块的功能、性能及接口等。,(5),数据设计,:用于说明软件系统所涉及的数据对象的逻辑数据结构的设计。,(6),出错处理设计,:用于说明软件系统可能出现的各种错误及可采取的处理措施。,第4章 软件系统设计2023/9/6,76,第,4,章 软件系统设计,2024/8/30,77,结束,返回,结构化设计,(SD,Structure Design),方法是基于,模块化、自顶向下细化、结构化程序设计,等程序设计技术基础发展起来的。,它所提供的方法和原则,主要是用来指,导软件的,概要设计,。它还提供了一种,“结构,图”,的描述工具,是专门用来描述软件的总,体结构的。,4.4,面向数据流,设计方法,(SD),结构化设计方法,第4章 软件系统设计2023/9/6,77,第,4,章 软件系统设计,2024/8/30,78,结束,返回,该方法实施的步骤是:,首先,研究、分析和审查数据流图。,从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。,然后,根据数据流图确定数据处理的类型,。典型的类型有两种:,变换型,和,事务型,。针对两种不同类型分别进行分析处理。,结构化设计方法,第4章 软件系统设计2023/9/6,78,第,4,章 软件系统设计,2024/8/30,79,结束,返回,由数据流图推导,出系统的初始结构图。,利用一些启发式原则,改进系统初始结构图,,直到得到符合要求的结构图为止。,修改和补充,数据词典,。,制定,测试计划,。,结构化设计方法,第4章 软件系统设计2023/9/6,79,第,4,章 软件系统设计,2024/8/30,80,结束,返回,4.4,面向数据流,设计方法,(SD),面向数据流,属于,结构化设计的设计方法。,在软件的需求分析阶段,数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端到输出端,要经历一系列的变换或处理。用来表现这个过程的数据流图,(DFD),实际上就是软件系统的逻辑模型。,第4章 软件系统设计2023/9/6,80,第,4,章 软件系统设计,2024/8/30,81,结束,返回,面向数据流的设计要解决的任务,就是在上述需求分析的基础上,将,DFD,图,映射成,软件系统结构图,SC,图。,换句话说,这类设计方法,允许把用,DFD,图表示的系统逻辑模型,很方便地转换成对于软件结构的初始设计描述。,在结构化设计方法中,我们一律用,SC,图来描述软件系统的结构。,4.4,面向数据流,设计方法,(SD),第4章 软件系统设计2023/9/6,81,第,4,章 软件系统设计,2024/8/30,82,结束,返回,目标系统的,DFD,SC,图,-Structured Chart,该图常用来表示系统的,软件结构,。,利用它可以清楚地表达软件结构中,模块间的层次调用关系和模块之间的联系。,SD,目标系统的,SC,图,4.21,面向数据流,设计,4.4,面向数据流,设计方法,(SD),第4章 软件系统设计2023/9/6,82,第,4,章 软件系统设计,2024/8/30,83,结束,返回,SC,图中的主要内容,A,1,、,模块,-SC,图中用,矩形框,表示,并用名字来标记,模块调用关系,2,、,模块的调用关系和接口,B,调用模块,调用模块,A,(,查询学生,),B,(,查找学生记录,),数据信号,控制信号,学,号,查找成功信号,模块间接口的表示,图,4.22,SC,图,第4章 软件系统设计2023/9/6,83,第,4,章 软件系统设计,2024/8/30,84,结束,返回,SC,图的一般格式,产生最佳解,得到好的输入,计算最佳解,输出结果,读输入,编辑输入,好输入,好,输,入,解,解,原始,输入,原始,输入,编辑,结果,结果格式化,显示结果,解,格式化,的解,图,4.23,SC,图一般格式,第4章 软件系统设计2023/9/6,84,第,4,章 软件系统设计,2024/8/30,85,结束,返回,思考题,:,你的目标系统中的体系结构(系统层次结构)和数据库如何设计。,第4章 软件系统设计2023/9/6,85,第,4,章 软件系统设计,2024/8/30,86,结束,返回,4.4.1,典型的系统结构形式,(1),系统结构图中的模块,原子模块,:,在系统结构图中通常是指不能再分,割的底层模块,完全因子分解系统,如果一个软件系统,它的全部实际加工,(,即数据计算或处理,),都是由底层的原子模块来,完成,而其它所有非原子模块仅仅执行控制或,协调功能。,第4章 软件系统设计2023/9/6,86,第,4,章 软件系统设计,2024/8/30,87,结束,返回,(1),系统结构图中的模块,在系统结构图中有四种类型的模块:,传入模块,成绩,处理,成绩录入,从下属模块取得数据,进行某些处理,再将结果传给上级模块。将它传送的数据流称为逻辑输入数据流。,传入模块,A,A,逻辑输,入数据流,图,4.24,传入模块,第4章 软件系统设计2023/9/6,87,第,4,章 软件系统设计,2024/8/30,88,结束,返回,(1),系统结构图中的模块,传出模块,从上级模块获得数据,进行某些处理,再将其结果传给下属模块。在此,将它传送的数据流称为逻辑输出,数据流。,成绩,处理,成绩输出,传出模块,D,逻辑输,出数据流,D,图,4.25,传出模块,第4章 软件系统设计2023/9/6,88,第,4,章 软件系统设计,2024/8/30,89,结束,返回,(1),系统结构图中的模块,变换模块,也叫加工模块。,它是从上级模块获得,数据,进行特定的处,理,将其转换为其他,形式,再传回上级模,块它所加工的数据流,叫做变换数据流。,变换模块,C,B,变换,数据流,审查并,开发票,发票,购书单,图,4.26,变换模块,第4章 软件系统设计2023/9/6,89,第,4,章 软件系统设计,2024/8/30,90,结束,返回,(1),系统结构图中的模块,协调模块,对所有下属模块进行协调和管理的模块。,在一个好的系统结构图中,协调模块应在较高,层出现。,协调模块,Y,X,Y,X,图,4.27,协调模块,第4章 软件系统设计2023/9/6,90,第,4,章 软件系统设计,2024/8/30,91,结束,返回,(2),变换型系统结构图,变换型数据处理问题的工作过程大致分为三步,即,取得数据,,,变换数据,和,给出数据,。,相应于取得数据、变换数据、给出数据,,变换型系统结构图,由,输入,、,中心变换,和,输出,等三部分组成。,第4章 软件系统设计2023/9/6,91,第,4,章 软件系统设计,2024/8/30,92,结束,返回,(2),变换型系统结构图,图,4.28,具有变换型数据流图,取得,数据,i,a,e,o,变换,数据,给出,数据,传入部分,变换中心,传出部分,第4章 软件系统设计2023/9/6,92,第,4,章 软件系统设计,2024/8/30,93,结束,返回,(2),变换型系统结构图,取得,数据,C,D,变换,数据,给出,数据,DFD-SC,第4章 软件系统设计2023/9/6,93,第,4,章 软件系统设计,2024/8/30,94,结束,返回,(2),变换型系统结构图,主模块,C,变换成,D,取得,C,给出,D,取得,B,B,变换成,C,D,变换成,E,给出,E,取得,A,A,变换成,B,A,A,B,B,B,C,C,D,C,D,E,D,协调模块,变换模块,传出模块,图,4.29,具有变换型系统结构图,第4章 软件系统设计2023/9/6,94,第,4,章 软件系统设计,2024/8/30,95,结束,返回,(3),事务型系统结构图,它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。,在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。,每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干细节模块。,第4章 软件系统设计2023/9/6,95,第,4,章 软件系统设计,2024/8/30,96,结束,返回,(3),事务型系统结构图,“,事务,”,引起、触发或启动某一,动作或一串动作的任何数据,、控制信号、事件或状态的,变化。,由它接受一项事务,根据事务处理的特点和性质,选择分配一个适当的处理单元,然后给出结果。,第4章 软件系统设计2023/9/6,96,第,4,章 软件系统设计,2024/8/30,97,结束,返回,(3),事务型系统结构图,输入,1,A,B,C,3,D,E,F,G,H,2,4,5,6,7,中心变换,输出,逻辑,输入,物理,输入,逻辑,输出,物理,输出,图,4.30,事务型 数据流图,第4章 软件系统设计2023/9/6,97,第,4,章 软件系统设计,2024/8/30,98,结束,返回,(3),事务型系统结构图,图,4.31,事务型,数据流图,(DFD),1,A,B,C,3,D,E,F,G,H,2,4,5,6,7,第4章 软件系统设计2023/9/6,98,第,4,章 软件系统设计,2024/8/30,99,结束,返回,(3),事务型系统结构图,图,4.32,事务型,数据流图,(SC),M,T,3,逻辑输入,逻辑输出,C,D,C,D,E,F,4,5,6,第4章 软件系统设计2023/9/6,99,第,4,章 软件系统设计,2024/8/30,100,结束,返回,(3),事务型系统结构图,事务中心,输入已分,析的作业,内部表示的作业,结果,图,4.33,事务型,系统结构,(,层次,),图,输出结果,调度,作业,信息,读入作业,分析作业,事务,1,事务,2,事务,3,事务,4,操作,2,操作,3,操作,4,操作,5,操作,6,操作,1,细节,2,细节,3,细节,4,细节,5,细节,6,细节,1,细节,7,结果,第4章 软件系统设计2023/9/6,100,第,4,章 软件系统设计,2024/8/30,101,结束,返回,(3),事务型系统结构图,图,4.34,简化的,事务型,系统结构图,事务中心,得到作业,作业,结果,输出结果,分析,调度,事务,1,事务,2,事务,3,第4章 软件系统设计2023/9/6,101,第,4,章 软件系统设计,2024/8/30,102,结束,返回,4.4.2,从,DFD,图导出,SC,图的步骤,开 始,细化修改,SRS,中,的,DFD,图,判断,DFD,图的结构类型,是变换型吗?,F,事务分析,变换分析,完善,SC,图,T,对最终的,SC,图进行评审,结束,图,4.35,DFD,图导出,SC,图的流程图,第4章 软件系统设计2023/9/6,102,第,4,章 软件系统设计,2024/8/30,103,结束,返回,变换分析,-,将具有,变换型,的,DFD,图导出为,SC,图,变换,分析,从物理输入、物理输出及变换中心进,行由顶向下的分解得出各个分支的所有组,成模块。,在数据流图上区分系统的逻辑输入、,逻辑输出和变换中心部分,并标出它们的,分界。,进行一级分解,设计系统模块结构的,顶层和第一层。,进行二级分解,设计中、下层模块。,(1),变换分析,第4章 软件系统设计2023/9/6,103,第,4,章 软件系统设计,2024/8/30,104,结束,返回,(1),变换分析,在,DFD,图上标出逻
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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