第3章 软件需求获取与结构化分析方法

合集下载

自考软件工程第3章知识点总结

自考软件工程第3章知识点总结

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中数据流的定义,通常列出该数 据流的各组成数据项。

软件需求分析的任务和过程结构化分析方法原型化方法动态

软件需求分析的任务和过程结构化分析方法原型化方法动态

以“检查发货单〞为 例
〔3〕判定树
判定树也是用来表达加工逻辑的一 种工具。有时侯它比判定表更直观。
欠款>60天 不发出批准书
检 查 发
金额>$500
欠款60天 发出批准书、 发货单
货 单
金额$500
欠款>60天 发出批准书、 发货单及赊欠报告
欠款60天 发出批准书、
发货单
原型化方法
在开发初期,要想得到一个完整准 确的规格说明不是一件容易的事。 特别是对一些大型的软件工程。
对系统定义是否成功进展确认;
需求分析流程
软件需求分析的原那么
需要能够表达和理解问题的信息域 和功能域 要能以层次化的方式对问题进展分 解和不断细化 要给出系统的逻辑视图和物理视图
软件需求规格说明的原那么
从现实中别离功能,即描述要“做 什么〞而不是“怎样实现〞
要求使用面向处理的规格说明语言 〔或称系统定义语言〕
〔1〕代数规格说明
代数规格说明使用集合、定义于这 些集合上的函数和定义于这些函数 上的方程来描述对象。规格说明的 操作语义用这些方程表示。
举例:定义一个无界的栈及其操作
NEW_STACK:→ Stack PUSH:Stack,Element → Stack POP: Stack → (Element | Undefined) POP (NEW_STACK ( ) ) = Undefined POP (PUSH ( stk,elem ) ) = elem
是一种介于自然语言和形式化语言 之间的语言 语言的正文用根本控制构造进展分 割,加工中的操作用自然语言短语 来表示 其根本控制构造有三种: 简单陈述句构造:防止复合语句; 重复构造:while_do 或

软件工程中的需求获取与分析方法及工具

软件工程中的需求获取与分析方法及工具
软件工程中的需求获取与分析方法及工 具
制作人: 时间:2024年X月
目录
第1章 软件工程概述 第2章 需求获取方法 第3章 需求分析方法 第4章 需求分析工具 第5章 需求分析的挑战与解决方案
第6章 总结与展望
第1章 软件工程概述
● 01
软件工程定义
软件工程是一种系统化、规范化、可靠化、高效率 的软件开发方法。它涉及软件开发、软件维护和软 件项目管理等多个方面,是一种综合性的学科。
不断更新知识
参与实践项目
学习新的需求获取技术
将学到的知识应用到实际项目 中
总结经验教训,不断改进
尝试新的需求分析工具与技术 分享经验与他人交流
根据项目反馈不断优化需求 保持需求管理流程的持续改进
需求管理的重要性
需求管理是软件工程中的基石,正确理解需 求并采用适当的方法工具,对项目成功至关 重要。
需求跟踪
需求变更跟踪
记录需求变更的原因 更新需求文档 通知相关人员
完整性和一致性
确保需求管理的完整性 验证需求间的一致性 追踪需求变更历史
项目管理
控制需求变更的影响 评估变更的成本和风险 制定变更管理计划
需求分析方法总结
分类
功能性、非功能性、约束性
建模
使用UML建模工具
验证
与用户确认需求准确性
第四章 需求分析工具
描述对系统设计和实现的限制
需求建模
需求建模是使用UML等建模工具,绘制用例图、类 图等表示需求的过程。这些模型帮助开发人员更好 地理解和分析需求,提高开发效率。
需求验证
准确性确认
验证需求是否准确 地描述了用户需求
一致性确认
保证需求之间没有 冲突或不一致

软件工程PPT课件第3章 软件需求分析

软件工程PPT课件第3章 软件需求分析

–多个来回
6
软件需求分析的通信途径
7
分析建模
结构化分析模型 面向对象分析模型 分析模型描述工具

