需求分析解决系统做什么总体设计解决系统怎样做.ppt

上传人:sccc 文档编号:5493660 上传时间:2023-07-13 格式:PPT 页数:74 大小:673.51KB
返回 下载 相关 举报
需求分析解决系统做什么总体设计解决系统怎样做.ppt_第1页
第1页 / 共74页
需求分析解决系统做什么总体设计解决系统怎样做.ppt_第2页
第2页 / 共74页
需求分析解决系统做什么总体设计解决系统怎样做.ppt_第3页
第3页 / 共74页
需求分析解决系统做什么总体设计解决系统怎样做.ppt_第4页
第4页 / 共74页
需求分析解决系统做什么总体设计解决系统怎样做.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《需求分析解决系统做什么总体设计解决系统怎样做.ppt》由会员分享,可在线阅读,更多相关《需求分析解决系统做什么总体设计解决系统怎样做.ppt(74页珍藏版)》请在三一办公上搜索。

1、2023/7/13,1,第五章 总体设计,软件工程(Software Engineering),2023/7/13,2,总体设计,需求分析解决:系统做什么?总体设计解决:系统怎样做?,2023/7/13,3,总体设计,总体设计(Summary Design)又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素程序(Program)、文件(File)、数据库(Dada base)、人工过程和文档(Document)等等,但是每个物理元素仍然处于黑盒子(Black Box)级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是:设计软件的结构 确定系统中每个程

2、序是由哪些模块组成 确定模块相互间的关系,前一页,2023/7/13,4,设计过程 设计原理 启发式规则 描述软件结构的图形工具 面向数据流的设计方法,本章主要内容,前一页,2023/7/13,5,总体的设计过程,总体设计过程分为两个阶段系统设计阶段:确定系统的实现方案结构设计阶段:确定软件结构,2023/7/13,6,前一页,总体的设计过程,设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档审核和复审,2023/7/13,7,前一页,总体的设计过程,设想供选择的方案,分析员考虑各种可能的实现方案(Project),并且力求从中选出最佳方

3、案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,可以从需求分析得到的数据流图入手。常用的方法是:设想在数据流图中处理分组的各种可能的方法,抛弃在技术上行不通的方法,余下的方法作为可能实现的策略,并且可以启发供选择的物理系统。,2023/7/13,8,前一页,总体的设计过程,选取合理方案,从上一步提供的方案中选取,至少选取低成本、中等成本和高成本的三种方案。对每个合理的方案分析员都应该准备下列四份资料:,(1)系统流程图(2)组成系统的物理元素的清单(3)成本/效益分析(4)实现这个系统的进度计划,2023/7/13,9,前一页,总体的设计过程,推荐最佳

4、方案,分析员应该综合分析对比各种合理的方案,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。用户和有关的技术专家审查推荐的最佳系统,如果确定该系统符合用户的需要,并且是在现有条件下完全能够实现的,则请使用部门负责人进一步审批。在接受分析员所推荐的方案之后,系统设计完成,进入总体设计过程的下一个重要阶段结构设计。,2023/7/13,10,前一页,总体的设计过程,功能分解,为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:,结构设计(Structure Design):是总体设计阶段的任务,确定程序由那些

5、模块组成,以及这些模块之间的关系。,过程设计(Process Design):是详细设计阶段的任务,确定每个模块的处理过程。,2023/7/13,11,功能分解,为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。功能分解导致数据流图进一步细化,同时使用图形工具描述算法。,2023/7/13,12,前一页,总体的设计过程,设计软件结构,即结构设计,包括确定系统各模块间的关系。通常程序中的一个模块完成一个适当的子功能,而一个程序包含若干个模块,因此考虑把模块组织成良好的层次系统。顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模

6、块完成最具体的功能。,2023/7/13,13,设计软件结构,顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构可以用层次图或结构图表示。有些软件的结构可以通过细化的数据流图映射得到。,2023/7/13,14,前一页,总体的设计过程,数据库设计,对于需要使用数据库的系统,工程师需要对数据库进行设计。,2023/7/13,15,前一页,总体的设计过程,制定测试计划,在软件开发的早期阶段考虑测试(Testing)问题,能促使软件设计人员在设计时注意提高软件的可测试性。,2023/7/13,16,前一页,总体

7、的设计过程,书写文档,1.系统说明 2.用户手册 3.测试计划 4.详细的实现计划 5.数据库设计结果,2023/7/13,17,前一页,总体的设计过程,审核和复审,最后应该对总体设计的结果进行严格的技术审查,通过之后再由使用部门从管理和应用的角度进行复审。,2023/7/13,18,软件设计的概念和原理,模块化 抽象 逐步求精信息隐蔽和局部化 模块独立,前一页,主要内容,2023/7/13,19,前一页,软件设计的概念和原理,模块化,模块(Modular)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这

