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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

念 和
顺序内聚 9分 逻辑内聚 1分

通信内聚 7分 偶然内聚 0分

过程内聚 5分
2019/6/5
36
前一页
启发式规则
主 要 内 容
2019/6/5
前一页
改进软件结构提高模块独立性 模块规模应该适中 深度、宽度、扇出和扇入应适当 模块的作用域应在控制域之内 尽量降低模块接口的复杂程度 设计单入口出口的模块 模块功能应该可以预测
同功能混在一起,合用部分程序代码,局部修
聚 改会影响全局,导致修改困难。
2019/6/5
前一页
时间内聚(Temporal Cohesion):模块中,各
处理单元必须在一个有限的时间间隔内执行完 成。
33
模块独立 – 内聚
几 中内聚 主要有两类:
种 类
过程内聚(Procedural Cohesion) 需要
阶段的任务,确定每个模块的处理过程。
2019/6/5
10
前一页
功能分解
为确定软件结构,首先需要从实现 角度把复杂的功能进一步分解。
功能分解导致数据流图进一步细化, 同时使用图形工具描述算法。
2019/6/5
11
设计软件结构
总 即结构设计,包括确定系统各模块 体 间的关系。
的 通常程序中的一个模块完成一个适
体 选取低成本、中等成本和高成本的三种

方案。对每个合理的方案分析员都应该 准备下列四份资料:
设 (1)系统流程图
计 (2)组成系统的物理元素的清单
过 程
(3)成本/效益分析
(4)实现这个系统的进度计划
2019/6/5
8
前一页
推荐最佳方案


分析员应该综合分析对比各种合理的方 案,推荐一个最佳的方案,并且为推荐的方
22
抽象
处理复杂系统的唯一有效的方法是用层次 的方式构造和分析它。
2019/6/5
23
逐步求精
逐步求精和模块化的概念,与抽象是密切 相关的。
如软件工程的每一步都是对软件解法的抽 象层次的一次精化。可行性分析阶段,软 件作为完整的部件;需求阶段,软件解法 使用熟悉的问题描述;从总体设计到详细 设计,抽象程度降低,逐步精化。
2019/6/5
27
前一页
模块独立
模块的独立程度可以由两个定性标准
度量,这两个标准分别称为内聚和耦合,
内聚衡量一个模块内部各个元素彼此结合 的紧密程度;耦合衡量不同模块彼此间互 相依赖(连接)的紧密程度。
2019/6/5
28

模块独立 – 耦合
件 设 耦合 (Coupling)

耦合是对一个软件结构内不同模块之间


2019/6/5
15
前一页
书写文档


1.系统说明

2.用户手册

3.测试计划

4.详细的实现计划

5.数据库设计结果

2019/6/5
16
前一页

审核和复审


最后应该对总体设计的结果进

行严格的技术审查,通过之后再由 使用部门从管理和应用的角度进行
计 复审。


2019/6/5
17
前一页
块中一个处理单元的输出是另一个处理单
型 元的输入。
的 内 聚
功能内聚(Functional Cohesion) 模块
中所有处理单元共同完成同一功能。
功能内聚是最高程度的内聚。
2019/6/5
35
前一页

模块独立 – 内聚

设 计 的
高内聚 也有两类:顺序内聚、功 能内聚。对内聚的参考评价:

功能内聚 10分 时间内聚 3分
的 互联程度的度量。

在软件设计时应该追求松散耦合的系统。
念 和 原 理
如果两个模块中的每一个都能独立地工
作而不需要另一个模块地存在,那么它们彼 此完全独立,这意味着模块间无任何连接, 耦合程度最低 。
2019/6/5
29
前一页
模块独立 – 耦合
几 种 类 型 的 耦 合
2019/6/5
前一页
数据耦合 (Data Coupling):如果两个模块彼
2019/6/5
20
前一页
模块化与软件成本
2019/6/5
21
前一页
软 件 设 计 的 概 念 和 原 理
2019/6/5
前一页
抽象
人类在认识复杂现象的过程中使 用的最强有力的思维工具抽象 (Abstract)。人们在实践中认识到,在 现实世界中一定事物、状态或过程之 间总存在着某些相似的方面(共性)。 把这些相似的方面集中和概括起来, 暂时忽略它们之间的差异,这就是抽 象。
2019/6/5
26
前一页
模块独立
模块独立(Independence)的概念是模块化、 抽象、信息隐蔽和局部化概念的直接结果。
开发具有独立功能而且和其他模块之间没
有过多的相互作用的模块,就可以做到模块独 立。
模块独立性的优点:
第一,有效的模块化(即具有独立的模块) 的软件比较容易开发出来。
第二,独立的模块比较容易测试和维护。