DFD、DD和PSPEC(加工规约)
CFD、CSPEC(控制规约)和STD E-R图 用例图,对象-关系图,对象-行为图
8
结构化分析模型
数据对象 说明 E-R图 加工说明 DFD图
44
数据流图
数据流图(DFD)是一种图形化技术,它描绘信息
流和数据从输入移动到输出的过程中所经受的变换 。 在数据流图中没有任何具体的物理部件,它只是 描绘数据在软件中流动和被处理的逻辑过程。 数据流图是系统逻辑功能的图形表示,即使不是 专业的计算机技术人员也容易理解它,因此是分析 员与用户之间极好的通信工具。 此外,设计数据流图时只需考虑系统必须完成的 基本逻辑功能,完全不需要考虑怎样具体地实现这 些功能。
2
需求分析的结构化分析方法准则
(1) 必须理解并描述问题的信息域,根 据这条准则应该建立数据模型。 (2) 必须定义软件应完成的功能,这条 准则要求建立功能模型。 (3) 必须描述作为外部事件结果的软件 行为,这条准则要求建立行为模型。 (4) 必须对描述信息、功能和行为的模 型进行分解,用层次的方式展示细节。
40
分析模型的元素
数据字典(DD):模型核心(中心库) E-R图(ERD): 数据流图(DFD)
指明数据在系统中移动时如何被变换; 描述对数据流进行变换的功能;
DFD中每个功能的描述包含在加工规约 (小说明)。
状态变迁图(STD)
指明作为外部事件的结果,系统将如何 动作。
41
3.4.2 数据建模
4
需求分析的任务和步骤

第03章 软件需求分析

第03章 软件需求分析
第三章
软件需求分析
一、需求分析的任务
二、分析过程
三、概念模型和规范化
四、软件需求分析工具
五、验证软件需求
六、小结
一、需求分析的任务
仍然回答“What”,而不是“How”, 但更细致、精确(合同的拟定)
可行性分析 DFD DD 功能具体化 需求规格说明 加细 DFD DD 算法 描述 IPO

Final stage of Definition phase
2、范式
通常用范式来消除数据冗余的程度。第一范式(1NF)数据冗余程 度最大,第五范式(5NF)数据冗余程度最小。 范式太高,存在的缺点为(1) 存储过程复杂;(2)稳定性较差; (3)性能下降。较为理想是选用第三范式。 ※ 第一范式:每个属性值都必须是原子值(不可再分的数据项)。例 如:下表(表3-1)是满足第一范式的关系数据库(W)。 日期 95.05 95.05 95.05 95.05 95.06 95.06 95.06 95.06 工号 101 102 103 104 101 102 103 104 姓名 丁一 王二 张三 李四 丁一 王二 张三 李四 工种 车工 车工 钳工 电工 车工 车工 钳工 电工 定额 80 80 75 70 80 80 75 70 超额 22% 17% 14% 20% 19% 25% 16% 26% 车间 金工 金工 动力 动力 金工 金工 动力 动力 车间主任 李明 李明 赵杰 赵杰 李明 李明 赵杰 赵杰
101 102 103 104
丁一 王二 张三 李四
车工 车工 钳工 电工
80 80 75 70
金工 金工 动力 动力
李明 李明 赵杰 赵杰
表3-3
W2关系数据库
表3-2 W1关系数据库

《软件工程》第3章 软件需求分析

《软件工程》第3章 软件需求分析

