第3章 需求分析

合集下载

第3章 需求分析

第3章  需求分析

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?) ● 需求层次:业务需求用户需求功能与非功能需求 ◆ 具体任务 ● 确定对系统的综合要求 功能需求、性能需求、可靠性和可用性需求、出错处理需求、 接口需求、约束、逆向需求、扩展需求 ● 分析系统的数据要求 ● 导出系统的逻辑模型 ● 修正系统开发计划 ? 开发原型系统

张海藩《软件工程导论》(第6版)(课后习题 第3章 需求分析)【圣才出品】

张海藩《软件工程导论》(第6版)(课后习题 第3章 需求分析)【圣才出品】

第3章需求分析1.为什么要进行需求分析?通常对软件系统有哪些需求?答:(1)需求分析的原因为了开发真正满足用户需求的软件产品,需求分析是软件开发工作获得成功的前提条件,不能满足用户需求的程序只会令用户失望,给开发者带来烦恼。

(2)对软件系统的需求功能需求、性能需求、可靠性和可用性需求、出错处理、借口需求、约束、逆向需求、将来可能提出的要求。

2.怎样与用户有效地沟通以获取用户的真实需求?答:访谈是最早开始使用的获取用户需求的技术,也是目前广泛使用的需求分析技术,访谈有两种形式,分别是正式的和非正式的访谈。

正式访谈时,系统分析员将提出一些事先准备好的具体问题。

在非正式访谈中,分析员将提出一些用户可以自由回答的开放性问题,以鼓励被访问人员说出自己的想法。

其中情景分析技术往往非常有效。

3.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。

用数据流图描绘系统中的数据对象,并用实体联系图描绘系统中的数据对象。

答:(1)数据流图,如图3-9所示。

图3-9银行计算机储蓄系统数据流图(2)E-R模型如图3-10所示。

本题中共有两类实体,分别是“储户”和“储蓄所”,在它们之间存在“存取款”关系。

因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取款”是多对多(M:N)关系。

储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。

图3-10银行计算机储蓄系E-R图4.分析习题2第3题所述的机票预订系统。

试用实体一联系图描绘本系统中的数据对象并用数据流图描绘本系统的功能。

第3章 受众需求分析

第3章  受众需求分析
需求广告弹性:指一定时期内一种商品需 求量变化对于其广告支出水平变化的反应 程度,其弹性指数等于其需求量变化百分 比除以广告支出变化的百分比。
一般情况下,随着广告市场推广活动的进行, 受众对传媒产品的需求量会增加,故需求广告弹 性系数大于0,传媒经营者通过估算需求广告弹 性系数来科学决策广告投放方案。E
3、需求交叉弹性
需求交叉弹性:一定时期内一种商品需求量
变化对于它的相关商品的价格变化的反应程度。 其弹性指数等于其需求量变化的百分比除以相关 商品价格变化的百分比。
交叉弹性的大小取决于所考察的两种商品的相关 关系,若是替代关系,替代性越强弹性系数越大; 如果是互补关系,互补性越强则弹性系数的绝对 值就越大。如果两种商品不相关,弹性系数为零, 相关商品的价格对其没有影响。
受众消费需求是媒介消费者对媒介产品 或服务的需求。
一、受众市场的变化
主动性强 市场化 细分化
1、细分化
社会阶层逐渐分化,社会群体多样化,受众群 体间的差异日趋显著。受众市场由大众向分众乃 至小众甚至一对一转变,细分程度越来越深入。
受众被分成越来越细小的群体。
“每个人都有点喜欢的产品是没有 市场的,只有一部分人非常喜欢的产 品才有市场。”
影响需求的主要因素
价格、收入水平、相关商品价格、消费 偏好和价格预期。
1、商品本身的价格
一般说来,一种商品的价格越高,该商品的需求 量就会越小。相反,价格越低,需求量就会越大。
2、消费者的收入水(Yield)
正常商品 Y
Qd
低劣商品 Y
Qd
3、其它相关商品的价格
互Q1
P
D2
D1 P1
0
Q
Q1
Q2
需求价格弹性

(完整版)第三章需求分析习题及答案