当的子功能,而一个程序包含若干个 模块,因此考虑把模块组织成良好的
计 层次系统。顶层模块调用它下层模块
过 以实现程序的完整功能,每个下层模

块再调用更下层的模块,从而完成程 序的一个子功能,最下层的模块完成
最具体的功能 。
2019/6/5
12
前一页
设计软件结构
顶层模块调用它下层模块以实现程序的 完整功能,每个下层模块再调用更下层的 模块,从而完成程序的一个子功能,最下 层的模块完成最具体的功能 。
2019/6/5
32
前一页
模块独立 – 内聚
低内聚 有如下几类:偶然内聚、逻辑内聚、

时间内聚

偶然内聚(Coincidental Cohesion):模块中,
类 元素之间没有实质的联系,在不同的场合需要
型 做不同的修改,导致出错概率高。
的 内
逻辑内聚(Logical Cohesion):模块中,不
体 为了最终实现目标系统,必须设计出组成 这个系统的所有程序和文件(或数据库)。对
的 程序(特别是复杂的大型程序)的设计,通常
设 分为两个阶段完成:

结构设计(Structure Design) :是总体设
计阶段的任务,确定程序由那些模块组

成,以及这些模块之间的关系。

过程设计(Process Design):是详细设计
软件结构可以用层次图或结构图表示。
有些软件的结构可以通过细化的数据流图 映射得到。
2019/6/5
13
数据库设计

对于需要使用数据库的系统,
体 工程师需要对数据库进行设计。





2019/6/5
14
前一页


制定测试计划

在软件开发的早期阶段考虑测试
设 计
(Testing)问题,能促使软件设计人员 在设计时注意提高软件的可测试性 。
2019/6/5
25

信息的隐蔽和局部化

信息隐藏:使得一个模块内包括的信
设 息(过程和数据)对于不需要这些信息的
计 模块来说,是不能访问的。
的 概 念
局部化:把一些关系密切的软件元素 物理地放得彼此靠近。

“隐蔽”(Hiding)意味着有效的模块
原 化可以通过定义一组独立的模块而实现,

这些独立的模块彼此间仅仅交换那些为了 完成系统功能而必须交换的信息。
设计软件的结构
确定系统中每个程序是由哪些模块组成
确定模块相互间的关系
2019/6/5
3
前一页
本章主要内容
设计过程 设计原理 启发式规则 描述软件结构的图形工具 面向数据流的设计方法
2019/6/5
4
Biblioteka Baidu前一页
总体的设计过程
总体设计过程分为两个阶段 系统设计阶段:确定系统的实现方案 结构设计阶段:确定软件结构
30
模块独立 – 耦合

公共环境耦合 (Common Coupling):
种 当两个或多个模块通过一个公共数据环境
类 相互作用时,它们之间的耦合称为公共环 型 境耦合。

内容耦合(Contain Coupling):最高程
耦 度的耦合是内容耦合。

原则:尽量使用数据耦合,少用控制耦
合,限制公共环境耦合的范围,完全不用
2019/6/5
5
总体的设计过程
设想供选择的方案 选取合理的方案 推荐最佳方案 功能分解 设计软件结构 数据库设计 制定测试计划 书写文档 审核和复审
2019/6/5
6
前一页
设想供选择的方案

分析员考虑各种可能的实现方案
体 (Project),并且力求从中选出最佳方案。 的 在总体设计阶段开始时只有系统的逻辑模
软件设计的概念和原理
模块化
主 要 内 容
抽象 逐步求精 信息隐蔽和局部化 模块独立
2019/6/5
18
前一页
软 件
模块化
设 计 的 概 念 和 原 理
模块(Modular)是数据说明、可执 行语句等程序对象的集合,它是单独 命名的而且可通过名字来访问。模块 化就是把程序划分成若干个模块,每 个模块完成一个子功能,把这些模块 集总起来组成一个整体,可以完成指 定的功能满足问题的要求。
的 案制定详细的实现计划。

