文档库 最新最全的文档下载
当前位置:文档库 › 软件工程课后习题答案中文翻译版(第八版)

软件工程课后习题答案中文翻译版(第八版)

软件工程课后习题答案中文翻译版(第八版)
软件工程课后习题答案中文翻译版(第八版)

软件工程课后习题:

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 Development–TFD 又称先行测试开发)当然是可以适用于关键系统的.

解释为什么测试优先开发能帮助程序员获得对系统需求的更好的理解。测试优

先的开发有什么潜在的困难。

测试优先开发帮助我们更好地理解需求,因为你要写一个测试程序,就需要

分析需求,探究详细意图。

有时候,在需求不全的情况下,你会发现写一个测试是不可能的。测试优先

开发的问题就在于是一些测试很难写,因为在任何一个测试之前都要一个就绪

的系统底层结构.

给出四个理由说明为什么结对编程和单个程序员编程的软件生产率基本上是

一样的。

结对编程和同等数量的编程人员单独编程一样有效的原因:

1.结对编程会引发连续非正式地复查,这样会比单独编程更快地发现错误。

2.结对编程过程中,信息是共享的。单独编程中,人们不得不花时间来共享信息。

3.结对编程鼓励重构(代码需要让其他人看懂),这样减少了后期开发和变动的

成本。

4.结对编程可能花更少的时间在细节优化上,因为这对其他程序员来说没有好

处。(译者注:没看懂)

假设一个软件管理者参与了一个开发某个软件设计支持系统的项目,此系统是要支持将软件需求翻译成形式化软件描述。请评论下列开发策略的优点和缺

点。

开发抛弃式原型,评估,然后审查系统需求。用C语言开发此系统。

丢弃原型化方法:快速的开发和快速的用户反馈. 可以带来合理的需求.

需要多种开发语言.花费更高.

适用java从现存的需求开始开发系统,然后修改它使之适应任何变更的用户需求。

开发使用C和X-Windows培训较少的问题。

已知的管理策略。需求可能的错误需要交付后的改性。训练几乎没问题,已知的管理策略.需求可能的错误的,所以要交付修改.

适用增量式方法并让用户参与到开发团队来开发此系统。

进化的方法.快速的用户反馈.快速的系统交付.容易适应改变的需求.

很难管理,缺少可移植性的标准.无特定系统结构,将导致以后的维护困难.

18.2解释下为什么通过复用已有的软件所节省的成本并不简单地与所适用的组

件规模成比例。

如果复用节约的成本和复用的代码成比例,那么复用2000行代码就相当于复用两次1000行代码了。然而,复用2000行代码,那些代码必须要被理解,程序

理解的费用不是线性的——越多的代码,就需要越多的努力去理解的。

而且,当需要更多的改动时,就需要更大量的代码复用,这也增加了成本。

18.3给出你认为不应该适用软件复用的4种情况。

一如果代码提供商的运作状况不确定,或者提供商歇业,不支持代码的复用。

二关键部分的代码不可用。要测试这些代码以达到所需标准,可能非常困难。

三再利用所花的成本和再利用所节省下来的差不多的小型系统

四在一些关键需求在于性能的系统里,专门开发的代码通常更有效率。18.4为什么模式是一种有效的设计复用形式?这种复用方式的缺点是什么?

模式是一种有效的再利用设计,是因为它是很多人在应用中积累出来的

智慧.这种方法有两种缺点:

知道哪一个模式被存档,找到这些模式所花的时间是必要的.

2.很多模式是一般化的,很多性能可能被限制.如果性能是主要要求的话,那么为某一个问题问题特别研究的方法总是更有效率的.

xxx确定了六个可能的风险时可能出现的系统被构造使用COTS。公司可以采取什么步骤来降低这些风险呢?

风险时可能出现的系统被构造使用COTS包括:

卖主风险:卖方无法提供必要的支持,卖方歇业或结束产品开发.

产品风险:和其它系统不兼容,和其它系统组装时性能下降,在特定环境下,产品不可靠.

过程风险:理解如何组装产品的时间超出预期.

可以通过使用第三方系统来解决.这样的话,可以通过深入的研究,投入使用前的产品兼容性的测试,和其它用户讨论等方法来保证源代码的可用,如果卖方

