《软件工程》考试试卷(开卷)学号姓名一、单向选择题(每小题1分,共15分)在每个小题的四个备选答案中选择一个正确的答案。
1.软件是()。
A. 处理对象和处理规则的描述B. 程序C. 程序及其文档D. 计算机系统2.瀑布模型与演化模型的主要区别是()。
A. 活动不同B. 项目的规模不同C. 项目管理方法不同D. 活动组织的方法不同3.软件生命周期一般包括三个时期:软件定义期、软件开发期和软件运行期。
下述()不是软件开发期所应包含的活动。
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. 管理过程、培训过程等二、判断题(每小题1分,共20分)判断下列每个叙述是否正确。
如果正确,用“√”表示;否则用“×”表示。
1.开发软件就是编写程序。
2.算法就是计算方法。
3.软件工程就是求解软件的工程。
4.高级语言(例如C语言)是计算机语言的元语言。
5.软件开发模型是过程、活动和任务的结构框架。
6.瀑布模型是一种建立系统模型的方法。
7.结构化方法、面向对象方法是两种不同范型的软件开发方法学。
8.软件需求分析的任务是建立软件模块结构图。
9.软件需求规格说明的作用之一是表述用户和开发人员对软件要做什么的共同理解。
10.以结构化分析方法建立的系统模型就是数据流图。
11.结构化分析方法在建立系统模型时使用“一般/特殊”等结构来组织信息。
12.在UML中用对象图描述对象、对象的属性和操作,以及对象之间的关系,它作用于整个软件生存周期中13.Rational统一开发过程(RUP)是以测试驱动的、软件体系结构为中心的、迭代和增量的过程。
14.软件测试是要发现软件中的所有错误。
15.黑盒测试是基于程序的逻辑结构的测试。
三、简答题(每小题5分,共25分)1.简述RUP(Rational统一开发过程)提出的软件开发的六种最佳实践的名称,并说明实施这些最佳实践的原因。
2.简述RUP(Rational统一开发过程)的六个核心工程工作流的名称,并针对每一个核心工作流用一句话说明其主要功能。
3.简述软件测试要经过哪几个阶段,每个阶段与什么文档有关。
四、设计计算题(每小题10分,共20分)1.将下面给出的伪码转换为N-S图和PAD图。
(每个图5分)void root ( float root1, float root2 ) {i = 1;j = 0;while ( i <= 10 ) {输入一元二次方程的系数a, b, c;p = b*b – 4*a*c;if ( p < 0 ) 输出“方程i无实数根”;else if ( p > 0 ) 求出根并输出;if ( p == 0 ) {求出重根并输出;j = j + 1;}i = i +1;}输出重根的方程的个数j;}2.某程序的描述如下:if ( a > b && i > 1 || c > d && i <= 10 ) k = a;else k = b;1)画出单个条件的嵌套的分支结构;(4分)2)计算该结构的McCabe环路复杂性度量;(3分)3)为完成基本路径测试,求它的一组独立的路径。
(3分)五、建模题(每小题10分,共20分)1.UML建模在学校的教学管理系统中,学生查询成绩就是系统中的一次交互行为。
问题陈述如下:开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。
在用户输入学号后,系统查对学生文件,核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消。
若输入正确,出现“请输入课程名”。
一旦输入课程名,就开始查找课程文件:若输入的课程名不正确,则显示“输入的课程名不正确”,此次查询取消。
若输入正确,则根据“学号”和“课程名”,查询选课文件。
若在选课文件中查询成功,显示查询到的成绩,当用户选择“继续查询”后回到“请输入学号”,当用户选择“结束查询”后回到首页,若查询失败。
则显示“查询失败”后回到“请输入学号”。
要求:1)请画出该系统的顺序图(时序图);(5分)2)请画出该系统的状态图。
(5分)1.请将下面的数据流图转换为系统结构图(图中的 表示“或者”)。
主图:(5分)加工A的子图:(5分)软件工程试卷答案(不打印)一、单向选择题(每小题1分,共15分)在每个小题的四个备选答案中选择一个正确的答案。
1. 软件是(C)。
程序及其文档2. 或瀑布模型与演化模型的主要区别是(D)。
活动组织的方法不同3.软件生存周期一般包括三个时期:软件定义期、软件开发期和软件运行期。
下述(A)不是软件开发期所应包含的活动。
可行性分析4. 软件开发方法学应给出的主要内容是(D)。
概念与表示、过程与工具5. 采用结构化分析方法所建立的系统模型主要捕获了(D)。
数据源点和终点、加工、数据流、数据存储以及加工输入、输出之间的逻辑关系1.软件需求规格说明的内容不应包括(B)。
算法的详细描述2.软件设计的主要任务是(A)。
给出软件解决方案3.软件模块的内部实现和外部可访问性分离,这是指软件的(D)。
抽象性4.面向对象分析方法的基本思想之一是(C)。
基于问题领域的成分来构造一个模块5.面向对象的静态模型(对象模型)主要捕获了(D)。
对象(类)及其连接6.在具有多重继承的类层次结构中,类层次结构是(B)。
网络型7.程序的三种基本控制结构是(B)。
顺序、选择和重复8.软件测试的目标是(B)。
发现错误、降低错误带来的风险9.软件质量保证是面向(C)的活动。
消费者10.按不同人员的工作内容来分类软件过程,支持过程包括(B)。
质量保证过程、配置管理过程等二、判断题(每小题1分,共20分)判断下列每个叙述是否正确。
如果正确,用“√”表示;否则用“×”表示。
(×)1、开发软件就是编写程序。
(×)2、算法就是计算方法。
(√)3、软件工程就是求解软件的工程。
(×)4、高级语言(例如C语言)是计算机语言的元语言。
(√)5、软件开发模型是过程、活动和任务的结构框架。
(×)6、瀑布模型是一种建立系统模型的方法。
(√)7、结构化方法、面向对象方法是两种不同范型的软件开发方法学。
(×)8、软件需求分析的任务是建立软件模块结构图。
(√)9、软件需求规格说明的作用之一是表述用户和开发人员对软件要做什么的共同理解。
(×)10、以结构化分析方法建立的系统模型就是数据流图。
(×)11、结构化分析方法在建立系统模型时使用“一般/特殊”等结构来组织信息。
(√)12、在面向对象方法中,类是客观存在的实体。
(×)13、在面向对象方法中,接口是抽象类的一种形式。
(√)14、在面向对象方法中,引入“多重性”、“限定词”等概念是为了进一步说明相关模型的语义。
(×)15、在UML中用对象图描述对象、对象的属性和操作,以及对象之间的关系,它作用于整个软件生存周期中。
(√)16、Rational统一开发过程(RUP)是以测试驱动的、软件体系结构为中心的、迭代和增量的过程。
(×)17、软件测试是要发现软件中的所有错误。
(×)18、黑盒测试是基于程序的逻辑结构的测试。
(×)19、软件维护时因为重新定义局部或全局变量、重新定义记录或文件格式而导致软件错误。
这种维护的副作用属于代码修改的副作用。
(×)20、组织过程包括质量保证过程、问题解决过程等。
三、简答题(每小题5分,共25分)1.简述SEI软件组织能力成熟度模型(CMM)五个等级的名称,并给出CMM 2级的所有关键过程域。
【解答】SEI软件组织能力成熟度模型(CMM)五个等级的名称是:初始级、可重复级、可定义级、可管理级、可优化级。
CMM 2级的关键过程域六个,它们是:需求管理、软件项目计划、软件项目跟踪与监督、软件分包合同(或子合同)管理、软件质量管理、软件配置管理。
2.以图的形式描述SEI软件组织能力成熟度模型(CMM)中关于等级的内部结构,并给出简单地说明。
【解答】CMM中关于等级的内部结构如下图所示。
软件能力成熟度等级指明软件开发组织在走向成熟的途中所达到的软件过程能力。
而软件过程能力则描述了(开发组织或项目组)遵循其软件过程能够实现预期结果的程度。
除去初始级以外,其它每一个成熟度等级都包含有若干个引导软件机构改进软件过程的要点,称为关键过程域。
它们确定了实现一个成熟度级必需解决的问题。
每一个关键过程域确定一组相应的活动,完成这些活动,就可认为已达到了改进过程能力的一组重要的目标。
关键过程域中包含为实现这些关键过程域所必需实施的关键实践,它们包含关键过程域实施的方针、规程、措施、活动以及相关基础设施。
关键实践的实施全部按如下5个共同特征加以组织:执行约定、执行能力、执行活动、测量与分析和验证实施。
3.简述RUP(Rational统一开发过程)提出的软件开发的六种最佳实践的名称,并对每一个最佳实践用一句话做出简要说明。
【解答】RUP的软件开发的六种最佳实践的名称是:迭代式软件开发、需求管理、基于构件的软件体系结构、建立软件可视化模型、不断验证软件质量、控制变更。