咸鱼笔记:《实用软件工程》第一、二章课后简答题及参考答案


前言

作为程序员来说,软件工程这门课是必修的学习课程之一,软件工程可以给我们提供完整符合标准的软件开发流程学习和提升项目管理能力。软件工程,一言蔽之,就是那些能够组织相关人员协作按时、按质开发出软件的所有活动的方法论,最佳实践和工具。
程序员只要在从事软件开发,就离不开软件工程,区别只不过是好的软件工程实践和坏的软件工程实践而已。
以下是《实用软件工程》这本书的第一、二章课后简答题内容和参考答案。


第一部分 软件工程概述

第一章 软件与软件工程

1.与计算机硬件相比,计算机软件有哪些特点?

答案】:

软件的特点如下:
(1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。
(2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。
(3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。
(4)软件的开发和运行必须依赖于特定的计算机系统环境。
(5)具有可复用性。

2.为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端?

答案】:

因为软件工程提出是为了解决软件危机所带来的各种弊端。具体的讲,软件工程的目标主要包括以下几点。
(1)使软件的开发成本控制在预计的合理范围之内。
(2)使软件产品的各项功能和性能能够满足用户需求。
(3)提高软件产品的质量。
(4)提高软件产品的可靠性。
(5)使生产出来的软件产品易于移植,维护,升级和使用。
(6)使软件的开发周期能够控制在预计的合理时间范围内。

3.请简述软件工程的基本原则。

答案】:

(1)将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。软件开发的生命周期可以划分为可行性研究,需求分析,软件设计,软件实现,软件测试,产品验收和交付手段。
(2)坚持阶段评审制度,以确保软件产品的质量。
(3)实施严格的产品控制,以适应软件规格的变更。在软件开发过程中,用户需求很可能不断发生变化。
(4)采用现代程序设计技术。
(5)开发出来的软件产品应该能够清楚地被审查。
(6)合理的安排开发软件小组人员,并且开发小组人员要小而精。
(7)不断地改进软件工程实践。

4.请简述软件工程研究的内容。

答案】:

软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。

5.请简述软件工程的三要素。

答案】:

软件工程的三种基本要素是过程、方法和工具。
软件工程的基础是过程层,它定义了一组关键过程区域的框架,使软件能过被合理和及时的开发;
软件工程的方法提供了建造在在技术上需要“做什么”,它覆盖了一系列的任务,包括需求分析、设计编程、测试和支持等;
软件工程的工具对过程和方法提供了自动的或半自动的支持。

6.请简述软件工程的目标。

答案】:

软件工程的目标是:
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

7.通常有哪几种软件开发方法?

答案】:

通常有四种软件开发方法:瀑布模型,原型模型,增量模型和螺旋模型。

8.请列举你所知道的软件工程工具。

答案】:

Microsoft Office Project、Borland Together、VSS、CVS、JBuilder、Eclipse、Power Designer和Rational Rose等。


第二章 软件过程

1.如何理解软件生命周期的内在特征?

答案】:

软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,到最终该产品被市场淘汰的全过程。
软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。
由于每个阶段的任务相对于总任务难度会大幅度降低,在资源分配、时间把握和项目管理上都会比较容易控制。合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。

2.请对比瀑布模型、快速原型模型、增量模型和螺旋模型。

答案】:

瀑布模型
主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作。

原型模型
需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。

增量模型
对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量是一次迭代。增量模型的新版本叫做“极限编程(XP)”。

螺旋模型
融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件眼镜的关键因素。

3.在统一软件开发过程模型中核心工作流程包含哪些?

答案】:

核心工作流程有业务建模,需求分析,分析设计,实现,测试和部署。

4.当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合适?

答案】:

开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适合于较复杂的系统。

5.敏捷过程的核心价值观有哪些?它对传统方法的“反叛”体现在哪些方面?

答案】:

敏捷思想的核心价值观大体包括以下几个方面:
(1)注重个人与交互。
(2)重点关注可以工作的软件。
(3)提高客户参与程度。
(4)以积极的心态响应需求变化。
(5)敏捷联盟强调的价值观是这一流派的核心。人是受价值观驱使的,敏捷项目管理因而也是以价值观为推动力的。一个团队可以采用敏捷做法,但如果它不接受敏捷价值观,它将不能得到敏捷方法的潜在好处。
敏捷方法对传统方法的“反叛”体现在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张对传统过程瘦身,在上述价值观的支配下,做到够用为准。

6.什么是软件过程?它与软件工程方法学有何关系?

答案】:

软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件工程方法学包含软件过程。

7.某大型企业计划开发一个“综合信息管理系统”,该系统涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的想法是按部门优先级别逐个实现,边应用边开发。对此,需要一种比较合适的过程模型。请对这个过程模型做出符合应用需要的选择,并说明选择理由。

答案】:

可以采用增量模型。它是瀑布模型与原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则把软件系统功能分解为许多增量构件,并以构件为单位逐个创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。


总结

以上就是第一二章简答题及参考答案内容了,希望可以帮助你了解以及掌握该知识。

  • 18
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卷橘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值