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

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

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

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

2、一页Date3 设计过程 设计原理 启发式规则 描述软件结构的图形工具 面向数据流的设计方法 本章主要内容前一页Date4总体的设计过程 总体设计过程分为两个阶段 系统设计阶段:确定系统的实现方案 结构设计阶段:确定软件结构Date5前一页总体的设计过程 设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档 审核和复审 Date6前一页总 体 的 设 计 过 程设想供选择的方案分析员考虑各种可能的实现方案 (Project),并且力求从中选出最佳方案。 在总体设计阶段开始时只有系统的逻辑模 型,分析员有充分的自由分析比较不同的 物理实现方案

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

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

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

6、以实现程序的 完整功能,每个下层模块再调用更下层的 模块,从而完成程序的一个子功能,最下 层的模块完成最具体的功能 。软件结构可以用层次图或结构图表示。有些软件的结构可以通过细化的数据流图 映射得到。Date13前一页总 体 的 设 计 过 程数据库设计对于需要使用数据库的系统, 工程师需要对数据库进行设计。Date14前一页总 体 的 设 计 过 程制定测试计划在软件开发的早期阶段考虑测试 (Testing)问题,能促使软件设计人员 在设计时注意提高软件的可测试性 。Date15前一页总 体 的 设 计 过 程书写文档1.系统说明2.用户手册3.测试计划4.详细的实现计划5.数据库设计结果

7、Date16前一页总 体 的 设 计 过 程审核和复审最后应该对总体设计的结果进 行严格的技术审查,通过之后再由 使用部门从管理和应用的角度进行 复审。Date17软件设计的概念和原理模块化 抽象 逐步求精 信息隐蔽和局部化 模块独立 前一页主要内容Date18前一页软 件 设 计 的 概 念 和 原 理模块化模块(Modular)是数据说明、可执 行语句等程序对象的集合,它是单独 命名的而且可通过名字来访问。模块 化就是把程序划分成若干个模块,每 个模块完成一个子功能,把这些模块 集总起来组成一个整体,可以完成指 定的功能满足问题的要求。 Date19前一页软 件 设 计 的 概 念 和 原

8、 理模块化设函数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) Date20前一页模块化与软件成本Date21前一页软 件 设 计 的 概 念 和 原 理抽 象人类在认识复杂现象的过程中使 用的最强有力的思维工具抽象 (Abstract)。人们在实践中认识到,在 现实世界中一定事物、状态或过程之 间总存在着某些相似的方面(共性)。 把这些相似的方面集中和概括起来, 暂时忽略它们之间的差异,这就是

9、抽 象。Date22抽 象 处理复杂系统的唯一有效的方法是用层次 的方式构造和分析它。Date23逐步求精 逐步求精和模块化的概念,与抽象是密切 相关的。 如软件工程的每一步都是对软件解法的抽 象层次的一次精化。可行性分析阶段,软 件作为完整的部件;需求阶段,软件解法 使用熟悉的问题描述;从总体设计到详细 设计,抽象程度降低,逐步精化。 抽象与求精互补。Date24逐步求精 定义:为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。 原因:人类认知过程的局限Miller法则一个人在任何时候都只能把注意力集中在 (7+ 2)个知识块上。逐步求精的效果,把注意力集中在与当前 开发最相关的问题上

10、,忽略暂时不需要考 虑的细节。Date25前一页软 件 设 计 的 概 念 和 原 理信息的隐蔽和局部化信息隐藏:使得一个模块内包括的信 息(过程和数据)对于不需要这些信息的 模块来说,是不能访问的。 局部化:把一些关系密切的软件元素 物理地放得彼此靠近。“隐蔽”(Hiding)意味着有效的模块化 可以通过定义一组独立的模块而实现,这 些独立的模块彼此间仅仅交换那些为了完 成系统功能而必须交换的信息。 Date26前一页模块独立模块独立(Independence)的概念是模块化、 抽象、信息隐蔽和局部化概念的直接结果。开发具有独立功能而且和其他模块之间没 有过多的相互作用的模块,就可以做到模块

11、独 立 。模块独立性的优点:第一,有效的模块化(即具有独立的模块 )的软件比较容易开发出来。 第二,独立的模块比较容易测试和维护。Date27模块独立模块的独立程度可以由两个定性标准 度量,这两个标准分别称为内聚和耦合, 内聚衡量一个模块内部各个元素彼此结合 的紧密程度;耦合衡量不同模块彼此间互 相依赖(连接)的紧密程度。 Date28前一页软 件 设 计 的 概 念 和 原 理模块独立 耦合耦合 (Coupling)耦合是对一个软件结构内不同模块之间 互联程度的度量。在软件设计时应该追求松散耦合的系统。如果两个模块中的每一个都能独立地工 作而不需要另一个模块地存在,那么它们彼 此完全独立,这

12、意味着模块间无任何连接, 耦合程度最低 。Date29前一页几 种 类 型 的 耦 合模块独立 耦合数据耦合 (Data Coupling):如果两个模块彼 此间通过参数交换信息,而且交换的信息仅 仅是数据,那么这种耦合称为数据耦合。 控制耦合(Control Coupling) :如果传递的信 息中有控制信息,则这种耦合称为控制耦合 。 数据耦合是低耦合。系统必须存在这种 耦合,因为只有当某些模块的输出数据作为 另一些模块的输入数据时,系统才能完成有 价值的功能。 Date30前一页模块独立 耦合公共环境耦合 (Common Coupling): 当两个或多个模块通过一个公共数据环境 相互作

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

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

15、n Cohesion) 模 块中所有元素都使用同一个输入数据或输出 同一个数据,称为通信内聚。 几 种 类 型 的 内 聚Date34前一页模块独立 内聚高内聚 也有两类:顺序内聚 功能内聚 顺序内聚(Sequential Cohesion) 模 块中一个处理单元的输出是另一个处理单 元的输入。功能内聚(Functional Cohesion) 模块 中所有处理单元共同完成同一功能。 功能内聚是最高程度的内聚。几 种 类 型 的 内 聚Date35前一页软 件 设 计 的 概 念 和 原 理模块独立 内聚高内聚 也有两类:顺序内聚、功 能内聚。对内聚的参考评价:功能内聚 10分 时间内聚 3分

16、顺序内聚 9分 逻辑内聚 1分通信内聚 7分 偶然内聚 0分过程内聚 5分Date36启发式规则改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内 尽量降低模块接口的复杂程度 设计单入口出口的模块 模块功能应该可以预测 前一页主要内容Date37图形工具层次图和HIPO图 结构图 前一页主要内容Date38前一页图 形 工 具层次图层次图 用来描绘软件的层次结构 ,层次图适合于在自顶向下设计软件 的过程中使用。Date39层次图 层次图和层次方框图的区别 层次图中一个矩形表示一个模块,矩形框 之间的连线表示调用关系 层次方框图一个矩形表示一个数据集合, 矩形框之间的连线表示数据的层次Date40

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号