第3章需求分析
第3章 需求分析
![第3章 需求分析](https://img.taocdn.com/s3/m/afae99d9240c844769eaeed3.png)
3. 画加工的内部
用画0层图同样的方法画出每个加工的DFD子图。
4. 对DFD子图中的每个加工重复第3步的分解
2013-7-16
上海大学计算机学院
7
数据流求精实例
某考务处理系统
① 对考生送来的报名单进行检查; ② 对合格的报名单编好准考证号后将 准考证送给考生,并将汇总后的 考生名单送给阅卷站; ③ 对阅卷站送来的成绩清单进行检查, 并根据考试中心制定的合格标准 审定合格者; ④ 制作考生通知单(内含成绩及合格 /不合格标志)送给考生; ⑤ 按地区、年龄、文化程度、职业、 考试级别等进行成绩分类统计和 试题难度分析,产生统计分析表。
2013-7-16
上海大学计算机学院
13
实体-联系图
◆ 基本成分与符号
数据对象/实体
数据对象间的联系(1:1, 1:N, M:N) 属性(数据对象的性质)
◆ 实例
姓名
教工号
教师
M M
学生
N
职称
教N学课程源自M2013-7-16
上海大学计算机学院
14
其他图形工具
◆层次方框图
◆Warnier图
2013-7-16
第3章
需求分析
◆需求分析的任务
◆需求获取
◆需求描述
◆需求验证
2013-7-16
上海大学计算机学院
1
需求分析的任务
◆ 基本任务
● 准确地回答“系统必须做什么?” ● 分析软件需求和书写软件需求规格说明书
◆ 软件需求 ● 用户解决问题或达到目标所需要的条件或能力(want OR need?) ● 需求层次:业务需求用户需求功能与非功能需求 ◆ 具体任务 ● 确定对系统的综合要求 功能需求、性能需求、可靠性和可用性需求、出错处理需求、 接口需求、约束、逆向需求、扩展需求 ● 分析系统的数据要求 ● 导出系统的逻辑模型 ● 修正系统开发计划 ? 开发原型系统
第3章 需求理论与分析
![第3章 需求理论与分析](https://img.taocdn.com/s3/m/c2072aa9dd3383c4bb4cd268.png)
13
价格弹性
• 富有弹性和缺乏弹性
富有弹性:������������ < −1 缺乏弹性:−1 < ������������ < 0 单元弹性:������������ = −1 弹性无穷大:������������ = −∞ 完全无弹性:������������ = 0 例:线性需求与价格弹性
22
在决策中应用弹性
• A公司是一家爱情小说的出版商。为了确定其产 品的需求,公司雇佣了一位经济学家。经过几 个月的艰苦工作,该经济学家告诉公司这种爱 情小说的需求方程估计为: ������������ = 12 000 − 5 000������������ + 5������ + 500������������ • 根据这个方程,公司经理想要: • 1.确定如果涨价,会对总收入有何影响。 • 2.了解在居民收入上升期间,小说的销售量将 如何变化。 • 3.评估如果竞争对手提高其产品的价格,会给 自己带来什么影响。 • 假定������������ , ������和������������ 初始值分别为5美元、10000美元和 6美元。
15
价格弹性
• 影响价格弹性的因素
是否有替代品 在收入中所占比重 时间的长短
• 美国汽油需求的价格弹性
年数 价格弹性 1 -0.11 2 -0.12 3 -0.32 5 -0.49 10 -0.82 20 -1.17
16
收入弹性
• 需求的收入弹性Fra bibliotek衡量需求量对收入变化的反应程度,因收入变 化1%而引起的需求量变化的百分比。 %∆������ ������������ = %∆������ ������2 −������1 ������2 +������1 弧弹性:������������ = ∙ 点弹性:������������ =
(完整版)第三章需求分析习题及答案
![(完整版)第三章需求分析习题及答案](https://img.taocdn.com/s3/m/4b1ce2cea417866fb84a8ee8.png)
第三章需求分析一. 填空题1.需求分析的步骤 , , , 。
2.需求分析阶段需编写的文档有,,。
3.系统规格说明,数据要求,, ,这四份文档资料是在书写文档阶段必需完成的。
4.在书写文档阶段,数据要求主要包括通过需求分析建立起来的,以及描绘数据结构的层次方框图。
5.对于计算机程序处理的数据,其数据域应包括 , , 和数据结构。
6.数据内容即是。
7.把一个功能分解成几个子功能,并确定 , 就属于横向分解。
8.软件需求的逻辑视图给出 , 而不是实现的细节。
9. 功能一般用 , 来表示。
10.结构化分析方法是 , 进行需求分析的方法.11.描述结构化分析方法的工具有,,,判定表,判定树。
12. SA方法中自顶向下的分析策略主要是和。
13.数据流图的基本组成部分有,,,。
14.数据流图的特性,,,。
15.数据流图和数据字典共同构成了系统的模型,是需求规格说明书的主要组成部分。
16.分析员通过需求分析,逐步细化对软件的需求,描述软件主要处理的,并给软件开发提供一种可转化为,和的数据与功能表示。
17.需求分析阶段研究的对象是软件项目的。
18.数据流图的基本符号包括,,,。
19.在需求分析阶段常用的图形工具有,,。
20.需求分析应交付的主要文档是。
二. 选择题1. 需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模2. 需求分析阶段的任务是确定()A.软件开发方法 B.软件开发工具C.软件开发费 D.软件系统的功能3. 需求分析阶段最重要的技术文档之一是非曲直()。
A.项目开发计划 B.设计说明书 C.需求规格说明书 D.可行性分析报告4.需求分析阶段建立原型的目的是()。
A.确定系统的功能和性能的需求 B.确定系统的运行要求C.确定系统是否满足用户需求 D.确定系统是否满足开发人员需要5.需求分析阶段研究的对象是()A.用户需求 B.分析员要求 C.系统要求 D.软硬件要求6.系统流程图用于可行性分析中的_____的描述。
第3章 需求分析
![第3章 需求分析](https://img.taocdn.com/s3/m/477d9f19a76e58fafab00389.png)
网上查某 本书<3秒
图书名称 /作者姓 名
按照输入的组 合条件,进行 模糊查询
显示“图书名称、作 者姓名、是否借出、 内容简介”
2
后台查询读 者信息响应 时间 后台查询图 书信息响应 时间
图书 馆借 阅部 图书 馆借 阅部
借阅 操作 员 借阅 操作 员
后台查某 读者信息 <2秒 后台查某 部书<2秒
案例3-3 【案例3-3】网上图书馆信息系统的部分接口列表,如 表3-3所示。 表3-3 目标系统的接口列表(接口模型)
3.2 需求分析的任务及过程
表3-3 目标系统的接口列表(接口模型)
编 号 接口 名称 接口 规范 接口 标准 入口参数 出口参数 传输 速率
1
与财 务系 统接 口
财务 系统 规定 的接 口规 范
3.2 需求分析的任务及过程
图3-2需求分析过程
3.2 需求分析的任务及过程
根据实际项目的规模和特点确定合适的需求分析常规过 程如下。 1.需求获取 2.综合需求与描述 3. 需求验证 4.需求文档
课堂讨论:
(1)需求分析具体任务有哪些? (2)需求分析常规步骤是什么?
3.2 需求分析的任务及过程书信息系统的 部分性能点列表(性能模型),如表 3-2所示。
3.2 需求分析的任务及过程
表3-2 图书馆系统的性能点列表
编号 性能名称 使用 部门 网上 读者 使用 岗位 网上 读者 性能描述 输入 系统响应 输出
1
读者网上查 询图书信息 响应时间
一张 凭证 一次 处理 传送
3.2 需求分析的任务及过程
7.确定系统运行环境及界面 8.修正开发计划和新系统方案 9. 编写需求文档,验证确认需求 【注意】上述任务要具体分析,灵活运用。如果需求 分析之后,对将要实现的新系统,仍然感到不够明确时, 不应签字确认,还需进行进一步深入分析。
第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章软件需求分析与建模
![第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
把原型作为 把原型作为应 应用系统 用系统开发的
软件工程导论第3章
![软件工程导论第3章](https://img.taocdn.com/s3/m/666c89d23186bceb19e8bba8.png)
2.访谈
访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍 然广泛使用的需求分析技术。 访谈有两种基本形式: 正式访谈:系统分析员将提出一些事先准备好的具体问题。 非正式访谈:分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人员说出自己的想法。 调查表是当需要调查大量人员的意见时的一个十分有效的做法。 分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户, 以便向他们询问在分析调查表时发现的新问题。 在访问用户的过程中可以使用情景分析技术。情景分析技术的 用处主要体现在下述两个方面: (1) 它能在某种程度上演示目标系统的行为,从而便于用户理解, 而且还可能进一步揭示出一些分析员目前还不知道的需求。 (2) 由于情景分析较易为用户所理解,使用这种技术能保证用户在 需求分析过程中始终扮演一个积极主动的角色。
(1) 数据对象
数据对象是对软件必须理解的复合信息的抽象。所谓 复合信息是指具有一系列不同性质或属性的事物,仅有单 个值的事物(例如,宽度)不是数据对象。 数据对象可以是外部实体(例如,产生或使用信息的任 何事物)、事物(例如,报表)、行为(例如,打电话)、事件 (例如,响警报)、角色(例如,教师、学生)、单位(例如,会 计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可 以由一组属性来定义的实体都可以被认为是数据对象。 数据对象彼此间是有关联的,例如,教师“教”课程, 学生“学”课程,教或学的关系表示教师和课程或学生和 课程之间的一种特定的连接。
(4)需求验证 由软件开发者和用户一起来进行软件需求规格
说明的复审。确保需求规格说明可作为软件设计和最 终系统验收的依据。
二. 需求获取的常用方法
1. 建立联合分析小组 建立一个由用户、系统分析员和领域专家参加 的联合分析小组,密切合作,共同标识问题,提出 解决方案要素,商讨不同方案并指定基本需求。 这是一种面向团队的需求收集法,又称为简易 的应用规格说明技术。
软件工程导论-第3章_需求分析_(第五版)(张海藩编著)_a_百度文库
![软件工程导论-第3章_需求分析_(第五版)(张海藩编著)_a_百度文库](https://img.taocdn.com/s3/m/ecabf5320912a216147929de.png)
(2) 完整性:需求必须是完整的,规格说明书应该包括用户需要的
每一个功能或性能。
(3) 现实性:指定的需求应该是用现有的硬件技术和软件技术基本
上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步 则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4) 有效性:必须证明需求是正确有效的,确实能解决用户面对的
成功来之不易
31%
(取消)
16.2%
(成功地完成)
53.8%
(受到挑战) Source: Standish Group
2
软件项目失败的原因
软件项目失败的最重要的五个主要原因:
需求不完整 缺少客户的参与 缺少资源 期望值过高 缺少高层的支持
0% 5% 10% 15%
3
需求错误的成本
4
软件需求的重要性: •软件需求分析是决定软件成功开发的一个关键因素
3.1.4 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体 的了解,可以比较准确地估计系统的成本和进度,修 正以前制定的开发计划。
补充:与用户沟通获取需求的方法
3.2 与用户沟通获取需求的方法
需求获取的困难:
-用户通常并不真正知道自己希望计算机系统做什么 用户通常使用业务语言表达需求,开发人员缺乏相关 的领域知识和经验,难以准确理解这些需求 -不同的用户提出不同的需求,可能存在矛盾和冲突 管理者可能出于增加影响力的原因而提出特别的需求 -由于经济和业务环境的动态性,需求经常发生变更
图3.7 IPO图的一个例子图
模块编号:c.5.5.8
图3.7 IPO图的一个例子图
图3.8 改进的IPO图的形式
本书建 议使用 一种改 进的 IPO图 (也称 为IPO 表 ),
第三章 软件需求分析基础
![第三章 软件需求分析基础](https://img.taocdn.com/s3/m/f77d95621eb91a37f1115c48.png)
逆向需求:说明软件系统不应该做什么。理论 上有无限多个逆向需求,我们应该仅选取能澄 清真实需求且可消除发生误解的那些逆向需求; 将来可能提出的要求:应该明确地列出那些虽 然不属于当前系统开发范畴,但是据分析将来 很可能会提出来的要求。
另一种分类
功能性需求 产品的范围 功能与数据需求 非功能性需求 观感需求 易用性 性能 限制条件
第三章 软件需求分析基础
主要内容
需求分析的概念和原则 传统的软件需求分析基础
3.1 需求分析的概念和原则
需求分析的基本任务是准确地回答“系统必须做什 么?”这一核心问题。 需求分析是发现、求精、建模和规约的过程。这一过 程包括:详细精化最初由系统分析员建立在软件项目 计划中确定的软件范围,创建所需数据流、控制流以 及操作行为的模型,在此基础上选择解决方案。
例2. 客户希望得到指明什么零件从库存中取出、 以及还剩余多少相似零件的日报表。客户指明 一旦当该零件离开仓库时库存管理员就该记载 每个零件的标号。通过对当前问题和希望的信 息(输入和输出)进行的评估,系统分析员开 始综合一个或多个解决方案。为了便于开始, 必须详细地定义系统的数据、处理功能和行为。
操作需求 可维护性和可移植性需求 安全性需求 文化与政策 法律需求
需求的质量
完整性 正确性 可行性 必要性 划分优先级 无二义性 可验证性 设计无关性
2.需求分析的任务
需求分析的任务是借助于当前系统的物理模型 导出目标系统的逻辑模型,解决目标系统“做 什么”的问题。 所要做的工作是深入描述软件的功能和性能, 确定软件设计的限制和软件同其他系统元素的 接口细节,定义软件的其他有效性需求。 必须全面理解用户的各项要求,但只能接受合 理的要求。 要将软件的需求准确地表达出来,形成软件需 求说明书。
第3章 需求分析
![第3章 需求分析](https://img.taocdn.com/s3/m/1feff817ba1aa8114431d953.png)
软 件 工 程
4. 出错处理需求
这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到 从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这 类错误并不是由该应用系统本身造成的。 在某些情况下,“出错处理”指的是当应用系统发现它自己犯下一 个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。 我们的目的是开发出正确的系统,而不是用无休止的出错处理代码掩盖 自己的错误。总之,对应用系统本身错误的检测应该仅限于系统的关键 部分,而且应该尽可能少。 3.7.6 故障处理 a. 内部故障处理 在开发阶段可以随即修改数据库里的相应内容。 b. 外部故障处理 对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运 行,在需求调用时出错,有错误提示,重试。
(1)必须理解并描述问题的信息域,根据这条准则应该建 立数据模型。 (2)必须定义软件应完成的功能,这条准则要求建立功能 模型。 (3)必须描述作为外部事件结果的软件行为,这条准则要 求建立行为模型。 (4)必须对描述信息、功能和行为的模型进行分解,用层 次的方式展示细节。
12
第 3 章 需 求 分 析
据存储(可行性研究得到的高层数据流图)定义到元素级。
沿数据流图从输出端往输入端回溯着手分析。
第 3 章 需 求 分 析
图3.1 面向数据流自顶向下求精过程
15
3.2.3 简易的应用规格说明技术 软 件 工 简易的应用规格说明技术(面向团队的而求收集法)提倡用户 程 与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同
18
软 件 工 程
3.3.2 软件需求规格说明
通过需求分析除了创建分析模型之外,还应该写出软件 需求规格说明书,它是需求分析阶段得出的最主要的文档。 通常用自然语言完整、准确、具体地描述系统的数据要 求、功能需求、性能需求、可靠性和可用性要求、出错处理 需求、接口需求、约束、逆向需求以及将来可能提出的要求。 自然语言的规格说明具有容易书写、容易理解的优点,为大 多数人所欢迎和采用。 为了消除用自然语言书写的软件需求规格说明书中可能 存在的不一致、歧义、含糊、不完整及抽象层次混乱等问题, 有些人主张用形式化方法描述用户对软件系统的需求,第4章 将简要地介绍形式化说明技术。
第3章 需求分析及功能建模方法
![第3章 需求分析及功能建模方法](https://img.taocdn.com/s3/m/a5ca8743a8956bec0975e330.png)
第3章需求分析及功能建模方法3.1 需求分析概述3.1.1 需求分析概念1、所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。
2、需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动的集合;3、需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方面的期望和要求的集合;4、需求获取的困难:(1) 软件功能复杂;(2) 需求的可变性;5、需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系及其交流的信息。
6、需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数据。
7、功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。
8、需求分析工作是系统分析员与用户不断交互的过程中完成的。
3.1.2 系统分析员的职能1、系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要求,即用户要做什么。
2、系统分析员应该具备的素质:(1) 获取需求的能力;(2) 管理及沟通能力;(3) 技术素养;3.1.3 需求获取的方法常用的几种获取需求的方法:(1)面谈;(2)实地观察;(3)问卷调查;(4)查阅资源;3.1.4 需求分析过程1、标识问题:(1) 需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;(2) 标识问题从现行系统的业务流程做起,理解现行系统的业务流程;(3) 在标识理解需求的同时,还要注意确定系统的人机界面;2、建立需求模型:(1) 模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的因素,其目的是把复杂的事物变得简单,便于认识和分析;(2) 目前常用的模型方法主要有DFD数据流图和IDEFO,都属于结构化分析方法,其特征是抽象和分解;(3) 首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐步求精的方法对复杂的问题进行分解;(4) 结构化分析及建模方法的主要优点:(A) 不过早陷入具体的细节;(B) 从整体或宏观入手分析问题;(C) 通过图形化的模型对象直观地表示系统要做什么,完成什么功能;(D) 图形化建模方法方便系统分析员理解和描述系统;(E) 模型对象不涉及太多的技术术语,便于用户理解;3、描述需求:(1) 需求描述的目标:对软件项目功能性和非功能性的需求全面描述;(2) 功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么,实现什么功能以及输入输出等;(3) 非功能性需求:软件项目对实际运行环境的要求;(4) 需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述;功能需求;信息需求;性能需求;环境需求;其他需求;(5) 在对需求进行分析过程中,系统分析员要经常考虑的问题:(A) 描述的需求是完全的吗?(B) 需求描述是正确的和一致的吗?(C) 描述的这些需求是可行的、实际可操作的吗?(D) 描述中的每一条需求都是客户需要的吗?4、确认需求:1、评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。
第3章 需求分析-大纲
![第3章 需求分析-大纲](https://img.taocdn.com/s3/m/df13567aff00bed5b8f31d2d.png)
第三章需求分析
3.1 需求分析的任务和步骤
——需求分析的任务
……确定对系统的综合要求
……分析系统的数据要求
……建立软件的逻辑模型
——确定对系统的综合要求
……功能性需求
……非功能性需求:可用性,可靠性……
——分析系统的数据要求
……数据字典——定义数据
……层次方框图——定义数据结构
——建立软件的逻辑模型:数据流图、数据字典、实体-联系图、主要算法
——编写软件需求规格说明书
——需求分析评审
3.2 需求获取的常用方法(5个)
——访谈
——问卷调查
——观察用户工作流程
——建立联合分析小组
——快速原型法
3.3 需求分析的方法(4个)
——功能分解法:软件需求当做一棵倒置的功能树
——结构化开发方法:结构化分析、结构化设计和结构化程序设计
——信息建模方法:实体-联系图
——面向对象的分析
3.4 结构化分析技术
——思路:基于数据流图自顶向下逐层分解
3.5 需求分析图形工具
——实体-联系图(Entity-Relationship Diagram)
……实体定义:对软件必须理解的复合信息的抽象
……属性定义:数据对象的性质
……联系定义:数据对象彼此之间相互连接的方式
——数据字典
……定义:数据字典是关于数据的信息的集合,也就是对数据流图中包含的
所有元素的定义的集合。
……四类元素:数据流,数据流分量(即数据元素),数据存储,处理——层次方框图
……定义:用树型结构的一系列多层次的矩形框描绘数据的层次结构。
——IPO图(Input Process Output)。
第3章 结构化需求分析
![第3章 结构化需求分析](https://img.taocdn.com/s3/m/d70fc80302020740be1e9b35.png)
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
软件工程导论第五版张海藩第03章-需求分析
![软件工程导论第五版张海藩第03章-需求分析](https://img.taocdn.com/s3/m/7e8ec278a8956bec0975e3b7.png)
3.1 需求分析的任务 3.2 与用户沟通获取需求的方法 3.3 分析建模与规格说明 3.4 实体-联系图 (?) 3.5 数据规范化(?) 3.6 状态转换图+有穷状态机 3.7 其他图形工具 3.8 验证软件需求 3.9 小结
需Байду номын сангаас分析的意义
软件需求的深入理解是软件开发工作获得成 功的前提条件,不论我们把设计和编码做得如何 出色,不能真正满足用户需求的程序只会令用户 失望,给开发带来烦恼。
软件需求规格说明书,是需求分析阶段得出的最主要 的文档。
软件需求说明书的编写提示(GB856T—88)
1 引言 1.1 编写目的 1.2 背景 1.3 定义 1.4 参考资料
2 任务概述 2.1 目标 2.2 用户的特点 2.3 假定和约束
软件需求说明书的编写提示(GB856T—88)
3 需求规定
建模方法
在过去的数年中,人们提出了许多种分析建模的方法,其中两种 在分析建模领域占有主导地位:
第一种是结构化分析 (Structured Analysis,SA),70年代末由 DeMarco等人提出,这是传统的建模方法。该方法不是被所有的使用 者一致地使用的单一方法,众多科学家对其进行了扩充,因此它是发 展了超过30年的一个混合物。
2) 项目相关人员用自己的语言表达需求,这些 语言包含很多工作中的专业术语和专业知识。系统分 析员没有这些知识和经验,而他们又必须了解这些需 求。
3)不同的项目相关人员有不同的需求,可能以 不同的方式表达,分析人员必须发现所有潜在的需求 资源,而且能发现这些需求的相容或冲突之处。
4)经济和业务环境决定了分析是动态的,需求 在分析过程中会发生变更。个别需求的重要程度会改 变,新的需求会从新的项目相关人员那里得到。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6. 约束
设计约束或实现约束描述在设计或实现应用系统时应遵守
的限制条件。常见的约束有:精度;工具和语言约束;设 计约束;应该使用的标准;应该使用的硬件平台。
7
3.1.1 确定对系统的综合要求
7. 逆向需求
逆向需求说明软件系统不应该做什么。
理论上有无限多个逆向需求,我们应该仅选取能澄清
输入/输出都要与原来相同 (2) 数据流图何时分解到头: 分解后使人考虑需写出程序代码时,就不应再分解了
24
细化数据流图
随着分析过程的进展,经过反复循环,分析员最终 得到对系统数据和功能要求的满意了解。 图3.1粗略地概括了上述分析过程。
图3.1 面向数据流自顶向下求精过程
25
性能需求指定系统必须满足的定时约束或容量约束,通常
包括速度(响应时间)、信息量速率、主存容量、磁盘容量、 安全性等方面的需求。
5
3.1.1 确定对系统的综合要求
3. 可靠性和可用性需求
可靠性需求定量地指定系统的可靠性。 可用性与可靠性密切相关,它量化了用户可以使用系统的
程度。
4. 出错处理需求
30
3.3.2 软件需求规格说明
通过需求分析除了创建分析模型之外,还应该写出 软件需求规格说明书,它是需求分析阶段得出的最 主要的文档。 通常用自然语言完整、准确、具体地描述系统的数 据要求、功能需求、性能需求、可靠性和可用性要 求、出错处理需求、接口需求、约束、逆向需求以 及将来可能提出的要求。 自然语言的规格说明具有容易书写、容易理解的优 点,为大多数人所欢迎和采用。
3
3.1需求分析的任务
1.确定对系统的综合要求 2.分析系统的数据要求 3.导出系统的逻辑模型 4.修正系统开发计划 5.开发原型系统
4
3.1.1 确定对系统的综合要求
1. 功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应
该划分出系统必须完成的所有功能。
2. 性能需求
构建原型的要点是,它应该实现用户看得见的功能(例如,
屏幕显示或打印报表),省略目标系统的“隐含”功能(例 如,修改文件)。
14
3.1.5 开发原型系统
快速原型应该具备的第一个特性是“快速”。
快速原型的目的是尽快向用户提供一个可在计算机上运行
的目标系统的模型,以便使用户和开发者在目标系统应该 “做什么”这个问题上尽可能快地达成共识。因此,原型 的某些缺陷是可以忽略的,只要这些缺陷不严重地损害原 型的功能,不会使用户对产品的行为产生误解,就不必管 它们。
真实需求且可消除可能发生的误解的那些逆向需求。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴,但是
据分析将来很可能会提出来的要求。 这样做的目的是,在设计过程中对系统将来可能的扩 充和修改预做准备,以便一旦确实需要时能比较容易 地进行这种扩充和修改。
8
3.1.2 分析系统的数据要求
3.4节将介绍的实体-联系图,描绘数据对象及数据对象之
间的关系,是用于建立数据模型的图形。 2.4节讲过的数据流图,描绘当数据在软件系统中移动时 被变换的逻辑过程,指明系统具有的变换数据的功能,因 此,数据流图是建立功能模型的基础。 3.6节将介绍的状态转换图(简称为状态图),指明了作为外 部事件结果的系统行为。 为此,状态转换图描绘了系统的各种行为模式(称为 “状态”)和在不同状态间转换的方式。状态转换图是 行为建模的基础。
17
3.1.5 开发原型系统
(3) 形式化规格说明和原型环境
在过去的20多年中,人们已经研究出许多形式化规格
说明语言和工具(参见第4章),用于替代自然语言规格 说明技术。 今天,形式化语言的倡导者正在开发交互式环境,以 便可以调用自动工具把基于形式语言的规格说明翻译 成可执行的程序代码,用户能够使用可执行的原型代 码去进一步精化形式化的规格说明。
为了快速地构建和修改原型,通常使用下述3种方法 和工具:
(1) 第四代技术(即用软件直接生成需要的代码程序 )
第四代技术包括众多数据库查询和报表语言、程序和
应用系统生成器以及其他非常高级的非过程语言。 第四代技术使得软件工程师能够快速地生成可执行的 代码,它们是较理想的快速原型工具。
16
必须请用户对上述分析过程中得出的结果仔细地复 查。
数据流图是帮助复查的极好工具。 复查过程验证了已知的元素,补充了未知的元素,填补了
文档中的空白。
23
细化数据流图
为了追踪更详细的数据流,分析员应该把数据流图 扩展到更低的层次。通过功能分解可以完成数据流 图的细化。
新的数据流图使系统元素之间的关系变得更清楚。 对新数据流图的分析追踪可能产生新的问题。 (1)细化时要保持信息连续性
系统对环境错误应该怎样响应 应用系统发现它自己犯下一个错误时所采取的行动。
应该有选择地提出这类出错处理需求。对应用系统本
身错误的检测应该仅限于系统的关键部分,而且应该 尽可能少。
6
3.1.1 确定对系统的综合要求
5. 接口需求
接口需求描述应用系统与它的环境通信的格式。常见的接
口需求有:用户接口需求;硬件接口需求;软件接口需求; 通信接口需求。
31
3.3.2 软件需求规格说明
为了消除用自然语言书写的软件需求规格说明书中 可能存在的不一致、歧义、含糊、不完整及抽象层 次混乱等问题,有些人主张用形式化方法描述用户 对软件系统的需求,第4章将简要地介绍形式化说明 技术。
快速原型应该具备的第二个特性是“容易修改”。
如果原型的第一版不是用户所需要的,就必须根据用户的
意见迅速地修改它,构建出原型的第二版,以更好地满足 用户需求。在实际开发软件产品时,原型的“修改—试 用—反馈”过程可能重复多遍,如果修改耗时过多,势必 延误软件开发时间。
15
3.1.5 开发原型系统
26
修正开发计划
数据要求
数据字典 (描述数据结构的)层次方框图或Warnier图 对存储信息(文件/数据库)分解结果 用户系统描述(从用户角度描述) 功能、性能、使用方法/步骤、用户的责任(消除“子 系统分析员”与“用户”之间的误解) 修正开发计划(成本、资源使用、进度)
技术审查和管理复审
27
3.3 分析建模与规格说明
为了更好地理解复杂事物,人们常常采用建立事物 模型的方法。
所谓模型,就是为了理解事物而对事物做出的一种抽象,
是对事物的一种无歧义的书面描述。 通常,模型由一组图形符号和组织这些符号的规则组成。
28
3.3 分析建模与规格说明
结构化分析实质上是一种创建模型的活动。
19
3.2 需求分析过程
1.沿数据流图回溯 2.用户复查 3.细化数据流图 4.修正开发计划 5.书写文档 6.技术审查和管理复审
20
沿数据流图回溯
通常从数据流图的输出端着手分析。
输出数据是由哪些元素组成的呢? 每个输出数据元素又是从哪里来的呢?
沿数据流图从输出端往输入端回溯,应该能够确定每
第3章
需求分析
3.1 需求分析的任务 3.2 需求分析过程 3.3 分析建模与规格说明 3.4 实体-联系图 3.5 数据规范化 3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
1
3.1需求分析的任务
需求分析的基本任务是:
准确地回答“系统必须做什么?”这个问题。 确定系统必须完成哪些工作,也就是对目标系统提出完整、
10
3.1.2 分析系统的数据要求
3.数据结构规范化
软件系统经常使用各种长期保存的信息,这些信息通常以
一定方式组织并存储在数据库或文件中,为减少数据冗余, 避免出现插入异常或删除异常,简化修改数据的过程,通 常需要把数据结构规范化(见3.5节)。
11
3.1.3 导出系统的逻辑模型
通常用数据流图(建立功能模型)、实体-联系图 (建立数据模型)、状态转换图(建立行为模型)、 数据字典和主要的处理算法描述这个逻辑模型。
2
需求分析方法的准则
尽管目前有许多不同的用于需求分析的结构化分析 方法,但是,所有这些分析方法都遵守下述准则: (1) 必须理解并描述问题的信息域,根据这条准则应 该建立数据模型。 (2) 必须定义软件应完成的功能,这条准则要求建立 功能模型。 (3) 必须描述作为外部事件结果的软件行为,这条准 则要求建立行为模型。 (4) 必须对描述信息、功能和行为的模型进行分解, 用层次的方式展示细节。
任何一个软件系统本质上都是信息处理系统,系统 必须处理的信息和系统应该产生的信息在很大程度 上决定了系统的面貌,对软件设计有深远影响,因 此,必须分析系统的数据要求,这是软件需求分析 的一个重要任务。 1.建立数据模型
分析系统的数据要求通常采用建立数据模型的方法(见3.4
节实体-联系图)。
9
准确、清晰、具体的要求。
需求分析的结果:
系统分析员应该写出软件需求规格说明书,以书面形式准
确地描述软件需求。
需求分析的出发点:
可行性研究的结果(文档)(尤其是数据流图) 需求分析要将数据流图具体化,从而产生更详细的数据流
图、数据字典和一组简明的算法描述。
需求分析非常重要,要精心完成,否则后面的工作 很可能白费。
3.1.2 分析系统的数据要求