软件工程课后习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。
答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。软件分化出的在电子商务方面的应用。
1.2举例说明软件对社会的影响(包括正面影响和负面影响)。
答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。另一个有趣的方面是使用诺依曼的“风险”列在SEN中做重点讨论。你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。
1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。
答:软件需要如此长的开发时间:
a)设施不上线
b)开发工具并不如预期般运作
c)客户提出的新要求,需要重新设计和返工
d)产品依赖于政府的规定,被意外更改。
e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。
f)多个操作系统下运行的任务需求比预期需要更长的时间。
g)软件项目风险管理比预期需要更多的时间。
h)依赖的技术仍处于开发阶段,从而延长日程安排。
开发成本高:
a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。
b)制定了错误的软件功能需要重新设计和实施。
c)开发错误的用户界面,而导致重新设计和实施。
d)开发了不需要的额外的软件功能而延长了开发日程安排。
在将软件交付顾客使用之前,我们无法找到所有错误:
a)产品依赖于政府监管,意外而改变。
b)产品技术标准草案,会意外更改。
c)有时会在项目后期添加新的开发人员。
d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。
e)破坏高效调度产生的项目管理成果和无效的规划
f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。
软件开发和维护的过程仍旧难以度量:
a)有时该项目的目的是不明确。
b)有大量的业务所涉及的风险。
c)如果产品内置没有装好。
d)我们需要不断检讨我们的工作。
e)进行维护检查的时间。
f)在整个软件开发过程中要彻底组织项目团队。
1.4在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。
为防止变更引起软件退化,请提出一些有效的解决措施。
答:许多现代应用程序在他们呈现给最终用户之前和第一个版本别使用后经常改变,以下几个方面来阻止软件恶化:
a)收集所需的信息。
b)设计师和客户定义软件的总体目标。
c)识别已知的需求。
d)使用现有的程序片段后,有助于建立原型的开发人员的工作计划快速完成。
e)只有通过合格的培训或经验和充分揭露相关的不足,才能保持和提高我们的技术能力和让
f)其他人承担技术任务
g)文件应该被及时制定出来,在文件中应该有标准定义和机制建立。
h)完成某一特定阶段的审查工作。
i)每一个关键团队成员应该配有一个后备人员
j)检查规避风险的步骤是否应用正确
k)对未来的风险分析中检查是否有必要收集必要的信息。
1.5思考1.1.2节中提到的7个软件分类。请问能否采用一个软件工程方法,应用于所有的软件分类?并就你的答案加以解释。
答:七个软件分类可应用于同样的方法。在这不确定的今天这些“新的挑战”,无疑有很大的影响(对于商务人士,软件工程师和最终用户来说)然而,软件工程师可以准备通过实例化一个过程,使其有足够的灵活性和适应性,以适应剧烈变化的技术,这技术一定要在未来的很长一段时间被商业规则所接受。
1.6图1-3中,将软件工程三个层次放在了“质量关注点”这层之上。这意味着在整个开发组织内采用质量管理活动,如“全面质量管理”。仔细研究,并列出全面质量管理活动中关键原则的大纲。
答:你也许建议同学阅读第十六章的知识来解决问题。
1.7随着软件的普及,由于程序错误所带来的公众风险已经成为一个愈加重要的问题。设想一个真实场景,由于软件错误而引起“世界末日”般重大危害(危害社会经济或是人类生命财产安全)。
答:确实有很多现实生活中的情况来选择,例如,软件错误,造成了重大的电话网络失败。如在航空电子设备故障导致飞机坠毁。计算机病毒(如米开朗基罗)的攻击给主要的电子商务网站造成了重大的经济损失。
1.8用自己的话描述过程框架。当我们谈到框架活动适用于所有的项目时,是否意味着对于不同规模和复杂度的项目,可应用相同的工作任务?请解释。
答:过程框架适用于所有的项目,在相同的工作任务,适用于所有项目,无论其规模大小或复杂性。一个过程框架涉及大量的与客户沟通来收集需求;这个活动建立了一个软件工程工作计划。它涉及到创建模型,这将有助于开发人员了解顾客的要求从而进行设计。从而涉及构建(代码生成和错误测试)。最后,它提供了基于评价的反馈。
1.9普适性活动存在于整个软件过程中,你认为他们均匀分布于软件过程中,还是会集中在某个或者某些框架活动中?
答:伞活动在整个软件过程中发生,它们被均匀地应用在整个过程中,分析还包含一系列的
工作任务(例如需求收集,制定,协商规范和验证),一个过程框架有一组伞被应用在整个软件过程活动中。这些活动包括:软件项目跟踪和控制,风险管理,软件质量保证,和正式的技术审查,测量,软件配置管理,可重用性管理和工作产品的制作和生产。
1.10在1.5节所列举的神话中,增加两种软件神话,同时指出与其相对应的真实情况。答:没有标准答案(例如测试可以解决所有的程序错误)。
第二章
2.1在本章的介绍中,Baetjer说过:“软件过程为用户和设计者之间、用户和开发工具之间以及设计者和开发工具之间提供交互的途径[技术]”。对于要构建的软件产品,在以下方面设计五个问题:(a)设计者应该问用户的问题;(b)用户应该问设计者的问题;(c)用户对将要构建的软件自问的问题;(d)设计者对于软件产品和建造该产品采取的软件过程自问的问题。
答:a)设计人员询问用户:
产品满意吗或者它需要重新设计或返工吗?
征求用户输入来避免产品不满意和要求返工。
有新要求的需要吗?
该产品比估计的大吗?
与预期的相比模块需要更多的测试,设计和实行工作来纠正吗?
b) 用户询问设计者的问题:
范围明确吗?
我们是否有开发工具和人员开发软件所需的技能?
定义的需求是正确的吗?还有没有额外的需要?
特定领域的软件产品比平时的花费更多的时间吗?
该模块是否需要更多的设计测试?
c)用户对将要构建的软件自问的问题:
软件产品的范围和目的是什么?
该产品比估计的大吗?
有优秀的人可用吗?
工作人员可靠吗有没有具备所需要的技能?
能保持工作人员的离职率足够低吗?
d)设计者对于软件产品和建造该产品采取的软件过程自问的问题:
范围和目的文件是什么?
要使用什么样的工具?
有什么目标和规避风险的优先事项?
对风险分析,识别,估计,评价和管理会有什么样的步骤?
2.2为沟通活动设计一些列的动作,选定一个动作作为其设计一个任务集。
答:任务交流活动设置:任务组将定义实际的工作需要,以完成一个软件工程的行动。这些都是对于通信的活动:
a)利益相关者对项目做一个列表。
b)邀请所有利益相关者的非正式会议。
c)要求他们作出特性和功能列表。
d)讨论需求并建立一个最终的的列表。