《软件工程基础》习题集答案_2 下载本文

《软件工程基础》习题集答案

第一章 概 述

1.什么是软件危机,它有哪些典型表现?

所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。

软件危机的典型表现主要有: a. 开发成本和进度不能准确估计

b. 开发出来的软件不能满足用户的要求 c. 软件的可维护性差 d. 软件质量不可靠

e. 软件成本在系统中的比重逐年上升 f. 软件开发生产率的提高速度不够

2.简述产生软件危机的原因和解决的思路。

软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。

3.什么是软件工程?它有哪些本质特性?

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。

其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。

4.软件工程是如何用来消除软件危机的?

软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。

6.简述软件的定义。

软件 = 程序 + 数据 + 文档

7.软件工程的目的是什么?

为高质量的软件开发提供一个科学的体系框架。

8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?

软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。

9.简述软件工程的基本原理。

软件工程有7条基本原理:

1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制

4.采用先进的程序设计技术 5.结果应能清楚的审查 6.开发小组成员应少而精

7.承认不断改进软件工程实践的必要性

10.软件工程的基本开发原则有哪些?

软件工程的基本开发原则有: 1.模块化

2.抽象和信息隐蔽

3.模块的高内聚和低耦合 4.确定性 5.一致性 6.完备性

11.构成软件工程的基本元素有哪些?

除了前面给出的软件工程三大要素,还应该包括控制和质量保证。这里的控制,即规模控制、成本控制、复杂性控制等。

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

软件过程是指为了获得高质量软件产品,在软件工具支持下,由软件人员完成的一系列软件工程活动。 软件过程规定了开发软件所需完成的各项任务步骤。过程步骤的设定与软件生命周期、生命周期模型、软件开发工具,以及参与开发的人员等诸方面因素有关。

13.什么是软件生命周期?什么是软件生命周期模型?

软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡的生存过程。软件的这一过程,称为软件生命周期。

软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题,而提出的开发策略。是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架。

14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。

软件生命周期方法学是软件工程的传统途径,划分阶段步骤的目的和实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力实现。

15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

1.瀑布模型。

瀑布模型广为人知和历史悠久,其优势是规范及文档驱动的方法。但问题是,往往不能够真正满足用户的需求。

适用于传统软件工程领域的结构化开发。 2.原型模型。

是为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。

3.螺旋模型。

螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性,但这些优越性并不是绝对的。主要体现在对开发人员的风险评估经验和专门知识的要求较高。如果项目风险较大,而开发人员的水平较低,不能准确的识别和分析风险,则势必造成重大损失。

4.增量模型。

具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。

第二章 可行性研究

1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?

可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。 可行性研究的任务不是解决问题,而是确定是否可解/值得解。

2.应该从哪些方面研究目标系统的可行性?

主要从以下几个方面进行可行性研究:

1. 技术可行性。以现有技术,能否在预定时间内完成该系统开发。

2. 经济可行性。通过成本-效益分析,估算系统的整体经济效益是否满足要求。 3. 操作可行性。分析系统的运行方式、操作规程是否适应用户应用需要。 4. 社会可行性。分析系统在法律、社会、市场等方面的认可度。

3.可行性研究有哪些工作步骤?

(1) 复查定义,确定系统规模和目标。 (2) 研究老系统

(3) 导出高层逻辑模型(conceptual design) (4) 重新定义 (5) 导出多种解法 (6) 推荐行动方针 (7) 开发计划(粗略) (8) 审查、存档

4.简述系统流程图在可行性研究中的作用。

系统流程图是概括的描述物理系统的传统工具。系统流程图反映的是信息在系统各部分间流动的情况。 系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。

5.简述数据流图在可行性研究中的作用和用途。

数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。

6.简单描述数据字典的内容和定义数据的方法。

数据字典主要由下列4种元素定义组成: 1.数据流

2.数据流分量 3.数据存储 4.处理

除了数据定义外,数据字典还应包含一些关于数据的其它信息。

定义数据的方法通常采用自顶向下分解的方式。并由顺序、选择、重复三种基本数据元素类型组成数据。

7.说明软件计划的内容和目标。

软件计划的内容 = 项目任务范围 + 环境资源 + 工作量 + 进度

软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。

8.什么是软件范围?定义软件范围需要哪些信息?

软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。 定义软件范围需要以下信息:

a. 与用户、总体目标及利益相关的问题。 b. 有利于系统分析员理解的问题。 c. 集中于交流效果的问题。

9.简述软件开发环境资源的三个层次。

软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源——人。

10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?