一、填空题
1、软件工程学的内容可包括( )、结构、( )、( )、环境、管理、规范等。 2、软件生存周期一般可分为问题定义、( )、( )、设计、( )、测试、运行与维护阶段。
3、系统流程图是( )的传统工具。
4、结构化语言是介于自然语言和( )之间的一种半形式语言。 5、数据字典的内容包括六项:( )、( )、( )、数据存储、处理逻辑、外部实体。
6、UML的定义包括( )和( )两个部分。
7、按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和( )。
8、瀑布模型是以文档为驱动、适合于( )的软件项目的模型。
9、对象具有标识唯一性、分类性、多态性、( ) 和( ) 等基本特性。 10、消息关联指的是对象( )的一种依赖关系。
11、对象的规格说明包括对对象( )的说明及对对象( )的说明。 12、在需求分析阶段常用的图形工具有( )、( )、( )。 13、模块独立的概念是( )、( )、( )和局部化概念的直接结果。 14、基于计算机系统的系统元素包括:软件、硬件、人、( )、( )和过程等几个部分。
15、软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、( )、可使用性和效率。
16、为了便于对照检查,测试用例应由输入数据和预期的( )两部分组成。 17、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 ( )。
18、需求分析的基本任务是准确的回答( )。 19、常用的系统分析方法有四类,包括:( )、数据流方法、信息造型方法以及( )。
20、面向对象设计中,主要存在两种耦合,交互耦合和( )。
21、UML是一种标准的图形化(即可视化)建模语言,它由( )和( )组成。其中,前者是UML的表示法(语法),而后者给出前者的含义,是UML的语义。
二、选择题
1、下列关于瀑布模型的描述正确的是( )。
A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具有良好的灵活性。
C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题修改的代价很低。 2、下列各方法中( )不是软件测试方法。
A. 白盒法 B. 黑盒法 C. 动态测试 D. 盒法
3、UML的基本建筑块不包括( )。
A. 框架 B. 事物
C. 关系 D. 图
4、软件复杂性度量的参数包括( )
A.效率 B.规模 C.完整性 D.容错性 5、软件调试技术包括( )
A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试 6、软件维护产生的副作用,是指( ) A、开发时的错误 B、隐含的错误 C、因修改软件而造成的错误 D、运行时误操作 7、程序的三种基本控制结构是( )
A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 8、需求分析中开发人员要从用户那里了解( )
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 9、结构化程序设计主要强调的是( )
A. 程序的规模 B. 程序的效率 C. 程序设计语言的先进性 D. 程序易读性 10、经济可行性研究的范围包括( )
A.资源有效性 B.管理制度 C.效益分析 D.开发风险 11、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( )的回答。
A.确定 B.行或不行 C.正确 D.无二义 12、需求分析阶段的任务是确定( )
A. 软件开发方法 B. 软件开发工具 C. 软件开发费 D. 软件系统的功能
13、下图说明的是模块A、B之间的关系,对下图说明正确的是( )
A、模块A调用模块B B、模块B调用模块A
C、模块A和模块B相互调用 D、模块A和模块B之间不存在调用关系
14、以实体、联系和属性等基本概念为基础的实体联系图是基本实体联系图。为了满足新的应用需求和表达更多的语义,实体联系图可以进行扩充;通过引入( )概念而形成的实体联系图即为扩充的实体联系图。 ( )
A、分类 B、聚集 C、分类和聚集 D、实体和联系 15、需求分析最终结果是产生( )
A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告
16、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )
A.软件工程 B.软件周期 C.软件危机 D.软件产生
17、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A.技术可行性 B.经济可行性 C.社会可行性 D.法律可行性
18、在SD方法中全面指导模块划分的最重要的原则是( )
A.程序模块化 B.模块高内聚 C.模块低耦合 D.模块独立性 19、不适合作为科学工程计算的语言是( )
A. Pascal B. C
C. Fortran D. Prolog
20、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 21、下列属于维护阶段的文档是( )
A.软件规格说明 B.用户操作手册 C.软件问题报告 D.软件测试分析报告 22、快速原型模型的主要特点之一是( ) A.开发完毕才见到产品 B.及早提供全部完整的软件产品 C.开发完毕后才见到工作软件 D.及早提供工作软件
23、因计算机硬件和软件环境的变化而作出的修改软件的过程称为( ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 24、类库这种机制是( )级别的信息共享。 A.同一类 B.不同类 C.同一应用 D.不同应用
25、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )
A.可用性 B.可靠性 C.正确性 D.完整性
26、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是( ) A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 27、软件可维护性的特性中相互矛盾的是( ) A、可修改性和可理解性 B、可测试性和可理解性 C、效率和可修改性 D、可理解性和可读性 28、瀑布模型的存在问题是( ) A.用户容易参与开发 B.缺乏灵活性
C.用户与开发者易沟通 D.适用可变需求 29、软件结构图的形态特征能反映程序重用率的是( )
A、深度 B、宽度 C、扇入 D、扇出 30、用黑盒技术设计测试用例的方法之一为( ) A、因果图 B、逻辑覆盖 C、循环覆盖 D、基本路径测试
三、名词解释 1、数据字典 2、内聚性
3、JSP方法 4、多态性 5、重用性
6、软件工程过程 7、信息隐蔽 8、集成测试 9、系统流程图 10、软件维护
四、简要回答下列问题
1、什么是模块、模块化、模块独立性? 2、何谓黑盒测试?何谓白盒测试?
3、以G.J.Myers的观点,简述对软件测试的目的。 4、简述结构化程序设计方法的基本要点。 5、简述文档在软件工程中的作用。
6、何谓是软件危机,软件危机有哪几种表现?
五、综合说明及应用题
1、某公司为本科以上学历的人重新分配工作,分配原则如下:
1).如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作; 2).如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;
3).如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。
要求:画出分析过程,得出判定表,并进行化简。
2、执行下列语句后, int i,s;
for(i=s=0; i<12; i++) s+=i; while (--i>5) s+=i;
求S的值(写出必要的中间值)。
3、分别举例说明C++中对象操作的两种调用方式。
4、采用对象联系矩阵表示下面的问题:1个“A”“使用”0到m个“B”,1个“B”只能被1个“A”所“使用”;1个“B”上只能“选用”1个“C”,1个“C”可以被0到m个“B”来“选用”。
5、给出下面程序的运行结果。 # include “iostream.h” int main( ) {int i=1;
while (i<=25) if (++i%7!=3) continue;
else cout <<”i=”<6、 别举例说明C++中的两种对象创建方式。
7、用判定树描述下例:在铁路货运票价系统中,如果里程数大于1千km(含),且货运量超过500吨(含),则货运价为0.05元/公里.吨;500吨以下,货运价为0.06元/公里.吨。如果里程数小于1千km,且货运量超过500吨(含),则货运价为0.07元/公里.吨;500吨以下,货运价为0.08元/公里.吨。
参考答案
一、 填空题
1、理论、方法、工具
2、可行性研究、需求分析、编码 3、描述物理系统 4、形式语言
5、数据流、数据项、数据结构 6、UML语义、UML表示法 7、事务分析设计 8、软件需求明确 9、继承性,封装性 10、行为之间 11、属性,行为
12、层次方框图、Warnier图、IPO图 13、模块化、抽象、信息隐蔽 14、数据库、文档 15、可移植性 16、输出结果 17、判定树
18、系统必须做什么
19、功能分解方法,面向对象方法 20、继承耦合 21、图,元模型
二、选择题
1~15: C D A B B ; C C A D C ; B D A C B 16~30:C B D D C ; C D B D B ; A C B C A
三、名词解释
1、数据字典:数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、
无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
2、内聚性:内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
3、JSP方法:JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
4、多态性:多态性指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果,或不同的对象,收到同一消息可以产生不同的结果。
5、重用性:重用性指的是软件的某些部分重复使用的性能。软件重用是提高软件生产率的重要手段,重用性越高,则软件生产率越高。按重用性的程度从低至高可以分为代码重用、设计结果重用和分析结果重用几种类型。
6、软件工程过程:在软件生产中,软件工程过程规定了获取、供应、开发、操作和维护软件时,要实现的过程、活动和任务,它包括7个主要过程:获取过程、供应过程、开发过程操作过程、维护过程、管理过程和支持过程。 7、信息隐蔽:信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
8、集成测试:集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。
9、系统流程图:系统流程图是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表示系统中各元素之间的信息流动的情况。
10、软件维护:软件维护是指在软件已交付用户使用后,为了改正错误,或者满足用户新的需求而修改软件的过程。
四、简答题
1、答:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。
模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。
模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
2、答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒
测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。
白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
3、答:软件测试的目的:
(1)为了发现错误而执行程序的过程;
(2)一个好的用例能够发现至今尚未发现的错误的测试; (3)一个成功的测试是发现至今尚未发现的错误的测试。
4、结构化程序设计方法的要点包括:
(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环 (3)采用主程序员组的组织形式。
5、文档在软件工程中的作用主要包括: (1)提高软件开发过程的能见度 (2)提高开发效率
(3)作为开发人员阶段工作成果和结束标志 (4)记录开发过程的有关信息便于使用与维护; (5)提供软件运行、维护和培训有关资料; (6)便于用户了解软件功能、性能。
6、答:软件开发和维护的过程中所遇到的一系列严重的问题。具体表现在: (1)产品不能符合用户的实际需求; (2)软件开发的效率较低; (3)软件产品的质量差;
(4)软件开发成本和进度的估算不准确; (5)软件可维护性差;
(6)软件开发文档资料不完整; (7)软件的价格昂贵;
五、综合说明及应用题 1、
(1)判定条件可能取值表:
(2)计算组合数2*3*2=12;
(3)初步判定表
(4)简化后的判定表
2、for while
i=0 , s=0 –> s=0 i=11 , s=66 – >s=77 i=1 , s=0 – >s=1 . . . i=2 , s=1 – >s=3 . . .
i=11 , s=55 –> s=66 ; i=66 , s=111 –> 最后得:s=117
3、C++操作的调用分两种情况:
(1)如果是采用静态内存分配方式创建对象的,那么采用\".\"方式调用操作,如例1所示。
例1 静态对象操作的调用 Student studentobj(\"98109002\");
studentobj.ChangePassword(NewPassword, OldPassword); (2)如果是采用动态内存分配方式创建对象的,那么采用\"->\"方式调用操作,如例2所示。
例2 动态对象操作的调用
Student *studentobj = new Student(\"98109002\")
studentobj->ChangePassword(NewPassword, OldPassword);
4、 采用对象联系矩阵表示下面的问题
1个A 1个C 1个B A 被1个A“使用” C “选用”1个C B “使用”0,m个 被0,m个“选用”
5、输出结果: i=3 i=10 i=17
i=24
6、C++有两种对象创建方式,静态内存分配方式和动态内存分配方式,每当创建一个新对象,就执行一次构造函数。
例:用静态内存分配方式创建了类Student的学号为98109002的对象studentobj。
Student studentobj(\"98109002\");
如果该语句是出现在一个操作或函数中,则说明studentobj被定义为局部变量,当操作或函数执行完毕退出时,该对象将被自动消除,所占用的内存被释放,释放内存时将执行一次析构函数。如果该语句是将studentobj定义为一个全局变量,则只有系统退出后对象studentobj才会被消除。
采用动态内存分配方式创建对象时需要借用C++的new操作符进行。new操作符为新对象分配内存并且返回它的一个指针,指针存放在指针变量中。new操作符可以包括构造函数中 的参数,如下例所示。
例:对象创建的动态内存分配方式
Student *studentobj = new Student(\"98109002\") 、
7
因篇幅问题不能全部显示,请点此查看更多更全内容