用户和有关的技术专家审查推荐的最佳

系统,如果确定该系统符合用户的需要,并 且是在现有条件下完全能够实现的,则请使
过 用部门负责人进一步审批。在接受分析员所

推荐的方案之后,系统设计完成,进入总体 设计过程的下一个重要阶段——结构设计。
2019/6/5
9
前一页
功能分解

2019/6/5
19
前一页

模块化

设 计
设函数C(x)定义问题x的复杂程度, 函数E(x)确定解决问题x需要的工作量

(时间),对于两个问题p1和p2,
概 念
If
C(p1)> C(p2)

Then E(p1)> E(p2)

C(p1+p2)> C(P1) + C(p2)

E(p1+p2)> E(p1)+ E(p2)
内容耦合 。
2019/6/5
31
前一页

模块独立 – 内聚
件 设
内聚(Cohesion)

内聚是一个模块内各个元素彼此结合的紧
的 密程度。设计时应该力求做到高内聚,通常中
概 等程度的内聚也是可以采用的。

内聚和耦合密切相关,模块内的高内聚意
和 味着模块间的松耦合。

理 按程度分类:低内聚 中内聚 高内聚
此间通过参数交换信息,而且交换的信息仅 仅是数据,那么这种耦合称为数据耦合。
控制耦合(Control Coupling) :如果传递的信
息中有控制信息,则这种耦合称为控制耦合。
数据耦合是低耦合。系统必须存在这种 耦合,因为只有当某些模块的输出数据作为 另一些模块的输入数据时,系统才能完成有 价值的功能。
37
图形工具

层次图和HIPO图

结构图


2019/6/5
38
前一页
层次图

层次图 用来描绘软件的层次结构,

层次图适合于在自顶向下设计软件的 过程中使用。


2019/6/5
39
前一页
层次图
层次图和层次方框图的区别 层次图中一个矩形表示一个模块,矩形框
之间的连线表示调用关系
层次方框图一个矩形表示一个数据集合, 矩形框之间的连线表示数据的层次
2019/6/5
40
正文加工系统的层次图
型 的
按特定顺序执行模块内的处理元素的称为过 程内聚。

通信内聚(Communication Cohesion) 模
聚 块中所有元素都使用同一个输入数据或输出
同一个数据,称为通信内聚。
2019/6/5
34
前一页
模块独立 – 内聚
高内聚 也有两类:顺序内聚 功能内聚

种 类
顺序内聚(Sequential Cohesion) 模
型,分析员有充分的自由分析比较不同的
设 物理实现方案,可以从需求分析得到的数 据流图入手。

常用的方法是:设想在数据流图中处
过 理分组的各种可能的方法,抛弃在技术上
程 行不通的方法,余下的方法作为可能实现 的策略,并且可以启发供选择的物理系统。
2019/6/5
7
前一页
选取合理方案
总 从上一步提供的方案中选取,至少
软件工程
(Software Engineering)
第五章 总体设计
2019/6/5
1
总体设计
需求分析解决:系统做什么? 总体设计解决:系统怎样做?
2019/6/5
2
总体设计
总体设计(Summary Design)又称为概要设计 或初步设计。通过这个阶段的工作将划分出组成 系统的物理元素——程序(Program)、文件(File)、 数据库(Dada base)、人工过程和文档(Document) 等 等 , 但 是 每 个 物 理 元 素 仍 然 处 于 黑 盒 子 (Black Box)级,这些黑盒子里的具体内容将在以后仔细 设计。总体设计阶段的另一项重要任务是:
抽象与求精互补。
2019/6/5
24
逐步求精
定义:为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。
原因:人类认知过程的局限——Miller法则
一个人在任何时候都只能把注意力集中在 (7+ 2)个知识块上。
逐步求精的效果,把注意力集中在与当前 开发最相关的问题上,忽略暂时不需要考 虑的细节。
相关文档
最新文档