8、些模块集总起来组成一个整体,可以完成指定的功能满足问题的要求。,2023/7/13,20,前一页,软件设计的概念和原理,模块化,设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间),对于两个问题p1和p2,If C(p1)C(p2)Then E(p1)E(p2)C(p1p2)C(P1)+C(p2)E(p1p2)E(p1)+E(p2),2023/7/13,21,前一页,模块化与软件成本,2023/7/13,22,前一页,软件设计的概念和原理,抽 象,人类在认识复杂现象的过程中使用的最强有力的思维工具抽象(Abstract)。人们在实践中认识到,在现实世界中一定事物、

9、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。,2023/7/13,23,抽 象,处理复杂系统的唯一有效的方法是用层次的方式构造和分析它。,2023/7/13,24,逐步求精,逐步求精和模块化的概念,与抽象是密切相关的。如软件工程的每一步都是对软件解法的抽象层次的一次精化。可行性分析阶段,软件作为完整的部件;需求阶段,软件解法使用熟悉的问题描述;从总体设计到详细设计,抽象程度降低,逐步精化。抽象与求精互补。,2023/7/13,25,逐步求精,定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。原因:人类认知过程的局限

10、Miller法则 一个人在任何时候都只能把注意力集中在(7+2)个知识块上。逐步求精的效果,把注意力集中在与当前开发最相关的问题上,忽略暂时不需要考虑的细节。,2023/7/13,26,前一页,软件设计的概念和原理,信息的隐蔽和局部化,信息隐藏:使得一个模块内包括的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近。“隐蔽”(Hiding)意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。,2023/7/13,27,前一页,模块独立,模块独立(Independenc

11、e)的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。模块独立性的优点:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。,2023/7/13,28,模块独立,模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合,内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。,2023/7/13,29,前一页,软件设计的概念和原理,模块独立 耦合,耦合(Coupling)耦合是对一个软件结构内不同模块之间互联程度的

12、度量。在软件设计时应该追求松散耦合的系统。如果两个模块中的每一个都能独立地工作而不需要另一个模块地存在,那么它们彼此完全独立,这意味着模块间无任何连接,耦合程度最低。,2023/7/13,30,前一页,几种类型的耦合,模块独立 耦合,数据耦合(Data Coupling):如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。控制耦合(Control Coupling):如果传递的信息中有控制信息,则这种耦合称为控制耦合。,数据耦合是低耦合。系统必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有价值的功能。,2023/7/

13、13,31,前一页,模块独立 耦合,公共环境耦合(Common Coupling):当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。内容耦合(Contain Coupling):最高程度的耦合是内容耦合。,原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。,几种类型的耦合,2023/7/13,32,前一页,软件设计的概念和原理,模块独立 内聚,内聚(Cohesion),内聚是一个模块内各个元素彼此结合的紧密程度。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的。内聚和耦合密切相关,模块内的高内聚意味着模块间的松耦合。,按程

14、度分类:低内聚 中内聚 高内聚,2023/7/13,33,前一页,模块独立 内聚,低内聚 有如下几类:偶然内聚、逻辑内聚、时间内聚,偶然内聚(Coincidental Cohesion):模块中,元素之间没有实质的联系,在不同的场合需要做不同的修改,导致出错概率高。逻辑内聚(Logical Cohesion):模块中,不同功能混在一起,合用部分程序代码,局部修改会影响全局,导致修改困难。时间内聚(Temporal Cohesion):模块中,各处理单元必须在一个有限的时间间隔内执行完成。,几种类型的内聚,2023/7/13,34,前一页,模块独立 内聚,中内聚 主要有两类:过程内聚(Proce

15、dural Cohesion)需要按特定顺序执行模块内的处理元素的称为过程内聚。通信内聚(Communication Cohesion)模块中所有元素都使用同一个输入数据或输出同一个数据,称为通信内聚。,几种类型的内聚,2023/7/13,35,前一页,模块独立 内聚,高内聚 也有两类:顺序内聚 功能内聚,顺序内聚(Sequential Cohesion)模块中一个处理单元的输出是另一个处理单元的输入。功能内聚(Functional Cohesion)模块中所有处理单元共同完成同一功能。功能内聚是最高程度的内聚。,几种类型的内聚,2023/7/13,36,前一页,软件设计的概念和原理,模块独立

16、 内聚,高内聚 也有两类:顺序内聚、功能内聚。对内聚的参考评价:功能内聚 10分 时间内聚 3分 顺序内聚 9分 逻辑内聚 1分 通信内聚 7分 偶然内聚 0分 过程内聚 5分,2023/7/13,37,启发式规则,改进软件结构提高模块独立性模块规模应该适中 深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内 尽量降低模块接口的复杂程度 设计单入口出口的模块 模块功能应该可以预测,前一页,主要内容,2023/7/13,38,图形工具,层次图和HIPO图 结构图,前一页,主要内容,2023/7/13,39,前一页,图形工具,层次图,层次图 用来描绘软件的层次结构,层次图适合于在自顶向下设计