【本章重点】 本章重点】
需求分析的方法 ; 需求分析的任务和原则 ;
【教学目标】 教学目标】
掌握需求分析的基本概念; 掌握需求分析的基本概念; 掌握如何使用需求获取技术来进行数据采集; 掌握如何使用需求获取技术来进行数据采集; 掌握结构化分析的思想与过程; 掌握结构化分析的思想与过程; 掌握数据流建模技术。 掌握数据流建模技术。
3.2 面向数据流的分析方法
3.2.2 数据流图
1.数据流图中的主要图形元素
3.2 面向数据流的分析方法
2.分层的数据流图
在多层数据流图中,可以把顶层数据流图、 在多层数据流图中,可以把顶层数据流图、底层数 据流图和中间层数据流图区分开来。顶层数据流图仅 据流图和中间层数据流图区分开来。 包含一个加工,它代表被开发系统。 包含一个加工,它代表被开发系统。它的输入流是该 系统的输入数据,输出流是系统的输出数据。顶层数 系统的输入数据,输出流是系统的输出数据。 据流图的作用在于表明被开发系统的范围, 据流图的作用在于表明被开发系统的范围,以及它和 周围环境的数据交换关系。 周围环境的数据交换关系。底层数据流图是指其加工 不须再做分解的数据流图,其加工称为“原子加工” 不须再做分解的数据流图,其加工称为“原子加工”。 中间层数据流图则表示对其上层父图的细化。 中间层数据流图则表示对其上层父图的细化。它的每 一个加工可以继续细化,形成子图。 一个加工可以继续细化,形成子图。中间层次的多少 视系统的复杂程度而定。 视系统的复杂程度而定。
3.2 面向数据流的分析方法
4.数据流图的优缺点
总体概念强,每一层都明确强调“干什么” 总体概念强,每一层都明确强调“干什么”,“需要 什么” 给出什么” 什么”,“给出什么”; 可以反映出数据的流向和处理过程; 可以反映出数据的流向和处理过程; 由于自顶向下分析, 由于自顶向下分析,容易及早发现系统各部分的逻辑 错误,也容易修正; 错误,也容易修正; 容易与计算机处理相对应; 容易与计算机处理相对应; 不直观,一般都要在作业流程分析的基础上加以概括、 不直观,一般都要在作业流程分析的基础上加以概括、 抽象、 抽象、修正来得到

软件工程 第3章需求分析

软件工程 第3章需求分析
名字:定货报表 别名:定货信息 描述:每天一次送给采购员的 逐一确定 需要定货的零件表 元素的来 定义:定货报表 = 零件编号 +零件名称+ 源 定货数量+目前价格+主要供应 商+次要供应商
位置:定货报告 定货信息 库存清单
面向数据流方法的分析的应用
6 D1 库存清单 事务 1 包含零件编 号、名称、 目前价格
深入调查
外部输入或系 统生成
3.2.2 面向数据流的自顶向下求精
• 回溯时常遇到的问题:为了得到某个数据元素需要 用到数据流图中还没有的数据元素,或者得出这个 数据元素要用的算法尚不完全清楚。 • 因此,需要向用户等有关人员请教,他们的回答使 分析员对目标系统的认识更深入具体,系统中更多 的数据元素被划分出来,更多的算法搞清楚了。 • 把分析过程中得到的有关数据元素的信息记录在数 据字典中,把对算法的简明描述记录在IPO图中。 通过分析而补充的数据流、数据存储和处理,应该 添加到数据流图的适当位置上。
• 主要目标:把数据流和数据存储定义到元 素级别(不可分解为止)
数据的来源、去 向、数据结构定 义等
可行性 分析忽 略了细 节
3.2.2 面向数据流的自顶向下求精
自顶向下,逐 层细化的方法
• 结构化分析方法是一种什么方法呢? • 从数据流图的输出端着手分析,这是因为系 统的基本功能是产生这些输出的关键原因。 • 输出数据决定了系统必须具有的最基本的组 成元素(包括功能和数据结构组成)。
3.4.1 数据对象
• 它的范畴很大,可以是外部实体(例如,产生 或使用信息的任何事物)、事物(例如,报表)、 行为(例如,打电话)、事件(例如,响警报)、 角色(例如,教师、学生)、单位(例如,会计 科)、地点(例如,仓库)或结构(例如,文件) 等。 • 总之,可以由一组属性来定义的实体都可以 被认为是数据对象。

第3章_软件需求获取与结构化分析方法题及参考答案

第3章_软件需求获取与结构化分析方法题及参考答案

第3章软件需求获取与结构化分析方法3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。

有时称传统的分析方法,指的就是结构化分析方法。

3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。

其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。

