第3章需求工程2
第3章.需求工程过程-1(1)
内容
技术、方法 问题分析 明确问题 发现业务需求 定义问题解决方案和系统特性 定义问题解决方案的边界 定义系统边界 涉众识别方法 涉众的描述特征 涉众的优先级评估 涉众的风险评估 涉众的共赢分析 代表采样 制定参与策略 使用用户替代源 用户参与 涉众分析的各种方法(如前述) 硬数据采样 建立合作关系,维护交流气氛 利用适当的交流途径、交流方式 面谈/调查问卷 群体会议面谈/头脑风暴原型 观察 文档分析/需求重用/需求剥离 面向目标的方法 基于场景的方法 基于用例的方法
差异性管理
获取
分析
确定可行性 形式化建模
规格
基于视图的文 档化 确保可跟踪性 文档化需求理 由 描述可度量、 可测试的需求 使用标准的文 档结构 原型
验证
获取非功能需 求
获取任务与业 务过程
GUI界面建模
用户行为建模
确定范围
获取目标
领域建模
数据建模
文档化客户需 求 文档化开发者 需求
形式化需求验 证
需求工程过程实例 RUP
商业建模:
1.评价组织的当前状态,包括支持新系统的能力; 2.探索当前业务的过程、角色和职责; 3.识别与评价业务过程改造的潜在策略; 4.开发反映业务内容的领域模型。
需求:
1.与项目涉众紧密接触,理解他们的需要; 2.定义项目的范围; 3.通过恰当的建模,探索功能、非功能、业务规 则、用户界面等需求; 4.识别项目中新的及变更的需求,并明确他们的 优先级。
2. 需求工程过程的活动
需求获取子活动
收集背景资料 定义项目前景和范围 选择信息的来源 选择获取方法,执行获取 记录获取结果
2. 需求工程过程的活动
(完整版)第三章需求分析习题及答案
第三章需求分析一. 填空题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.系统流程图用于可行性分析中的_____的描述。
(完整版)软件工程 判断题
判断题:第1章概述1。
由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)2。
由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵.(×)4。
大多数软件产品在其生命周期中不需要增强功能。
(×)5。
大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×)第4章需求工程1. 在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
(√)2. 软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。
(×)第5章面向对象基础1. 模型是对现实的简化,建模是为了更好地理解所开发的系统。
(√)2。
UML语言支持面向对象的主要概念,并与具体的开发过程相关。
(×)第6章面向对象分析1. 面向对象分析的核心在于建立一个描述软件系统的模型。
(×)第7章软件体系结构设计1. 系统体系结构的最佳表示形式是一个可执行的软件原型。
(×)2. 软件体系结构描述是不同项目相关人员之间进行沟通的使能器.(√)3. 良好的分层体系结构有利于系统的扩展与维护。
(√)4。
消除两个包之间出现的循环依赖在技术上是不可行的.(×)5. 设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。
(√)第8章面向对象设计1。
面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型.(√)2。
系统设计的主要任务是细化分析模型,最终形成系统的设计模型.(×)3。
关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。
(×)4。
用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。
软件工程第3章 软件需求分析(终)
第3章软件需求分析案例3: 图书馆图书信息管理系统“图书馆管理系统”是借助计算机来完成图书馆日常管理工作,能提供借书帐号注册、登录功能,基于图书标题、图书编号、作者、出版社的查询,也可以同时多个选项进行同时查询提供图书状态的查询,如可借和不可借,完成借书登记、还书的登记,能帮助管理人员完成图书信息的管理,如图书信息的修改、新图书的增加、旧图书的删除,图书分类工作,从而使图书馆的日常工作信息化、快捷化,减轻图书馆管理工作的困难。
因此,“图书馆管理系统”对于图书馆的日常管理工作和信息化到至关重要的作用。
【知识导入】通过对本章节内容的学习,掌握软件需求分析的基本内容,需求分析的特征及评审。
能够完成项目的需求分析,确立正确的项目开发思路。
软件需求是一个项目的开端,是整个软件项目开发的基础。
即表示该软件经过可行性分析后确立有此需求,而开发该项目。
因此,需求分析在整个项目建设过程中至关重要,是项目开发的基石,基石的牢固程度决定了后期项目的进展以及项目开发完工后的产品质量的优劣,可以说需求分析的好坏直接影响到软件项目开发的成败。
软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。
IEEE (美国电气和电子工程师协会)是这样对需求分析做定义的:①用户解决问题或达到系统目标所需要的条件②为满足一个协议、标准、规格或其他正式制定的文档,系统或系统构建所需满足和具有的条件或能力③将需求要求条件进行文档化描述。
这个概念全方位阐述了需求的概念,较完整的表达了软件需求的内涵和外延,便于用户的全面理解。
而需求分析最终就是通过对应用问题及其环境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精确化、完全化、一致化,最终形成需求规格说明文档的过程。
系统分析阶段产生的系统规格说明书和项目规划是软件需求分析的基础,分析人员需要从软件的角度对其进行检查和调整,并在此基础上展开需求分析。
需求分析阶段的成果主要是需求规格说明书,该成果又是软件设计、编码、测试直至维护的主要基础。
第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章_需求分析_(第五版)(张海藩编著)_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章 需求分析
软 件 工 程
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章 需求弹性与需求分析
1、求需求的价格弹性
弧弹性
❖ 如果价格变化的幅度很小,可以用点弹性; ❖ 如果价格变化的幅度比较大,则须用弧弹性。
❖处理方法是,取两点连 线的中点作为衡量价格与 需求量变化的基础。
EP Q (Q2 Q1) • (P2 P1) P (P2 P1) (Q2 Q1)
例
假定在某企业的需求曲线上,当P=2时,Q=20;当 P=5时,Q=5。求价格从2元到5元之间的弧价格弹性。
❖ 产业的收入弹性是影响产业发展的主要因素 之一。
❖ 需求的收入弹性较高的产业,随着人均收入 水平的提高,其发展前景也就会很大。
❖ 应当选择进入需求收入弹性较大的产业。
收入弹性与企业决策
❖ 家用空调普及率与人均可支配收入 ❖ P91,表3-4,收入越高,弹性越小。 ❖ 对于低收入家庭,需求收入弹性大,空调属
需求点弹性的四种类型
图(c) 中,直角 双曲线,K为 大于零的常数, 价格弹性等于
1; 图(d)中,斜率
只有一个。
证明:如果PQ=k,则价格弹性为1.
证明: P
k , dP Q dQ
k Q2
,
dP dQ
k Q2
dQ Q2 Q2 Q , dP k PQ P
EP dQ P 1 dP Q
解:已知Q1=20,Q2=5;P1=2,P2=5;
EP
Q2 Q1 P2 P1
P2 P1 Q2 Q1
5 20 5 2 1.4 5 2 5 20
即价格从2元到5元之间的弧价格弹性为1.4。
需求曲线与价格弹性
❖ 一般地,越平坦的需求曲线,价格弹性越大; 越陡峭的需求曲线,价格弹性越小。
❖ ① dP > 0涨价,则 dQ < 0,可知 dTR < 0,即销 售收入减少;
6_Requirement_Elicitation
需求研讨会(Workshop)
6 需求获取
需求研讨会(Workshop)
6 需求获取
需求研讨会(Workshop)
通过让所有相关人员一起参加某个单一会议来定义需求或设计系 统,也称联合应用设计会议(Joint Application Design, JAD)。 系统相关者在短暂而紧凑的时间段内集中在一起,一般为1至2 天,与会者可以在应用需求上达成共识、对操作过程尽快取得统 一意见。 协助建立一支高效团队,围绕一个目的:项目的成功; 所有人员都畅所欲言; 促进用户与开发团队之间达成共识; 能够揭露和解决那些妨碍项目成功的行政问题; 最终很快产生初步的系统定义。
6 需求获取
“看似简单,实际却很难…”
—— “需求获取?不就是问问题吗?这有什么难的?”
第三章 需求工程
6.1 需求获取所面临的挑战
6 需求获取
(1) “Yes, But”综合症
…当你把新开发的系统展示给用户时… —— “Wow,太酷了!这正是我们想要的,你做 了一个了不起的系统!” …五分钟后… —— “Yes, but, 嗯….这个模块是怎么回事?…如 果你把它修改成这样岂不是会变得更好?…如 果那样的话,我觉得我会更喜欢它…”
你希望如何解决这个问题? 你觉得该问题这样解决如何?
6 需求获取
面谈之前
确立面谈目的 确定要包括的相关用户 确定参加会议的项目小组成员 建立要讨论的问题和要点列表 复查有关文档和资料 确立时间和地点 通知所有参加者有关会议的目的、时间和地点
6 需求获取
面谈之中
Step 1:事先准备一系列上下文无关的问题,并将其 记录下来以便面谈时参考; Step 2:面谈前,了解一下要面谈的客户公司的背景 资料,不要选择自己能回答的问题而浪费时间; Step 3:面谈过程中,参考事先准备的面谈模板,以 保证提出的问题是正确的。将答案记录到纸面上,并 指出和记录下未回答条目和未解决问题; Step 4:面谈之后,分析总结面谈记录。
《软件工程实用教程》第3_章_结构化需求分析
第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 5.掌握數據流建模技術
需求工程
一1.软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题12)用户对已完成的系统常常不满意;3)软件的质量不可靠;4)软件的可维护程度较低;5)软件常常没有适当的文档资料;6)软件的成本不断提高;7)软件开发生产的效率较低;3.需求开发包括:需求获取、需求分析、需求规格说明和需求验证4个部分;需求获取:目的从项目的张罗规划开始建立最初的原始需求。
需求分析:目的保证需求的完整性和一致性;需求规格说明:目的将完整、一致的需求与能够满足需求的软件行为以文档的方式明确地固定下来;需求验证:目的保证需求及其文档的正确性,即需求真实地反映了用户的真实意图;以及通过检查和修正保证需求及其文档的完整性和一致性;4.软件的模拟特性:软件在运行中表现出来的特性、行为应该和应用的实际情况保持一致。
5.需求工程与系统工程的关系传统的需求处理是软件工程的需求阶段;但系统化的需求工程将软件需求开发和系统需求开发结合起来,在系统工程的开始阶段起到了重要的作用。
需求工程处于系统的起始阶段,包括系统需求开发和软件需求开发两个部分。
6.需求工程的重要性软件开发是利用通用的计算机结构,构建一个有用的软件系统,来满足人们的某些目的,定义问题就是需求工程的任务。
开发软件系统最为困难的部分就是准确说明开发什么。
最为困难的概念性工作便是编写出详细技术需求。
⏹容易忽略需求工程重要性的地方❑问题广为人知问题小而简单第二章1.需求的定义:(1)用户为了解决问题或达到某些目标所需要的条件或能力;(2)系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力;(3)对(1)或(2)中的一个条件或一种能力的一种文档化表述。
2.需求的分类⏹功能需求:和系统主要工作相关的需求。
功能需求主要表现为系统和环境之间的行为交互。
业务需求:是系统建立的战略出发点,表现为高层次的目标,描述了组织为什么要开发系统。
用户需求:执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么。
第一章需求工程导论 (2)
第一章需求工程导论1。
软件开发中碰到的需求问题的现象是什么?答:(1)用户参与度不够.(2)高层管理支持力度不够.(3)没有清晰的需求说明.(4)没有清晰的目标和前景。
(5)期望不切合实际.(6)需求变化影响.(7)增加了无用的额外功能。
2。
在需求处理当中要注意哪些非技术性因素,为什么?答:(1)需求处理的任务:需求处理的任务主要是发现问题并解决问题.现实是问题的发生地,软件系统是人们应对问题的手段。
但是单纯的软件系统是不能解决问题的。
它只有和现实之间形成一种有效的互动才能解决问题。
(2)需求处理的手段:建模与分析技术是进行需求处理的主要手段,这些技术本身都是概念性的,不依赖于某些特殊的应用环境条件.可以被广泛的应用于各种应用场景.(3)需求处理的过程: 试图单纯的通过技术的应用建立一个一致完整的需求模型是不太可能的.因为在现实中,因涉众的不同立场而产生的利益冲突的场景非常常见。
这些冲突是根本无法通过技术手段所能解决的。
3.解释需求分析与需求工程之间的联系答:“需求工程"就是利用工程化的手段进行需求处理,以保证需求处理的正确进行,而“需求分析"是需求处理中的核心活动,他用一些形式化或半形式化的语言进行知识的分析,但是建立需求工程还离不开需求分析。
4。
解释软件工程与系统工程之间的联系,这种联系对需求工程的工作有何影响?答:(1)系统工程通常是指计算机引入某一现实系统,并用他来改变现实系统的运作方式,达到一个理想效果的过程。
而且系统工程中除了含有处理系统的软件工程之外,还包括硬件工程和人力工程。
因此,在系统工程中,虽然应该重点关注软件工程部分的内容,但并不能完全以软件为中心来看待和处理整个系统。
(2)影响:系统需求开发的主要目的是获得整个系统的期望目标,包含功能特性和非功能特性。
因此需要判定系统的涉众,采集他们的目标与要求研究系统的环境确定系统的要求,并进行一些整体性的分析.5。
需求分析考试重点答案
第一章3.需求分析与需求工程之间的关系那就是需求工程含义更广,包括需求获取、需求分析、需求定义5.需求工程包含的活动?为什么重视需求工程?需求工程包含需求开发和需求管理,而需求开发又包括需求获取、需求分析、需求规格说明、需求验证。
因为计算机应用于现实世界的广泛性,所以软件工程师的工作也具有行业上的广泛性,但是软件工程师不可能了解所有的领域,所以常常需要将工作中的很大一部分用来定义问题,然后再为其设计解决方案,定义问题就是需求工程的任务,开发软件系统最困难的部分就是准确说明开发什么,最为困难的概念性工作便是编写详细技术需求,这包括所有面向用户,面向机器和其他软件系统的接口,同时这也是一旦有错,最终将给系统带来极大损害的部分,并且以后要对他进行修改也极为困难。
第二章3。
解释下列名词,需求,规格说明,问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么?需求是用户对问题域中的实体状态或事件的期望描述规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。
问题域的特性:在和解系统相互影响的同时,问题域是自治的,它有自己的运行规律,而且这些规律不会因解系统的引入而发生改变,这种自治的规律性称为问题域特性,当这些特性非常明确时称之为约束。
需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用的方式、方法所施加的限制和约束。
2需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明.3需求工程还要妥善处理目标、功能和约束随着时间的演化情况。
1、进行需求开发,确定用户的期望效果R2、研究问题背景,描述问题域特性E3、构建解系统,描述解系统行为S,使得E,S—>R.5.业务需求、用户需求、系统需求之间的区别与联系?业务需求:描述了组织为什么要开发系统,通常来自项目的投资人,购买产品的顾客,实际用户的管理者,市场营销部门等。
第3章 需求分析29029.ppt
1993,未能协调不一致的需求
不一致需求的管理问题
LASDS(伦敦救护车服务派遣系统),1992,社会
服务领域糟糕的需求分析
需求不清晰的问题
ATC(空中交通控制系统),1.8亿£,1998-2001,
缺乏健壮的需求规格说明
需求未明确就开始
后续工作的问题
2021/3/8
3
需求的重要性
需求错误的高代价性
需求管理
需求获取
需求分析 需求规格说明 需求验证
3.1.3 需求的开发与管理
1. 需求获取 需求获取是从人、文档或者环境当中获取需求的过程 需求工程师必须要利用各种方法和技术来“发现”需求
2. 需求分析 建模来整合各种信息,以使得人们更好的理解问题 为问题定义出一个需求集合,这个集合能够为问题界定 一个有效的解决方案
检查需求当中存在的错误、遗漏、不一致等各种缺陷, 并加以修正
需求获取和需求分析是交织在一起的
3.1.3 需求的开发与管理
3. 需求规格说明
获取的需求需要被编写成文档,主要目的是为了 在系统涉众之间交流需求信息
业务需求被写入项目前景和范围文档
用户需求被写入用户需求文档(或者用例文档)
系统需求被写入需求规格说明 4. 需求验证
软件开发方法 结构化开发方法 面向对象开发方法 形式化开发方法 ……
需求分析技术
1、结构化方法(Structure Method) 结构化方法由结构化分析、结构化设计和结构化程
序设计构成,也称Yourdon方法。 最早的、最传统的软件开发方法 指导思想是自顶向下、逐步求精 面向数据流的开发方法 基本原则是功能的分解与抽象 出现较早,适用于数据处理领域 不适用于规模大以及特别复杂的项目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/10/22
6
3.1.1 业务需求
业务需求说明了提供给客户和产品开发商 的新系统的最初利益, 它们在项目视图与范 围文档中予以说明。
项目视图和范围文档应该包括高层的产 品业务目标,所有的使用实例和功能需求都 必须能达到业务需求的需要。项目视图说明 使所有项目参与者对项目的目标能达成共识。 而范围则是作为评估需求或潜在特性的参考。
2020/10/22
17
3.3 需求的获取
需求获取是在问题及其最终解决方案之 间架设桥梁的第一步。需求获取的关键在于 通过与用户的沟通和交18
3.3.1 需求获取的过程
需求获取的主要任务是与客户或用户沟 通,了解系统或产品的目标是什么,客户或 用户想要实现什么?
第3章 需求工程
3.1 软件需求 3.2 需求工程过程 3.3 需求的获取 3.4 需求分析 3.5 需求定义 3.6 需求验证 3.7 需求管理 3.8 案例:小型教学管理系统 3.9 小结
2020/10/22
内容提要
1
引言
软件需求是决定软件开发是否成功的一 个关键因素
整个软件工程活动中,只有需求阶段可以称 为需求工程。这体现了需求在整个软件工程 过程中非同一般的重要性。
2020/10/22
7
3.1.2 用户需求
用户需求是从用户角度描述的系统功能 需求和非功能需求,通常只涉及系统的外部 行为,而不涉及系统的内部特性。用户需求 文档描述了用户使用软件产品要完成的任务, 用户需求描述的原则是:应该易于用户的理 解,一般不采用技术性很强的语言,而是采 用自然语言和直观图形相结合的方式进行描 述。
2020/10/22
16
3.2 需求工程过程
3.需求定义 利用描述语言、标准格式书写软件系统的需求规 格说明。 4.需求验证 审查和验证软件系统需求规格说明,进而确定需 求规格说明是否正确描述了用户对软件系统的需 求。 5.需求管理 需求管理的任务是:管理软件系统的需求规格说 明,评估需求变更带来的影响及成本费用,跟踪 软件需求的状态,管理需求规格说明的版本等。 下面分别叙述需求工程的每一部分。
非功能需求
产品需求
机构需求
外部需求
可可效移
用靠率植
性性需性
需需求需
求求
求
交实标 付现准 需需需 求求求
道立互 德法操 需需作 求求需
求
性能需 求
2020/10/22
空间需 求
隐私需 求
安全需 求
12
3.1.4 非功能需求
对于非功能需求的表述要求尽可能的量化且 可验证。表3.1给出了一些可能用来指定非 功能性系统特性的度量,据此可以检验系统 是否满足了相应的需求。
2020/10/22
13
特性 速度
规模
3.1.4 非功能需求
度量指标
每秒处理的事务 用户/事件响应时间 屏幕刷 新时间
K字节
RAM芯片数
易用性 培训时间 帮助画面数
可靠性 鲁棒性
失败平均时间 无效的概率 失败发生率 有效性
失败之后的重启次数 事件引起失败的百分比 失败中数据崩溃的可能性
可移植性 依赖于目标的语句百分比 目标系统数
2020/10/22
14
3.2 需求工程过程
软件需求工程是一门应用有效的技术和方法、 合适的工具和符号,来确定、管理和描述目 标系统及其外部行为特征的学科。
需求工程过程中 ,开发人员需要: 收集和分析各方面的需求 编写规格说明文档 并采用评审和商议等有效手段对其进行验证,
最终形成一个需求基线 由于软件开发过程中经常发生需求变更的情
2020/10/22
10
3.1.4 非功能需求
非功能需求涉及的面非常广,包括系统 的性能,目标系统所受的限制条件和开发和 维护软件的限制,还包括如安全规章、隐私 权保护的立法等外部因素。
具体内容可由三个方面构成— 产品需求 机构需求 外部需求
2020/10/22
11
3.1.4 非功能需求
2020/10/22
4
3.1 软件需求
图3.1 不同层次的软件需求及其关系
2020/10/22
5
3.1 软件需求
业务需求反映了组织机构或客户对系统和 产品高层次的目标要求,它们在项目视图与 范围文档中予以说明。
用户需求描述了用户使用产品必须要完成的 任务,这在使用实例文档或方案脚本说明中 予以说明。
况,因此必须有效地管理和控制这些变更。
2020/10/22
15
3.2 需求工程过程
需求工程过程包括:
1.需求获取 确定和收集与待开发的软件系统相关的用户需
求信息。 2.需求分析 对获得的用户需求信息进行分析和综合,找出错
误和冲突及遗漏的地方,获得用户的准确需求,进 而建立软件系统的逻辑模型或需求模型。
需求工程的所有过程包括:
需求获取 需求分析 需求定义 需求验证 需求管理
2020/10/22
2
3.1 软件需求
关于软件需求定义: 在IEEE软件工程标准词汇表(1997年)中给 出如下描述:
(1)用户解决问题或达到目标所需的条 件或能力。
(2)系统或系统部件要满足合同、标准、 规范或其他正式规定文档所需具有的条件或 能力。
(3)一种反映上面(1)或(2)所描述 的条件或能力的文档说明。
2020/10/22
3
3.1 软件需求
从这个标准定义中可以看出需求的概念涵 盖了两个方面:
用户角度(系统的外部行为) 开发人员角度(系统的内部特性)
通常,软件需求可以分为不同的层次: 业务需求 用户需求 功能需求 非功能需求
2020/10/22
8
3.1.3 功能需求
功能需求描述系统所预期提供的功能或 服务。即定义系统应该做什么,系统要求输 入什么信息,输出什么信息,以及如何将输 入变换为输出。它由开发的软件类型、软件 未来的用户以及开发的系统类型决定。
2020/10/22
9
3.1.4 非功能需求
除了关心软件的功能和行为外,用户会 将更多注意力集中于诸如产品的易用性、运 行速度、可靠性、如何进行异常处理等特性。 因此,一个好的软件还必须满足一系列非功 能需求。非功能需求是指那些不直接与系统 具体工作相关的一类需求。主要涉及系统的 总体特性,如可靠性、反映时间和储存空间 等。