版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章总体设计软件工程(SoftwareEngineering)2/5/20231总体设计需求分析解决:系统做什么?总体设计解决:系统怎样做?2/5/20232总体设计总体设计(SummaryDesign)又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素——程序(Program)、文件(File)、数据库(Dadabase)、人工过程和文档(Document)等等,但是每个物理元素仍然处于黑盒子(BlackBox)级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是:设计软件的结构确定系统中每个程序是由哪些模块组成确定模块相互间的关系
前一页2/5/20233设计过程
设计原理
启发式规则
描述软件结构的图形工具
面向数据流的设计方法
本章主要内容前一页2/5/20234总体的设计过程总体设计过程分为两个阶段系统设计阶段:确定系统的实现方案结构设计阶段:确定软件结构2/5/20235前一页总体的设计过程设想供选择的方案
选取合理的方案
推荐最佳方案
功能分解
设计软件结构
数据库设计
制定测试计划
书写文档审核和复审
2/5/20236前一页总体的设计过程设想供选择的方案分析员考虑各种可能的实现方案(Project),并且力求从中选出最佳方案。在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,可以从需求分析得到的数据流图入手。常用的方法是:设想在数据流图中处理分组的各种可能的方法,抛弃在技术上行不通的方法,余下的方法作为可能实现的策略,并且可以启发供选择的物理系统。
2/5/20237前一页总体的设计过程选取合理方案
从上一步提供的方案中选取,至少选取低成本、中等成本和高成本的三种方案。对每个合理的方案分析员都应该准备下列四份资料:
(1)系统流程图(2)组成系统的物理元素的清单(3)成本/效益分析(4)实现这个系统的进度计划
2/5/20238前一页总体的设计过程推荐最佳方案
分析员应该综合分析对比各种合理的方案,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。用户和有关的技术专家审查推荐的最佳系统,如果确定该系统符合用户的需要,并且是在现有条件下完全能够实现的,则请使用部门负责人进一步审批。在接受分析员所推荐的方案之后,系统设计完成,进入总体设计过程的下一个重要阶段——结构设计。
2/5/20239前一页总体的设计过程功能分解
为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:结构设计(StructureDesign):是总体设计阶段的任务,确定程序由那些模块组成,以及这些模块之间的关系。
过程设计(ProcessDesign):是详细设计阶段的任务,确定每个模块的处理过程。2/5/202310功能分解
为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。功能分解导致数据流图进一步细化,同时使用图形工具描述算法。2/5/202311前一页总体的设计过程设计软件结构即结构设计,包括确定系统各模块间的关系。通常程序中的一个模块完成一个适当的子功能,而一个程序包含若干个模块,因此考虑把模块组织成良好的层次系统。顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。2/5/202312设计软件结构顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构可以用层次图或结构图表示。有些软件的结构可以通过细化的数据流图映射得到。2/5/202313前一页总体的设计过程数据库设计对于需要使用数据库的系统,工程师需要对数据库进行设计。2/5/202314前一页总体的设计过程制定测试计划在软件开发的早期阶段考虑测试(Testing)问题,能促使软件设计人员在设计时注意提高软件的可测试性。2/5/202315前一页总体的设计过程书写文档
1.系统说明2.用户手册3.测试计划4.详细的实现计划5.数据库设计结果
2/5/202316前一页总体的设计过程审核和复审
最后应该对总体设计的结果进行严格的技术审查,通过之后再由使用部门从管理和应用的角度进行复审。2/5/202317软件设计的概念和原理模块化
抽象
逐步求精信息隐蔽和局部化
模块独立
前一页主要内容2/5/202318前一页软件设计的概念和原理模块化
模块(Modular)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能满足问题的要求。
2/5/202319前一页软件设计的概念和原理模块化
设函数C(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间),对于两个问题p1和p2,IfC(p1)>C(p2)ThenE(p1)>E(p2)C(p1+p2)>C(P1)+C(p2)E(p1+p2)>E(p1)+E(p2)
2/5/202320前一页模块化与软件成本2/5/202321前一页软件设计的概念和原理抽象
人类在认识复杂现象的过程中使用的最强有力的思维工具抽象(Abstract)。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。2/5/202322抽象处理复杂系统的唯一有效的方法是用层次的方式构造和分析它。2/5/202323逐步求精逐步求精和模块化的概念,与抽象是密切相关的。如软件工程的每一步都是对软件解法的抽象层次的一次精化。可行性分析阶段,软件作为完整的部件;需求阶段,软件解法使用熟悉的问题描述;从总体设计到详细设计,抽象程度降低,逐步精化。抽象与求精互补。2/5/202324逐步求精定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。原因:人类认知过程的局限——Miller法则
一个人在任何时候都只能把注意力集中在(7+2)个知识块上。
逐步求精的效果,把注意力集中在与当前开发最相关的问题上,忽略暂时不需要考虑的细节。2/5/202325前一页软件设计的概念和原理信息的隐蔽和局部化
信息隐藏:使得一个模块内包括的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。局部化:把一些关系密切的软件元素物理地放得彼此靠近。
“隐蔽”(Hiding)意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。2/5/202326前一页模块独立
模块独立(Independence)的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。模块独立性的优点:第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。2/5/202327模块独立模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合,内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此间互相依赖(连接)的紧密程度。
2/5/202328前一页软件设计的概念和原理模块独立–耦合耦合
(Coupling)耦合是对一个软件结构内不同模块之间互联程度的度量。在软件设计时应该追求松散耦合的系统。如果两个模块中的每一个都能独立地工作而不需要另一个模块地存在,那么它们彼此完全独立,这意味着模块间无任何连接,耦合程度最低。2/5/202329前一页几种类型的耦合模块独立–耦合数据耦合
(DataCoupling):如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。控制耦合(ControlCoupling):如果传递的信息中有控制信息,则这种耦合称为控制耦合。
数据耦合是低耦合。系统必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有价值的功能。
2/5/202330前一页模块独立–耦合公共环境耦合
(CommonCoupling):当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。内容耦合(ContainCoupling):最高程度的耦合是内容耦合。原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。几种类型的耦合2/5/202331前一页软件设计的概念和原理模块独立–内聚内聚(Cohesion)
内聚是一个模块内各个元素彼此结合的紧密程度。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的。内聚和耦合密切相关,模块内的高内聚意味着模块间的松耦合。
按程度分类:低内聚中内聚高内聚2/5/202332前一页模块独立–内聚低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚
偶然内聚(CoincidentalCohesion):模块中,元素之间没有实质的联系,在不同的场合需要做不同的修改,导致出错概率高。
逻辑内聚(LogicalCohesion):模块中,不同功能混在一起,合用部分程序代码,局部修改会影响全局,导致修改困难。时间内聚(TemporalCohesion):模块中,各处理单元必须在一个有限的时间间隔内执行完成。几种类型的内聚2/5/202333前一页模块独立–内聚中内聚
主要有两类:
过程内聚(ProceduralCohesion)需要按特定顺序执行模块内的处理元素的称为过程内聚。
通信内聚(CommunicationCohesion)模块中所有元素都使用同一个输入数据或输出同一个数据,称为通信内聚。
几种类型的内聚2/5/202334前一页模块独立–内聚高内聚也有两类:顺序内聚
功能内聚
顺序内聚(SequentialCohesion)模块中一个处理单元的输出是另一个处理单元的输入。
功能内聚(FunctionalCohesion)模块中所有处理单元共同完成同一功能。
功能内聚是最高程度的内聚。几种类型的内聚2/5/202335前一页软件设计的概念和原理模块独立–内聚
高内聚
也有两类:顺序内聚、功能内聚。对内聚的参考评价:
功能内聚10分时间内聚3分顺序内聚9分逻辑内聚1分通信内聚7分偶然内聚0分过程内聚5分
2/5/202336启发式规则改进软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入应适当模块的作用域应在控制域之内尽量降低模块接口的复杂程度设计单入口出口的模块模块功能应该可以预测前一页主要内容2/5/202337图形工具层次图和HIPO图
结构图
前一页主要内容2/5/202338前一页图形工具层次图
层次图
用来描绘软件的层次结构,层次图适合于在自顶向下设计软件的过程中使用。
2/5/202339层次图层次图和层次方框图的区别层次图中一个矩形表示一个模块,矩形框之间的连线表示调用关系层次方框图一个矩形表示一个数据集合,矩形框之间的连线表示数据的层次2/5/202340前一页正文加工系统的层次图2/5/202341HIPO图HIPO图
是美国IBM公司发明的层次图加“输入/处理/输出图”的英文缩写为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。和H图中每个方框对应,有一张IPO图描绘该模块的处理过程。2/5/202342前一页带编号的层次图(H图)2/5/202343前一页结构图
Yourdon提出的进行软件结构设计的有力工具。图中方框代表模块,方框之间的箭头/连线表示模块的调用关系。用带注释的箭头表示模块调用过程中传递的信息。并可以用箭头尾部的形状来区分传递信息的种类:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。
2/5/202344前一页产生最佳解的结构图2/5/202345前一页判定为真时调用A为假时调用BM循环调用A、B、C2/5/202346层次图和结构图层次图和结构图并没有表示出模块的调用次序。同时两种图也没有指明什么时候调用下层模块。2/5/202347面向数据流的设计方法前一页面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。在软件工程的需求分析阶段,信息流是一个关键,通常用数据流图描绘信息在系统中加工和流动的情况。面向数据流的设计方法即把数据流图变换成软件结构。通常所说的结构化设计方法(简称SD方法),也就是基于数据流的设计方法。2/5/202348面向数据流的设计方法概念
变换分析事务分析设计优化
前一页主要内容2/5/202349前一页面向数据流的设计方法概念–变换流
根据基本系统模型,信息通常以“外部世界”的形式进入软件系统,经过处理以后再以“外部世界”的形式离开系统。2/5/202350前一页变换流图2/5/202351概念–变换流信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。2/5/202352前一页概念–事务流
数据沿输入通路到达一个处理T,这个处理根据输入数据的类型再若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。
(1)接收输入数据(输入数据又称为事务);(2)分析每个事物以确定它的类型;(3)根据事物类型选取一条活动通道。处理T称为事务中心,完成的任务:2/5/202353前一页事务流2/5/202354前一页概念设计过程2/5/202355前一页面向数据流的设计方法变换分析设计
把具有变换流特点的数据流图按预先确定的模式映射成软件结构。2/5/202356前一页面向数据流的设计方法变换流分析设计
设计一个安装在汽车上的数字仪表板,功能如下:(1)通过模-数转换实现传感器和微处理机接口;(2)在发光二极管面板上显示数据;(3)指示每小时英里数(mph),行驶的英里数(mpg),总里程等等;(4)指示加速或减速;(5)超速报警。2/5/202357前一页面向数据流的设计方法变换流分析设计第1步复查基本系统模型。第2步复查并精化数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 造型的表现力 课件 2024-2025学年人教版初中美术八年级上册
- 人教新目标Go For It!八年级上册 Unit 6 I'm going to study computer science. Section B
- 核电汽轮机的特点
- 常见慢性病的防治
- 2024年四川省宜宾市初二年级学业水平考试地理试卷含答案
- 2014年大输液行业市场分析报告
- 2024至2030年中国成套电控装置数据监测研究报告
- 2013-2016年中国那曲电信移动市场发展状况分析研究报告
- 2024至2030年中国喷油嘴检测清洗仪数据监测研究报告
- 2024至2030年中国单人温步机数据监测研究报告
- 送货简易合同范本(2篇)
- 七年级上册音乐教案 人音版
- 某小区住宅楼工程施工组织设计方案
- 3-4单元测试-2024-2025学年统编版语文六年级上册
- 2025届湖北省武汉市新洲一中阳逻校区高二上数学期末学业水平测试模拟试题含解析
- 2024-2030年中国滨海旅游行业发展分析及投资战略研究咨询报告
- 八年级物理第一次月考卷(考试版A3)(辽宁专用人教版2024第1~3章第2节)
- 小学高年级课后服务 scratch3.0编程教学设计 二阶课程 项目4趣味潜水艇 第4节 躲避障碍教学设计
- Unit 5 Fun Clubs 教学设计2024-2025学年初中英语(人教版浙江专用)七年级上册
- 2024年新人教版数学七年级上册教学课件 4.2 第1课时 合并同类项
- 2024-2030年中国农村商业银行行业市场深度调研及发展趋势与投资前景研究报告
评论
0/150
提交评论