(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。

3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。

(2) 注意分层细化时对编号的处理方法。

3.4 银行存款业务如下:客户到银行柜台存款时,首先填写存款单(包括帐号、姓名、存款金额、存款类型),如果还没有开户,则需要先开户,填写开户单(包括姓名、身份证号、地址、电话、是否留密码)。

填写完存款单或开户单后,交给营业员,营业员将存款单或开户单信息输入计算机,系统记录开户信息或存款单信息,如果是开户并选择留密码,则需要客户输入密码。

最后印出开户单或存款单给用户。

请画出银行存款业务的分层数据流图(至少画出两层)。

(1) 识别外部实体及输入输出数据流外部实体:储户、业务员。

输入数据流:存款单,开户单,密码。

可以将存款单和开户单抽象为事务。

输出数据流:存款单,开户单。

(2) 顶层数据流图(3) 一层数据流图对银行储蓄系统进行分解,从大的方面分解为接收事务、处理开户、处理存款三部分,得到一层数据流图。

(4) 二层数据流图对“处理存款”及“处理开户”进行进一步分解,得到二层数据流图,即处理存款的数据流图和处理开户的数据流图。

软件需求分析--结构化分析(SA)方法

软件需求分析--结构化分析(SA)方法

软件需求分析--结构化分析(SA)⽅法结构化开发⽅法(Structured Developing Method)是现有的软件开发⽅法中最成熟,应⽤最⼴泛的⽅法,主要特点是快速、⾃然和⽅便。

结构化开发⽅法由结构化分析⽅法(SA法)、结构化设计⽅法(SD 法)及结构化程序设计⽅法(SP 法)构成的。

结构化分析(Structured Analysis,简称SA 法)⽅法是⾯向数据流的需求分析⽅法,是70 年代末由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。

它适合于分析⼤型的数据处理系统,特别是企事业管理系统。

SA 法也是⼀种建模的活动,主要是根据软件内部的数据传递、变换关系,⾃顶向下逐层分解,描绘出满⾜功能要求的软件模型。

1 SA 法概述 1.SA 法的基本思想 结构化分析(Structured Analysis,简称SA 法)是⾯向数据流的需求分析⽅法,是70年代由Yourdon,Constaintine 及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤。

结构化分析⽅法的基本思想是“分解”和“抽象”。

分解:是指对于⼀个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把⼤问题分解成若⼲⼩问题,然后分别解决。

图4 是⾃顶向下逐层分解的⽰意图。

顶层抽象地描述了整个系统,底层具体地画出了系统的每⼀个细节,⽽中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进⾏,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直⾄涉及到最详细的内容,这种⽤最本质的属性表⽰⼀个⾃系统的⽅法就是“抽象”。

2.SA 法的步骤 ⑴建⽴当前系统的“具体模型”; 系统的“具体模型”就是现实环境的忠实写照,即将当前系统⽤DFD 图描述出来。

这样的表达与当前系统完全对应,因此⽤户容易理解。

⑵抽象出当前系统的逻辑模型; 分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得⽤DFD 图描述的当前系统的“逻辑模型”。

软件工程第三章需求应用全面分析

软件工程第三章需求应用全面分析

结构化英语、判定树、判定表用于描述数据流 图中的处理逻辑说明。
• SA方法的实质*:是采用一组分层数据流图及数据
字典作为系统的模型,从总体来看,是一种依赖数
据流图的自顶向下的建模方法。
2020/11/25
5
数据流图:分层扩展的功能模

数据流图(DFD)是SA方法中用于建立系统逻辑模型 的一种工具,它以图形的方式描绘数据在系统中处理的流 动过程。由于它只反映系统需要完成的逻辑功能,所以它 是一种功能模型。*
配件库存
顾客
订货单 发货单
1
处理 业务Biblioteka 订货单 发货单供应 商
2020/11/25
15
数据流图: DFD绘制步骤(续)
* (2)再绘制二层DFD:是顶图的分解,表明子系统划分及其 边界。 • 系统划分几个子系统,一个子系统在二层图中只有一个处理逻辑(需
求来源是业务子系统或用例图中的用例); • 每一子系统析取所有的外部项、输入输出数据流和主要数据存储; • 各子系统之间的依赖关系(数据流直接依赖,数据存储缓存依赖)。
软件工程 Software Engineering
第三章 需求应用全面分析
2020/11/25
1
本章主要内容
• 3.1 软件需求概念
-软件需求的问题、定义、层次、来源、依据、目标
• 3.2 需求工程过程
- 需求开发:需求获取、需求分析、规格说明、需求验证 - 需求管理:覆盖需求开发全过程
• 3.3 需求获取技术
数据存储可以是一个文件,也可以是文件的一部分或 数据库记录的一部分。数据可以存储在磁盘、磁带、存储 器等任何介质上。指向数据存储的箭头可以是单向的,也 可以是双向的。

无作业解答 第3章 需求分析

无作业解答 第3章 需求分析

必须证明需求是正确有效的,确实能解决用户面 对的问题。
3.9 小结
需求分析是发现、求精、建模、规格说明和复审的过程。 1、需求分析的任务:准确地回答“系统必须做什么?”。 2、获取需求的方法: 访谈, 原型, 自顶向下求精等 3、分析建模与规格说明: 数据模型:实体-联系图 & 数据规范化 功能模型:数据流 行为模型:状态转换图(简称状态图) 其他图形工具辅助描绘系统中的数据结构:层次方框图、 Warnier图、IPO图 4、验证软件需求:一致性、完整性、现实性和有效性
需求分析31需求分析的任务32与用户沟通获取需求的方法33分析建模与规格说明34实体联系图35数据规范化36状态转换图37其他图形工具38验证软件需求39小结需求分析的意义软件需求的深入理解是软件开发工作获得成功的前提条件不论我们把设计和编码做得如何出色不能真正满足用户需求的程序只会令用户失望给开发带来烦恼
经 济 采 购 批 量
保 本 保 利 分 析
3.7.2

Warnier图 法国计算机科学家Warnier提出了表示信息层次 结构的另外一种图形工具。 Warnier图也用树形结构描绘信息,但是这种图 形工具比层次方框图提供了更丰富的描绘手段。 用Warnier图可以表明信息的逻辑组织。 它可以指出一类信息或一个信息元素是重复出现 的,也可以表示特定信息在某一类信息中是有条 件地出现的。 重复和条件约束是说明软件处理过程的基础,所 以很容易把Warnier图转变成软件设计的工具。
5、接口需求:用户接口需求、通信接口需求、软件/硬件接口需求。
6、约束:如精度、工具和语言约束、设计约束、应该使用的标准和 平台。 7、 逆向需求:说明系统不应该做什么。 8、将来可能提出的要求:以便将来扩充和修改

第三章软件工程结构化分析

第三章软件工程结构化分析

get f1 A
f4 f6
f3 f2
主模块 (C、D、E)
f7
将f3变换成f7和f8
f7
f8
C
D
E
put f7
put f8
f9 f8 f10
F put f9 G put f10
f10
f11
H put f11
主模块 (C、D、E)
get f3
将f3变换成f7和f8
put f7
put f8
get f2 B
随着设计的逐步深入,对软件结构进一步细化,称为详 细设计(或过程设计)。
因此,软件设计分为:概要设计、详细设计两个阶段。
█ 概要设计 通过仔细分析“软件需求规格说明”,适当地对软件
进行功能分解,从而将系统分解为一系列功能模块,并 设计出完成预定功能的模块结构。(层次结构) █ 详细设计
具体针对每个模块,确定完成每个模块功能所需要的 算法和数据结构等。 (实现过程)
每个模块完成一个特定的子功能,所有模块按某种方法组 装成为一个整体,从而实现整个系统所要求的功能。
说明:模块化是软件开发过程中解决复杂问题的重要手段。
开发大而复杂的系统,进行适当的分解,不但可降低系 统复杂性,还可减少开发工作量,总体上降低开发成本, 提高软件生产率。
是否将系统无限分解,最后开发工作量就趋于零?
第4章 结构化设计
学习内容: 1、结构化设计的定义与目标 2、结构化设计与结构化分析的关系 3、结构化设计的分类与任务 4、结构化设计的概念和原理
了解: 结构化设计与结构化分析的关系
掌握: 结构化设计的概念与原理
一、结构化设计的定义与目标
在需求分析基础上,采用结构化方法进行软件系统的设

软件工程(第五版)--习题及答案--第三章资料讲解

软件工程(第五版)--习题及答案--第三章资料讲解
3、数据流图的作用是什么?它有哪些基本成分?
答:数据流图是用于表示系统逻辑模型的一种工具。它从数据传递和加工的角度,以图形的方式描述数据在系统中流动和处理过程。它表示了系统内部信息的流向以及系统的逻辑处理功能。
数据流图的主要成分有四种:数据流、数据存储、加工、数据流的源点和终点。
4、数据词典的作用是什么?它包括哪些内容?
7、(×)在软件生产过程中,需求信息的来源是项目经理。
8、(√)需求分析阶段的任务是确定软件的功能。
二、选择题
1、需求分析最终结果是产生(B)。
A、项目开发计划B、需求规格说明书
C、设计说明书D、可行性分析报告
2、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。
A、SAB、SDC、SPD、SC
A、模块说明书B、软件规格说明书
C、项目开发计划D、合同文档
14、结构化分析方法是以数据流图、(D)和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
A、DFD图B、PAD图C、IPO图D、DD
15、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)。
解:数据流图如下:
3、某考务中心准备开发一个考务管理系统,其需求如下:
(1)考生填写考试报名表,经检查合格后在系统中登记注册,并发给学生准考证。
(2)学生按照准考证要求进入考场考试。考试完后将试卷交给阅卷站。
9、结构化分析的核心是(A)。
A、自顶向下的分解B、用DFD建模
C、用DD描述数据需求D、自底向上的抽象
10、需求分析的任务是(A)。
A、正确说明让软件“做什么”B、用DFD建模
C、用DD建立数学模型D、给出需求规格说明书