17、软件的过程中使用。,2023/7/13,40,层次图,层次图和层次方框图的区别层次图中一个矩形表示一个模块,矩形框之间的连线表示调用关系层次方框图一个矩形表示一个数据集合,矩形框之间的连线表示数据的层次,2023/7/13,41,前一页,正文加工系统的层次图,2023/7/13,42,HIPO图,HIPO图 是美国IBM公司发明的层次图加“输入处理输出图”的英文缩写为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。和H图中每个方框对应,有一张IPO图描绘该模块的处理过程。,2023/7/13,43,前一页,带编号的层次图(H图),2023/7/13,4

18、4,前一页,结构图,Yourdon提出的进行软件结构设计的有力工具。图中方框代表模块,方框之间的箭头/连线表示模块的调用关系。用带注释的箭头表示模块调用过程中传递的信息。并可以用箭头尾部的形状来区分传递信息的种类:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。,2023/7/13,45,前一页,产生最佳解的结构图,2023/7/13,46,前一页,判定为真时调用A为假时调用B,M循环调用A、B、C,2023/7/13,47,层次图和结构图,层次图和结构图并没有表示出模块的调用次序。同时两种图也没有指明什么时候调用下层模块。,2023/7/13,48,面向数据流的设计方法,前一页,面

19、向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。在软件工程的需求分析阶段,信息流是一个关键,通常用数据流图描绘信息在系统中加工和流动的情况。面向数据流的设计方法即把数据流图变换成软件结构。通常所说的结构化设计方法(简称SD方法),也就是基于数据流的设计方法。,2023/7/13,49,面向数据流的设计方法,概念 变换分析事务分析设计优化,前一页,主要内容,2023/7/13,50,前一页,面向数据流的设计方法,概念 变换流,根据基本系统模型,信息通常以“外部世界”的形式进入软件系统,经过处理以后再以“外部世界”的形式离开系统。,2023/7/13,51,前一页,变换流图,2023

20、/7/13,52,概念 变换流,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。,2023/7/13,53,前一页,概念 事务流,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型再若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。,(1)接收输入数据(输入数据又称为事务);(2)分析每个事物以确定它的类型;(3)根据事物类型选取一条活动通道。,处理T称为事务中心,完成的任务:,2023/7/13,54,前一页,事 务 流

21、,2023/7/13,55,前一页,概念设计过程,2023/7/13,56,前一页,面向数据流的设计方法,变换分析设计,把具有变换流特点的数据流图按预先确定的模式映射成软件结构。,2023/7/13,57,前一页,面向数据流的设计方法,变换流分析设计,设计一个安装在汽车上的数字仪表板,功能如下:(1)通过模数转换实现传感器和微处理机接口;(2)在发光二极管面板上显示数据;(3)指示每小时英里数(mph),行驶的英里数(mpg),总里程等等;(4)指示加速或减速;(5)超速报警。,2023/7/13,58,前一页,面向数据流的设计方法,变换流分析设计,第1步 复查基本系统模型。第2步 复查并精化

22、数据流图。,2023/7/13,59,前一页,数字仪表板数据流图,2023/7/13,60,变换流分析设计,第3步 确定数据流图具有变换特性还是事务特性。上图中数据沿着两条输入通路进入系统,然后沿着5条通路离开,没有事务中心,所以是变换流。,2023/7/13,61,变换流分析设计,第4步 确定输入流和输出流的边界,从而孤立出变换中心。即在数据流图中画出输入、处理和输出。不同的设计人员可能会选取不同的点作为边界的位置。边界移动,对软件结构影响小。,2023/7/13,62,前一页,确定输入流和输出流的边界,2023/7/13,63,变换流分析设计,第5步 完成“第一级分解”。即在第4步的基础上

23、,将数据流图的各部分映射为初级的层次图。,2023/7/13,64,变换流分析设计,2023/7/13,65,前一页,2023/7/13,66,变换流分析设计,第6步 完成“第二级分解”。即将数据流图中每个处理都映射为一个模块方法:先从变换中心的边界沿着输入向外映射再从变换中心沿着输出向外映射最后映射变换中心的处理,2023/7/13,67,前一页,完成第二级的分解,2023/7/13,68,前一页,未经精化的结构图,2023/7/13,69,变换流分析设计,第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。,2023/7/13,70,前一页,精化的软件结构图,2023/7/13,71,面向事务流的设计方法,前一页,事务流的分析设计,事务分析的设计步骤和变换分析的设计步骤大部分相同或类似,主要差别仅在于由数据流图到软件结构的映射方法不同。,2023/7/13,72,前一页,事务流分析的映射方法,2023/7/13,73,前一页,设计优化,先使它动起来,再使它快起来。,2023/7/13,74,本章内容结束,前一页,回首页,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号