【软件工程习题(含参考答案)】总复习

60多道题总复习题(含参考答案),希望对大家的软件工程期末复习有帮助,你值得收藏!(#^.^#)

文:【软件工程—精选习题集(含参考答案)】总复习-60道简答题


第一题:名词解释

1、极限编程 (Extreme programming)

答:极限编程,把好的开发实践运用到极致,是一种典型的开发方式。

2、状态转换图

答:状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

3、软件生命周期(Software Life Cycle,SLC)

答:由软件定义、软件开发和运行维护这3个时期组成,每个时期又进一步划分成若干个阶段。

4、问题域(Problem Domain)

答:问题域:描述问题的问题空间。

面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也即让描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。

5、PAD图

答:PAD图:Problem Analysis Diagram,即问题分析图,PAD用二维树形结构的图来表示程序的控制流。

6、实体-关联图(Entity Relationship Diagram)。

答:为了把用户的数据要求清楚并准确地描述出来,系统分析员通常建立一个概念性的数据模型即实体关联图(ER图)。

7、软件危机(Software Crisis)

答:软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:

  • 如何开发软件,以满足对软件日益增长的需求;
  • 如何维护数量不断增长的已有软件。

8、软件质量保证(Software Quality)

答:软件质量保证的措施主要有:基于非执行的测试(也称为复审或评审),基于执行的测试(即以前讲过的软件测试)和程序正确性证明。

9、IPO图

答:IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

10、面向对象的高内聚低耦合

答:

nbsp;     耦合:一个软件结构内不同模块之间互连的紧密程度

nbsp;     低耦合:系统中某一部分的变化对其他部分的影响降到最低程度

nbsp;     对象之间的耦合:交互耦合&继承耦合

 

nbsp;     内聚衡量一个模块内各个元素彼此结合的紧密程度

nbsp;     在设计时应该力求做到高内聚低耦合

nbsp;     面向对象设计的3种内聚:服务内聚、类内聚、一般特殊内聚

11、数据流图 (DFD) 

答:DFD是一种图形化技术, 它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

12、功能点技术(Function Point) 

答:依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。这种方法用功能点(FP)为单位度量软件规模。

13、功能模型

答:功能模型表示变化的系统的“功能”性质,它指明系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。

功能模型由一组数据流图组成。建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。

14、数据规范化

答:软件系统经常使用各种长期保存的信息,这些信息通常以一定的方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化数据修改的过程,通常需要把数据结构规范化

15、软件工程方法学

软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。

软件过程是软件工程方法学的3个重要组成部分之一。

16、软件质量

概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。

更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。

17、敏捷过程

答:敏捷过程:为了使软件开发团队具有高效工作和快速响应变化的能力

18、工程 络图

答:工程 络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间。此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程 络图是系统分析和系统设计的强有力的工具。

19、动态联编

答:动态联编指应用系统在运行过程中,当需要执行一个特定服务的时候,选择(或联编)实现该服务的适当算法的能力。

20、系统流程图

答:一个概括地描绘物理系统的传统工具,表达了数据在系统各部件之间流动的情况。

21、HIPO图

答:HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”,即Hierarchical diagram plus input / processing / output,简称HIPO。

22、软件重用

软件重用也叫软件再用或复用,是指同一个软件部分不作修改或稍加改动就多次重复使用。

广义地说,软件重用可分为以下3个层次:

(1)   知识重用

(2)   方法和标准的重用

(3)   软件成分的重用

23、数字字典(Digital Dictionary)

答:是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。

24、判定树

答:判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。

25过程设计语言(PDL)

答:过程设计语言(PDL)也称为伪码。是用正文形式表示数据和处理过程的设计工具。

26、代码的健壮性(Robust)

答:健壮性就是在硬件故障、输入的数据无效或操作错误等意外环境下,系统能做出适当响应的程度。

第二题: 说明典型的可重用软件成分,主要有哪十种/h3>

答:典型的可重用软件成分:

  1. 项目计划
  2. 成本估计
  3. 体系结构
  4. 需求模型和规格说明
  5. 设计
  6. 源代码
  7. 用户文档和技术文档
  8. 用户界面
  9. 数据
  10. 测试用例

第三题: 说明软件维护的定义及通过描述软件交付使用后可能进行的4项活动/h3>

(1)软件维护:在软件已经交付使用之后,为改正错误或满足新的需要而修改软件的过程。

(2)软件交付使用后可能进行的4项活动:

1.改正性维护

2.适应性维护

3.完善性维护

4.预防性维护

第四题:功能需求是对软件系统的一项基本需求,试问通常对软件系统有哪几方面的综合要求/h3>

答:对软件系统8个方面的综合要求:

  1. 功能需求
  2. 性能需求
  3. 可靠性和可用性需求
  4. 出错处理需求
  5. 接口需求
  6. 约束
  7. 逆向需求
  8. 将来可能提出的要求

第五题:试述面向对象的封装(encapsulation)、继承(inheritance)、多态性(polymorphism)和重载(overloading)/h3>

答:

  1. 封装:把数据和实现操作的代码集中起来放在对象内部隐藏起来,只保留有限的接口与外界联系。
  2. 继承:子类自动地共享基类中定义的数据和方法的机制。
  3. 多态性:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。
  4. 重载,有两种:①函数重载,在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;②运算符重载,同一个运算符可以施加于不同类型的操作数上面。

第六题: 试绘出自动售货机系统的用例图并说明。

在上面自动售货机系统的用例图中:

  • 方框代表系统;;
  • 椭圆代表用例(售货、供货和取货款是自动售货机系统的典型用例);
  • 线条人代表行为者,它们之间的连线表示关系。

第七题: 说明在面向对象分析中的3个模型与5个层次/h3>

答:

3个模型:对象模型、动态模型和功能模型。

模型包含系统的3个要素:静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)