《软件工程实用教程》第3_章_结构化需求分析

《软件工程实用教程》第3_章_结构化需求分析

第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 5.掌握數據流建模技術

软件工程 第3章 结构化需求分析

软件工程 第3章  结构化需求分析

Kitchen
Bathroom
Room with Furniture
Living Room
Family Room
Bed Room
Dining Room
31
§4.图形工具
层次方框图用树形结构的一系列多层 次的矩形框描绘数据的层次结构。树形结 构的顶层是一个单独的矩形框,它代表完 整的数据结构,下面的各层矩形框代表这 个数据的子集,最底层的各个框代表组成 这个数据的实际数据元素(不能再分割的元 素)。
需求规格说明
加细 DFD
DD
算法 描述 IPO
Final stage of Definition phase
2
§1. 需求分析的任务
1、确定要求 (1) 功能要求(functional requirements):系统必须做什么? (2) 性能要求(performance requirements):做得怎样?
⑶ 用户系统描述 —— 初步用户手册:从用户的观点考虑系统
系统功能、性能 使用与步骤 等
⑷修正的开发计划: 成本估计 资源使用计划 进度计划
21
§3.概念模型和规范化 —— 对数据的分析
1、概念模型:描述从用户角度看到的数据 实体 -联系图(Entity - Relationship Diagram)
•例子:电话系统的状态图。 •没有人打电话时电话处于闲置状态;有人拿起听筒则 进入拨号音状态,到达这个状态后,电话的行为是响起 拨号音并计时;这时如果拿起听筒的人改变主意不想打 了,他把听筒放下(挂断),电话重又回到闲置状态;如 果拿起听筒很长时间不拨号(超时),则进入超时状 态;……。
28
§4.图形工具
19
封面:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