歇业的话.

通常,COST是由卖方提供的,要减少风险是困难的.

19.1为什么它是重要的,所有组件的交互是通过定义的“需要”和“提供”接口?

它是通过定义所有的相互作用重要的需要提供接口,组件的使用是完全独立的,

它的实现。如果组件交互使用的一些知识的组成部分,是没有定义的要求/提供接口,然后组件之间的耦合增加,很难交换一个具有相同接口的等效组分的一

个组成部分。

19.3之间的根本区别是什么组件和Web服务(see Chapter 12).

Web服务只有单一的一个标准,组件则有多个标准,因此服务的内部操作性

会更好。

服务的付费是按使用权计算的(你要用时再付费,不用时,可以停止付费),

这样用户就不用为一个偶尔使用的组件,支付昂贵的费用。

组件的交互可以作用比Web服务更有效的协议,因此组件更适用于高吞吐量/高性能要求的应用。

一旦一个组件被购买,它就属于用户所有。而与此相反,Web服务总是被提供商拥有,这就意味着用户对于服务的更改永远没有控制权,如果服务变更(或

消失),那么可能对用户很不利。而组件不同,用户可以决定什么时候使用新

版本。

19.6解释为什么它是很难不组件源代码验证的可重用的组件。以什么样

的方式将一个正式的组件规范简化验证的问题?

因为在没有源代码的情况下,我们无法知道该组件是如何处理异常的。唯一的

办法就是黑盒测试。因为组件的详细规格说明书很少是完整的,黑盒测试也有

很大的困难。标准的详细规格说明书定义了组件的功能,尽管能提供一定的帮

助,但是标准的说明书也很少说明全部的异常,它并不能帮助我们测试组件的

性能,可靠性或其它的非功能性特征。

19.8使用的例子,说明需要支持顺序组成的适配器类型不同,分层的组合物和添加剂的组合物。

顺序组合的例子:部件C是由部件A和部件B依次组合而成的。

附加组合的例子:部件C是由部件A的界面和部件B的界面组成的。

层次组合的例子:部件C是由部件B组成的,而部件B是由部件C组

成的。

23.1解释为什么测试只能检测到错误的存在,而不是他们的缺席。

假定穷举测试的程序,在每一个可能的有效输入检查,是不可能的(适用

于所有但平凡的程序)。测试用例不显示故障在程序或显示一个程序故障。如

果他们发现一个程序故障则证明错误的存在。如果他们不显示故障,然而,这

只是意味着他们已执行的代码序列,–为输入–是不是错误的选择。在相同的编

码序列–不同输入–下测试可以揭示故障。

23.3回归测试是什么?解释锄自动化测试的使用和测试框架,如单元简化回归测试。

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或

导致其他代码产生错误。如果设置了自动回归测试,在每次修改代码之后都会

自动进行测试,简化了回归测试的工作。一个自动化的测试包括成功的自身测

试和其他测试。这样成功的测试成本和回归测试成本较低。

23.6在一个分布式数据库系统,如LIBSYS开发性能测试的问题是什么?

在软件测试一个系统中碰到的主要问题是:

在实际中你不能重复测试一个系统,所以你必须用一个模拟器来模拟系统的使用。然而,你没有系统实际工作的经验,用一个模拟器很难测试系统工作时

的准确性。

2.LIBSYS系统不一定在专用的电脑上工作――该系统也可以同时在其他应用系统上工作。其他应用系统也会影响整个分布式系统的工作。在测试的时候,

这些情况不会重复发生。

3.事实上数据的分布是未知的。数据分布受到特定的服务器的影响,所以对于

数据的最初的假设可能是错误的。

23.7解释为什么接口测试是必要的甚至在个别组件已被广泛验证通过组件测试

和程序检查。

在单元测试后接口测试的重要性:

①单元的接口可能没有明确的说明。确认这个单元的接口是以他的详细规格说明书为基础而不是以单元或者子系统在实践中的使用为基础的。

②假设了某些单元的操作,接口测试可以检测由这些单元组成的接口是否正确,有效。

③接口测试可以揭示在接口设计时的遗漏和错误。当接口和其他的单元组合

在一起的时候这些错误会被发现,那么这些遗漏和错误可以被加到这个接口中。

