软件工程第一章习题答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章习题

1.1什么是计算机软件?软件的特点是什么?

答:计算机软件(Computer Software,也称软件,软体)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。

软件的特点:

1.软件是一种逻辑实体而不是有形的系统元件,其开发成本和进度难以准确的估算。

2.软件是被开发的或设计的,没有明显的制作工程,一旦开发成功,只需复制即可,

但其维护的工作量大。

3.软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明。

答:软件分为系统软件,支撑软件和应用软件3类。

系统软件居于计算机系统中最靠近硬件的一层其他软件一般都通过系统软件发挥作用。例如:编译程序,操作系统等。

支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统,网络软件,软件工具,软件开发环境等。

应用软件是特定应用领域专用软件。例如:工程/科学计算软件,嵌入式软件,产品线软件,Web应用软件,人工智能软件等。

1.3简述软件语言的分类,并举例说明。

答:软件语言是用于书写计算机软件的语言主要包括:需求定义语言,功能性语言,设计性语言,实现性语言和文档语言。

需求定义语言用以书写软件需求定义,软件需求定义是软件功能需求和非功能需求的定义性描述。软件功能需求刻画“做什么”,软件非功能需求刻画诸如功能性限制、设计限制、环境描述、数据预通信规程以及项目管理等。。

功能性语言用以书写软件功能规约,软件功能规约是软件功能的严格而完整的陈述。软件功能规约通常只刻画软件系统“做什么”的外部功能,而不涉及系统“如何做”的内部算法,因此,功能性语言通常又称为功能规约语言。

设计性语言用以书写软件设计规约。软件设计规约是软件设计的严格而完整的陈述。一方面,它是软件功能规约的算法性细化,刻画了软件“如何做”的内部算法;

另一方面,它又是软件实现的依据从。

实现性语言,即一般的程序设计语言,用于计算机程序、处理对象和规则的描述。

程序设计语言有高级语言和低级语言之分。

文档语言用以书写软件文档。以上的软件需求定义,软件功能规约,软件设计规约等都是软件文档。此外还可能有一些其他阐明性的资料,这些也是软件文档。

需求定义语言例如:PSL/PSA等;

功能性语言例如:广谱语言,Z语言等;

设计性语言例如:PDL等;

实现性语言例如:FORTRAN,C Java等;

文档语言通常用自然语言或半形式化语言书写。

1.4什么是软件工程?

答:软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:

BarryBoehm

运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE

在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究

FritzBauer

在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

计算机科学技术百科全书

软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型

(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

1.5简述软件工程的基本原则。

答:软件工程围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则:

(1)软件工程选取适宜的开发模型

该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。

(2)软件工程采用合适的设计方法

在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性

等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

(3)软件工程提供高质量的工程支撑

在软件工程中,软件工具与环境对软件过程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。工欲善其事,必先利其器。

(4)软件工程重视软件工程的管理

软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。

1.6软件生成周期分哪几个阶段?分别简述各个阶段的任务。

答:软件生存的周期大致可分为:计算机系统工程,需求分析,设计,编码,

测试,运行和维护。

计算机系统工程:计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,进行成本估算,做出进度按排,并进行可行性分析。

需求分析:需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能,性能,数据,界面等要求生成软件需求规约。

设计:软件设计主要解决“怎么做”的问题,通常分为系统设计和详细设计。

编码:编码阶段的任务是用某种程序设计语言,将设计的结果转换成可执行的程序代码。

测试:测试阶段的任务是发现并纠正软件中的错误和缺陷。

运行和维护:软件运行期间需对投入运行的软件进行维护当发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界的变化等情况出现时,对软件进行修改。

1.7简述CMM的5个等级。

答:1.初始级

软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。

2.可重复级

建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功经验。

3.已定义级

已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经批准、剪裁的标准软件过程来开发和维护软件,软件产品的生产在整个软件过程是可见的。

4.已管理级

分析对软件过程和产品质量的详细度量数据,对软件过程和产品都有定量的理解与控制。管理有一个作出结论的客观依据,管理能够在定量的范围内预测性能。

相关文档
最新文档