1、第 1 页 共 34 页 广东海洋大学 20 20 学年第二学期 软件工程课程试题评分标准 课程号: 16552108 考试 A 卷 闭卷 考查 B 卷 开卷 题 号 一 二 三 四 五 六 总分 阅卷教师 各题分数 20 20 10 15 25 10 100 实得分数 一、 填空题(每空 1分,共 20 分) 1、到目前为止,软件生产的发展经过了三个阶段即 程序设计时代 、 程序系统时代 、软件工程时代 。 2、典型的可行性研究有下列步骤:系统定义、 _分析问题 _、 _提出解法 _、设计方案、推荐可行的方案和编写可行性研究报告。 3、数据字典就是用来定义数据流图中的 _所有元素 _。它和数
2、据流图共同构成了系统的 _高层逻辑模型 _。 4、软件设计是一个把 _系统需求 _转换为 _实现方案 _的过程,包括 _总体设计 _和 _详细设计 _。 5、软件产品在交付使用之前一般要经过以下四步测试 _单元测试 _、 _集成测试 _、 _确认测试 _和 _系统测试 _。 6、提高软件可维护性的方法有 建立明确的软件质量目标 、 使用先进的软件开发技术和工具 、 建立明确的质量保证 、 选择可维护的语言 、 改进程序的文档 。 二、 选择题(每小题 2 分,共 20 分) 1、软件生命周期模型有多种,下列选项中,( C )不是软件生命周期模型。 A、螺旋模型 B、增量模型 C、功能模型 D、
3、瀑布模型 2、制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( B )。 A、组织与管理 B、分析与估算 C、设计与测试 D、规划与调度 3、在数据流图中,有名字及方向的成分是 ( C )。 班级: 姓名: 学号: 试题共 4 页 加白纸 2 张 密 封 线 GDOU-B-11-302 第 2 页 共 34 页 A、控制流 B、信息流 C、数据流 D、信号流 4、将几个逻辑上相似的成分放在一个模块中,该模块的内聚程度是( A )的。 A、逻辑性 B、瞬时性 C、功能性 D、通信性 5、在对数据流的分析中,主要是找到变换中心,这是从( C )导出结构图的关键。 A、数据结
4、构 B、实体关系 C、数据流图 D、 E-R 图 6、下面( C )不是对象具有的特性。 A、标识 B、继承 C、顺序 D、多态性 7、 与选择编程语言无关的因素是( A )。 A、软件开发的方法 B、软件执行的环境 C、用户需要 D、软件开发人员的知识 8、白盒测试是从( A )观点的测试。 A、开发人员 B、管理人员 C、用户 D、其他 9、软件工程对维护工作的主要目标是提高软件的可维护性,降低( D )。 A、维护的效率 B、维护的工作量 C、文档 D、维护的代价 10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( A )。 A、工程 管理 B、成本核算 C、人员培
5、训 D、工具开发 三、 判断题(对的画“”,错的画“”,每小题 1 分,共 10 分) 1、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。 ( ) 2、软件错误可能出现在开发过程的早期,越早修改越好。 ( ) 3、不完善的系统定义往往是导致软件项目失败的主要原因。 ( ) 4、一个成功的项目唯一提交的就是运行程序。 ( ) 5、只有质量差的软件产品才需要维护。 ( ) 6、 UML 是一种直观化、明确化、构建和文档化软件产物的通用语言。 ( ) 7、一个好的测试用例在于能发现至今未发现的错误。 ( ) 8、面向对象的分析是面向计算机系统建立软件系统的对象模型。 ( ) 9、软件工
6、作的考虑范围主要是程序设计和实现。 ( ) 第 3 页 共 34 页 10、等价 类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。 ( ) 四、 名词解释(每小题 3分,共 15 分) 1、软件生命周期 答:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。 2、结构程序设计 答:如果一个程序的代码块仅仅通过顺序、选择和循环这 3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则 称这个程序是结构化的。 3、测试 答:指软件开发公司组织内部人员模
7、拟各类用户行对即将面市软件产品(称为 版本)进行测试,试图发现错误并修正。 4、软件再工程 答:对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。 5、软件建模 答:将所要设计的结构和系统的行为融汇贯通,对系统的体系结构进行可视化和控制,化解复杂性的问题,有效地管理开发风险,从而开发出高品质的软件。 五、 问答题(每小题 5 分,共 25 分) 1、简述事物流的设计步骤。 答:由事务流映射成的软件结构包括一 个接收分支和一个发送分支。 接收分支:从事务中心的边界开始,把沿着接收流通路的处理映射成模块。 发送分支:包含一个调度模块,它控制下层的所有活
8、动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。 2、 下面是一段求最大值的程序,其中 datalist 是数据表, n是 datalist 的长度。 int GetMax(int n, int datalist ) 第 4 页 共 34 页 int k=0; for ( int j=1; j datalistk ) k=j; return k; ( 1) 画出该程序的控制流图,并计算其 McCabe 环路复杂性。 ( 2) 用基本路径覆盖法给出测试路径。 ( 3) 为各测试路径设计测试用例。 答:( 1) 控制流图如 右图所示 , McCabe环路复杂性为 3。 (
9、2) 测试路径: Path1: Path2: Path3: ( 3) 测试用例: Path1: 取 n=1, datalist0 = 1, 预期结果: k=0 Path2: 取 n=2, datalist0 = 0, datalist1 = 1, 预期结果: k=1 Path3: 取 n=2, datalist0 = 1, datalist1 = 0, 预期结果: k=0 3、面向对象方法是如何支持软件复用的? 答:( 1)对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。( 2)对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。( 3)面向对象程序
10、设计语言的开发环境一般预定义了系统动态连接库,提供了大量公用程序 代码,避免重复编写,提高了开发效率和质量。 4、对整个系统而言,其功能、静态结构、动态行为和物理架构分别由 UML 中什么图第 5 页 共 34 页 来描述? 答:功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。 5、指出时序图中各符号的含义。 答: (接收消息的对象) (发送消息的对象) (回调消息) (消息) (生命线) (控制焦点) 六、 案例分析题(共 10 分) 某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和
11、讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。试用用例图描述该系统与外部用户的交互情况。 答: 学生教师注册管理员注册课程查询成绩单维护课程信息维护学生信息维护教师信息登录选择课程登记成绩学生课程注册系统第 6 页 共 34 页 广东海洋大学 20 20 学年第一学期 软件工程课程试题评分标准 课程号: 16552108 考试 A 卷 闭卷 考查 B 卷 开卷 题 号 一 二 三 四 五 六 七 八 九 十 总分 阅卷教师 各题
12、分数 20 20 10 20 30 100 实得分数 七、 填空题(每空 1 分,共 20分) 1.面向过程方法学强调 _自顶向下 _顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是 _模拟人类习惯的思维方式 _,使开发软件的方法与 过程尽可能接近人类认识世界解决问题的方法与过程。 2.总体设计阶段必须回答的关键问题是 _概括地说,系统应该如何实现 _。 3._数据流图 _和 _数据字典 _共同构成系统的逻辑模型, 4.需求分析过程应该建立 _数据模型 _、 _功能模型 _、 _行为模型_3 种模型。 5.模块的独立程度可以由 _内聚 _、 _藕合 _两个定性标准度量。 6.
13、进行边界条件测试时,使用 _刚好等于 _、 _刚好小于 _和刚好大于最大值或最小值的数据结构、控制量和数据值 的测试方案,非常可能发现软件中的错误。 7.对象的两个基本要素是: _属性 _和 _服务 _。 8. 发现和定义系统中的对象类是在用例模型的基础上,识别 _实体类 _、 _边界类 _和 _控制类 _。 9.面向对象程序设计风格强调提高 _可重用性 _、 _可扩充性 _、 _健壮性 _。 八、 选择题(每小题 2分,共 20 分) 1.在软件开发的各种资源中,( D )是最重要的资源。 A. 开发工具 B. 方法 C. 硬件环境 D. 人员 2.原型化方法是用 户和软件开发人员之间进行的
14、一种交互过程,适用于( A )系统。 班级: 姓名: 学号: 试题共 3 页 加白纸 2 张 密 封 线 GDOU-B-11-302 第 7 页 共 34 页 A. 需求不确定的 B. 需求确定的 C. 管理信息 D. 决策支持 3.单元测试的测试用例主要根据( D )的结果来设计。 A. 需求分析 B. 源程序 C. 概要设计 D. 详细设计 4.测试工作量通常占软件开发全部工作量的( C )。 A.20% 30% B.30% 40% C.40% 50% D. 50% 60% 5.Pareto 原理指出测试发现的错误中的 80%很 可能是由程序中( B )的模块造成的。 A.10% B.20
15、% C.30% D. 40% 6.下列偶合中偶合程度最高的是( D )。 A.数据偶合 B.控制偶合 C.特征偶合 D.内容偶合 7.下列 程序流程图的标准符号中,表示数据输入输出的是( A )。 A. B. C. D. 8.右边所示的 流图的环形复杂度为( A )。 A. 4 B. 5 C. 6 D. 7 9.在软件维护中,维护工作量比例最大的是( C )。 A. 改正性维护 B. 适应性维护 C. 完善性维护 D. 预防性维护 10.使用条件路径选择进行白盒测试时,对于 连锁型分支结构结构,若有 n个判定语句,则需要( C )个测试用例。 A. n B. 2n-1 C. 2n D. 2n+
16、1 九、 判断题(对的画“”,错的画“”,每小题 1分,共 10 分) 1. 文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( ) 2. 在需求分析过程中,分析员要 从用户那里解决的最重要的问题是给该软件提供哪些信息。 ( ) 3. 建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 ( ) 4. 软件错误可能出现在开发过程的早期,越早修改越好。 ( ) 5. 只有质量差的软件产品才需要维护。 ( ) 6. 一个好的测试用例在于能发现至今未发现的错误 。 ( ) 第 8 页 共 34 页 7. 不完善的系统定义往往是导致软件项目失败的主要原因。 ( ) 8. 瀑布模型是一种文档驱
17、动的模型。 ( ) 9. UML 是一种方法。 ( ) 10.在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。( ) 十、 名词解释(每小题 4 分,共 20 分) 1. 软件生命周期 答:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。 2. 结构程序设计 答:如果一个程序的代码块仅仅通过顺序、选择和循环这 3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 3. 测试 答:指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为 版本)进行
18、测试,试图发现错误并修正。 4. UML 答:一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言,从企业信息系统到基于 Web 的分布式应用,甚至严格的实时嵌入式系统都适合于用 UML来建模。 5. 软件再工程 答:对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。 十一、 问答题(每小题 6分,共 30 分) 1. 产生软件危机的原因是什么? 答: “ 软件作坊 ” 基本上仍然沿用早期形成的个体化软件开发方法,导致在计算机软件的开发和维护过程中遇到一系列严重问题。如:软件开发的进度难以控制,经常出现经费超预算等。 2. 按照模块化的
19、理论,模块的数目是否越多越好?为什么? 第 9 页 共 34 页 答:否,根据模块化和软件成本的关系,随着模块数目的 增加,模块成本减小,但接口成本增加,开始时总的成本逐渐减小,模块数超过一定数目之后,总的成本增加。所以模块数应取最小成本区数目。 3. 一个程序计算任何一个在 1 1000 内整数的平方数,那么其输入项的等价类应如何划分? 答: 4. 为什么说面向对象方法对需求变化有较好的适应性? 答:面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内;对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内
20、部。 5. 在下列用例图中,哪些是系统角色? 哪些 是系统用例? 答:角色: Bank network, Manager, Clerk, Customer 用例: Authorize purchase, Open store, Log onto redister, Sell goods, Restock inventory 第 10 页 共 34 页 广东海洋大学 20 20 学年第二学期 软件工程课程试题评分标准 课程号 : 16552108 考试 A 卷 闭卷 考查 B 卷 开卷 题 号 一 二 三 四 五 六 总分 阅卷教师 各题分数 20 20 10 12 22 16 100 实得分数
21、 十二、 填空题(每空 1分,共 20 分) 1、 软件工程方法学包含 3个要素: _过程 _、 _方法 _和 _工具 _。 2、 瀑布模型的成功在很大程度上是由于它基本上是一种 _文档 _驱动的模型。 3、 面向过程方法学强调 _自顶向下 _顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是 尽量模拟人类习惯的 _思维方式 _,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 4、 数据流图有四种基本符号:正方形 (或立方体 )表示数据的 _源点或终点 _;圆角矩形 (或圆形 )代表 _数据加工(或数据处理) _;开口矩形 (或两条平行横线 )代表 _数据存
22、储 _;箭头表示 _数据流 _。 5、 软件结构的设计是以模块为基础的,以 _数据流图 _的结果为依据,从实现的角度进一步划分为模块,并组成模块的 _层次结构 _。 6、 信息流有 _变换流 _和 _事务流 _两种类型。 7、 对象的 两个基本要素: _属性 _和 _服务 _。 8、 软件维护包括 _改正性 _维护、 _适应性 _维护、 _完善性 _维护、 _预防性 _维护四项活动。 十三、 选择题(每小题 2 分,共 20 分) 1、在软件生命周期中,用户主要是在( A )参与软件开发。 A、软件定义期 B、软件开发期 C、软件维护期 D、整个软件生命周期过程中 2、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是班级: 姓名: 学号: 试题共 4 页 加白纸 张 密 封 线 GDOU-B-11-302