26.1在什么情况下会公司收费软件系统比建议的费用估计加正常利润更高

的价格?

①客户要开发者自己承担大部分的项目风险。

②客户有一些苛刻的要求,比如开发的时间比较短,要快速开发。

③开发软件这个工作不是公司主要的业务,所以为了开发项目必须从其他的业务上调派人手过来,那么就需要补偿给这些人更多的钱。

④客户很自私,只考虑到自己不能承担太多的钱。

26.2描述两个已被用来衡量程序员生产率度量。简要评述了各自的优点和缺点,这些度量。

已用于生产的测量指标:

?源代码行的每单位时间产生的

?目标代码指令的每单位时间

?页的每单位时间的文件其他的可能性是:

数据字典条目每单位时间?数(可能是有用的如果使用CASE工具)

数学定义的每单位时间产生的?数(规范)

书面的每单位时间的要求?数

设计图的每单位时间产生的?数

所有这些,当然,遭受同样的问题,其他指标,那就是,他们不考虑质量因素。

26.8解释如何成本估计算法可以由项目经理进行期权分析。建议的情况下,管理者可以选择一种方法,不是基于最低工程造价。

使用算法模型进行项目估算,估算者应该做一系列估算(最坏估算,期望估算和最好估算)而不是单一估算,并用成本计算公式都计算一遍。管理者要估算软件的开发周期以及其他过程和产品因素的估算,比如团队队员的工作经验,硬件设备的更新,购买开发工具等。建立一张工作表,这张表包括了这些变化所产生的影响,并对这些影响进行估算。

由于一些组织机构方面的原因,管理者可能会选择一些相对比较贵的技术或者方法。比如软件工程师的经验相对比较丰富,但是工资也会比较高,但是开发人员还是会选择软件工程师来作为自己团队的成员而不使用新人。

28.6试列举三个为支持机构过程改善项目而开发的专门软件工具)

Elapsed time.经过时间。做某事需要多长时间。许多可能的例子如时间进行

设计评审。

Resource utilisation. 资源利用率。大量的资源使用。如工作需要测试模块。

Events which occur.事件的发生。例如,一个系统已交付后发现的缺陷数。29.1解释为什么在明确配置管理系统的文档时不用文档的名字,提出一个标准

文档识别目录可用于组织中的所有工程。)

标题不是唯一的,所以不能用来标识文档。不同的子项目中的文档可能含

有相同的标题。

文档标识的标准:<项目名称><子项目名称><任务名称><文档类型><文档号码><版本号><数据>

一个里程碑和可交付的关键的区别是什么?

里程碑是一个活动过程的终点。在每一个里程碑,应该有一个正式的输出,如

报表,可以提出管理。里程碑报告不需要大的文件。他们可能只是一个已完成

的内容简短的报告。里程碑应该代表一个独特的结束,在项目的逻辑阶段。

可交付成果是项目成果交付给客户。它通常是在一些重大项目相如规格或设计

底交货。可交付成果是通常的里程碑,但不需要交付的里程碑。

为什么风险管理是软件工程的重要?

软件项目风险管理是特别重要的,因为大多数项目所面临的不确定性因素。这

些来自松散定义的要求,估计软件开发所需的时间和资源的困难,在个人的水

平和要求的变化,由于变化在客户的依赖需求。

什么是一个可行性研究解决?

可行性研究决定提出的系统是否是值得的。如果系统有助于组织的目标;

如果系统可以设计使用目前的技术和预算范围内;如果系统能够与其他系统,使用集成。

(可能是计算机系统,也可以是手工的系统?)

描述了用户界面设计的原则.P364

熟悉一致性(最小诧异) (可复原性) (指导性) (多样性)

在这一过程中的3个核心活动:

用户分析。了解用户与系统;系统原型。开发了一系列的原型实验;界面评价。这些原型与用户体验。

How to analysis the user activities in the UI design process?P378 在软件开发中的增量方法的优点是什么?P393

1.客户服务的快速交付。每个增量提供最高优先级功能给客户。

与系统用户的参与。用户必须参与发展,这意味着系统更容易满足他们的要求,用户更致力于系统。

讨论了增量式开发和原型之间的区别?P395

增量关系的发展提供一个工作系统的最终目的。开始开发这些要求是最好的理解。