业务 员
事务 银行储蓄 系统
存款单 储 利息清单 户
储 户
密码
3.2.1 功能建模
• (3) 画出一层数据流图
3.2.1 功能建模
• (4) 画出二层数据流图
对一层图中的“处理存款”及“处理取款”进行 进一步分解,得到二层数据流图,即处理存款的 数据流图和处理取款的数据流图。
存款业务 2.1 记录存款 信息 存款信息 2.2 存款单
软件需求分析阶段的任务
3. 需求定义
将已经过分析的需求清晰、全面、系统、准确地 描述成为正式的文档,这一步定义需求的工作就 是编写需求规格说明。
软件需求分析阶段的任务
4. 需求验证
为了确保已定义的需求(需求规格说明)准确无 误,并能为客户(或用户)理解和接受,需要对 其进行严格的评审。
需求获取的过程

3.2.1 功能建模
• 多个数据流之间的关系
3.2.1 功能建模
• 环境图


环境图(context diagram)也称为顶层数据流 图(或0层数据流图),它仅包括一个数据处理过 程,也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位臵,通 过确定系统的输入和输出与外部实体的关系确定 其边界。
软件需求分析阶段的任务
2. 需求分析
认真研究获取的需求,必须考虑以下几方面: (1) 完整性:每项获取的需求都应给出清楚的描述, 使得软件开发工作能够取得设计和实现该功能所 需要的全部必要信息。 (2) 正确性:获取的每项需求必须是准确无误的, 并且需求描述无歧义性。 (3) 合理性:各项需求之间、软件需求与系统需求 之间应是协调一致的,不应存在矛盾和冲突。
软件需求分析阶段的任务
• 可以把软件需求分析阶段的工作分为4个步骤,即 获取需求、分析需求、定义需求和验证需求,如 图所示。
软件需求分析阶段的工作步骤
软件需求分析阶段的任务
1. 需求获取
通过启发、引导从客户(或用户)那里得到的原始 需求是他们的业务要求(needs),简称为N。 这是分析之前获取的需求,其中可能存在一些实际 问题,这些问题只有通过分析才能得到解决,直接 把获取的需求作为软件设计阶段的依据将会导致严 重的后果。
1. 开发高层的业务模型 2. 定义项目范围和高层需求 3. 识别用户类和用户代表 系统的不同用户之间在很多方面存在差异,例如: (1) 使用产品的频率; (2) 用户在应用领域的经验和使用计算机系统的技 能; (3) 所用到的产品功能; (4) 为支持业务过程所进行的工作; (5) 访问权限和安全级别
需求获取的任务和原则
• 导出需求变得如此困难的原因归为以下几 个方面的问题:

系统的目标或范围问题; 需求不准确性问题 ; 需求的易变问题 ;
需求获取除了需要有专业的系统分析师,还需要 通过有效的客户/开发者的合作才能成功。
需求获取的任务和原则
1. 需求获取的任务
(1) 发现和分析问题,并分析问题的原因/结果关系。 (2) 与用户进行各种方式的交流,并使用调查研究 方法收集信息。 (3) 按照三个成分观察问题的不同侧面:即数据、 过程和接口。 (4) 将获取的需求文档化,形式有用例、决策表、 需求表等。
需求获取的任务和原则
2. 需求获取应遵循的原则
(1) 深入浅出的原则。就是说,需求获取要尽可能 全面、细致。获取的需求是个全集,目标系统真 正实现的是个子集。 (2) 以流程为主线的原则。在与用户交流的过程中, 应该用流程将所有的内容串起来。如信息、组织 结构、处理规则等。这样便于交流沟通。流程的 描述既有宏观描述,也有微观描述。
3.2.1 功能建模
• (1) 识别外部实体及输入输出数据流。

外部实体:储户、业务员。
输入数据:如果需要储户输入密码,储户才直接 与系统进行交互。储户填写的存款或取款信息通 过业务员键入系统,可以将存款及取款信息抽象 为事务。
输出数据:存款单,利息清单。

3.2.1 功能建模
• (2) 画出环境图(顶层数据流图)
打印存款单
存款信息
处理存款的数据流图
3.2.1 功能建模
• (4) 画出二层数据流图
处理取款的数据流图
练习:完成下列需求功能建模
• 机票预定系统简要需求
• 各个旅行社把预定机票的旅客信息(姓名、性别、工作单 位、身份证号码(护照号码)、旅行时间、旅行始发地和 目的地,航班舱位要求等)输入到系统中,系统为旅客安 排航班。 • 当旅客交付了预订金后,系统打印出取票通知和帐单给旅 客。 • 旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统 核对无误即打印出机票给旅客。 • 此外航空公司为随时掌握各个航班飞机的乘载情况,需要 定期进行查询统计,以便适当调整。
软件需求分析阶段的任务
2. 需求分析
(4) 可行性:包括技术可行性 、经济可行性 、社 会可行性 。 (5) 充分性:获取的需求是否全面、周到。
软件需求分析阶段的任务
2. 需求分析
由于分析的过程会对获取的需求做部分调整,也即 从获取的需求N中去掉了一些a,又补充了一些c, 从而得到的是分析的需求R1(b+c)。
3.2 结构化分析方法
• 结构化分析方法