(完整版)第三章需求分析习题及答案

第三章需求分析一. 填空题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章+需求分析教学教案

必须请用户对上述分析过程中得出的结果仔细
地复查,数据流图是帮助复查的极好工具。从输入 端开始,分析员借助数据流图、数据字典和IPO图 向用户解释输入数据是怎样一步一步地转变成输出 数据的。这些解释集中反映了通过前面的分析工作 分析员所获得的对目标系统的认识。这些认识正确 吗?有没有遗漏?用户应该注意倾听分析员的报告, 并及时纠正和补充分析员的认识。复查过程验证了 已知的元素,补充了未知的元素,填补了文档中的 空白。
3.1需求分析的任务
还有许多问题存在,如数据字典准确性和完整性、算法的 正确性和有没有遗漏必要的处理或数据元素等。
用户对前一个分析步骤中得出的结果仔细地进行复查。用 户应该注意倾听分析员的报告,确定对目标系统的认识是否正 确、有无遗漏,并及时纠正和补充分析员的认识。复查过程验 证了已知的元素,补充了未知的元素,填补了文档中的空白。
3.2.2 面向数据流自顶向下求精
结构化分析方法SA就是面向数据流自顶向下逐 步求精进行需求分析的方法。通过可行性研究已经 得出了目标系统的高层数据流图,需求分析的目标 之一就是把数据流和数据存储定义到元素级。为了 达到这个目标,通常从数据流图的输出端着手分析, 这是因为系统的基本功能是产生这些输出,输出数 据决定了系统必须具有的最基本的组成元素。
为了解决这些问题,往往需要向用户和其他有
关人员请教,他们的回答使分析员对目标系统的认 识更深入更具体了,系统中更多的数据元素被划分 出来了,更多的算法被搞清楚了。通常把分析过程 中得到的有关数据元素的信息记录在数据字典中, 把对算法的简明描述记录在IPO图(见3.7节)中。通 过分析而补充的数据流、数据存储和处理,应该添 加到数据流图的适当位置上。
3.1需求分析的任务
3. 提出系统的逻辑模型

第3章 需求分析

第3章 需求分析

网上查某 本书<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 章 结构化需求分析

第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章