目的丢弃原型是验证或派生的系统要求。成型过程开始与这些要求了解甚少。结对编程的优势是什么?P404

对程序的使用有许多优点:

它有助于发展共同拥有的代码和传播知识在团队。

它作为一种非正式的审查过程的每一行代码都是看了超过1人。

它鼓励重构整个团队可以受益于此。

原型如何可以用在软件开发过程中?什么是使用原型的好处?p409-411

一个原型可用于:

需求工程过程帮助的需求获取和验证;

在设计过程中探索和开发用户界面设计;

在测试过程中运行的背靠背试验

效益的原型

提高系统的可用性。

更符合用户的实际需求。

提高设计质量。

改进的可维护性。

减少开发工作量。

讨论四个问题integration.p430 COTS系统

在功能和性能控制的缺乏

COTS系统可能比他们出现有效的少

与COTS系统的互操作性问题。

不同的COTS系统可能会做出不同的假设,这意味着整合是困难的

无法控制的系统进化

COTS供应商没有系统的用户控制的演化

COTS供应商的支持

COTS供应商可能不在产品的生命周期提供支持

什么是一个可重用的组件特征?P443

软件测试的目的是什么?描述了验证测试和缺陷检测的差异??538

验证测试:向开发商和软件满足系统用户;一个成功的试验表明,系统工作的打算。

缺陷检测:发现在软件,其行为是不正确的或不符合其规格与一致故障或缺陷;一个成功的测试是一个使系统执行错误,因此暴露在系统缺陷测试。

为什么接口测试是特别重要的面向对象和基于组件的开发?P549

对象和组件的接口定义,可以与其他组件在不同的系统中............组合重用

我们必须考虑在计算程序中的对象点的数量?P618

在一个程序中的对象点的数目是一个加权估计:

单独的屏幕显示的号码;

由系统产生的报告的数目程序模块,必须开发以补充数据库代码的数

量;

描述在过程改进的三个阶段?P666

过程测量:当前的流程属性的测量。这些是评价改进的基线。

过程分析:当前进程的评估和瓶颈和缺陷识别。

过程中的变化:介绍了在分析过程中发现的过程中的变化。

什么会影响产品质量?P668

影响产品质量的四个主要因素:

你可以在过程度量收集?p672

为要完成的过程活动的时间

为过程或活动所需的资源

对某一事件发生的数

考虑开车去机场赶飞机和航空公司,你没有用过。什么样的风险可能是这次到

机场的独特的,和那些可能是去机场的正常访问的一部分管理?

答:正常的风险:跑出来的气体,轮胎,天气延误,交通事故,遗忘的手提箱

独特的风险:在公路,机场建设,可能不同的终端,在具体的检查,该航空公

司延误

为什么是路径测试通常是不切实际的?

答:大多数程序具有无限数量的可能的路径通过的程序。

1.请简要说明软件过程的概念和基本元素。

答案要点:软件过程是软件工程人员为了获得软件产品在软件工具支持下实施

的一系列软件工程活动,它应该明确定义以下元素:过程中所执行的活动及其

顺序关系每一个活动的内容和步骤团队人员的工作和职责

2.请描述快速原型过程模型的各个阶段。

答案要点:快速原型方法的目的是解决软件需求不明确给开发带来风险的问

题,其关键在于尽可能“快速”地建造原型,通过用户对原型的评价最终确定

系统的需求。快速原型过程模型包括以下阶段:

原型需求分析:分析和提炼所收集到的客户需求;原型开发:基于初步的需求快速建造一个可以运行的软件原型,实现客户或未来的用户与系统的交互;

原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软

件的需求,并继续调整原型直至需求确定下来为止。

3.对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型。

