软件工程课后习题答案中文翻译版(第八版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程课后习题:
1.解释为什么专业化软件不仅仅包括为用户所开发程序?
专业化软件在开发上与在与软件就有所不同。专业软件通常是由团队开发而非个人,除了开发者外还有其他的用户使用。如果你的软件有别的用户,别的工程师会去修改的话,你就必须提供除了程序源码之外的其它附带信息。因此,系统通常除了包含一些单独的程序还有用于这些程序的配置文件,可能还包括描述系统结构的系统文档和解释如何使用该系统的用户文档,以及告知用户下载最新产品的Web站点。
2.通用软件产品开发和定制软件开发直接有什么不同?这在实际应用中对通用软件产品用户意味着什么?
(1)重要区别为:在通用软件的开发过程中,详细说明(规格说明书)由产品开发者来制定,在定制软件产品开发过程中,详细说明(规格说明书)由客户来制定开发者必须按客户要求进行开发。
(2)意味着通用软件很难满足通用软件客户的特殊需求。如可靠性、安全性、快捷性。
3.软件产品应该具有与的4重要属性是那些?另外列举出4个可能有意义的属性。
重要属性:可维护性、可依赖性和安全性、有效性和可用性。可能有意义的属性:可复用性、可分发性、可移植性和互用性。
4.除了异质性挑战、业务和社会的变革、安全和可信,说出软件工程在21世纪的可能面临的其它问题和挑战。
交付上的挑战:许多传统的软件工程技术需要耗费大量的时间,用于提高软件质
量。而今天的软件制作必须响应快、更换迅速,支持软件也必须同样快地进行更换。交付上的挑战是:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。
5.参论的应用类型,照1.1.2节讨举例介绍为什么设计和开发不同类型的应用需要专门的软件技术。
如汽车上年的嵌入式控制系统对安全性要求极高,在车上安装是要烧制到ROM 中在这里的交互在这里是很少的(或许根本就没有)。基于Web式系统更适合用于迭代式开发和交互。而基于Web的系统编程使用的如Ruby一类的脚本语言,完全不适合嵌入式系统工程。 6.解释为什么软件工程的基本思想适用于所有的软件系统。
软件工程的基本思想:1.应使用有管理和理解了的开发过程进行开发。2.可依赖性和性能对所有类型的系统来说都很重要。3.理解和管理系统描述和需求是很重要,你必须知道不同的客户和用户的期望是什么。4.赢尽可能搞笑地使用档期存在资源。
软件工程也是从无数实践中提炼出来的一门科学,沟通、需求分析、设计建模、编程、测试和支持都是软件工程方法所依赖于一组的本原则。这些思想和原则涵盖了软件工程所有技术,是软件开发不可缺少的一部分。所以软件工程的基本思想适用于所有的软件系统。
7.解释Web的普遍使用是怎么改变软件系统的。
(1)软件复用已经成为构建基于Web的系统的主要技术。当你在够着这样的系统是就需要考虑在学校恩怨从已有的软件组件和系统开始工作。
(2)基于Web的系统的开发和交付应逐步完成,提前制定这些系统的所以需求
是不切实际的。
(3)用户界面搜到浏览器能力和实用性约束,基于Web的系统上的应用界面通常比专门为Pc系列产品专门设计的用户界面要差。(通俗点讲就是:实用是实用,就是有点丑。)
8.职业人员是否应该和医生或律师一样要颁发资格证书?讨论一下。
我认为:可以给职业人员颁发某种软件技术方面的资格证书以便公司能够快速确认从业人员具备的技能和让社会大众对从业人员的技术资质有更简单直观的了解。当然,这个证书不能成为他职业道德的证书,软件工程从业人员的职业道德和行为准则因由此方面协会和机构引导,从业人员自己严加自律。
9.对吐1-3的ACM/IEEE职业道德准则中的每一条款,举出一个恰当的例子加以说明。
(1)公众感:软件工程从业人员应该始终与公众利益保持一致。不应该通过软件给某些利益集团谋取私利从而损害广大人民群众的利益。
(2)客户和雇主:不能只站在雇主这边为雇主最求利益最大化而不顾客户利益。(3)产品:不能做一个没有完成或某方面如安全性、稳定性未达标的产品给客户。(4)判断力:软件从业人员应具备达到判断力,知道自己做的产品不是刻意用来危害社会的。
(5)管理:合理管理软件开发方法,不能官僚主义全听领导一句话。(6)职业感:大家都是从事正当行业的,要多想想怎么为社会谋取福利。
(7)同事:黑社会都说以和为贵,团队成员都是奔着一个目标去的不要由于一些小小分歧就那个啥...周恩来说要求同存异。
(8)自己:注意要有健康积极的职业和生活方式。
什么是四个重要的属性,所有的软件产品应该有?建议四其他属性,有时可能是重要的。可维护性, 可靠性,有效性,可用性.Other可复用性,可分发性,可移植性,互用性
给你的答案基于系统正在开发的类型的原因,建议最适当的通用的软件过程模型,可以用来管理跟踪系统发展的基础:
1)防抱死制动系统2)的虚拟现实系统3)高校会计制度4)互动的时间表(一)防抱死制动系统:安全关键安全鉴定系统方法的基础上,正式的转换等价每段之间的等价证明。(b)的虚拟现实系统:系统的要求,事先无法预测预先地预知所以探索性编程模型是合适的。
(C)大学会计系统:系统的要求应稳定是因为现有的系统因此瀑布模型是合适的。
(d)互动的时间表交互式时间表:系统复杂的用户界面,但它必须是稳定的,可靠的。应根据丢弃原型找到要求然后增量开发或瀑布模型。
为什么一个软件系统,用一个真实的世界环境必须改变或成为progressivelyless 有用吗?
这种适应自然生成新的系统需求
系统的环境是动态的,不断产生新的要求,作为对业务变化的后果,业务目标和业务政策。商务的目标以及政治相关除非系统适于反映这些要求,其设施将成为了所需要的设施支持业务和步骤,因此,它将变得不那么有用。
为什么一个好的程序员不一定是一个好的软件管理者?
管理活动包括提出书面建议,项目规划和进度,人员选择和评价,项目监督和评审,和其他队友的交流能力等。程序设计者的任务就不是这些,他们不需要和人交流的能力,如果按照做好一个程序设计者的要求去做管理者的话,他肯定不是一个号的管理者。
为什么项目策划的过程是迭代的,为什么一个计划必须不断审查软件项目中。软件项目地规划取决于有用地信息。在项目进行期间不断产生新的信息,所以必须经常性的修改原有的计划。原本有用的信息可能会不再有用,而原本一些