您的当前位置:首页正文

软件工程复习题

来源:一二三四网
软件工程复习题

——考试时间地点:19周 周三 E204 、E 203 5,6节

1.软件的定义?

软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。

2.软件危机的定义,表现、原因是什么?

软件危机:

软件危机是指在计算机软件的开发和维护过程中 所遇到的一系列严重问题。 软件危机的表现:

(1)对软件开发成本和进度的估计常常很不准确。

(2)经常出现用户对“已完成的”软件系统功能不满意的现象。 (3)软件产品的质量往往达不到要求。 (4) 软件通常不可维护。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件危机的原因:

客观原因:与软件本身的特点有关 1、软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。软件缺乏“可见性”。 2、软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。软件缺乏“可插拔性”。

3、如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,必须有严格而科学的管理。

主观原因:与软件开发与维护的方法不正确也有关

目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,这可能是使软件问题发展成软件危机的主要原因。

4、忽视需求分析只重视编码与运行。

1)编写程序所需的工作量只占软件开发全部工作量的10%~20%。

2)在后期引入一个变动比在早期引入相同变动所需付出的代价高2~3个数量级。图1.1定性地描绘了在不同时期引入一个变动需要付出的代价的变化趋势。 5、忽视文档只重视程序

必须认识到一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文

档和数据等成分。必须清除只重视程序而忽视软件配置其余成分的糊涂观念。 6、轻视维护是一个最大的错误。

统计数据表明,实际上用于软件维护的费用占软件总费用的55%~70%。

3.软件工程的定义、软件工程方法学三要素是什么?

软件工程定义:

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,用于经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程方法学的3个要素:方法、工具和过程

方法是:完成软件开发的各项任务的技术方法,回答“怎样做”的问题;

工具是:为运用方法而提供的自动的或半自动的软件工程支撑环境;(用什么做)

过程是:为了达到给定目标所实施的一系列步骤,是人们使用相应的规程、方法、工具

和设备将原材料转化成面向客户的产品所做的事情。简单的说:就是什么时间做什么。

4.软件工程有哪七大原理?

(1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查

(6)开发小组的人员应该少而精

(7)承认不断改进软件工程实践的必要性 *(8)二八定律

5.软件生命周期有哪三大阶段八小阶段?

软件生命周期由软件定义、软件开发和软件维护3个时期组成。 (1)问题定义 (2)可行性研究 (3)需求分析 (4)总体设计 (5)详细设计

(6)编码和单元测试 (7)综合测试 (8)软件维护

6.常见的软件开发模型有哪些?各有什么特点、优缺点?

瀑布模型 特点:

(1)阶段间具有顺序性和依赖性 (2)推迟实现的观点 (3)质量保证的观点 优点:

(1)可强迫开发人员采用规范的方法(例如,结构化技术); (2)严格地规定了每个阶段必须提交的文档;

(3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点:

“瀑布模型是由文档驱动的”这个事实也是它的一个主要缺点。事实上,要求用户不经过实践就提出完整准确的需求,在许多情况下都是不切实际的。总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。 快速原型模型 特点:

快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。 优点:

克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。 缺点:

(1)所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。

(2)使用这个模型的前提是要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。 增量模型 特点:

使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。 优点:

能在较短时间内向用户提交可完成部分工作的产品,是增量模型的一个优点。 增量模型的另一个优点是,逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 缺点:

增量模型本身是自相矛盾的。它一方面要求开发人员把软件看作一个整体,另一方面又要求开发人员把软件看作构件序列,每个构件本质上都独立于另一个构件。除非开发人员有足够的技术能力协调好这一明显的矛盾,否则用增量模型开发出的产品可能并不令人满意。

螺旋模型 特点:

螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型, 优点:

1、对可选方案和约束条件的强调有利于已有软件的重用, 2、有助于把软件质量作为软件开发的一个重要目标;

3、减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险; 4、在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 缺点:

很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

7.可行性研究的基本任务是什么?

用最小的代价在尽可能短的时间内确定问题是否能够解决。

8.可行性研究有哪三个角度?

1)是从技术角度出发考虑解决问题的不同方案。 2)考虑操作方面的可行性。 3)考虑经济方面的可行性。

9.可行性研究结束后的文档是什么?

可行性研究报告

10.系统流程图、数据流图、数据字典各是描绘系统的什么模型?

(1)系统流程图是概括地描绘物理系统的传统工具。它是用图形符号(以黑盒子形式)描绘组成系统的各个元素(程序,文档,数据库,人工过程等)和信息在这些元素之间的流动情况。