(1瀑布模型(2快速原型模型(3增量模型(4形式化方法模型(5基于组件的开发模型

答案要点:(1)瀑布模型项目举例:某项目需要在一种新型机器上,为一种已

知语言开发一个普通的编译器。选用分析:由于该项目的语言是已知的,需求

是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件

开发。阶段说明:略。

(2)快速原型模型项目举例:某公司需要给火车站开发一个交互式火车车次

查询系统,这是火车站首次使用该系统。选用分析:本项目的主要问题在于用

户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的

需求基本上是不知道的,因此适

合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。

阶段说明:略。

(3)增量模型项目举例:某公司开发一个通用CAD 软件产品,产品需求是逐步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但

是迫于市场竞争的压力产品需要尽快上市。选用分析:通用CAD 软件产品具有一定的成熟度,总体需求和软

件系统结构是可以确定的,但是实现该产品所有功能需要比较长的开发周期。

为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场

又可以为后续版本的需求定义奠定基础。阶段说明:略。

(4)形式化方法模型项目举例:某公司开发一个汽车防抱死刹车控制系统。

选用分析:由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行

相关性能的检验,因此适合采用形式化方法开发该系统。阶段说明:略。

(5)基于组件的开发模型项目举例:某公司开发企业管理ERP 系统,包括销售、库存、生产、财务、物流、人力资源等部分,在系统实施过程中不同的企

业具有一定的需求差异。选用分析:企业ERP 系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发

该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成。

阶段说明:略。

4.在螺旋模型中,风险分析的作用是什么?

答案要点:在螺旋模型中,软件开发是在风险等级的指导下进行的。首先确定

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程课后作业

第1次作业 路松峰20140062 2018-07-29 10:32:40

软件产品的开发基本上是线性顺序进行的。 2、什么是模型? 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是(C )。 A.特定的开发模型 B. —种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。 A.管理级 B.优化级 C.定义级 D.可重复级 第3次作业 路松峰_20140062 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法? 面向功能分析、面向数据分析、面向对象分析 2、什么是面向数据结构方法? 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导岀软件的结构。

二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 1、增量模型本质上是一种( C )。 A.线性顺序模型 B.整体开发模型 C.非整体开发模型 D.螺旋模型 2、需求工程的主要目的是( C )。 A.系统开发的具体方案 B.进一步确定用户的需求 C.解决系统是“做什么的问题” D.解决系统是“如何做的问题” 3、在E-R模型中,包含以下基本成分(D )。 A.数据、对象、实体 B.控制、关系、对象 C.实体、关系、控制 D.实体、属性、关系 第4次作业 路松峰_20140062 2018-07-29 10:35:04 一、简答题 1、面向对象分析模型的五个层次是什么? 五个层次:类与对象层,属性层,服务层,结构层,主题层 2、对象的五个特点是什么?

软件工程概论课后答案解析

第1章软件与软件工程的概念 1、1 举出您所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1、2 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是否正确?为什么? 认为“软件就就是程序,软件开发就就是编程序。”这种观点就是错误的。 首先,软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合,程序只就是软件的组成部分之一;其次,在软件开发中,编程只就是软件开发过程的一个阶段。 1、3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 1、4 什么就是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机就是指在计算机软件的开发与维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本与进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常就是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅 速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验与有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技 术问题,更重要的就是必须有科学严格的管理。 (5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

最新版2016软件工程基础离线作业满分答案

浙江大学远程教育学院 《软件工程基础》课程作业 ————————————————————————————— 第一章概述 1.什么是软件危机,它有哪些典型表现? 答:所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: 1. 开发成本和进度不能准确估计 2. 开发出来的软件不能满足用户的要求 3. 软件的可维护性差 4. 软件质量不可靠 5. 软件成本在系统中的比重逐年上升 6. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性? 答:软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 答:软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 答:首先要对错误造成工作的延误或一些问题表示歉意。错误是难免,关键是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会降小。在编程结束后,首先要验证,是否能正常运行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低。

软件工程课后作业

路松峰_ 2018-07-29 10:32:40 一、简答题 1.什么是软件工程 软件工程是关于软件生产的各个方面的工程学科。 二、判断题 1、软件危机的主要表现是软件需求增加,软件价格上升。 / 正确 2、软件就是程序,编写软件就是编写程序。 错误 三、选择题 1、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为( A )工具。 A. CASE C. CAM D. CAD 2、在下列选项中,( C )不是软件的特征。 A.系统性与复制性 B.可靠性与一致性 C.有形性与可控性 D.抽象性与智能性 ) 3、软件工程的三要素是( B ) A.技术、方法和工具 B.方法、工具和过程 C. 方法、对象和类 D.过程、模型和方法

第2次作业 路松峰_ 2018-07-29 10:33:32 一、简答题 … 1、快速原型模型的主要优点是什么 软件产品的开发基本上是线性顺序进行的。 2、什么是模型 模型是认识客观事物时,用文字、符号或者图表等进行简化问题描述的一种方式。 二、判断题 1、在软件开发中采用原型系统策略的主要困难是成本问题。 正确 2、软件过程改进也是软件工程的范畴。 · 正确 三、选择题 1、包含风险分析的软件工程模型是( D )。 A.喷泉模型 B.瀑布模型 C.增量模型 D.螺旋模型 2、软件过程是( C )。 A.特定的开发模型 B.一种软件求解的计算逻辑 C.软件开发活动的集合 D.软件生命周期模型 3、CMM模型将软件过程的成熟度分为5个等级。在(B )使用定量分析来不断地改进和管理软件过程。

… 第3次作业 路松峰_ 2018-07-29 10:34:34 一、简答题 1、需求分析有哪三种方法 面向功能分析、面向数据分析、面向对象分析 ) 2、什么是面向数据结构方法 面向数据结构方法是一类侧重从数据结构方面去分析和表达软件需求,进行软件设计的开发方法。该方法从数据结构入手,分析信息结构,并用数据结构图来表示,再在此基础上进行需求分析,进而导出软件的结构。 二、判断题 1、需求评审人员主要由开发人员组成,一般不包括用户。 错误 2、非功能需求是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的要求。正确 三、选择题 ;

软件工程导论课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。(4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经 常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具 四、简述结构化范型和面向对象范型的要点,并分析他们的优缺点。 1. 传统方法学:也称为生命周期方法学或结构化范型。优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。 五、1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=×(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=×(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

软件工程在线作业及答案

1.第1题 在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。 A.经济可性性 B.技术可行性 C.操作可行性 D.法律可行性 您的答案:A 题目分数:2.5 此题得分:2.5 2.第2题 为了提高模块的独立性,模块内部最好是()。 A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 您的答案:C 题目分数:2.5 此题得分:2.5 3.第3题 Jackson方法是一种面向()的方法。 A.对象 B.数据结构 C.数据流 D.控制流 您的答案:B 题目分数:2.5 此题得分:2.5 4.第4题 需求分析阶段研究的对象是软件项目的()。 A.用户需求 B.合理要求 C.模糊要求 D.工程要求 您的答案:A 题目分数:2.5 此题得分:2.5

5.第5题 面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。 A.系统设计 B.详细设计 C.软件设计 D.编码 您的答案:B 题目分数:2.5 此题得分:2.5 6.第6题 程序控制的三种基本结构中,()结构可提供多条路径选择。 A.反序 B.顺序 C.循环 D.分支 您的答案:D 题目分数:2.5 此题得分:2.5 7.第7题 下列属于黑盒测试的是()。 A.基本路径测试 B.条件测试 C.循环测试 D.等价划分 您的答案:D 题目分数:2.5 此题得分:2.5 8.第8题 软件设计一般分为总体设计和详细设计,它们之间的关系是()。 A.全局和局部 B.抽象和具体 C.总体和层次 D.功能和结构 您的答案:A 题目分数:2.5 此题得分:2.5

9.第9题 好的软件结构应该是()。 A.高耦合,高内聚 B.低耦合,高内聚 C.高耦合,低内聚 D.低耦合,低内聚 您的答案:B 题目分数:2.5 此题得分:2.5 10.第15题 面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。 A.传递性 B.继承性 C.复用性 D.并行性 您的答案:B 题目分数:2.5 此题得分:2.5 11.第16题 软件项目管理是()一切活动的管理。 A.需求分析 B.软件设计过程 C.模块控制 D.软件生命周期 您的答案:D 题目分数:2.5 此题得分:2.5 12.第17题 一个模块把开关量作为参数传递给另一模型,这两个模块之间的耦合是()。 A.外部耦合 B.数据耦合 C.控制耦合 D.内容耦合 您的答案:C

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程导论课后题

1-5、根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

2-4 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。 医院对患者8监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 从问题陈述可知,本系统数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。 从问题陈述容易看出,本系统的数据终点是接收警告信息和病情报告的护士。 系统对病人生理信号的处理功能主要是“接收信号”、“分析信号”和“产生警告信息”。 此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。 为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。此外,定时记录病人生理信号所形成的“患者日志”,显然也是一个数据存储。

软件工程习题答案参考

软件工程 绪论 1.什么是软件危机为什么会产生软件危机 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化工程化生产方法与早期的程序设计方法主 要差别在哪里 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于

一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件工程作业答案

新版形考作业答案第一次!! 09软件工程作业1答案 一、选择题: 1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2. 瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3. 瀑布模型存在的问题是(B )。 A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求 4. 螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5. 原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 6. 下列有关软件工程的标准,属于国际标准的是(D) A.GB B.DIN C.ISO D.IEEE 7. 结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8. 软件可行性研究实质上是要进行一次(A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9. 可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10. 设年利率为i,现存入p元,不计复利,n年后可得钱数为(C)。 A、P×(1+i*n) B、P×(i+1)*n C、p×(1+i)n D、p×(i+n) 11. 可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 12.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的(C)。 A、1% B、20% C、8% D、50% 13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》B.《中华人民共和国计算机信息系统安全保护条例》 C.《中华人民共和国著作权法》D.《计算机病毒防治管理办法》 14. 效率是一个性能要求,因此应当在以下(B)阶段规定 A、可行性分析 B、需求分析 C、概要设计 D、详细设计 15. 需求规格说明书的作用不包括(D) A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 16. 数据字典是用来定义(D)中的各个成份的具体含义的。 A、程序流程图 B、功能结构图 C、系统结构图 D、数据流程图 17. 数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 18. DFD中的每个加工至少有(A)。 A、一个输入流或一个输出流

软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程, , , . 2. 基于软件的工作方式,软件可以划分为, , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境. 4. 在计算机系统中,软件是, 而硬件是. 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,,. 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤, , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型, , , , , . 14. 软件工程面临的问题有, , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和. 16.基于软件的功能划分可以把软件划分为, ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则:, ,和, 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程课后参考答案

第一章 1.1什么是计算机软件?软件的特点是什么? 计算机软件是指计算机系统中的程序及其文档 软件的特点: ●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。 ●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可, 但其维护的工作量大。 ●软件的使用没有硬件那样的机械磨损和老化问题。 1.2简述软件的分类,并举例说明 1.系统软件 系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。例如:编译软件、操作系统。 2.支撑软件 支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境。 3.应用软件 应用软件是特定应用领域专用的软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。 1.3简述软件语言的分类,并举例说明。 1.需求定义语言 是用于书写软件需求定义的语言。例如:PSL/PSA。 2.功能性语言 是用于书写软件功能规约的语言,通常又称为功能规约语言。例如:广谱语言、Z 语言。 3.设计性语言 是用于书写软件设计规约的语言。例如:PDL。 4.实现性语言 也称为程序设计语言,是用于书写计算机程序的语言。例如:C、java、PROLOG、FORTRAN、COBOL、Modula。 5.文档语言 是用于书写软件文档的语言。通常用自然语言或半形式化语言书写。 1.4什么是软件工程? 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。 1.5简述软件工程的基本原则。 软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。 1.选取适宜的开发模型 必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。 2.采用合适的设计方法

软件工程课后习题答案

第一章 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在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。

软件工程概论课后习题答案

软件工程概论郑人杰等版 第1章软件与软件工程的概念 1.1 举出你所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 1.2 认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么? 认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。 首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。 1.3 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 1.4 什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本和进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用 迅速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及 技术问题,更重要的是必须有科学严格的管理。

软件工程作业答案

软件工程网上作业题 第1章软件工程学概述 一、选择题 1、软件危机具有下列表现( ) I、对软件开发成本估计不准确 II、软件产品的质量往往不可靠 III、软件常常不可维护 IV、软件成本逐年上升 A.I、II与III B.I、III与IV C.II、III与IV D.以上都正确 答案:D 2、产生软件危机的原因可能有( ) I、用户需求描述不精确、不准确 II、对大型软件项目的开发缺乏有力的组织与管理 III、缺乏有力的方法学与工具的支持 IV、软件产品的特殊性与人类智力的局限性 A.I与II B.I、II与IV C.II、III与IV D.以上都正确 答案:D 3、( )分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。 A、增量模型 B.喷泉模型 C.原型模型D、螺旋模型 答案:A 4、为了克服软件危机,人们提出了用( ) 的原理来设计软件,这就就是软件工程诞生的基础。 A、数学 B、软件学 C、运筹学 D、工程学 答案:D 4、TURBO PASCAL就是()软件。 A、系统软件 B、人工智能 C、事务软件 D、应用软件 答案:D 6.具有风险分析的软件生存周期模型就是( ) A、瀑布模型 B、喷泉模型 C、螺旋模型 D、增量模型 答案:C 7、瀑布模型的关键不足在于( ) A、过于简单B、不能适应需求的动态变更 C、过于灵活D、各个阶段需要进行评审 答案:B

8.软件危机就是指( )。 A、软件遭到破坏 B、软件开发与维护过程中遇到的问题 C、软件维护出现困难 D、软件不能正常运行系列问题 答案:B 9、软件的复杂性就是( ),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A、固有的 B、人为的 C、可消除的 D、不可降低的 答案:A 10、( )就是将系统化的、规范的、可定量的方法应用于软件的开发、运行与维护的过程,它包括方法、工具与过程三个要素。 A、软件过程 B、软件测试C 、软件生存周期D 、软件工程 答案:D 11.软件的主要特性就是( )。 A、高性能 B、高成本 C、包括程序与文档 D、可独立构成计算机系统 答案:B 12.软件开发方法的主要工作模型有( ) A、螺旋模型 B、循环模型 C、瀑布模型 D、专家模型 13.软件工程三要素就是( )。 A、高技术人员、方法与工具 B、方法、工具与过程 C、方法、对象与类 D、过程、模型、方法 答案:B 14.软件工程的目标有( )。 A、易于维护 B、低的开发成本 C、高性能 D、短的开发期 答案:B 15.软件工程学的目的与意义就是( )。 A、应用科学的方法与工程化的规范管理来指导软件开发 B、克服软件危机 C、做好软件开发的培训工作 D、以较低的成本开发出高质量的软件 答案:D 16、开发软件所需高成本与产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、软件工程 B、软件周期 C、软件危机 D、软件产生 答案:C 17、快速原型模型的主要特点之一就是( ) A、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 答案:D 18.瀑布模型的存在问题就是( ) A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 答案:B 19、软件生存周期模型不包括:() A、瀑布模型 B、对象模型 C、增量模型 D、喷泉模型 答案:B

软件工程课后习题答案

软件工程课后习题答案 习题1 略。 习题2 略。 习题3 略。 习题4 2.在什么情况下应该使用形式化说明技术?使用形式化说明技术时应遵守哪些准则? 人们在理解用自然语言描述的规格说明时,容易产生二义性。为了克服非形式化方法的缺点,人们把数学引入软件开发工程,创造了基于数学的形式化说明技术。 应用形式化方法的准则: (1)应该选用释放的表示方法; (2)应该形式化,但不要过分形式化; (3)应该估算成本; (4)应该有形式化方法顾问随时提供咨询; (5)不应该放弃传统的开发方法; (6)应该建立详尽的文档; (7)不应该放弃质量标准; (8)不应该盲目依赖形式化方法; (9)应该测试、测试再测试; (10)应该重用。 4.用有穷状态机说明自动化图书馆流通系统

习题5 略。 习题6 略。 习题7 略。 习题8 略。 习题9 1.什么是面向对象方法学?它有哪些优点? 面向对象方法学,是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程,从而使得实现解法的解空间(也称为求解域)与描述问题的问题空间(也称为问题域)在结构上尽可能一致。 优点:

1.与人类习惯的思维方法一致; 2.稳定性好; 3.可重用性好; 4.较易开发大型软件产品; 5.可维护性好 10.建立订货系统的用例模型。 分析如下:从对这个订货系统的需求可以知道,仓库管理员通过放在仓库中的终端把零件入库/出库市事务报告给订货系统,系统接受到事务信息之后应该处理事务;采购员需要使用订货系统提供的产生报表功能,以获取订货报表。综上所述,用例如下: 习题10 1.用面向对象方法分析研究本书习题2第2题中描述的储蓄系统,试建立它的对象模型、

相关文档
相关文档 最新文档