1.在某系统中,存在如下的业务陈述:①一个客户提交0个或多个订单;②一个订单由一个且仅由一个客户提交。系统中存在两个类:“客户”类和“订单”类。对应每个“订单”类的实例,存在【 B 】“客户”类的实例;对应每个“客户”类的实例,存在0个或多个“客户”类的实例。 A)0个B)1个C)1个或多个D)0个或多个2.一般地,可以将软件开发的生命周期划分为问题定义、可行性分析、【 C 】、总体设计、详细设计、编码和单元测试、综合测试和维护8个阶段。A)项目论证B)初始调查C)需求分析与定义D)问题分析3.下列关于软件开发瀑布模型的说法中,正确的是【 A 】: A)必须等前一阶段的工作完成之后,才能开始后一阶段的工作。 B)前一阶段的输出文档对后一阶段影响不大。 C)可以先完成软件的编码工作再补充相关文档。 D)以上说法都不对。 4.下列叙述中,与提高软件可移植性相关的是【 D 】:A)选择时间效率高的算法 B)尽可能减少注释 C)选择空间效率高的算法 D)尽量用高级语言编写系统中对效率要求不高的部分5.在信息系统分析阶段,对数据流图的改进,包括检查数据流图的正确性和提高数据流图的易理解性,下面说法不正确的是【 A 】。A)数据流图中,输入数据与输出数据必须匹配B)数据流图的父图和子图必须平衡C)任何一个数据流至少有一端是处理框D)数据流图中适当的命名,可以提高易理解性6.【 A 】是导致软件缺陷的最大原因。A)需求规格说明书B)设计方案C)编写代码D)测试计划7.从事物的组成部件及每个部件的属性、功能来认识事物。这种方法被称为【 A 】的方法。A)面向对象B)面向数据C)面向过程D)面向属性8.在软件项目管理中可以使用各种图形工具来辅助决策,下面对Gantt图的描述中,不正确的是【 C 】。A)Gantt图表现了各个活动的持续时间B)Gantt图表现了各个活动的起始时 C Gantt图反映了各个活动之间依赖关系D)Gantt图表现了完成各个活动的进度9.下列选项中,【 C 】不属于结构化分析方法所使用的工具。A)数据流图 B)判定表和判定树C)系统流程图 D)ER(实体联系)图10.可行性研究主要从【 A 】等方面进行研究。 A)技术可行性,经济可行性,操作可行性B)技术可行性,经济可行性,系统可行性C)经济可行性,系统可行性,操作可行性D)经济可行性,系统可行性,时间可行性11.为了提高测试的效率,应该【 D 】。A)随机地选取测试数据 B)取一切可能的输入数据作为测试数据库C)在完成编码后制定软件的测试计划D)选择发现错误可能性大的数据作为测试数据
12.在开发软件时,【 A 】可用来提高程序员的工作效率。A)程序开发环境 作业管理功能C)编译程序的优化功能
B)操作系统的
D)并行运算的大型计算机13.在UML提供的图中,【 A 】
B)类图
C)对象图
D)部署图
用于描述系统与外部系统及用户之间的交互。 A)用例图
14.假定X为整数类型变量,X≥1并且X≤10,如果用边界值分析法,X在测试中应该取【 B 】值。 A)1,10 B)0,1,10,11 C)1,11
D)1,5,10,11
B)系统能有效地使用
15.系统的健壮性是指【 C 】。A)系统能够正确地完成预期的功能
计算机资源C)在有干扰或输入数据不合理等意外情况下,系统仍能进行适当地工作D)在任何情况下,系统均具有错误自修复功能16.在开发信息系统的过程中,程序设计语言的选择非常重要。下面选项中,选择准则【 D 】是错误的。A)将来能否占主导地位 B)可重用性C)有良好的开发工具支持 D)技术越先进的程序设计语言越好
17.在软件设计和编码过程中,采取【 C 】的做法将使软件更加容易理解和维护。A)良好的程序结构,有无文档均可B)使用标准或规定之外的语句C)编写详细正确的文档,采用良好的程序结构D)尽量减少程序中的注释
18.在规定的条件下和规定的时间间隔内,软件实现其规定功能的概率称为【 C 】。A)可扩展性 B)可接近性 C)可靠性 D)稳定性
19.影响系统可维护性的因素不包括【 D 】。A)可理解性 B)可测试性C)可修改性 D)可移植性
20.以下关于程序测试的叙述,正确的是【 D 】。A)程序测试的目的是为了证明程序的正确性B)白盒测试也称为功能测试C)黑盒测试也称为结构测试D)成功的测试是发现了尚未被发现的错误的测试。 填空题1.在面向对象方法学中,“方法”就是对象所能执行的 (功能/操作) 2.数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是(数据定义数据信息集合 ) 3.任何单入口和单出口的程度可以只用三种基本的控制结构实现,这三种基本控制结构是顺序(选择)和循环。4.在用面向对象方法学开发软件时,通常需要建立三种模型,它们是(对象模型/静态模型)动态模型和功能模型。5.黑盒测试着重测试(软件功能/功能/需求)因此设计测试用例时,需要研究需求规格说明书和概要设计说明书中有关程序功能或输入、输出之间的关系等信息,从而与测试后的结果进行分析比较。6.封装是指把数据以及操作数据的相关方法组合在同一个单元中,使我们可以把类作为软件中的基本复用单元,提高其内聚度,降低其耦合度。面向对象中的(继承/派生 )机制是对现实世界中遗传现象的模拟,通过该机制,基类的属性和方法被遗传给派生类.7.为了验证需求的正确性,一般应从四个方面进行:一致性、现实性、有效性和( 完整性)8.为提高可交互性,一般对所有可能造成损害的用户操作,应坚持要求用户( 确认/认可/再次确认操作 )例如,提问“你确实要删除…?”。 9.决定软件可维护性的因素主要有三个,它们是:软件的可测试性、可修改性和( 可理解性 )10.复杂问题(典型系统)的对象面向通常由( 主题层)类与对象层、结构层、属性层和服务层等5个层次组成。 基本概念题(每题3分,共15分)
1.软件工程①软件工程是开发、运行、维护和修复软件的系统方法。
②建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 2.模块化①模块化是指解决一个复杂问题是自顶向下逐层把软件系统划分成若干模块的过程,每个模块完成一
个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。 ②模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的要求。
3.确认测试 确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的指
标相符合。
4.面向对象设计模型①面向对象设计模型就是根据需求决定所需的类、类的操作以及类之间关联的过程中所建
立的相关模型。
②用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。
③面向对象设计模型,在逻辑上由问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统4大部分组成。
5.信息隐藏①信息隐藏指在设计和确定模块时,使得一个模块内包含的信息(过程对或数据),对于不需要这
些信息的其它模块来说,是不能访名问的。
②信息隐藏应该隐藏的不是有关模块的一切信息,而是模块的实现细节,因此也称为“细节隐藏”。 ③信息隐藏意味着有效的模块化可以通过定义一组独立的模块而实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。
四、 叙述分析题:(每题6分,共30分) 1.什么是模型?开发软件时为什么要建立模型?
所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。(3分)
通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。
为了开发复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足客户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现这个模型。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型。
建立模型的目的主要是为了降低复杂性。(3分)
2.类与类之间有哪几种关系组成。
类与类之间通常有关联、泛化(继承)、依赖和细化等4种关系。 关联表示两个类的对象之间存在某种语义上的联系。
泛化(继承)关系指出在类与类之间存在“一般—特殊”关系。
依赖关系描述两个模型元素之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素。
当对同一事物在不同抽象层次上描述时,这些描述之间具有细化关系。
3.为什么说类构件是目前比较理想的可重用软构件?它有哪些重用方式?
类构件具有如下特点:①模块独立性强;②高可塑性;③接口清晰、简明、可靠。这使得类构件便于在构造各种各样的软件系统时方便地重复使用。
类构件的重用方式有3种:①实例重用;②继承重用;③多态重用。
4.说明软件测试在软件开发阶段的地位和作用。比较测试和调试的异同点。
软件测试是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审,对软件的可靠性有着非常重要的影响。(2分)
测试是为了发现程序中的错误而执行程序的过程。(1分) 调试是在测试发现错误之后排除错误的过程。(1分)
测试的目标是发现软件中的错误,但发现错误并不是最终目的,通过测试发现的错误之后必须诊断并改正错误,这就是调试的目的,调试是测试阶段最困难的工作。(2分)
5.为什么要进行技术复审?有哪些具体的方法?
复审主要用来保证在编码之前各阶段产生的文档的质量;采用正式技术复审,能够较早发现软件错误,检测出并排除掉绝大部分规格说明错误或设计错误,从而可防止错误被传播到软件过程的后续阶段,可大大降低后续开发和维护阶段的成本。(4分)
正式技术复审是软件质量保证措施的一种,包括走查和审查等具体方法。(2分) 可酌情给分。
五、 设计、作图、计算题(4题共25分)
1.研究下面用程序流程图表示的程序,完成以下问题: A) 把程序流程图映射成流图。 (3分) B) 用McCabe方法计算环行复杂度。 (3分) 答:
A)如右图所示。(3分) 图示有错,酌情扣分。 B)环形复杂度
①流图中的区域数为4,所以环形复杂度为4。 ②V(G)=E-N+2 其中:E是边数为11,N是结点数为9 所以V(G)=11-9+2=4
③V(G)=P+1 其中:P是判定结点数为3 所以V(G)=3+1=4
以上的任一计算都正确得3分,给出公式得2分,没有过程也可得分。
2.学生可通过某系统查询信息,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出
生日期、性别以及系统分配的唯一身份标识(ID)和密码。 1) 数据流图有哪些基本符号组成。(3分) 2) 请补齐下列数据字典条目:(3分) 登录信息=学生ID+密码
注册信息=
注册信息学生ID1注册新学生标志注册信息学生ID2登录登录信息注册信息
答:
数据流图基本符号有:
或 或
数据加工 (数据变换) 数据源点或终点 (外部实体) 数据流
或 数据存储文件
注册信息= 学生ID + 姓名 + 现住址 + 电话号码 + 出生日期 +性别 + 新学生标记
3.画出下表所列活动的工程网络图,并计算其关键路径和项目花费的时间。(6分)
活动 A B C D E F G H
答:
选择硬件 软件设计 安装硬件 编码和测试软件 档案工作 写用户手册 用户培训 安装和测试系统
活动描述
历时(周)
6 4 3 4 3 10 3 2
A B B E、F C、D 紧前活动
FG是关键路径。(1分) 项目共需13周才能完成。(1分)
画图4分,没有标明时间扣2分,时间标明有错扣1分。
4.设计下列伪码程序的语句覆盖和路径覆盖测试用例,将设计结果填写在题后的表格中:(7分)
START
INPUT (A, B, C)
IF A>5 THEN //判定表达式1 X=10 ELSE X=1 END IF
IF B>10 THEN //判定表达式2 Y=20 ELSE Y=2 END IF
IF C>15 THEN //判定表达式3 Z=30 ELSE Z=3 END IF
PRINT (X, Y, Z) STOP
解:1)语句覆盖的测试用例 (2分) 序 号 1 2 1 F T 判定 2 F T 3 F T A 1 20 输入 B 1 40 C 1 60 X 1 10 预期的输出 Y 2 20 Z 3 30 2)路径覆盖的测试用例 (5分) 序 号 1 2 3 4 5 6 7 8 1 F F F F T T T T 判定 2 F F T T F F T T 3 F T F T F T F T A 1 1 1 1 20 20 20 20 输入 B 1 1 40 40 1 1 40 40 C 1 60 1 60 1 60 1 60 X 1 1 1 1 10 10 10 10 预期的输出 Y 2 2 20 20 2 2 20 20 Z 3 30 3 30 3 30 3 30 A、B、C的值可变,满足要求即可,全部正确得满分,其它情况酌情给分。