2.访谈
访谈是最早开始使用的获取用户需求的技术,也是迄今为止仍 然广泛使用的需求分析技术。 访谈有两种基本形式: 正式访谈:系统分析员将提出一些事先准备好的具体问题。 非正式访谈:分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人员说出自己的想法。 调查表是当需要调查大量人员的意见时的一个十分有效的做法。 分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户, 以便向他们询问在分析调查表时发现的新问题。 在访问用户的过程中可以使用情景分析技术。情景分析技术的 用处主要体现在下述两个方面: (1) 它能在某种程度上演示目标系统的行为,从而便于用户理解, 而且还可能进一步揭示出一些分析员目前还不知道的需求。 (2) 由于情景分析较易为用户所理解,使用这种技术能保证用户在 需求分析过程中始终扮演一个积极主动的角色。
(1) 数据对象
数据对象是对软件必须理解的复合信息的抽象。所谓 复合信息是指具有一系列不同性质或属性的事物,仅有单 个值的事物(例如,宽度)不是数据对象。 数据对象可以是外部实体(例如,产生或使用信息的任 何事物)、事物(例如,报表)、行为(例如,打电话)、事件 (例如,响警报)、角色(例如,教师、学生)、单位(例如,会 计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可 以由一组属性来定义的实体都可以被认为是数据对象。 数据对象彼此间是有关联的,例如,教师“教”课程, 学生“学”课程,教或学的关系表示教师和课程或学生和 课程之间的一种特定的连接。
(4)需求验证 由软件开发者和用户一起来进行软件需求规格
说明的复审。确保需求规格说明可作为软件设计和最 终系统验收的依据。
二. 需求获取的常用方法
1. 建立联合分析小组 建立一个由用户、系统分析员和领域专家参加 的联合分析小组,密切合作,共同标识问题,提出 解决方案要素,商讨不同方案并指定基本需求。 这是一种面向团队的需求收集法,又称为简易 的应用规格说明技术。

软件工程导论-第3章_需求分析_(第五版)(张海藩编著)_a_百度文库

软件工程导论-第3章_需求分析_(第五版)(张海藩编著)_a_百度文库
求互相矛盾。
(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 表 ),

第3章 需求分析

第3章 需求分析
6
软 件 工 程
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章 需求分析及功能建模方法

第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章 需求分析-大纲

第三章需求分析
3.1 需求分析的任务和步骤
——需求分析的任务
……确定对系统的综合要求
……分析系统的数据要求
……建立软件的逻辑模型
——确定对系统的综合要求
……功能性需求
……非功能性需求:可用性,可靠性……
——分析系统的数据要求
……数据字典——定义数据
……层次方框图——定义数据结构
——建立软件的逻辑模型:数据流图、数据字典、实体-联系图、主要算法
——编写软件需求规格说明书
——需求分析评审
3.2 需求获取的常用方法(5个)
——访谈
——问卷调查
——观察用户工作流程
——建立联合分析小组
——快速原型法
3.3 需求分析的方法(4个)
——功能分解法:软件需求当做一棵倒置的功能树
——结构化开发方法:结构化分析、结构化设计和结构化程序设计
——信息建模方法:实体-联系图
——面向对象的分析
3.4 结构化分析技术
——思路:基于数据流图自顶向下逐层分解
3.5 需求分析图形工具
——实体-联系图(Entity-Relationship Diagram)
……实体定义:对软件必须理解的复合信息的抽象
……属性定义:数据对象的性质
……联系定义:数据对象彼此之间相互连接的方式
——数据字典
……定义:数据字典是关于数据的信息的集合,也就是对数据流图中包含的
所有元素的定义的集合。

……四类元素:数据流,数据流分量(即数据元素),数据存储,处理——层次方框图
……定义:用树型结构的一系列多层次的矩形框描绘数据的层次结构。

——IPO图(Input Process Output)。

第3章 结构化需求分析

第3章  结构化需求分析
第3章 需求分析
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。

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

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

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

软件工程导论第五版张海藩第03章-需求分析

软件工程导论第五版张海藩第03章-需求分析
第3章 需求分析
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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解业务、需求,理解软件及其架构如何构造的。
金陵科技学院 软件工程学院
3.1.3 选择建模工具的要点
• 2.正确认识UML
• 表3.2 需求阶段常用的图
使用频率 图名 用例图 主体 活动图 功能 说明角色和使用场景之间的关系 说明业务流程,以及业务活动的步骤 关注要点 人 事
顺序图 类图
描述对象之间的交互 说明业务实体之间的关系,体现结构规则
Constantine 及DE Marco 等人提出和发展,并得到广泛的应用。如同结构化编程一 样,它致力于系统范围内的事物处理,数据流以及存储数据结构的建模,建模主 要包括数据流模型(DFD)、数据字典(DD)、实体关系图(ERD)。 • 结构化分析所用的原型,无论是对开发者还是客户都显得直观易懂,若将初始重 点放在对原有系统的建模,是对实现理解问题域这一基本的分析目标的有力支持。 结构化分析方法和人们的思维方式很相似,注重的是事物的过程和方面,利用结
3.2.1 结构化分析(Structured Analysis)
• 4)在研讨班开设之后,学生可以根据主持教师(的姓名)和研讨班的方向来选择和参加某个研讨班; • 5)所有的学生必须且只能参加一个研讨班的学习;
• 6)研讨班时常会开展活动,由教师来决定活动的时间、地点、主题和做报告的学生(的姓名);
• 7)每次活动时,由一位或多位同学围绕活动主题做学习报告,交流自己对新技术的学习心得; • 8)每个学生一次活动最多只能作一个报告,但每个学生至少会在一次活动中做一个报告;
• 9)教师对每份活动中的学生报告进行一次点评和指导,提出建议和意见。
金陵科技学院 软件工程学院
• 2.过程建模:数据流图Data Flow Diagram • 数据流图(DFD)就是组织中信息运动的抽象,是信息逻辑系统模型的主 要形式。这个模型不涉及硬件、软件、数据结构与文件组织,它与对系 统的物理描述无关,只是用一种图形及与此相关的注释来表示系统的逻 辑功能,即所开发的系统在信息处理方面要做什么。 • 由于图形描述简明、清晰,不涉及到技术细节,所描述的内容是面向用 户的,所以即使完全不懂信息技术的用户单位的人员也容易理解。因此 数据流图是系统分析人员与用户之间进行交流的有效手段,也是系统设 计(即建立所开发的系统的物理模型)的主要依据之一。数据流图脱离 系统中的物理因素(如计算机等),表达出系统对信息的加工情况,DFD可 以描述原系统/新系统/子系统。DFD是SA的主要工具,它简单、直观,用 图形、文字描述系统,它便于使用、便于交流、便于讨论、便于形成共 识,是计算机专业人员和用户单位业务人员的共同语言。
功能点1 子模块1 功能模块1 子系统1 功能模块n 目标系统 ...... 子模块n 功能点n
子系统n
金陵科技学院 软件工程学院
3.1.1 需求分析到底做什么
• (3)基于场景的分解结构 • 适用于决策支持系统、面向用户的嵌入式系统。 • 对于决策支持系统、面向用户的嵌入式系统等来说,决策场景、使用场 景是主要的线索。向上可以总结成一类相似的集合,再总结成一系列的 关注点或者功能域,向下可以分解成具体的步骤或者操作任务。
UML是一种建模语言(Modeling Language),它不是编程语言,而是建模语言。
它不仅包含软件建模,而且可用于业务建模、流程建模等多种领域。UML是统一 建模语言(Unified Modeling Language ),它是一种标准化的、统一的建模语言, OMG认可的工业标准,也是如IBM、SUN等大型公司认可的事实标准。它为参与软 件设计和开发的各类人员提供统一的语言,使开发人员能够基于共同的模型来理
• 需求分析是业务分析,也就是选择一种业务导向的线索将零散的 需求串起来,形成一个体系完整、内容清晰的框架,以指导后续 的设计、开发工作,概括为分解、提炼、消除矛盾三个方面。
金陵科技学院 软件工程学院
3.1.1 需求分析到底做什么
• 1.分解采用自顶向下的方法:采用业务导向的分解
3.1.1 需求分析到底做什么
• 1.分解采用自顶向下的方法: • 采用业务导向的分解 • (1)业务流程为主线索的分解结构,该 分解策略是目前比较流行的方法,主 要按照“业务”的角度考虑分解方法。 此方法特别适合联机事务处理系统、 管理信息系统(MIS)。
系统级
职责区块
金陵科技学院 软件工程学院
岗位间
岗位级
的关联实体或者影响已有的实体特性;最后添加详细的描述信息,实体
的详细属性和关系的基数。
金陵科技学院 软件工程学院
• 1.数据建模:实体关系图Entity Relationship Diagram
• ERD建模的案例: • 1)研讨班在每个学年开始的时候开设,然后持续一个学年; • 2)每个研讨班针对一个或几个研究方向; • 3)每个研讨班由一位或几位教师主持;
3.2.1 结构化分析(Structured Analysis)
3.2.1 结构化分析(Structured Analysis)
• 1.数据建模:实体关系图Entity Relationship Diagram
• 简单情况下ERD建模分四步完成,首先从描述信息中辨识实体,可以重点
关注描述信息中的名词,看系统是否需要收集其相关的特征;然后确定
实体的标识符;进而建立实体间关系,判断各关系的建立是否会产生新
3.1 需求分析概述
• 1准确地回答“系统必须做什么?” • 2需求分析时,要遵循两个基本原则: • 原则一是分析结果需要能够表达和理解问题的信息域和功能域。 • 原则二是以层次化的方式对问题进行分解和不断细化,可以进行 横向分解,也可以进行纵向分解。
金陵科技学院 软件工程学院
3.1.1 需求分析到底做什么
决策步骤/任务1 决策场景/使用场景1 决策场景/使用场景集1 决策步骤/任务n 关注点/功能域1 决策场景/使用场景集n 目标系统 ...... 决策场景/使用场景n
关注点/功能域n
金陵科技学院 软件工程学院
3.1.1 需求分析到底做什么
• (4)基于数据的分解结构 • 适用于诸如数据仓库之类的数据类项目。 • 上述分解策略都是从“业务”角度来组织。但对于类似数据仓库之类的 数据类项目,业务线索并不是十分明显,或者并不重要,这时就需要以 数据为主的分解策略。其中主题域仍然与“业务流程为主的分解策略” 类似。而主题类是企业中的高层实体,主要由一组企业的逻辑数据类来 表示,而企业的逻辑数据类在实现时又会对应于多个物理数据类。
业务事件1 业务活动n 业务事件n 主题域1 报表类型1 报表n 报表类型n 报表1
业务报表n
功能点1
功能点n
目标系统
......
主题域n
3.1.1 需求分析到底做什么
金陵科技学院 软件工程学院
• (2)程序结构为主线索的分解结构:最常用的分解方法 • 适用于问题域不复杂或者系统与问题域关联性不强的情况。 • 当然,由于其过早进入程序结构,割裂了与问题域之间的联系,从而容 易导致对问题域研究的不足,降低了需求的质量。 • 目前认为此种方法仅适合于问题域比较清晰,问题不算复杂的情况,例 如工具软件、嵌入式系统等。
金陵科技学院 软件工程学院
3.1.2 建模的目标与要点
• 建模的目标是帮助需求分析员按照实际情况或按需要的样式对系统进行
可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系
统构造的模板;对需求分析所做出的决策进行文档化。
• 建模的要点是设计要考虑到计划之外的变化;设计要文档化;用可视化 的模型表达架构,有助于理解变化所代表的含义。
• 3.3 第一阶段:理清框架与脉络 • 介绍业务流程分析,业务实体分析,角色与使用场景分析,第一阶段的产物。 • 3.4 第二阶段:确定需求细节 • 介绍确定行为需求的细节,确定结构需求的细节,第二阶段的产物 • 3.5 其他需求分析 • 介绍接口需求,非功能需求的追踪,设计约束,其他需求示例。
金陵科技学院 软件工程学院
• 当出现这样的现象时就会阻碍需求分析人员建立全面理解,因此还需要
采用自底向上的方法进行提炼。 提炼出系统的总体功能结构,更全面的
描述系统。
金陵科技学院 软件工程学院
3.1.1 需求分析到底做什么
• 3.及时发现分析中的矛盾并消除矛盾。
• 在分析过程中,显然会发现有些需求是相互矛盾、相互冲突的,由于分 析是把收集的信息放在一个预先定义的结构中来发现这些矛盾的,因此 对矛盾的影响范围会有直观的了解,也知道它影响到哪些层面,这样, 就可以很快地找到相应的人员,通过进一步的捕获来消除矛盾。
去处理。
金陵科技学院 软件工程学院
3.1.3 选择建模工具的要点
• 1.正确认识建模方法论
方法论 时代背景 建模要点
出现于20世纪50~60年代,软件开发 选择适合的数据结构和算法显然是解决此类 程序=数据结构+算法 主要解决的是科学计算问题, 问题的关键 Fortran语言是代表 关键点有两个方法:一是确定有那些数据, 出现于20世纪60~70年代,将解决 格式是什么,如何存储,因此提供E/R模型; 一些与数据处理相关的问题,例如 而是确定数据的加工、处理过程,因此提供 计费等。COBOL、C语言是代表 了DFD(数据流图)
结构化分析与设计
数据并不再是唯一的视角,事(业务流程)、 出现于20世纪80~90年代,信息系 面向对象分析与设计 人的视角越来越重要,因此加入更多这方面 统覆盖了更多业务过程 的建模工具
金陵科技学院 软件工程学院
3.1.3 选择建模工具的要点
• 2.正确认识UML
• UML是一种语言(Language),实际上UML就是一种表示方法,它不是方法论。
金陵科技学院 软件工程学院
第三章 需求分析
制作人:李尤丰 cnlyf@
金陵科技学院 软件工程学院
相关文档
最新文档