软件工程 科学出版社 郑逢斌主编 第4章 需求工程 课后习题答案

软件工程 科学出版社 郑逢斌主编 第4章 需求工程 课后习题答案

1. 什么是需求工程?需求工程包括哪些活动?

定义:建立并使用完善的工程化方法 , 以较经济的手段获得准确表达用户需求的软件需求规格说明的一个学科。
输出:软件系统的需求规格说明

需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统,及其行为特征和相关约束,形成需求文档;并对用户不断变化的需求演进给予支持。
一个良好的需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4个主要活动。

2.需求分为哪些层次?

业务需求
业务、客户、特性、优先级、价值
用户需求
从用户角度对系统功能需求和非功能需求进行的描述,通常只涉及系统的外部行为,而不涉及系统的内部特性。
它在使用实例(Use Case)文档或方案脚本(Scenario)说明中予以说明
功能需求
功能性需求
What:“系统做什么”
非功能性需求
How:“系统做的怎么样”

3.指出下列需求描述的不当之处,并进行改写,使之符合好需求特性。

(1)产品应在不少于60秒的正常周期内提供状态信息。

系统应该以误差上下部超过1秒的10秒间隔,在用户界面的指定位置显示状态信息
如果显示状态信息有错误,应提示错误信息“系统错误”
分析:
这个需求是不完整的:状态信息是什么,如何显示给用户。这个需求有几处含糊。我们在谈论产品的哪部分?状态信息间隔真的假定为不少于60秒?,甚者每10年显示一条新的状态信息也可以?也许它的意图是消息间隔不应超过60秒,那么1毫秒是不是太短?“每”这个词导致了不确定性。问题的后果,就是需求的不可证实弥补缺陷,重写需求的一种方法:后台任务管理器因以误差上下不超过10秒的60秒间隔,在用户界面的指定位置显示状态信息;
如果后台进程处理正常,那么应该显示任务已完成的百分数/比:任务完成时,应显示相关的信息;后台任务出错应该显示错误信息;
为了测试和追踪,将需求分解多个子需求。使在构造和测试时,被易于分别执行。

(2)HTML分析器可以产生 HTML标记错误报告,帮助HTML入门者快速解决问题

HTML分析器可以产生一个错误报告,错误报告包含有在被分析文件中出错的HTML文本和行号以及错误的描述。如果没有错误,就不会产生错误报告

单词“快速”使其模糊,没有加进错误报告的定义也是不完整的。我不知道,你怎么验证这个需求。找一个自称为HTML的入门者,看看能不能根据错误报告快速解决错误?
试试这个:
“HTML分析器可以产生一个错误报告,错误报告包含有在被分析文件中出错的HTML文本和行号以及错误的描述。如果没有错误,就不会产生错误报告”
现在我们知道了,什么会被加到出错报告中,但是出错报告是个什么样子,则留由设计人员决定。我们还指定了一个例外: 如果没有发现错误,不产生错误报告

(3)产品应瞬间在文本中的显示和隐藏不可打印字符间切换。

计算机在瞬间不能做任何事,所以这个需求不切实可行。它的不完整性表现在没有声明触发状态切换的条件。软件要在某些条件下更改自己?或者用户为了模仿更改要做一些什么动作?而且,在文档中改变显示的范围是多大:选中的文本?整个的文档,或其他的?这也是个模糊的问题。不可打印字符和隐藏字符一样吗?或者是一些属性标志或一些控制字符?问题的后果,就是需求的不可证实。
像这样编写需求也许更好一些:
用户能够在一个由特定触发条件激活处于编辑的文档中在显示和
隐藏所有HTML标记间切换。现在就很清楚,不可打印字符是HTML标记。由于没有定义触发条件,需求对设计没有约束力。只有设计人员选定了触发条件后,你才能编写测试验证触发的正确操作。

4.对于一个小型图书馆管理系统,试给出非功能需求的描述。

软件的非功能性需求包括:可靠性、可用性、有效性、可维护性和可移植性.其中,在可靠性方面可以考虑平均无故障时间、平均修复时间 (Mean Time to Repair,MTTR)是多少,复制和故障转移的方案是什么,系统出现故障时是否需要手动干预,系统的安全性如何等。可用性方法可以考虑系统是否为用户带来不适当的负担(如需要特殊浏览器等),系统是否每天24小时,每年365天不间断提供服务等。

