一、选择题
1.在结构化分析方法(SA)中,( C)与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
A.模块图 B.ER图
C.数据字典 D.程序流程图
2.面向对象分析阶段建立的三个模型中,核心的模型是(A)。
A.对象模型 B.动态模型
C.功能模型 D.分析模型
3.软件测试的关键问题是( A )。
A.如何选择测试用例 B.如何采用综合策略
C.如何验证程序的正确性 D.如何组织软件评审
4.表现了对象的相互行为的模型是( B )。
A.对象模型 B.动态模型
C.功能模型 D.分析模型
5.在选择面向对象语言时应考虑(D)。
Ⅰ.是否能占主导地位Ⅱ.可重用性
Ⅲ.开发环境Ⅳ.集成已有软件的容易程度
A.Ⅰ、Ⅱ和Ⅲ B.Ⅰ、Ⅱ和Ⅳ C.Ⅱ、Ⅲ和Ⅳ D.以上都正确
6.对象类之间的聚集关系就是(B)关系。
A.一般—特殊 B.整体—部分 C.相互依赖 D.层次构造
7.以下对软件工程管理的任务和目标最准确的描述是( D )。
A.明确软件开发项目的工作范围、可能遇到的风险、需要的资源
B.明确软件开发中要实现的任务和需要经历的里程碑
C.明确所需的工作量以及进度安排
D.以上所有答案
8.下列不属于黑盒测试的技术是( C )。
A.等价类划分 B.错误推测
C.基本路径测试 D.因果图
9.如果一个模块访问另一个模块的内部数据,则模块间的耦合属于( B)耦合。
A.数据 B.内容 C.环境 D.控制
10.受限关联由(B )组成,限定词是一种特定的属性,用来有效地减少关联的重数,限定词在关联的终端对象集中说明。
A.两个类及两个限定词 B.两个类及一个限定词
C.一个类及两个限定词 D.一个类及一个限定词
11.类之间通常有两种主要的结构关系,它们是( B )。
A.一般----具体和分类结构关系 B.分类结构和组装结构
C.整体----部分和组装结构关系 D.以上都正确
12.在人机界面的设计过程中应该需要考虑下列问题( D )。
Ⅰ.系统响应时间Ⅱ.输入输出数据
Ⅲ.出错信息处理Ⅳ.用户帮助
A.I、Ⅱ和Ⅲ B.Ⅰ、Ⅲ和Ⅳ C.Ⅱ、Ⅲ和Ⅳ D.以上都正确
13.软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。
A.应用范围 B.内部逻辑
C.功能 D.输入数据
14.按照软件配置管理的原始指导思想,受控制的对象应是( C )。
A.软件元素 B.软件项目
C.软件配置项 D.软件过程
15.详细设计与概要设计衔接的图形工具是( B )。
A.DFD图 B.SC图
C.程序流程图 D.PAD图
16.面向对象的分析方法主要是建立三类模型,即( D )。
A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型
C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型17.( B )适合于大型软件的开发,它吸收了软件工程“演化”的概念,使得开发人员和用户对每个周期出现的风险有所了解,从而作出相应的反应。
A)瀑布模型 B)螺旋模型
C)喷泉模型 D)基于知识的模型
18.源程序的效率与( D )阶段确定的算法的效率直接有关。
A)概要设计 B)总体设计
C)单元设计 D)详细设计
19.在 SA方法的需求描述工具中,( A)描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等。
A)数据流图 B)数据字典
C)结构化语言 D)判定表和判定树
20.等价分类法的关键是( C )。
A) 确定等价类的边界条件 B) 按照用例来确定等价类
C) 划分等价类 D) 确定系统中相同和不同的部分
21.为了提高模块的独立性,模块内部最好是( D )。
A)逻辑内聚 B)通信内聚
C)顺序内聚 D)功能内聚
22.为了提高模块的独立性,模块之间最好是( D )。
A)控制耦合 B)内容耦合
C)公共耦合 D)数据耦合
23.功能性注释嵌入在源程序内部,它是用来说明( A )。
A)程序段或语句的功能 B)模块的接口
C)数据的名称和用途 D)模块的功能
24.下列不属于黑盒测试的技术是(C )。
A)等价类划分 B)错误推测
C)基本路径测试 D)因果图
25.各种软件维护的类型中最重要的是( A )。
A) 完善性维护 B) 纠错性维护
C) 适应性维护 D) 预防性维护
26.对一个软件工程来说,占总工作量的百分比最大的工作是( D )。
A) 需求分析 B) 软件设计
C) 编码工作D) 测试和调试工作
27.下列说法错误的是( D )。
A)面向对象设计是把分析阶段得到的需求,转变成符合成本和质量要求的、抽象的系统实现方案的过程。
B)从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。
C)面向对象设计就是用面向对象的观点建立求解域模型的过程。
D)面向对象分析和面向对象设计在实际的软件开发过程中二者的界限是明显的。28.通过执行对象的操作可改变该对象的属性,但它必须通过( D )传递。
A)操作 B)信息
C)方法 D)消息
29.从工程管理的角度来看,软件设计分两步完成( D )。
A) ①系统分析②模块设计B) ①详细设计②总体设计
C) ①模块设计②详细设计D) ①总体设计②详细设计
30.人们常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用性。
其中MTTF是( B )。
A)失效间隔时间 B)平均失效间隔时间
C)失效等待时间 D)平均失效等待时间
21.软件工程管理是对软件项目的开发管理。具体地说,就是对整个软件( A )的
一切活动进行管理。
A)生存期 B)开发
C)制定计划 D)项目
32.下列不是模型元素的是( D )。
A) 关联 B) 聚合
C) 依赖 D) 笔记
33.软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。
A)应用范围 B)内部逻辑
C)功能 D)输入数据
34.详细设计的结果基本决定了最终程序的( B )。
A)代码的规模 B)质量
C)可维护性 D)运行速度
35.结构化程序设计方法在软件开发中用于( B )。
A)测试用例设计 B)详细设计
C)概要设计 D)编码
36.在数据流图中当数据流向或流自文件时( B )。
A.数据流要命名,数据存储不必命名
B.数据流不必命名,有数据存储名就足够了
C.数据流和数据存储均要命名,因为流入和流出的数据流是不一样的
D.数据流和数据存储(或文件)都不要命名,通过加工可自然反映
37.( B )适合于大型软件的开发,它吸收了软件工程“演化”的概念,使得开发人员和用户对每个周期出现的风险有所了解,从而作出相应的反应。
A.瀑布模型 B.螺旋模型
C.喷泉模型 D.基于知识的模型
38.在只有单重继承的类层次结构中,它的类层次结构是( B )结构。
A.网状 B.树
C.星 D.格
39.为了提高模块的独立性,模块内部最好是( D )。
A.逻辑内聚 B.通信内聚
C.顺序内聚 D.功能内聚
40.面向对象方法的一个主要目标,是要提高软件的( A )。
A.可重用性 B.运行效率 C.结构化程度 D.健壮性
41.软件重用的单位是( A )。
A)软件模块B)功能
C)系统D)语句
42.软件生存周期借用了(D)中产品生存周期的概念。
A)计算机科学B)需求
C)数学D)工程
43.项目开发计划是一种( B )文档。
A)技术性B)管理性
C)设计D)需求分析
44.在结构化分析方法(SA)中,(C )与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
A)模块图B)ER图
C)数据字典D)程序流程图
45.为了提高模块的独立性,模块之间最好是( A )。
A)数据耦合B)控制耦合
C)公共耦合D)内容耦合
46.对一个开始是模糊的模块进行处理过程分解时,下面说法错误的是( D )。
A)用顺序方式对过程分解,确定各部分的执行顺序
B)用选择方式对过程分解,确定某个部分的执行条件
C)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件
D)对处理过程仍然模糊的部分反复使用循环方式对过程进行分解
47.软件测试的关键问题是(A )。
A)如何选择测试用例B)如何采用综合策略
C)如何验证程序的正确性D)如何组织软件评审
48.软件生存期的( D )工作与软件的可维护性有密切的关系。
A)详细设计阶段B)编码阶段
C)测试阶段D)每个阶段
49.增量模型属于一种( B )模型。
A)整体开发B)非整体开发
C)较早产生工作软件D)灵活性差
50.下列说法正确的是( D )。
A)动态模型指出发生了什么
B)对象模型确定什么时候发生
C)功能模型确定发生的客体
D)动态模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织
51.用类库这种机制和结构来实现( B )中的信息共享。
A)同一应用B)不同应用
C)同一个类D)不同类
52.为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行( B )。
A)软件维护B)软件测试
C)质量检验D)软件容错
53.基线可以作为一个检查点,在开发过程中,当采用的基线发生错误时,我们可以知道所处的位置,返回到( A )和最恰当的基线上。
A)最近B)最远
C)最长D)最短
54.软件开发环境是由软件开发工具和环境集成机制构成的,其中环境集成机制为( A )和软件开发、维护和管理提供统一的支持。
A)工具集成B)工程环境
C)软件系统D)环境集成
55.在下列文档中,属于需求分析阶段的文档是( D )。
A)软件设计说明书B)项目开发计划
C)可行性分析报告D)需求规格说明书
56.属性是个体对象的性质,属性通常用修饰性的( C )来表示。
A)形容词B)动词词组
C)名词词组D)副词
57.详细设计与概要设计衔接的图形工具是( B )。
A)DFD图B)SC图
C)程序流程图D)PAD图
58.按照软件配置管理的原始指导思想,受控制的对象应是(C )。
A)软件元素B)软件项目
C)软件配置项D)软件过程
59.软件工程是一门( D )学科。
A)原理性B)理论性
C)心理性D)工程性
60.软件产品的生产主要是脑力劳动,软件产品的成本主要体现在软件的(C )上。
A)复制B)开发方式
C)开发和研制D)磨损和消耗
二、填空题
1.在面向对象的软件中,类是对具有相同数据和相同操作的一组相似对象的定义;
实例是由某个特定的类所描述的一个具体对象。
2.软件开发过程来自用户方面的干扰和阻力主要有:不积极配合,求快求全和功能的变化。3.在类层次中,子类只继承一个父类的数据结构和方法,称为单重继承,子类继承了多个父类的数据结构和方法,称为多重继承。
4.多重性说明了一个类的多个对象能够与另一个类的一个对象发生关联。
5.软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。6.软件测试方法中的静态分析属于静态测试方法。
7.软件设计包含过程设计、接口设计、体系结构设计和数据设计,其中最后完成的设计是过程设计。
8.软件工程采用数学的方法建立软件开发中的各种模型和各种算法。
8.可行性研究实质上是要进行一次简化、压缩了的需求分析、设计过程,是在较高层次
上以较抽象的方式进行需求分析和设计过程。
10.软件开发过程来自用户方面的干扰和阻力主要有:不积极配合,求快求全和功能的变化。11.在进行软件结构设计时应该遵循的基本原理是模块独立原理。
12.详细设计是软件设计的第二阶段,主要确定每个模块具体的执行过程,故也称为过程设计。13.提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构和算法,而不是靠编程时对程序语句做调整。
14.软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。15.关联是建立类之间的一种手段,而链则是建立对象之间关系的一种手段。16.当A模块调用B模块时,若两个模块之间传递的是数值型参数,则这两个模块的耦合
方式是数据耦合。
17.若年利率为i,现存入P元,不计复利,n年后可得钱数为F= n*i*P+P 。
18.一个模块把数值作为参数传送给另一个模块的耦合方式称为数据耦合。
19.成本效益分析的目的是从经济角度评价开发一个软件项目是否可行。
20.软件结构是以模块为基础而组成的一种控制层次结构。
21.在单元测试时,需要为被测模块设计驱动模块和桩模块。桩模块的作用是返回被测模块所需的信息。
22.事件是引起系统状态转换的控制信息。
23.继承与多态机制,是面向对象程序中实现重用的主要手段。
24.对象具有状态,一个对象用数据值来描述它的状态。
25.为协调软件开发使得混乱减到最小,使用软件配置管理技术,使变更所产生的错误达到最小并最有效地提高生产率。
26.软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。
27.关联是建立类之间关系的一种手段,而链则是建立对象之间关系的一种手段。
三、名词解释
1.数据字典
2.模块独立性
模块独立性是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。
3.软件复用
软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。
4.软件工程
将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件
5.信息隐蔽
信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。
6.SA
结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。7.完善性维护
8.面向对象设计
面向对象设计模式是用来解决类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。
9.软件生存周期模型
10.CMM
11.动态模型
动态模型是表示系统静态和动态的行为。这种表示形式可为同一系统提供不同的视角。
12.软件维护
软件维护是指在软件产品发布后,因修正错误、提升性能或其他属性而进行的软件修改。[1]
13.测试用例
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
四、简答题
1.CMM将软件过程的成熟度分为哪几个级别?
CMM将软件过程的成熟度分为5个级别
1、初始级(过程缺乏定义、混乱无序)
2、可重复级(已建立基本的项目管理,过程重复)
3、已定以级(过程已文档化、标准化)
4、已管理级(队友软件产品过程有定量理解和控制)
5、优化级(质量和效率稳定改进)
2.在软件测试中,应注意哪些原则?
1所有的测试都应追溯到用户需求 2应当把“尽早和不断地测试”作为座右铭
3测试工作应该由独立的专业的软件测试机构来完成
4 Pareto原则,测试发现的错误中80%很可能起源于20%的模块中。
5设计测试用例时,应该考虑各种情况。 6对测试出的错误结果一定要由一个确认的过程。
7制定严格的测试计划 8完全测试是不可能的,测试需要终止。
9注意回归测试的关联性。 10妥善保存一切测试过程文档。
3.为了具有良好的程序设计风格,应注意哪些方面的问题?
答:程序代码:
正确性:能够正确实现处理要求易读性:易于阅读和理解,便于调试,修改和扩充
健壮性:当环境发生变化,算法能够适当做出反应或处理,不会产生不需要的运行结果
高效率:达到所需要的时空性能。
软件界面:
1.界面整洁;
2.软件运行快,不易出错;
3.功能齐全;
4.操作简单,易入门
4.简述三种面向对象模型的主要功能。
对象模型表示静态的结构化的系统数据的性质,描绘了系统静态结构,从客观实体的对象关系角度来描述对象。
动态模型描述了与时间和操作顺序有关的系统特征。
功能模型描述了与值的变换鱼贯的系统特征。——功能、映射、约束、函数依赖。
5.为了提高设计质量,应从哪几方面优化软件结构?
1)划分模块时,尽量做到高内聚低耦合、保持模块的想对独立性。
2)一个模块的作用范围应在其控制范围内,且判定所在的模块应与其影响的模块在层次上尽量靠近。
3)软件结构的深度、宽度、扇入、扇出应适当。
4)模块大小适中
5)模块接口要简单、清晰、含义明确、易理解、易实现、易测试与维护。
6.软件生命期各阶段的任务是什么?
答:
1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;
(2)可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。
(3)需求分析阶段,主要是确定目标系统必须具备的功能。
(4)总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;(5)编码与测试,把解法具体化,确定如何具体地实现这个系统。
(6)软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。
7.非渐增式测试与渐增式测试有什么区别?
渐增式是把下一个要测试的模块和同已经测试号的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,这种每次增加一个模块的方法称为渐进式测试。
非渐进式测试是对每个模块进行分别测试,再把所有的模块按设计要求放在一起结合成所有程序。8.面向对象程序设计有哪些优点?
答:1、可重用性:指在一个软件项目中所开发的模块,不仅可用于本项目,还可以重复地使用于其他项目中。
2、可拓展性:应用软件能够方便的修改和扩充,包括软件的内容形式和工作机制的修改和扩充。
3、可管理性:采用类作为构建系统的部件,使项目的组织合理,方便。把数据和其上的操作封装在一起,在本类中使用提高效率,降低开发难度。
9.模块间的耦合性有哪几种?
答:非直接耦合,数据耦合,印记耦合,控制耦合,公共耦合,内容耦合
五、应用题
1.请根据以下描述的逻辑关系画出判定树。
移动电信公司为促进业务的发展发行各种优惠卡,其中包括钻石卡、金卡、银卡3种,用户
可以依据其信用度享受不同额度的透支。其中钻石卡、金卡和银卡允许透支的额度分别为800元、500元和100元。发卡的规则为:从未发生过话费拖欠,且每月通话费在500元(含)以上者可获
钻石卡,每月通话费在200元(含)以上者可获金卡,每月通话费在100元(含)以上者可获银卡;发生过话费拖欠,但能在规定时间内缴清欠款,且每月通话费在300元(含)以上者可获金卡,每
月通话费在200元(含)以上者可获银卡;发生过话费拖欠,并未能在规定时间内补清欠款,无论
每月话费多少均不能获得优惠卡。
2.下面是某程序的流程图:
(1) 计算它的环路复杂性。
(2) 为了完成基本路径测试,求它的一组独立的路径。
1)环路复杂性:=判断树+1=3+1=4。
2)路径1:(0)——T(1)——(7)——(10)
路径2:(0)——F(1)——T(3)——(8)——(10)
路径3:(0)——F(2)——F(4)——T(5)——(9)——(10)
路径4:(0)——F(2)——F(4)——F(6)——(10)
3.画出银行取款过程的DFD图。问题描述为:储户用存折取款,首先填写取款单,根据“账卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出纳向储户付款。