第3章 结构化分析建模——2
合集下载
[工学]软件工程导论张海藩第5版第2_3章
![[工学]软件工程导论张海藩第5版第2_3章](https://img.taocdn.com/s3/m/c4d3ab5b1a37f111f0855ba7.png)
-- 性能:软件系统在运行速度、可用性、响应时间、恢复 时间 等方面有什么要求?
- - 特性:件系统在可移植性、可维护性、安全性等方面 有什 么考虑?
-- 设计约束:是否存在必要的标准、开发语言、数据库、 资源 限制、运行环境等因素的影响和策略?
2021/5/21
软件工程导论 王培丽
28 29
编写需求规格说明的原则
2021/5/21
软件工程导论 王培丽
30 30
编写需求规格说明的原则
• 原则 5:文档段落不宜太长
- 简短 - 记住:不要在需求说明中使用“和/或”、“等等”之类的词
• 原则 6:避免使用模糊的、主观的术语
- 如用户友好、容易、简单、迅速、有效、许多、最新技术、 优越的、可接受的、最大化、最小化、提高等
可行性研究的任务 可行性研究的过程 系统流程图 成本/效益分析
2021/5/21
2
2.1.1 可行性研究的任务
可行性研究的目的
用最小的代价在尽可能短的时间内研究并确 定客户提出的问题是否有行得通的解决办法。
可行性研究的内容
技术可行性:使用现有的技术能实现这个系 统吗?
经济可行性:这个系统的经济效益能超过他 的开发成本吗?
进一步细化。
2021/5/21
12
2.1.4 数据流图
画数据流图的原则:
(1)数据流图中所有图形只限于四种基本图形元素; (2)每个处理至少有一个输入数据和一个输出数据; (3)每个元素都必须有名字; (4)数据流图只反映系统做什么; (5)按照层次给处理过程编号; (6)父图与子图要平衡(输入和输出要一致); (7)存储:一个局部存储只要当它作为某些处理的 数据接口或某个处理特定的输入输出时就要把它画出来;
- - 特性:件系统在可移植性、可维护性、安全性等方面 有什 么考虑?
-- 设计约束:是否存在必要的标准、开发语言、数据库、 资源 限制、运行环境等因素的影响和策略?
2021/5/21
软件工程导论 王培丽
28 29
编写需求规格说明的原则
2021/5/21
软件工程导论 王培丽
30 30
编写需求规格说明的原则
• 原则 5:文档段落不宜太长
- 简短 - 记住:不要在需求说明中使用“和/或”、“等等”之类的词
• 原则 6:避免使用模糊的、主观的术语
- 如用户友好、容易、简单、迅速、有效、许多、最新技术、 优越的、可接受的、最大化、最小化、提高等
可行性研究的任务 可行性研究的过程 系统流程图 成本/效益分析
2021/5/21
2
2.1.1 可行性研究的任务
可行性研究的目的
用最小的代价在尽可能短的时间内研究并确 定客户提出的问题是否有行得通的解决办法。
可行性研究的内容
技术可行性:使用现有的技术能实现这个系 统吗?
经济可行性:这个系统的经济效益能超过他 的开发成本吗?
进一步细化。
2021/5/21
12
2.1.4 数据流图
画数据流图的原则:
(1)数据流图中所有图形只限于四种基本图形元素; (2)每个处理至少有一个输入数据和一个输出数据; (3)每个元素都必须有名字; (4)数据流图只反映系统做什么; (5)按照层次给处理过程编号; (6)父图与子图要平衡(输入和输出要一致); (7)存储:一个局部存储只要当它作为某些处理的 数据接口或某个处理特定的输入输出时就要把它画出来;
SE研第3章2
![SE研第3章2](https://img.taocdn.com/s3/m/a5e440fa294ac850ad02de80d4d8d15abe23002f.png)
例如把程序流程图中的循环、判断和计算分成三 个模块,则这三个模块就是过程内聚的模块。
⑸通信内聚。模块内的所有成分都通过公共数据而 发生关系的内聚就是通讯内聚。
如对同一文件进行输入、修改、输出操作。模块 中各成分经模块的局部的公共数据进行通信。
结果
存入 打印
引用同一个数据
修改 删除
数据
产生同一个输出
比如,是通过过程调用语句正常调用另一模块, 还是不通过正常入口而直接转入另一模块内部,或 者直接访问另一模块的内部数据等。
模块间接口的性质由接口上传递的信息的性质决定。
通过模块接口的信息有三种类型:数据型、控制 型和描述性标志。
模块间的耦合程度按从低到高分类如下: ⑴无耦合。如果两模块之间没有任何联系,每一 个都能独立地工作而不需要另一模块的存在,是 彼此完全独立的,则这两个模块间属于无耦合的 情况。
高级软件工程
第三章 软件开发的结构化方法
3.4.3 软件设计原理 SD方法采用模块化原理进
行软件结构的设计。
模块:单独命名的可以通过 名字访问的数据说明、可执 行语句等程序对象的集合。
例如,过程、函数、子程序 、宏等等都可作为模块。
第三章 软件开发的结构化方法 3.3 结构化分析 3.4 结构化设计 3.4.1 结构化设计方法概述 3.4.2 软件结构图 3.4.3 软件设计原理 3.4.4 软件设计原则 3.4.5 结构化软件设计策略 3.4.6 数据库的逻辑设计
如FOTRAN中的COMMON语句。
C
L
D EF
N
公共数据区
M
O
P
⑹内容耦合。如果发生下列情况之一,两个模块间就是内 容耦合:
• 一个模块直接访问另一个模块的内部数据;
⑸通信内聚。模块内的所有成分都通过公共数据而 发生关系的内聚就是通讯内聚。
如对同一文件进行输入、修改、输出操作。模块 中各成分经模块的局部的公共数据进行通信。
结果
存入 打印
引用同一个数据
修改 删除
数据
产生同一个输出
比如,是通过过程调用语句正常调用另一模块, 还是不通过正常入口而直接转入另一模块内部,或 者直接访问另一模块的内部数据等。
模块间接口的性质由接口上传递的信息的性质决定。
通过模块接口的信息有三种类型:数据型、控制 型和描述性标志。
模块间的耦合程度按从低到高分类如下: ⑴无耦合。如果两模块之间没有任何联系,每一 个都能独立地工作而不需要另一模块的存在,是 彼此完全独立的,则这两个模块间属于无耦合的 情况。
高级软件工程
第三章 软件开发的结构化方法
3.4.3 软件设计原理 SD方法采用模块化原理进
行软件结构的设计。
模块:单独命名的可以通过 名字访问的数据说明、可执 行语句等程序对象的集合。
例如,过程、函数、子程序 、宏等等都可作为模块。
第三章 软件开发的结构化方法 3.3 结构化分析 3.4 结构化设计 3.4.1 结构化设计方法概述 3.4.2 软件结构图 3.4.3 软件设计原理 3.4.4 软件设计原则 3.4.5 结构化软件设计策略 3.4.6 数据库的逻辑设计
如FOTRAN中的COMMON语句。
C
L
D EF
N
公共数据区
M
O
P
⑹内容耦合。如果发生下列情况之一,两个模块间就是内 容耦合:
• 一个模块直接访问另一个模块的内部数据;
自考软件工程第3章知识点总结
![自考软件工程第3章知识点总结](https://img.taocdn.com/s3/m/26beed343968011ca3009193.png)
2
第3章 软件需求分析
需求分析在软件开发中所处的地位愈加突出,从而也愈加 困难,它的难点主要体现在以下几个方面:
(1) 问题的复杂性。 (2) 交流障碍。 (3) 不完备性和不一致性。 (4) 需求易变性。
软件需求分析与说明的方法的基本原则:
(1) 必须能够表达和理解问题的数据域和功能域。 (2) 可以把一个复杂问题按功能进行分解并可逐层细化。 (3) 建模。
结构化分析(Structured Analysis,简称SA),是面向数 据流进行需求分析的方法。根据软件内部数据传递、变换的关 系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
3.2.1自项向下逐层分解的分析策略
面对一个复杂的问题,采取分解的策略,把一个复杂的问
题划分成若干小问题,然后再分别解决。分解可分层进行,在
(3) 环境需求。 (4) 用户界面需求。
4
第3章 软件需求分析
2. 分析与综合, 导出软件的逻辑模型 分析人员对获取的需求,进行一致性的分析检查,在 分析、 综合中逐步细分软件功能,划分成各个子功能。 3. 编写文档 编写文档的步骤如下: (1) 编写“需求说明书。 (2) 编写初步用户使用手册。 (3) 编写确认测试计划。 (4) 修改完善项目开发计划。
3. 数据项条目 数据项条目是不可再分解的最小数据单位, 其定义格 式及举例如下: 数据项名称: 货物编号 别名: G-No, G-num, Goods-No 简述: 本公司的所有货物的编号 类型: 字符串 长度: 10
取值范围及含义: 第1位: 进口/国产
第2~4位: 类别 第5~7位: 规格
第8~10位: 品名编号
1. 数据流条目
数据流条目给出了DFD中数据流的定义,通常列出该数 据流的各组成数据项。
《结构化分析》PPT课件
![《结构化分析》PPT课件](https://img.taocdn.com/s3/m/ae4600c0a21614791611284f.png)
衡量工程价值的另一项经济指标是工程的纯收入,也 就是在整个生命周期之内系统的累计经济效益(折合成现 在值)与投资之差。这相当于比较投资开发一个软件系统 和把钱存在银行中(或贷给其他企业)这两种方案的优劣 。如果纯收入为零,则工程的预期效益和在银行存款一样 ,但是开发一个系统要冒风险,因此从经济观点看这项工 程可能是不值得投资的。如果纯收入小于零,那么这项工 程显然不值得投资。
制
每行成本 成本(元) 人力(人
(元/行)
月)
108
90720
9.1
54
65340
11.8
72
43200
4.4
33
14850
3.1
135
148500
13.7
362610
42.1
2. 任务分解技术
首先把软件开发工程分解为若干个相对独立的任务。 再分别估计每个单独的开发任务的成本,最后累加起来 得出软件开发工程的总成本。估计每个任务的成本时, 通常先估计完成该项任务需要用的人力(以人月为单 位),再乘以每人每月的平均工资而得出每个任务的成 本。
例如,修改库存清单系统两年以后可以节省4225.12元 ,比最初的投资(5000元)还少774.88元,第三年以后将 再节省1779.45元。774.88/1779.45=0.44,因此,投资 回收期是2.44年。
投资回收期仅仅是一项经济指标,为了衡量一项开发 工程的价值,还应该考虑其他经济指标。
纯收入
例如,上述修改库存清单系统,工程的纯收入预计是
9011.94-5000=4011.94(元)
4 可行性研究过程
典型的可行性研究过程有下述八个步骤:
1. 复查系统规模和目标
5. 导出和评价供选择的解法
制
每行成本 成本(元) 人力(人
(元/行)
月)
108
90720
9.1
54
65340
11.8
72
43200
4.4
33
14850
3.1
135
148500
13.7
362610
42.1
2. 任务分解技术
首先把软件开发工程分解为若干个相对独立的任务。 再分别估计每个单独的开发任务的成本,最后累加起来 得出软件开发工程的总成本。估计每个任务的成本时, 通常先估计完成该项任务需要用的人力(以人月为单 位),再乘以每人每月的平均工资而得出每个任务的成 本。
例如,修改库存清单系统两年以后可以节省4225.12元 ,比最初的投资(5000元)还少774.88元,第三年以后将 再节省1779.45元。774.88/1779.45=0.44,因此,投资 回收期是2.44年。
投资回收期仅仅是一项经济指标,为了衡量一项开发 工程的价值,还应该考虑其他经济指标。
纯收入
例如,上述修改库存清单系统,工程的纯收入预计是
9011.94-5000=4011.94(元)
4 可行性研究过程
典型的可行性研究过程有下述八个步骤:
1. 复查系统规模和目标
5. 导出和评价供选择的解法
第3 章 结构化需求分析
![第3 章 结构化需求分析](https://img.taocdn.com/s3/m/4fd59a21af45b307e87197bb.png)
第3 章 结构化需求分析
3.1.2 需求分析的过程 (2)分析与综合 从信息流和信息结构出发, 从信息流和信息结构出发,逐步细化软 件的所有功能, 件的所有功能,找出系统各个元素之间 的联系、接口特性和对设计的限制, 的联系、接口特性和对设计的限制,判 断是否存在因片面性或短期行为而导致 的不合理需求, 的不合理需求,判断是否有用户尚未提 出的确实有价值的潜在需求, 出的确实有价值的潜在需求,从而提出 其中不合理的部分, 其中不合理的部分,增加真正需要的部 分。
第3 章 结构化需求分析
采用“自顶向下,逐步求精”的方式, 系统被分解成 系统被分解成3 采用“自顶向下,逐步求精”的方式,X系统被分解成 个子系统 :
第3 章 结构化需求分析
3.3.2 结构化分析方法 指导性原则: 指导性原则: 在开始建立分析模型之前先理解问题, 在开始建立分析模型之前先理解问题 ,而不应 急于求成,甚至在问题未被很好地理解之前, 急于求成 ,甚至在问题未被很好地理解之前, 就产生了一个解决错误问题的软件; 就产生了一个解决错误问题的软件; 开发模型,使用户能够了解将如何进行人机交 开发模型, 互; 记录每个需求的起源和原因, 记录每个需求的起源和原因 ,这样能有效地保 证需求的可追踪性和可回溯性; 证需求的可追踪性和可回溯性; 使用多个需求分析视图,建立数据、 使用多个需求分析视图,建立数据、 功能和行 为模型。 为模型。
第3 章 结构需求分析
3.1.2 需求分析的过程
第3 章 结构化需求分析
3.1.2 需求分析的过程 (1)调查研究 对目标系统的运行环境、功能要求、 对目标系统的运行环境、功能要求、非 功能性要求与用户达成共识。 功能性要求与用户达成共识。 问题研究集中在以下3个方面: 问题研究集中在以下3个方面: 经济可行性: 经济可行性: 技术可行性: 技术可行性: 操作可行性: 操作可行性:
第3章结构化系统分析2
![第3章结构化系统分析2](https://img.taocdn.com/s3/m/ae46c55aa32d7375a41780d6.png)
由以上两例可见,决策表将比较复杂的决策问题简洁、明确、一目了 然地描述出来。决策表是描述条件比较多的决策问题的有效工具。
第3章 结构化系统分析(2)
13
第3章 结构化系统分析(2)
14
八、其他工具 我们应该注意:
在实际的系统分析工作时,所采用方法的类型宜少不宜多,以免造成混乱。
除了结构化工具之外,也常采用一些不属于结构化方法的图形工具如:
22
3.3 系统分析阶段各项活动的内容 一、系统的初步调查
1.目标 系统的初步调查是系统分析阶段的第一项活动,也是整个系统开发的 第一项活动。
系统开发工作一般是根据系统规划阶段确定的拟建系统总体方案进行的。在系 统规划段已经根据当时所做的战略规划、组织信息需求分析和资源及应用环境 的约束,将整个信息系统的建设分成若干项目,分期分批进行开发。 系统规划阶段的工作是面向整个组织,着重于系统的总体目标、总体功能和发 展方向,对每个开发项目的目标、规模和内容并未做详细的分析。
初步调查阶段的主要目标就是:
从系统分析人员和管理人员的角度看新项目开发有无必要和可能。
第3章 结构化系统分析(2)
23
2.内容 (1)调查内容
系统分析人员要调查:
有关组织的整体信息 有关人员的信息 有关工作的信息
只了解做了什么,有什么问题。 包括主要输入、主要输出、主要处理功能以及与其他系统的关系。
(4)经济可行性分析 包括建设费用、运行费用、经济效益及社会效益。
8
第3章 结构化系统分析(2)
9
七、决策表(Decision Table) 决策表(Decision Table)又称判断表,为描述判断的条件较多,各条件 又相互组合,相应的决策方案较多的加工逻辑提供了表达清晰、简洁 的手段。
第3章 结构化系统分析(2)
13
第3章 结构化系统分析(2)
14
八、其他工具 我们应该注意:
在实际的系统分析工作时,所采用方法的类型宜少不宜多,以免造成混乱。
除了结构化工具之外,也常采用一些不属于结构化方法的图形工具如:
22
3.3 系统分析阶段各项活动的内容 一、系统的初步调查
1.目标 系统的初步调查是系统分析阶段的第一项活动,也是整个系统开发的 第一项活动。
系统开发工作一般是根据系统规划阶段确定的拟建系统总体方案进行的。在系 统规划段已经根据当时所做的战略规划、组织信息需求分析和资源及应用环境 的约束,将整个信息系统的建设分成若干项目,分期分批进行开发。 系统规划阶段的工作是面向整个组织,着重于系统的总体目标、总体功能和发 展方向,对每个开发项目的目标、规模和内容并未做详细的分析。
初步调查阶段的主要目标就是:
从系统分析人员和管理人员的角度看新项目开发有无必要和可能。
第3章 结构化系统分析(2)
23
2.内容 (1)调查内容
系统分析人员要调查:
有关组织的整体信息 有关人员的信息 有关工作的信息
只了解做了什么,有什么问题。 包括主要输入、主要输出、主要处理功能以及与其他系统的关系。
(4)经济可行性分析 包括建设费用、运行费用、经济效益及社会效益。
8
第3章 结构化系统分析(2)
9
七、决策表(Decision Table) 决策表(Decision Table)又称判断表,为描述判断的条件较多,各条件 又相互组合,相应的决策方案较多的加工逻辑提供了表达清晰、简洁 的手段。
3.3 结构化需求分析方法
![3.3 结构化需求分析方法](https://img.taocdn.com/s3/m/599c1442be1e650e52ea99a5.png)
订货单 支票
顾客
询问 退货单
处理顾 客事务
第三章 需求分析
15
多个数据流的第一种表示方法:
订货单 顾客事务
顾客
处理 顾客 事务
支票 询问
退货单
16
第三章 需求分析
多个数据流的第二种表示方法:
订货单
编辑订 货单
开收据 处理询 问 退货分 析处理
支票
顾客
询问
退货单
第三章 需求分析
17
多个数据流的表示举例
重建父图,即把第二步所得的每一部分画成一个圆圈, 各部分之间的联系就是加工之间的界面; 重建各张子图,只需把第二步所得的图,按各自的边界 剪开即可; 为所有加工重新命名、编号。
第三章 需求分析
36
结构不合理的数据流图及其修改
4 H A B 1 I 2 K L D 3 D (a)结构不合理的 数据流程图
33
分解的程度
分解应自然,概念上要合理、清晰。 上层可分解的快些,而下层应分解得慢些。
在不影响可读性的前提下,应适当地多分解成几部分, 以减少分解层数。
一般说来,当加工可用一页纸明确地表述时,或加工只 有单一输入/输出数据流时,就应停止对该加工的分解。 对数据流图中不再作分解的加工,必须作出详细的加工 说明,并且每个加工说明的编号必须与功能单元的编号 一致。
第三章 需求分析
5
结构化分析方法的特点
利用数据流图来帮助人们理解问
题,对问题进行分析。即利用图
形工具来模拟数据处理过程。
第三章 需求分析
6
结构化分析方法
用数据字典定义数据流图中的各项数据; 结构化英语、判定树和判定表对数据流图中的基本功 能进行描述。 通过将系统分解成多层处理后,在较低层次上,可以 看到数据流图的高层次加工的细节和相关的数据流。 结构化分析方法的实质就是采用一组分层的数据流图 及相应的数据字典作为系统的模型。 结构化分析方法从总体上看是一种强烈依赖数据流的 自顶向下的建模方法,它不仅是需求分析技术,也是 完成规格说明的手段。
第3章软件需求分析与建模
![第3章软件需求分析与建模](https://img.taocdn.com/s3/m/41a0a9cb58f5f61fb7366653.png)
应如何实施。
2020/3/7第3章软件需求分析与建模
软件工程教研室
15
①数据模型 描述对象系统的本质属性及其关系。常用的建模工具有 实体-联系图等。 ②功能模型 描述对象系统所能实现的所有功能。而不考虑每个功能 实现的次序。常用的建模工具有数据流图、IDEF0等。 ③行为模型 描述对象系统为实现某项功能而发生的动态行为。常用 的建模工具有控制流图、状态转换图等。
2020/3/7第3章软件需求分析与建模
软件工程教研室
24
X
1
3
2
1.1 1.3 1.2
2.2
2.1
2.3
3.2
3.1
3.3
图3-3 自顶向下逐层分解图
2020/3/7第3章软件需求分析与建模
软件工程教研室
25
结构化分析的过程如下 1.建立当前系统(现在工作方式)的概念模型。系统的 概念模型就是现实环境的忠实写照,可用系统流程图来表 示。这样的表达与当前系统完全对应,用户容易理解。 2.抽象出当前系统的逻辑模型。分析系统的概念模型, 抽象出其本质的因素,排除次要因素,获得用数据流图 DFD 图等描述的当前系统的逻辑模型。 3.建立目标系统的逻辑模型。分析目标系统与当前系统 逻辑上的差别,从而进一步明确目标系统“做什么”,建 立目标系统的“逻辑模型”(修改后的数据流图DFD 图等)。 4.建立人机交互接口和其他必要的模型,确定各种方案 的成本和风险等级,据此对各种方案进行分析,选择其中 一种方案,建立完整的需求规约。 分析模型的结构如图3-4所示。
Y
用户和设计者是否满意
N
运行原型
是否放弃
Y
N
把原型作为 把原型作为应 应用系统 用系统开发的
2020/3/7第3章软件需求分析与建模
软件工程教研室
15
①数据模型 描述对象系统的本质属性及其关系。常用的建模工具有 实体-联系图等。 ②功能模型 描述对象系统所能实现的所有功能。而不考虑每个功能 实现的次序。常用的建模工具有数据流图、IDEF0等。 ③行为模型 描述对象系统为实现某项功能而发生的动态行为。常用 的建模工具有控制流图、状态转换图等。
2020/3/7第3章软件需求分析与建模
软件工程教研室
24
X
1
3
2
1.1 1.3 1.2
2.2
2.1
2.3
3.2
3.1
3.3
图3-3 自顶向下逐层分解图
2020/3/7第3章软件需求分析与建模
软件工程教研室
25
结构化分析的过程如下 1.建立当前系统(现在工作方式)的概念模型。系统的 概念模型就是现实环境的忠实写照,可用系统流程图来表 示。这样的表达与当前系统完全对应,用户容易理解。 2.抽象出当前系统的逻辑模型。分析系统的概念模型, 抽象出其本质的因素,排除次要因素,获得用数据流图 DFD 图等描述的当前系统的逻辑模型。 3.建立目标系统的逻辑模型。分析目标系统与当前系统 逻辑上的差别,从而进一步明确目标系统“做什么”,建 立目标系统的“逻辑模型”(修改后的数据流图DFD 图等)。 4.建立人机交互接口和其他必要的模型,确定各种方案 的成本和风险等级,据此对各种方案进行分析,选择其中 一种方案,建立完整的需求规约。 分析模型的结构如图3-4所示。
Y
用户和设计者是否满意
N
运行原型
是否放弃
Y
N
把原型作为 把原型作为应 应用系统 用系统开发的
第三章结构模型化技术
![第三章结构模型化技术](https://img.taocdn.com/s3/m/73d4d80ebb68a98271fefa28.png)
ISM含义 含义
1、ISM(Interpretative structural modeling)含义: ( )含义:
a: ISM 就是应用有向连接图来描述系统各要素间的关系,以表示一个作 为要素集合体的系统模型; b: 它的基本理论是图论,通过一些基本假设和图、矩阵的有关运算,可 以得到可达性矩阵;然后再通过人-机结合,分解可达矩阵,使复杂的 系统分解成多级递阶结构形式;
一、结构模型化基础
结构模型化技术: 结构模型化技术:建立系统结构模型的过程和方法论;
结构分析:结构模型化+对结果的解释。 结构分析:
二、结构模型化技术
脚本法 专家调查法 问题发掘技术 发现法 集团启发法 关联树法 解释结构模型(ISM ) 静态结构化技术 结构模型化技术 决策试验与评价实验室( DEMATEL) 系统开发计划程序(PPDS ) 工作设计 结构决定技术 交叉影响分析 动态结构化技术凯恩仿真模型(KSIM) 快速仿真模型(QSIM) 系统动力学
级间划分:找出整个系统要素集合的最高级要素集后,可将其从可达矩 级间划分: 阵中划去相应的行和列,再求剩余要素集合的最高级要素,依次类推, 直到确定出最低一级要素集合,这样就将系统划分为几个层次;一些概 念:最高级要素;
强连通块划分: 强连通块划分:在同一区域内同级要素相互可达的要素就称为强连通 块;即:同一区域同一级别内,两行元素完全相同。
第1步: 找出影响系统问题的主要因素,判断要素间的影响 步 找出影响系统问题的主要因素,
关系,建立邻接矩阵; 关系,建立邻接矩阵;
第2步: 考虑因果等关系的传递性,建立反映诸要素间关系 步 考虑因果等关系的传递性,
结构化的需求分析与建模课件
![结构化的需求分析与建模课件](https://img.taocdn.com/s3/m/04c1046ee3bd960590c69ec3d5bbfd0a7956d521.png)
资源规划:准确的需 求为项目团队提供了 估计所需资源和时间 的基础。
风险降低:在需求阶 段识别并处理模糊或 冲突性需求可以降低 项目风险。
非结构化与结构化需求分析
非结构化需求分析
01
02
依赖于个人经验和直觉来理解和解释需求。
往往缺乏组织和标准化,可能导致遗漏或 误解。
03
04
结构化需求分析
采用系统化、规范化的方法来捕获和处理 需求。
解决方法
可行性分析:对需求进行技术和资源上的可行性 评估,确保项目可行性。
原型反馈:通过创建原型并获取用户反馈,来澄 清和验证模糊的需求。
版本控制:采用版本控制系统(如Git)来跟踪需 求变更,确保所有相关方都了解和同意这些变更 。通过这样的方法,团队能够更为有效地管理项 目范围,降低由于需求变更带来的潜在风险。
05
06
强调使用明确的工具和技术,如数据流图 、实体关系图、用例图等。
需求分析的挑战与解决方法
挑战 需求模糊性:用户需求可能不明确或存在歧义。
技术限制:某些需求可能受到技术或资源的限制。
需求分析的挑战与解决方法
• 变更管理:需求在项目过程中可能发生变化,需 要有效的变更管理机制。
需求分析的挑战与解决方法
数据可视化
通过数据可视化手段,直 观展示需求追踪和度量的 结果,便于项目团队和利 益相关者了解需求状态。
THANKS
感谢观看
转换
描述系统从一种状态转移到另一 种状态的条件和动作,包括触发 条件、输入/输出、状态变量更新 等。
状态图
通过状态图,可以直观地展示系 统状态及其转换关系,有助于分 析人员理解和描述系统的动态行 为。
04
需求验证与管理
软件工程ch3结构化需求分析与建模
![软件工程ch3结构化需求分析与建模](https://img.taocdn.com/s3/m/4f4140319b89680202d825ab.png)
SA的核心:数据流图
数据流图:用来表示信息流程和信息变换过程的 图解方法,可以方便地描述用数据流的流动联系 的各种功能。
数据字典:数据流图中的各项数据。 结构化英语、判定树、判定表用于具体描述数据
流图中的基本功能(或过程)。 依赖数据流图的自顶向下的建模方法。
2021/3/11
41
2021/3/11
2021/3/11
22
三、业务流程图
业务流程图(Transaction Flow Diagram, TFD) 是描绘物理系统的传统工具。系统流程图可用图形 符号来表示系统中的各个元素。例如,人工处理、 数据处理、数据库、文件等。
业务流程图表示所描述部件的信息流程,而不表示 信息加工的控制过程。
系统流程图在可行性研究阶段也可以使用
(2)地理上分布广 调查表问题类型:(1)封闭问题
(2)定量问题 (3)开放问题
2021/3/11
33
某出版社管理系统问卷调查表
编号 1 2 3 4 5
6
提出问题
您在哪个部门工作? 出版业务流程是什么? 您每日都处理那些文件、数据、报表? 工作中手工处理特别麻烦的事情是什么? 工作中手工处理什么问题解决不了?影响效率的 问题有哪些?
传统 方法
用例图
用例和场景描述
关联图
DFD片断
交互图
状态图
数据流定义 处理描述
其他OO模型
分析
其他传统模型
设计类图
包图
设计
结构图 系统流图
对象数据库
2021/3/11
混合关系数据库模式
用户界面对话框、标单、报表
系统控制 伪代码 结点与定位图
关系数据库
40
数据流图:用来表示信息流程和信息变换过程的 图解方法,可以方便地描述用数据流的流动联系 的各种功能。
数据字典:数据流图中的各项数据。 结构化英语、判定树、判定表用于具体描述数据
流图中的基本功能(或过程)。 依赖数据流图的自顶向下的建模方法。
2021/3/11
41
2021/3/11
2021/3/11
22
三、业务流程图
业务流程图(Transaction Flow Diagram, TFD) 是描绘物理系统的传统工具。系统流程图可用图形 符号来表示系统中的各个元素。例如,人工处理、 数据处理、数据库、文件等。
业务流程图表示所描述部件的信息流程,而不表示 信息加工的控制过程。
系统流程图在可行性研究阶段也可以使用
(2)地理上分布广 调查表问题类型:(1)封闭问题
(2)定量问题 (3)开放问题
2021/3/11
33
某出版社管理系统问卷调查表
编号 1 2 3 4 5
6
提出问题
您在哪个部门工作? 出版业务流程是什么? 您每日都处理那些文件、数据、报表? 工作中手工处理特别麻烦的事情是什么? 工作中手工处理什么问题解决不了?影响效率的 问题有哪些?
传统 方法
用例图
用例和场景描述
关联图
DFD片断
交互图
状态图
数据流定义 处理描述
其他OO模型
分析
其他传统模型
设计类图
包图
设计
结构图 系统流图
对象数据库
2021/3/11
混合关系数据库模式
用户界面对话框、标单、报表
系统控制 伪代码 结点与定位图
关系数据库
40
第3章 结构化需求分析
![第3章 结构化需求分析](https://img.taocdn.com/s3/m/d70fc80302020740be1e9b35.png)
第3章 需求分析
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
第3章 结构化分析建模
![第3章 结构化分析建模](https://img.taocdn.com/s3/m/f57ee485b9d528ea81c77933.png)
3.3 功能建模
• 招生系统的分层数据流图
3.3 功能建模
• 数据流图的分层示意图
3.3 功能建模
• 实例研究
银行储蓄系统的业务流程: 储户填写的存款单或取款单由业务员键入系统; 如果是存款则系统记录存款人姓名、住址(或电话 号码)、身份证号码、存款类型、存款日期、到期 日期、利率、密码(可选)等信息,并印出存单给 储户; 如果是取款而且开户时留有密码,则系统首先核对 储户密码,若密码正确或存款时未留密码,则系统 计算利息并印出利息清单给储户。 要求画出分层的数据流图,并细化到2层数据流图。
第2部分 结构化软件开发方法
第3章 结构化分析建模
3.1 软件需求分析阶段的任务
• 可以把软件需求分析阶段的工作分为4个步骤,即 获取需求、分析需求、定义需求和验证需求,如 图所示。
软件需求分析阶段的工作步骤
3.1 软件需求分析阶段的任务
• 需求获取
通过启发、引导从客户(或用户)那里得到的原始 需求是他们的业务要求(needs),简称为N。 这是分析之前获取的需求,其中可能存在一些实际 问题,这些问题只有通过分析才能得到解决,直接 把获取的需求作为软件设计阶段的依据将会导致严 重的后果。
3.6 数据字典
• 词条描述
对于在数据流图中每一个被命名的图形元素均加 以定义; 其内容包括图形元素的名字,图形元素的别名或 编号,图形元素类别(如加工、数据流、数据文 件、数据元素、数据源点或数据汇点等)、描述、 定义、位臵等。
3.6 数据字典
• 数据流词条
数据流是数据结构在系统内传播的路径,数据流词 条应包括以下几项内容。 ①数据流名:要求与数据流图中该图形元素的名字一致。
管理员基本信息收发室挂号邮件管理系统教师基本教师基本信息邮件基本信息教师教师邮件到邮件到达信息管理员管理员学生邮件到达信息收发室挂号邮件管理系统邮局邮件收发单学生基本信息日期时间教师学生时钟作业?画出收发室挂号邮件管理系统的下一层数据流图作业?画出收发室挂号邮件管理系统中的er图任选五个数据元素用定义式进行数据定义
第3章_结构化分析与设计
![第3章_结构化分析与设计](https://img.taocdn.com/s3/m/1b47af3af01dc281e43af00c.png)
无效书单
发票
学
审查并
领书单
开
学
生
开发票
领书单
生
购书单
图3.4 改进了的目标系统逻辑模型
●软件开发是要实现目标系统的物理模型。需求分析 的任务就是借助于当前系统的逻辑模型导出目标系 统的逻辑模型,解决目标系统“做什么”的问题。
当前系统
怎么做 模型化
物理模型
做什么 抽象化
逻辑模型
导 出
目标系统
具体化 物理模型
它是形成需求说明书、进行软件设计的基础。
② 编写需求规格说明书(SRS) 在完全弄清用户对软件系统的确切要求的基 础上,用“需求规格说明书”( SRS)把用户 的需求表达出来。 需求规格说明书为开发人员和用户提供软件 开发完成时质量评价的依据。 ●SRS应该具有准确性; ●SRS应该防止二义性; ●SRS应该直观、易读、易于修改。
①数据流(条目):给出DFD中数据流的定义,列 出该数据流的各组成数据项,通常写成公式的形 状。 例3.3 发票=学号+ 姓名+{书号+单价+数量+总价}+
书费合计 对较长和较复杂的数据流,可分层次描述,使条 目更清楚。如上述数据流“发票”可表示为: 发票=(学号) +姓名+{发票行}+书费合计 发票行=书号 + 单价 + 数量 + 总价
(Process SPECification, PSPEC) ●对数据流图的每一个基本加工,必须有一个 加工说明, 其主要内容如下所示:
(1)加工名; (2)加工编号; (3)输入数据流; (4)输出数据流; (5)加工逻辑; (6)执行频率。
其中最重要的是加工逻辑。
●加工逻辑描述基本加工如何把输入数 据流变换为输出数据流的加工策略,而 不需描述实现加工的细节。 ●加工逻辑通常采用结构化语言 (Structured Langauge)、 判定表 (Decision Table)、 或 判定树(Decision Tree)作为描述工具。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
业务 员
事务 银行储蓄 系统
存款单 储 利息清单 户
储 户
密码
3.3 功能建模
• (3) 画出一层数据流图
3.3 功能建模
• (4) 画出二层数据流图
对一层图中的“处理存款”及“处理取款”进行 进一步分解,得到二层数据流图,即处理存款的 数据流图和处理取款的数据流图。
存款业务 2.1 记录存款 信息 存款信息 2.2 存款单
3.6 数据字典
• 数据存储文件词条
数据存储文件是数据保存的地方。一个数据存储文件词条 应有以下几项内容。 ① 文件名:要求与数据流图中该图形元素的名字一致。 ② 简述:简要介绍存放的是什么数据。 ③ 组成:文件的数据结构。 ④ 输入:从哪些加工获取数据。 ⑤ 输出:由哪些加工使用数据。 ⑥ 存取方式:分为顺序、直接、关键码等不同存取方式。 ⑦ 存取频率:单位时间的存取次数。
3.1 软件需求分析阶段的任务
• 需求分析
(4) 可行性:包括技术可行性 、经济可行性 、社 会可行性 。 (5) 充分性:获取的需求是否全面、周到。
3.1 软件需求分析阶段的任务
• 需求分析
由于分析的过程会对获取的需求做部分调整,也即 从获取的需求N中去掉了一些a,又补充了一些c, 从而得到的是分析的需求R1(b+c)。
3.6 数据字典
• 词条描述
对于在数据流图中每一个被命名的图形元素均加 以定义; 其内容包括图形元素的名字,图形元素的别名或 编号,图形元素类别(如加工、数据流、数据文 件、数据元素、数据源点或数据汇点等)、描述、 定义、位臵等。
3.6 数据字典
• 数据流词条
数据流是数据结构在系统内传播的路径,数据流词 条应包括以下几项内容。 ①数据流名:要求与数据流图中该图形元素的名字一致。
②简述:简要介绍它产生的原因和结果。 ③组成:数据流的数据结构。 ④来源:数据流来自哪个加工或作为哪个数据源的外部实体。 ⑤去向:数据流流向哪个加工或作为哪个数据汇点的外部实体。 ⑥流通量:单位时间数据的流通量。 ⑦峰值:流通量的极限值。
3.6 数据字典
• 数据元素词条
数据流图中的每个数据结构都是由数据元素构成的,数据 元素是数据处理中最小的、不可再分的单位,它直接反映 事物的某一特征。 ① 类型:数据元素分为数字型与文字型。数字型又分为离 散值和连续值,文字的类型用编码类型和长度区分。 ② 取值范围:离散值的取值或是枚举的(如3,17,21), 或是介于上下界的一组数(如2..100);连续值一般是有 取值范围的实数集(如0.0..100.0)。对于文字型,文字 的取值需加以定义。 ③ 相关的数据元素及数据结构。
3.1 软件需求分析阶段的任务
• 需求分析
认真研究获取的需求,必须考虑以下几方面: (1) 完整性:每项获取的需求都应给出清楚的描述, 使得软件开发工作能够取得设计和实现该功能所 需要的全部必要信息。 (2) 正确性:获取的每项需求必须是准确无误的, 并且需求描述无歧义性。 (3) 合理性:各项需求之间、软件需求与系统需求 之间应是协调一致的,不应存在矛盾和冲突。
3.4 数据建模
• 关系
不同数据对象的实例之间是有关联关系的,在ER 图上用无向边表示。 在无向边的两端应标识出关联实例的数量,也称 为关联的重数。 从关联重数的角度可以将关联分为3种。 (1) 一对一(1:1)关联 (2) 一对多(1:m)关联 (3) 多对多(m:n)关联 实例关联还有“必须”和“可选”之分。
3.5 行为建模
• 存款过程的状态图(考虑新开户 )
事件说明
事件条件
3.5 行为建模
• 取款过程的状态图
3.6 数据字典
• 数据字典以词条方式定义在数据模型、功能模型 和行为模型中出现的数据对象及控制信息的特性, 给出它们的准确定义,包括数据流、加工、数据 文件、数据元素,以及数据源点、数据汇点等。 • 数据字典成为把3种分析模型黏合在一起的“黏合 剂”,是分析模型的“核心”。
3.1 软件需求分析阶段的任务
• 需求定义
将已经过分析的需求清晰、全面、系统、准确地 描述成为正式的文档,这一步定义需求的工作就 是编写需求规格说明。
3.1 软件需求分析阶段的任务
• 需求验证
为了确保已定义的需求(需求规格说明)准确无 误,并能为客户(或用户)理解和接受,需要对 其进行严格的评审。
3.5 行为建模
• 状态的表示:初态用实心圆表示,终态用牛眼
图形表示,中间态用圆角矩形表示。
3.5 行为建模
• 状态转换
状态图中两个状态之间带箭头的连线称为状态转 换。 状态的变迁通常是由事件触发的,在这种情况下 应在表示状态转换的箭头线上标出触发转换的事 件表达式。 如果在箭头线上未标明事件,则表示在源状态的 内部活动执行完之后自动触发转换。
3.5 行为建模
• 状态转换
下图为计算机应用软件的启动过程,在这个过程 中没有外部事件触发,每个状态下的活动完成时, 状态发生转换。
3.5 行为建模
• 事件
事件是在某个特定时刻发生的事情,它是对引起系统做动作 或从一个状态转换到另一个状态的外部事件的抽象。事件表 达式的语法如下: 事件说明(守卫条件)/动作表达式 (1) 事件说明的语法如下: 事件名(参数表) (2) 守卫条件是一个布尔表达式。如果同时使用守卫条件和事 件说明,则当且仅当事件发生且布尔表达式成立时,状态转 换才发生。如果只有守卫条件没有事件说明,则只要守卫条 件为真,状态转换就发生。 (3) 动作表达式是一个过程表达式,当状态转换开始时执行该 表达式。
3.4 数据建模
• 关系的属性
3.4 数据建模
• 银行储 蓄系统 的ER图
3.5 行为建模
3.5 行为建模
• 状态转换图(简称状态图)通过描绘系统的状态 及引起系统状态转换的事件,来表示系统的行为。 状态图中使用的主要符号如图所示。
3.5 行为建模
• 状态
状态是任何可以被观察到的系统行为模式,一个 状态代表系统的一种行为模式,状态规定了系统 对事件的响应方式。 状态可能有:初态(初始状态)、终态(最终状 态)和中间态。 在一张状态图中只能有一个初态,而终态则可以 有多个,也可以没有。
3.3 功能建模
• (1) 识别外部实体及输入输出数据流。
外部实体:储户、业务员。
输入数据:如果需要储户输入密码,储户才直接 与系统进行交互。储户填写的存款或取款信息通 过业务员键入系统,可以将存款及取款信息抽象 为事务。
输出数据:存款单,利息清单。
3.3 功能建模
• (2) 画出环境图(顶层数据流图)
3.4 数据建模
• 关联数量的表示
在ER图中用圆圈表示所关联的实例是可选的,隐含 表示“0”,没有出现圆圈就意味着是必须的。出现 在连线上的短竖线可以看成是“1”。
3.4 数据建模
• 关联关系举例
3.4 数据建模
• 关系的属性
关系本身也可能有属性,这在多对多的关系中尤 其常见,如学生和课程之间的关系可起名为“选 课”,其属性应该有学期、成绩等。 关系属性的表示:在表示关系的无向边上再加一 个菱形框,并在菱形框中标明关系的名字,关系 的属性同样用椭圆形或圆角矩形表示,并用无向 边将关系与其属性连接起来。
3.3 功能建模
• 典型的环境图
• 招生系统需求描述
学校首先公布招生条件,考生根据自己的条件报 名,之后系统进行资格审查,并给出资格审查信 息; 对于资格审查合格的考生可以参加答卷,系统根 据学校提供的试题及答案进行自动判卷,并给出 分数及答题信息,供考生查询; 最后系统根据学校的录取分数线进行录取,并将 录取信息发送给考生。
第2部分 结构化软件开发方法
第3章 结构化分析建模
3.1 软件需求分析阶段的任务
• 可以把软件需求分析阶段的工作分为4个步骤,即 获取需求、分析需求、定义需求和验证需求,如 图所示。
软件需求分析阶段的工作步骤
3.1 软件需求分析阶段的任务
• 需求获取
通过启发、引导从客户(或用户)那里得到的原始 需求是他们的业务要求(needs),简称为N。 这是分析之前获取的需求,其中可能存在一些实际 问题,这些问题只有通过分析才能得到解决,直接 把获取的需求作为软件设计阶段的依据将会导致严 重的后果。
• 数据流图的基本图形符号
或 加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数 据源或数据汇点的名字。 或 数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
3.3 功能建模
• 招生系统的环境图
3.3 功能建模
• 数据流图的分层
对于稍微复杂一些的实际问题,在数据流图上常 常出现十几个甚至几十个加工,这样的数据流图 看起来不直观,不易理解,分层的数据流图能很 好地解决这一问题。 按照系统的层次结构进行逐步分解,并以分层的 数据流图反映这种结构关系,能清楚地表达和容 易理解整个系统。
3.6 数据字典
• 加工词条
加工可以使用诸如判定表、判定树、结构化语言 等形式表达,主要描述如下。
加工名:要求与数据流图中该图形元素的名字一致。 编号:用以反映该加工的层次和父子关系。 简述:加工逻辑及功能简述。 输入:加工的输入数据流。 输出:加工的输出数据流。 加工逻辑:简述加工程序和加工顺序。源自 3.4 数据建模• 数据对象
数据对象是目标系统所需要的复合信息的表示, 所谓复合信息是具有若干不同属性的信息。在ER 图中用矩形表示数据对象。 在实际问题中,数据对象(实体)可以是外部实 体、事物、角色、行为或事件、组织单位、地点 或结构等。