5个层次:

  • 主题层
  • 类与对象层
  • 结构层
  • 属性层
  • 服务层

第八题: 使用Z语言描述的、最简单的形式化规格说明含有哪4个部分/h3>

  1. 给定的集合、数据类型及常数。
  2. 状态定义。
  3. 初始状态。
  4. 操作。

第九题: 请说明模块独立性的重要性/h3>

答:模块独立性的重要性:

  • 具有独立性的模块软件较容易开发出来。通过分割功能且接口简化,有助于多人分工合作开发同一个软件;
  • 独立的模块较容易测试和维护。修改设计和程序需要的工作量较小,错误传播范围缩小,扩充功能时能够插入模块。

第十题: 验证软件需求的方法,至少必须哪4个不同角度验证软件需求的正确性/h3>

  1. 一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。
  2. 完整性:需求必须是完整的,规格说明书应该包括田户需要的每一个功能或性能
  3. 现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
  4. 有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。

第十一题: 请试描绘一家计算机公司全部产品的数据结构,用层次方框图和Warnier图表示。

第十二题: 请说明设计人机界面设计必须重视哪些方面/h3>

  • 系统的响应时间;
  • 用户求助机制;
  • 错误信息处理;
  • 命令方式。

第十三题: 请说明面向对象语言的优点有哪些/h3>

答:

  1. 一致的表达方法
  2. 可重用性
  3. 可维护性

第十四题: 预防性维护实质上是软件再工程。请簡述典型的软件再工程过程模型定义了哪六类活动/h3>

  1. 库存目录分析
  2. 文档重构
  3. 逆向工程
  4. 代码重构
  5. 数据重构
  6. 正向工程

 

第十五题: 请简述面向对象方法具有哪4个要点以及面向对象的方法学可以用概括的方程式/h3>

(1)面向对象方法的四个要点

  1. 面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。
  2. 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。
  3. 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。
  4. 对象彼此之间仅能通过传递消息互相联系。

(2)面向对象的方法学可以用下列方程来概括:

        OO  =  objects + classes + Inheritance + communication with messages

既使用对象,又使用类和继承等机制,且对象之间仅能通过传递消息实现彼此通信。

 

第十六题: 源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,请简述应该遵循哪些编码风格规则/h3>

  1. 程序内部的文档,包括恰当的标识符、适当的注解和程序的视觉组织等。
  2. 数据说明
  3. 语句构造
  4. 输入输出
  5. 效率,主要指处理机时间和存储器容量两个方面。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月23日
下一篇 2020年3月23日

相关推荐