(2)数据流图是用于表现系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程。它只反映系统必须完成的逻辑功能,不考虑怎样具体地实现这些功能,它也是进行软件设计的很好的出发点。

(3)数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。它的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。

11.软件开发成本估计有哪三种方法?

代码行技术 任务分解技术 自动估计成本技术

12.经济效益分析有哪三个经济指标 ?

货币的时间价值 投资回收期 纯收入

13.需求分析的基本任务是什么?

软件需求分析的基本任务是准确地回答“系统必须做什么?”

14.需求分析结束提交的文档叫什么名字?

软件需求规格说明书

15.需求分析的任务有哪些?

确定对系统的综合要求 分析系统的数据要求 导出系统的逻辑模型

16.需求分析阶段,系统的综合要求需求有哪些?

功能需求 性能需求

可靠性、可用性、安全性、保密性等需求 出错处理需求 接口需求 约束 逆向需求

将来可能提出的要求

17.软件设计从技术的角度有哪三种内容?从管理的角度分为哪两种阶段?

技术角度:

数据设计侧重于数据结构的定义。

系统结构设计定义软件系统各主要成份之间的关系。

过程设计则是把结构成份转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。

管理角度:

总体设计(概要设计)

将软件需求转化为数据结构和软件的系统结构。 详细设计

即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。

18.总体设计有哪两个任务?

(1)划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在详细设计时设计。 (2)设计软件的结构-----要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

19.总体设计阶段提交的文档叫什么?

软件总体设计说明书

20设计原理有哪些?

模块化 抽象 逐步求精

信息隐藏和局部化

21.Miller法则:一个人在任何时候都只能把注意力集中在多少个知识块上?

一个人在任何时候都只能把注意力集中在(7±2)个知识块上

22.模块的独立程度的两个定性标准度量是什么?

有两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。

23.类图的作用是什么?有哪些主要的元素?

类图的作用:

描述类、接口、协作及它们之间关系的图。 显示系统中各个类的静态结构。

类图的元素:

① 类(Class)

② 接口(Interface)

③ 依赖关系(Dependency) ④ 泛化关系(Generalization) ⑤ 关联关系(Association) ⑥ 实现关系(Realization)

24.三种基本的程序控制结构是什么

顺序、分支、循环

25.测试有哪三个阶段,有哪两种方法?

测试三阶段:

单元测试 集成测试

确认测试

软件测试方法:

黑盒测试:又叫功能测试 白盒测试:又叫结构测试。

26.软件生存周期中时间最长的一个阶段是?

维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。

27.软件维护的内容有哪四种?

1、 2、 3、 4、

改正性维护 适应性维护 完善性维护 预防性维护

28.什么是RUP,其有哪4个阶段,哪5个核心工作流?

RUP概念:

RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。

四个阶段:

在RUP中,项目生命周期被划分为四个阶段:

(1)初始阶段(Inception) (2)细化阶段(Elaboration) (3)构造阶段(Construction) (4)交付阶段(Transition) 核心工作流:

工作流(规程)是由活动构成的活动序列。沿着过程组件轴,开发过程可以被划分为五个核心工作流。

(1)需求捕获:建立待开发系统的用例模型,多次迭代完善;进行初步用户界面设计。用来描述系统的功能性需求和非功能性需求。

(2)分析:对需求捕获阶段所描述的用例模型进行精细化和组织,目的是为了更精确地理解需求,得到一个易维护且有助于确定系统结构的需求描述。

(3)设计:构造系统,获得实现了所有需求的系统组织。设计的目的是通过考虑实现环境,将分析阶段的模型扩展和转化为可行的技术实现方案。

(4)实现:实现工作流活动是用编程语言来实现系统,同时对已建立的模型作相应的修正。

(5)测试:测试工作流活动的目的是使用测试用例对系统软件进行验证与确认工作。

29.什么是XP,其有哪4个核心价值?

XP概念:

极限编程(Extreme Programming,XP)是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。 极限编程中有四个核心价值:

沟通(Communication)、简单(Simplicity)、反馈(Feedback)和勇气(Courage)。

30.根据系统描述,绘制规范的系统用例图,并对其简要说明。 31.根据系统描述,绘制规范的系统类图,并对其简要说明。 32.根据系统描述,绘制规范的某些用例的时序图,并对其简要说明。

33.根据系统描述,绘制规范的数据库E-R图,并说明这些

E-R图转化为哪些关系(数据库表格)。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top