软件工程试题及答案(较详细)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.
二.
三.判断题:
1.如果决定将软件全部包给第三方公司开发。(×)
2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。(×)
3.对于一个成功的软件项目,可执行程序是唯一交付的东西。(×)
4.直到程序运行,才评估软件系统的质量。(×)
5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务。(×)
6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它。(×)
7.软件工程将导致我们产生大量的无用文档,降低工作效率。(×)
8.在面向对象建模中,主题划分提供了在更高一层上描述。(主题划分是指UML中将一组关联比
较强的类的集合。则上百个类可划分为几个主题)(√)
9.面向对象的开发,对象分解取代功能分解。(√)
10.软件中80%的错误存在20%的模块中。(√)
11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)
12.开发软件就是编程。(×)
13.需求规格说明书说明了(√)
14.结构化方法,建立系统模型时使用一般连接组织信息。(×)
15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。(√)
四.简答题
1.软件工程是层次化的,其四个层次是?
答:方法,工具,过程,质量保证
软件工程是一种层次化的技术(如图2-1所示)。任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定
了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程的方法层提供了建造软件在技术上需要“如何做”。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。软件工程方法依赖于一组基本原则,这些原则控制了每一个技术区域,且包含建模活动和其他描述技术。
软件工程的工具层对过程和方法提供了自动的或半自动的支持。当这些工具被集成起来使得一个工具产生的信息可被另外一个工具使用时,一个支持软件开发的系统就建立了,称为计算机辅助软件工程(CASE)。CASE 集成了软件、硬件和一个软件工程数据库(一个仓库,其中包含了关于分析、设计、编程和测试的重要信息),从而形成了一个软件工程环境,它类似于硬件的CAD/CAE(计算机辅助设计/工程)。
软件工程必须以有组织的质量保证为基础
软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
2.软件工程的框架是?
答:沟通,策划,建模,构建,部署
通用过程框架
通用过程框架可适用于绝大多数的软件项目,该框架由沟通、策划、建模、构造和部署5个通用框架活动组成。
(1) 沟通。这项框架活动包含系统分析员与客户之间大量的交流和协作,还包括需求获取以及其他相关活动。
(2) 策划。策划活动协助软件开发团队定义全局目标,并为后续的软件工程工作制定计划。策划活动包括一系列管理和技术实践,如描述需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。
(3) 建模。建模的目的是为了更好地理解需要构建的实体。
在软件工程中,要创建两类模型:分析模型和设计模型。
分析模型通过描述软件的信息域、功能域及行为域来表达客户的需求;
设计模型描述软件架构、用户界面及构件细节,从而帮助开发者高效地开发软件。
(4) 构造。构造活动包括一系列构件组装、编码和测试任务,从而为向客户和最终用户交付可运行软件做好准备。
(5) 部署。部署活动是将软件(全部或者完成的部分)交付给用户,用户对其进行评测并给出反馈意见。
部署活动包括三个动作:交付、支持和反馈。
3.一个模块的三个基本要素有哪些?
答:功能,状态,逻辑(程序流程图描述逻辑的一个方法)
功能:指模块实现什么功能(包括所调用的子模块的功能),做什么事情
逻辑:描述模块内部怎么做
状态:指该模块使用时的环境和条件
4.不同的对象收到同一个消息,产生不同的结果这种现象叫多态。
多态性含义
把相同的操作施加于不同类型的对象,获得不同的行为效果和结果。
在C++中,多态性是通过虚函数(Virtual)实现的。
动态联编(Dynamic binding),滞后联编。
5.模块的基本要素:功能,状态,逻辑
6.面向对象建模需要识别五个层次:
a.类与对象层
b.属性层
c.结构层(类与类之间的关系)
d.方法层
e.主题层(为多个类划分主
题)
主题层:它相当于高层的模块或子系统
类与对象层:它们是对问题域概念的抽象,可以从用户需求或其它规格说明书中找到。
结构层:描述类之间的整体与部分、一般与特殊的关系。
属性层:它们是类所保存的信息,同时要给出各个类之间的实例连接。
服务层:它们是类可提供的操作,同时要根据需要的功能给出各个操作之间的消息连接。
软件测试的四个阶段:
a.单元测试
b.集成测试
c.确认测试
d.系统测试
单元测试(模块测试):目的是保证每个模块作为一个单元能正确运行。主要测试编码和详细设计阶段的错误。
子系统测试:把经过单元测试的模块放在一起形成子系统。注重模块接口。
系统测试(集成测试):测试由子系统组成的整个系统,不仅测试模块间的协调和通信能力。还要测试设计错误、需求说明中的功能错误。
验收测试:确认系统能够满足用户的需求,方法同系统测试,主要强调用户的参与(alpha测试),测试需求说明中的功能错误。
平行运行、beta测试
测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。