《实用软件工程》模拟试卷A及答案
(一)名词解释(3%×5=15%)
1.软件
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求编写的指令序列。
2.问题定义阶段
问题定义阶段是软件生命周期的第一个阶段,必须回答的关键问题是“要解决的问题是什么”。问题定义阶段的内容包括:明确问题的背景、开发系统的现状、开发的理由和条件、开发系统的问题要求、总体要求、问题的性质、类型范围、要实现的目标、功能规模、实现目标的方案、开发的条件、环境要求等等,然后写出问题定义报告(或称系统定义报告),以供可行性分析阶段使用。
3. OOD
面向对象设计简称OOD,面向对象设计就是用面向对象观点建立求解域模型的过程。把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
4. UML
UML是统一建模语言(Unified Modeling Language)的缩写,它统一了多种面向对象建模方法。它的目标之一在于为提供标准通用的设计语言来开发和构建计算机应用。
5.软件配置管理
软件生存期各阶段的交付项,包括各种文档和所有可执行代码组成整个软件配置,配置管理就是讨论这些交付项的管理问题。软件配置管理(SCM)是贯穿于整个软件工程中的保护性活动,软件工程项目中的变更和修改总是不可避免的,SCM活动被设计用于标记变更、控制变更、确保变更正确地实现、向其他有关的人报告变更等
(二)填空题(1%×30=30%)
1.把大型软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块的设计方法叫做设计。实现此设计的重要指导思想是、和。
答:模块化,分解,信息隐藏,模块独立性
2.在面向对象的分析时进行建模需要建立___________、___________和___________三种模型。
答:对象模型,动态模型,功能模型
3.软件成分的复用可以进一步划分为_________、_________、_________三个级别。
答:代码复用,设计结果复用,分析结果复用
4.特殊类的对象拥有其一般类的全部属性与方法,称做特殊类对一般类的_________。答:继承
5.从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次是根据需求建立系统的_________,以构造系统的结构;第三步是描述系统的行为。其中,在第一步与第二步中所建立的模型都是静态的,包括_________、_________、_________、_________和_________等五个图形,是标准建模语言UML的静态建模机制。第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系,包括_________、_________、_________和_________等四个图形,是标准建模语言UML
的动态建模机制。因此,标准建模语言的主要内容也可以归纳为静态建模机制和动态建模机制。
答:静态模型,用例图,类图,对象图,部件图,配置图,状态图,活动图,顺序图,合作图
6.在集成测试中,由模块组装成程序时有___________和___________两种方法。
答:渐增式测试,非渐增式测试
7.在集成测试中,普遍采用渐增式测试方法,有___________、___________和___________三种方法。
答:自顶向下集成测试,自底向上集成测试,混合方式测试
8.软件维护可以分为、、和四大类。
答:纠错性维护、适应性维护、完善性维护、预防性维护
9.每个成熟度等级由若干_________组成,它定义在各个成熟度等级之中并与之关联在一起。
答:关键过程域
(三)选择题(1%×20=20%)
1.下述图形工具中,( C )不用于总体设计阶段。
A. 层次图
B. HIPO图
C. PAD图
D. 结构图
2.软件可行性研究一般不考虑( A )。
A.待开发软件是否会有质量问题
B.软件开发是否会侵犯他人利益
C.待开发软件是否有市场、经济上是否合算
D.使用现有的技术能否完成这个项目
3.在软件的开发阶段,采用自顶向下逐步求精的方法是( A )。
A. 结构化方法
B. Jackson方法
C. VDM方法
D. 面向对象的方法
4.以下哪一项不是软件危机的表现形式( C )。
A. 开发的软件不满足用户需要
B. 开发的软件可维护性差
C. 开发的软件价格便宜
D. 开发的软件可靠性差
5.结构化程序设计实现模块独立性要求( A )。
A.模块内的高内聚,模块间的低耦合
B.模块内的低内聚,模块间的高耦合
C.模块内的低耦合,模块间的高耦合
D.模块内的高耦合,模块间的低内聚
6.所谓的通用程序设计语言,实际上并不是对所有应用领域都同样适用。例如( A )语言适合于商业领域;( B )语言适合于组合问题领域,如软件中含有大量的数据操作,( C )和( D )语言更为适合。
A. COBOL
B.LISP
C. SQL
D. Oracle
7.应用执行对象的操作可以改变该对象的( A )。
A. 属性
B. 功能
C. 行为
D. 数据
8.一般来说,在管理软件中,软件生存周期各个阶段的工作量以( C )所占的比例最大。
A.需求分析与设计阶段
B.编码实现阶段
C.测试阶段
D.维护阶段
9.软件的( B )是指软件在所给的环境条件下和给定的时间内,能完成所要求功能的性质。
A.健壮性B.正确性C.可靠性D.可维护性
10.软件工程中( C )不属于用户文档的内容。
A. 用户手册
B. 操作手册
C. 系统设计
D. 程序维护手册
11.程序中与编码风格有关的因素有( A )、( B )、( C )和I/O技术。
A.代码文档化
B.数据说明方法
C.语句构造处理
D.程序维护
12.软件开发模型是软件开发中全部过程、活动和任务的结构框架,随着软件工程学科的发展和软件开发的实践,相继提出了( A )、( B )和( C )三种模型。
A.瀑布模型
B.螺旋模型
C.喷泉模型
D.程序模型
13.作为结构化分析方法的有力工具( B )的任务是定义系统中的数据元素,对于出现的所有被命名的图形元素在这里作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。
A.数据流图
B.数据字典
C.PAD图
D.程序流程图
(四)简答题(25%)
1.什么是软件危机?软件危机有哪些表现?(6%)
答:软件开发和维护过程中所中遇到的这一系列严重问题为软件危机。
20世纪60年代末70年代初,西方工业发达国家经历了一场“软件危机”。这场软件危机表现在:一方面软件十分复杂,价格昂贵,供需差日益增大,另一方面软件开发时又常常受挫,质量差,指定的进度表和完成日期很少能按时实现,研制过程很难管理,即软件的研制往往失去控制。
2.如何选择程序设计语言?(6%)
答:一般情况下,程序设计语言的选择常从以下几个方面考虑:
a.项目的应用领域
b.算法与计算的复杂性
c.数据结构的复杂性
d.效率
e.可移植性
f.程序设计人员的水平
g .构造系统的模式
3.软件测试的目标是什么?(6%)
答:软件测试的目标:
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。
4.软件工程标准化有什么作用和级别分类。(7%)
答:软件工程标准化会给软件工作带来很多好处:
(1)可提高软件的可靠性、可维护性和可移植性
(2)可提高软件人员之间的通信效率,提高软件的生产率
(3)可提高软件人员的技术水平,减少差错和误解
(4)有利于软件管理;有利于降低软件产品的成本和运行维护成本
(5)有利于缩短软件开发周期
根据软件工程标准制定的机构和标准适用的范围有所不同,它可以分为五个级别:国际标准、国家标准、行业标准、企业规范、项目规范
(五)应用题(10%)
这是使用程序流程图描述并输出N的阶乘,
答:
读入N
F = 1, M = 1
当M<=N
F = F * M
N = N + 1
打印F