传统的分析建模方法称为结构化分析 (structured analysis,SA)方法。 最有代表性的是一种面向数据流进行需求分析的 方法,最初于20世纪70年代由D.Ross提出,后 来又经过扩充,形成了今天的结构化分析方法的 框架。
3.2 结构化分析方法
3.2.1 功能建模
• 招生系统的分层数据流图
3.2.1 功能建模
• 数据流图的分层示意图
3.2.1 功能建模
• 实例研究
银行储蓄系统的业务流程: 储户填写的存款单或取款单由业务员键入系统; 如果是存款则系统记录存款人姓名、住址(或电话 号码)、身份证号码、存款类型、存款日期、到期 日期、利率、密码(可选)等信息,并印出存单给 储户; 如果是取款而且开户时留有密码,则系统首先核对 储户密码,若密码正确或存款时未留密码,则系统 计算利息并印出利息清单给储户。 要求画出分层的数据流图,并细化到2层数据流图。
3.2.2 数据建模
• 关系的属性
3.2.2 数据建模
• 银行储 蓄系统 的ER图
3.2.3 行为建模
• 状态转换图(简称状态图)通过描绘系统的状态 及引起系统状态转换的事件,来表示系统的行为。 状态图中使用的主要符号如图所示。
3.2.2 数据建模
• 关系
不同数据对象的实例之间是有关联关系的,在ER 图上用无向边表示。 在无向边的两端应标识出关联实例的数量,也称 为关联的重数。 从关联重数的角度可以将关联分为3种。 (1) 一对一(1:1)关联 (2) 一对多(1:m)关联 (3) 多对多(m:n)关联 实例关联还有“必须”和“可选”之分。

3.2.2 数据建模
• 关联数量的表示

在ER图中用圆圈表示所关联的实例是可选的,隐含 表示“0”,没有出现圆圈就意味着是必须的。出现 在连线上的短竖线可以看成是“1”。
3.2.2 数据建模
• 关联关系举例
3.2.2 数据建模
• 关系的属性


关系本身也可能有属性,这在多对多的关系中尤 其常见,如学生和课程之间的关系可起名为“选 课”,其属性应该有学期、成绩等。 关系属性的表示:在表示关系的无向边上再加一 个菱形框,并在菱形框中标明关系的名字,关系 的属性同样用椭圆形或圆角矩形表示,并用无向 边将关系与其属性连接起来。
3.2.1 功能建模
• 招生系统的环境图
3.2.1 功能建模
•题,在数据流图上常 常出现十几个甚至几十个加工,这样的数据流图 看起来不直观,不易理解,分层的数据流图能很 好地解决这一问题。 按照系统的层次结构进行逐步分解,并以分层的 数据流图反映这种结构关系,能清楚地表达和容 易理解整个系统。
3.2.2 数据建模
• 数据对象


数据对象是目标系统所需要的复合信息的表示, 所谓复合信息是具有若干不同属性的信息。在ER 图中用矩形表示数据对象。 在实际问题中,数据对象(实体)可以是外部实 体、事物、角色、行为或事件、组织单位、地点 或结构等。
3.2.2 数据建模
• 属性


属性定义数据对象的特征,如数据对象学生的学号、姓名、 性别、专业等,课程的课程编号、课程名称、学分等。 在ER图中用椭圆或圆角矩形表示属性,并用无向边将属性 与相关的数据对象连接在一起。
需求获取的过程
6. 需求整理与总结

必须对上面步骤取得的需求资料进行整理和总结, 确定对软件系统的综合要求,即软件的需求。 并提出这些需求实现条件,以及需求应达到的标 准。 这些需求包括功能需求、性能需求、环境需求、 可靠性需求、安全保密要求、用户界面需求、资 源使用需求、软件成本消耗与开发进度需求等。
• 结构化分析模型
结构化分析方法是一种建模技术,它建立的分析 模型如图所示。
3.2.1 功能建模
• 概念
功能建模的思想就是用抽象模型的概念,按照软 件内部数据传递、变换的关系,自顶向下逐层分 解,直到找到满足功能要求的所有可实现的软件 为止。功能模型用数据流图来描述。
3.2.1 功能建模
• 数据流图的基本图形符号
3.2.2 数据建模
• 在结构化分析方法中,使用实体—关系建模技术 来建立数据模型。 • 这种技术是在较高的抽象层次(概念层)上对数 据库结构进行建模的流行技术。 • 实体—关系模型表示为可视化的实体—关系图 (entity-relationship diagram,ERD),也称 为ER图。 • ER图中仅包含3种相互关联的元素:数据对象(实 体)、描述数据对象的属性及数据对象彼此间相 互连接的关系。
相关文档
最新文档