软件工程复习题

  • 格式:doc
  • 大小:29.50 KB
  • 文档页数:7

下载文档原格式

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

软件工程复习题

一、判断、填空题、选择题

1.软件开发的瀑布模型适用条件是需求清晰的场合。

2.软件开发的增量模型可以快速构造核心模块,提交给用户使用。

3.需求分析是要弄清楚软件要做什么的阶段,符合用户要求。

4.模块独立性比较强的模块应该是高度内聚,松散耦合的模块。耦合强调松散,模块与模块间的连接,内聚强调紧密,关注同一件事情。

5.系统程序可以跨平台、跨计算机运行,是因为具有可移植性。

6.软件生命周期中所花费用最多的阶段是维护阶段。

7.软件会逐级退化而不会磨损,其原因在于不断的变更使组件接口之间引起错误。

8.顺序图和协作图所表现的含义是相同的,同构的。

9.结构化分析的英文全称是(Structured Analysis ),这种分析主要是通过哪几种模型图来呈现(数据流图DFD、实体-关系图ER、状态-迁移图STD )。

10.UML全称是(统一建模语言)。

11.螺旋模型是将(瀑布模型)和(快速原型模型)结合起来,并且加入了(风险分析)。瀑布模型是以(文档)为驱动、适合于(需求明确)的软件项目的模型。

12.用例图的定义和作用是什么(定义:描述的是参与者所理解的系统功能。作用:用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果)。

13.顺序图和协作图的用途是什么?()

14.Coad和Yourdom给出的“面向对象”的定义如下:

面向的对象=(对象)+(类)+(继承)+(消息通信)。15.软件维护的4中维护活动是(改正性维护、适应性维护、完善性维护、预防性维护)。

16.从工程管理的角度,可以将软件设计分为两个阶段:()。

17.从技术的角度,概要设计阶段要完成体系(结构设计、接口设计、数据设计)。

18.软件工程的目标是(以较短的周期,较低的成本生产出高质量的软件,并最终实现软件的工业化生产)。

19.程序的5种基本控制结构是(顺序型、选择型、先判定型循环、后判定型循环、多情况型循环),如果简化到三种是(顺序、选择、循环)。

20.耦合(什么是内容耦合)和内聚的定义:(耦合:模块之间的相对独立性的度量内聚:模块功能强度的度量)

二、简答题

1. 什么是软件危机?他有哪些典型的表现?为什么会出现软件危机?

答:软件危机是软件在开发和维护过程中遇到的一系列严重危机问题

除了软件本身的特点,其原因主要有以下几个方面原因:

①缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定;

②软件人员与用户的交流存在障碍,使得获取的的需求不充分或存在错误;

③软件开发过程不规范,如没有真正的了解用户的需求就开始编程序;

2. 什么是软件工程?软件工程的三种基本要素是什么?

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

软件工程的三种基本要素:方法、工具、过程。

3. 什么是设计模式?常用的设计模式有哪些?

答: 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解、保证代码可靠性。

设计模式为三种类型。共23种。

创建型模式:单件模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

4. 简要说明白盒测试和黑盒测试的区别。

答:白盒测试:把程序堪称装在一个透明的白色盒子里,测试者完全知道程序的结构处理算法,按照程序内部的逻辑测试程序,检测程序中主要执行通路是否都能按预定要求正确工作。

黑盒测试:把程序看作一个黑盒子,完全不考虑程序内部结构和处理过程,对程序接口进行测试,检查程序的功能是否能按照书的规格说明书的规定正常使用;程序是否能适当地接受输入数据并产生正确的输出信息;程序运行过程中能否保持外部信息的完整性。

黑盒测试主要是检查程序的功能是否满足要求,白盒测试主要是检查程序的内部结构是否按预定要求进行。

5. 典型的面向对象设计模型在逻辑上由哪几个部分组成?对每一部分进行设计时所包含的主要内容是什么?

答:典型的面向对象设计模型在逻辑上将系统划分为4个部分:问题域部分、人机交互部分、任务管理部分及数据管理部分

①问题域部分的设计:在面向对象设计过程中,可能要对面向对象分析所得出的问题域模型进行补充或调整;

②人机交互部分的设计:必须根据需求把交互细节加入到用户界面设计中,包括人机交互中所必需的实际显示和输入;

③任务管理部分的设计:任务管理主要包括任务的选择和调整,常见的任务

有事件驱动型任务,时钟驱动型任务,优先任务,关键任务和协调任务等;

④数据管理部分的设计:在面向对象设计中,可以将UML类图看作是数据库的概念模型,一个类可以映射为一个一个表或多个表,此外,还要考虑类之间的关联关系,继承关系的映射;

6. 等价分类法的基本思想是什么?

根据程序的输入特性,将程序的定义划分为有限个等价区段----“等价类”,从等价类中选择出用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。如果某个等价类是一个新的输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。

7. 简述基于数据流方法的设计过程。

(1)复查并精华数据流图;

(2)确定数据流图中数据流的类型,典型的数据流类型有变换型和事务型;

(3)导出初始化的软件结构图,根据数据流类型,应用变换型或事务型映射方法得到初始化的软件结构图;

(4)逐级分解:对软件结构图逐级分解;

(5)精华软件结构图:使用设计度量和启发式规则对得到的软件结构进一步精华;

(6)导出接口描述和全局数据结构;

8. 将大的软件划分成模块有什么好处?是不是模块划分的越小越好?划分模块的依据是什么?

答:(1)好处:将大的软件划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责。这种方法有利于将复杂的问题简单化,是分而治之策略的具体表现。

(2)尽量模块分解可以简化要解决的问题,但是模块分解不是越小越好。当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确定减少了,