软件工程课后习题答案中文翻译版第八版_第1页
软件工程课后习题答案中文翻译版第八版_第2页
软件工程课后习题答案中文翻译版第八版_第3页
软件工程课后习题答案中文翻译版第八版_第4页
软件工程课后习题答案中文翻译版第八版_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程课后习题 :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有用吗?这种适应自然生成新的系统需求系统的环境是动态的,不断产生新的要求,作为对业务变化的后果,业务目标和业务政策。商务的目标以及政治相关除非系统适于反映这些要求,其设施将成为了所需要的设施支持业务和步骤,因此,它将变得不那么有用。为什么一个好的程序员不一定是一个好的软件管理者?管理活动包括提出书面建议,项目规划和进度,人员选择和评价,项目监督和评审,和其他队友的交流能力等。程序设计者的任务就不是这些,他们不需要和人交流的能力,如果按照做好一个程序设计者的要求去做管理者的话,他肯定不是一个号的管理者。为什么项目策划的过程是迭代的,为什么一个计划必须不断审查软件项目中。软件项目地规划取决于有用地信息。在项目进行期间不断产生新的信息,所以必须经常性的修改原有的计划。原本有用的信息可能会不再有用,而原本一些不确定的信息反而会变得有用。最初对象目本身的估算是实验性的,所以计划需要不断的修改。表明他们可能会在一所大学的学生记录系统中的利益相关者。在一个学生记录系统的利益相关者包括:大学管理中心,包括报到,交纳学费,考试,作业和毕业等 记录在这个系统中的学生大学部门管理者,需要提供和使用这些信息使用系统信息的学院成员数据保护工作者潜在的学生中的雇佣者在学生记录系统中的参与者包括:。学校管理中心包括负责学生注册,缴费,考试,评估,毕业事宜的相关人员。那些被记录具体信息的学生。把学生信息录入到系统并使用系统信息的学校部门人员。使用这些信息的学术人员。数据安全人员(本地和国家的)。潜在的雇用学生的人(或许需要用到这个系统里面的信息)7.3 三在图书馆系统中发现的观点。libysy,建议三的要求,可以通过与相关的利益相关者提出的观点。你可以解决这个问题用头脑风暴的方法。显然,有许多替代解决方案建议,这里。注意印刷冲突是故意的。观点:图书馆管理要求:进入汇文系统应限于认可的图书馆用户。要求:在汇文系统必须提供一个报告的设施,允许使用报告(谁使用系统,多久,是什么库访问)来创建和打印。要求:在汇文系统的配置应使特定的库服务器允许打印文档。观点:用户要求:在汇文系统应可从任何位置,包括地点离大学校园。要求:应能保存汇文系统查询,回忆和修改后使用。要求:在汇文系统应允许文件被打印在用户的打印机。观点:系统管理员要求:重新启动时间的汇文系统失败后不得超过 5 分钟。要求:在汇文系统必须提供一个用户的个人工作空间的备份设备。要求:在汇文系统应提供一系列平台包括 Windows 2000,Windows XP 和MAC OS X。7.4 汇文系统支持包括编目工作的新文件系统目录可以分布在多台机器。可能是非功能需求与编目设施有关的最重要的类型?重要的非功能属性的编目服务的可能:可用性(因为系统可以在任何需要的时间)安全(因为图书数据库不能损坏)效率(因为系统必须迅速作出反应,每个交易)为浏览服务,这些服务的可用性也是非常重要的应该是易于使用,没有广泛的培训。 讨论了一个例子,一个类型的系统的社会和政治因素可能强烈地影响系统的要求。解释为什么这些因素是重要的在你的例子。 社会和政治因素影响系统需求的一个例子是管理成本和公共卫生保健的系统。政治家们对控制成本和确保提供最好的卫生保健系统都很关心。在这样一个系统中这本来就是一对潜在的矛盾,系统管理人员关心的治疗成本而医生们关心的治疗效果。此时系统需求可能要建立在特殊的包括一系列组织因素的政策上而不是技术需求。11.1 为什么它可能需要在规范设计系统的体系结构是写的吗?体系结构设计过程输出了一个体系结构的设计文档,这样的设计文档包含了一系列图形化的系统模型描述和一些相关的描述文本。该文当描述了系统如何有子系统构成以及每个子系统如何有模块构成。11.4 给你答案的原因,建议以下系统的一个合适的结构模型: 11.4.1 一个在铁路站旁,供乘客使用的自动售票系统答:自动售票系统。最合适的架构模型是有共享数据仓库和定价信息的集中式控制模型。当使用这种模型时,所有机子能立即获取改变的信息。由于没有局部处理的必要,所以使用客户/服务架构没有什么优势。 集中式控制系统允许全局信息和路径被收集和处理。一个允许在同一时间段,视频,音频,计算机数据对很多参与者是可见的计算机控制视频会议系统答:视频会议系统。最合适的是使用客户/服务模型。很多局部过程用来处理多媒体数据。11.4.3 一个清洁机器人,主要用来清理一些地方比如走廊。该清洁机器人必须能感应墙和其他的障碍物。答:清洁机器人。最适合的模型是贮藏式模型。这时所有的子系统把信息存放在其他子系统得贮藏室,以备后用。以 AI 系统为例,一种特殊的贮藏室叫做“黑板” 被使用11.8 就分布性讨论数据流模型和对象模型的优点和缺点。假设应用程序的淡季和分布式版本都是必需的。两种模型都能作为分布式,数据流程图中的每个转换都可以看作是个分离的过程,而每个对象也可以作为过程实现。函数的分解需要共享状态,并表示为一个或多个过程。在对象模型中分布对象是个问题,对象如果继承的话就如同它的创建一样会造成很多网络阻塞。 用例子,解释对象和对象类之间的不同。对象类就是定义实体(或者说对象)的类型说明,包含可以被识别的相似的公共特征。对象是真实世界或是在系统中的通过对象类对其属性进行赋值的特殊实例。给对象的赋值操作可用于识别与其他所有对象的区别,尽管不需如此。在现实世界中,我们只能看到对象和作为抽象实体的构造对象类。在程序中,我们通常可以定义对象类和构造对象,它们的声明周期不超过程序的执行时间。 一个对象类的一个实例,是一本具有的属性(特征)如标题,作者,出版社,出版日期,等。一个叫做“BOOK”的对象类的例子,属性有诸如 一个关于这个对象类的对象的例子“specific book” 作者:伊恩萨默维尔标题:软件工程 版:7 出版商艾迪生卫斯理 如果我们想定义一个书的对象是不同于其他所有的对象,我们需要增加的另一个特点的对象类,如业主。16.2 说明在什么情况下提供前后一致的用户界面是不明智的或是不可能的。一致性的用户界面也许不可能提供给拥有大量选项的复杂系统。在这样的系统中,经常使用的不同命令的使用程度有很大差异,因此我们希望用快捷方式。除非所有的命令都有快捷方式,否则一致性的界面是不可能的。此外在复杂的操作界面中有不同类型的操作实体,这些不同类型的操作实体拥有相同的操作是不可能的。开放型操作系统就是这样一个系统的例子。甚至是竭力做到尽可能一致性界面的苹果操作系统(MacOS)都会根据不同的用户喜好而由此产生矛盾。再举个例子,用户要删除一个文件,只要把它拉到垃圾回收站,而删掉一个磁盘映像可不能这样,那要卸载那个磁盘。在为“临街的”系统(如 ATM 机) 涉及基于菜单的界面时,必须考虑哪些因素?请对你所使用的 ATM 机的界面提出批评意见。要考虑的因素在设计步行和使用的系统:系统的用户可能是虚弱的,或禁用,因此将无法快速响应的要求。用户可能无法讲母语的国家机器安装。系统的用户可以与技术完全陌生的,可以用机器做几乎任何类型的错误。接口必须尽量减少可能出现的错误的数量必须是有弹性的任何可能的错误。一些系统的用户可能是由许多选项吓倒。另一方面,当用户与系统增益的熟悉,他们可能会使用一系列的银行服务。不同的人可能会明白不同图标的含义。如果系统导航选项,用户几乎肯定是迷路了。大多数用户将要使用的系统很简单的功能(例如提取现金取款机)和将要这样做,尽快。有许多不同的 ATM 接口,每个人都必须单独考虑。我所发现的问题是:当有可能取消交易吗?当我这样做时会发生什么?如果我重新启动事务必须重新输入什么?通常是不存在任何的方式说给我的最大数额的钱我可以撤回今天。有些机器只支持单一的交易是没有办法说我会做一些交易和相同的验证过程是适用于所有的人16.5 试述图形显示的优点,指出适合用图形显示数值而不适合用数字显示的四种应用。优点是匆匆一眼就能获得数值暗示和相对数值暗示。这里有四个适于图形显示信息,而不适用于数字显示信息的例子.温度计 速度指示器 气候统计表 一些相关的比较表格.你在什么情况下会建议不采用敏捷方法进行软件系统开发?当几个软件开发团队不在同一个地方时不可用敏捷方法。如果其中一个团队用了敏捷方法,就很难跟其它团队协调工作.敏捷方法也要避免用在关键系统,在规格错误的情况下如果用这个方法,会导致严重的后果.在开发系统之前规格就可以用的情况下,可以做详细的规格分析使用敏捷方法成为可能.然而,一些敏捷方法中的思想像 测试优先开发(Test First DevelopmentTFD 又称先行测试开发)当然是可以适用于关键系统的.解释为什么测试优先开发能帮助程序员获得对系统需求的更好的理解。测试优先的开发有什么潜在的困难。 测试优先开发帮助我们更好地理解需求,因为你要写一个测试程序,就需要分析需求,探究详细意图。 有时候,在需求不全的情况下,你会发现写一个测试是不可能的。测试优先开发的问题就在于是一些测试很难写,因为在任何一个测试之前都要一个就绪的系统底层结构.给出四个理由说明为什么结对编程和单个程序员编程的软件生产率基本上是一样的。结对编程和同等数量的编程人员单独编程一样有效的原因:1.结对编程会引发连续非正式地复查,这样会比单独编程更快地发现错误。2.结对编程过程中,信息是共享的。单独编程中,人们不得不花时间来共享信息。3.结对编程鼓励重构(代码需要让其他人看懂),这样减少了后期开发和变动的成本。4.结对编程可能花更少的时间在细节优化上,因为这对其他程序员来说没有好处。(译者注:没看懂) 假设一个软件管理者参与了一个开发某个软件设计支持系统的项目,此系统是要支持将软件需求翻译成形式化软件描述。请评论下列开发策略的优点和缺点。开发抛弃式原型,评估,然后审查系统需求。用 C 语言开发此系统。丢弃原型化方法:快速的开发和快速的用户反馈. 可以带来合理的需求.需要多种开发语言. 花费更高.适用 java 从现存的需求开始开发系统,然后修改它使之适应任何变更的用户需求。开发使用 C 和 X-Windows 培训较少的问题。已知的管理策略。需求可能的错误需要交付后的改性。训练几乎没问题,已知的管理策略.需求可能的错误的,所以要交付修改.适用增量式方法并让用户参与到开发团队来开发此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论