5.需求工程过包括哪些主要活动?

需求开发过程应该包括
需求获取、
需求分析与建模、
编写需求规格说明书
需求评审
4 个主要活动。

6有哪两种主要的需求分析模型? 它们的主要思想是什么?

建模:应用模型来表达需求
分析:基于模型进行一致性、完整性等分析
两种常见的建模与分析方法:
结构化需求建模与分析
数据流图(Data Flow Diagram ,DFD)
数据字典(Data Dictionary,DD)
加工说明(Process SPECification,PSPEC)
状态变迁图(State Transition Diagram,STD)
实体-关系图(Entity Relationship Diagram,ERD)
面向对象需求建模与分析
功能模型:由用例图表示;
分析对象模型:由类图和对象图表示;
动态模型:由状态图和顺序图表示。

7.需求规格说明书的主要作用是什么?应该包括哪些主要内容?

作用:
(1) 作为用户方和开发方之间的合同,为双方相互了解提供基础。
(2)反映问题的结构,作为系统设计和编码的依据。
(3)作为测试和验收目标系统的依据
内容:
用户可以通过需求规格说明书检查需求描述是否满足原来的期望。设计人员根据软件需求规格说明书的描述了解所需开发软件的功能和性能,以及开发软件时必须满足的约束,将其作为软件设计的依据。测试人员根据软件需求规格说明书中对产品的描述,设计测试计划、测试用例和测试过程。产品发布人员根据软件需求规格说明和用户界面设计编写用户手册和帮助信息

8.试建立一张需求评审的检查表。

在这里插入图片描述
在这里插入图片描述

9.需求管理有哪些主要活动?各有什么作用?

在这里插入图片描述

10.为什么要进行需求跟踪?如何建立需求跟踪矩阵?需求跟踪矩阵有什么作用?

为了管理需求,需要维护需求的可跟踪性信息。需求跟踪有助于开发者全面分析变更带来的影响,并做出正确的变更决策。

建立一个矩阵把每项需求与实现、测试它的设计和代码部分联系起来,这个矩阵就是需求跟踪矩阵。
矩阵的第一列列出需求规格说明书中每一项需求的标号,矩阵的每一行显示了这一行所代表的需求依赖的其他需求、设计、代码和测试用例。

(1)能够完整地定义需求之间的各种关系,并提供可视化的表示方式
(2)在一个需求发生变更时,系统能够按照所定义的需求跟踪链, 跟踪到所有受影响的需求。

包含需求基础、需求工程过程、需求获取概述、确定项目前景和范围、涉众分析和硬数据采样方面的思考题,还有参考答案。 方案及系统特性,继而无法明确项日的前景和范围,这样就会造成项口的不稳定甚至失败! 某大银行的一位银行卡办公室的收账经珒Li遇到了一个问题。她每周都收到一份过期 未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1250个账户。 为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。严重拖欠债务的账户由几 个不冋的规则确定,每个规则都要求Lz检查客户的一项或几项数据。过去半天的工作 量现在增加到了每周三天。即使在确定了严重拖欠债务的账户后,如果没有查阓该账户 三年内的历史资料,Li也不能做岀最后的信用决定(例如严厉的催款电话、断绝信甩 或海这个账户转给一个收账代理)。另外,也需要报告所有账户中过期未付款的、拖欠 债务的、严重拖欠债务的和呆死账的比例。目前的报告中并没有给她提供这个信息。 假改现在需要你来开发一个软件,解决Li血对的难翘。那么你认为Liz现在遇到 的问题有哪些?你希望新的软件应该达成哪些业务目标?你怎样设计软件的高层解决 方案和系统特性? 解答:Liz现在遇到的问题有:(1)工作量的増加;(2)客户账户的历史数据;(3)问题账 户所占比例没有显示 新的软件应该达成的业务目标有:(1)能够快速查询客户账户;(2)能够分析一个客户 是否为问题账户;(3)能够给出一个问题账户的三年内的历史数据;(4)能够计算问题账户 所占比例 软件的高层解决方案和系统特性:(1)建立一个数据厍系统用来存放客户账户信息 2〕根捃特定的判定问题账户的斧法检索辨别出问题账户;(3)工作人员能够 检杳该账户的三年内的历史数据:(4)即时显示问题账户所占比例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值