武汉大学2013级本科软件工程试卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉大学计算机学院

2014-2015学年度第二学期 2013级

《软件工程》期末考试试卷(A卷)

专业:________________________ 姓名:______________ 学号:__________________

₪₪₪₪₪₪₪₪₪₪注意:请将所有答案均写在答题纸上,并标明题号₪₪₪₪₪₪₪₪₪₪一.选择(单选)填空题(共30分,第1-28题为每小题1分;第29题为2分)

软件生产的复杂性和高代价,使大型软件的生产出现危机,下述都是软件危机的主要表现,除了 1. 。产生软件危机的原因主要有 2. 。为解决软件危机,人们提出了软件工程的方法,即用工程化的原则指导软件的生产、维护和管理,以达到 3. 的目标。

1. (A)生产成本过高(B)开发进度难以控制

(C)质量难以保证(D)硬件发展滞后,使软件产品的性能达不到用户要求

2. (A)不重视需求,需求获取困难(B)开发过程的管理困难

(C)生产过程缺乏科学的方法和工具(D)以上都是

3. (A)节省开发成本(B)缩短开发周期

(C)提高软件质量(D)经济地开发出高质量软件产品

为便于进行有效地软件开发和管理,项目开发一般采用特定的软件过程模型。瀑布模型是利用 4. 方法控制开发过程复杂性的软件过程模型,它适用于 5. 的项目。而 6. 模型的优势在于快速完善和确定用户需求,从而降低了由于需求问题带来的软件开发风险,是一种实用的开发技术。

4. (A)项目划分(B)阶段划分(C)团队划分(D)成本划分

5. (A)需求难以获取(B)需求经常变动(C)需求比较熟悉(D)风险很大

6. (A)原型(B)增量(C)迭代(D)喷泉

可行性研究是 7. 阶段的重要步骤,其目的是 8. 。它的主要任务有 9. 。为此,通常需要计算投资回收期,它是指 10. 。

7. (A)软件定义(B)软件计划(C)需求分析(D)软件管理

8. (A)证明软件开发项目可行(B)证明软件开发项目不可行

(C)确定软件开发项目要不要做(D)深入调研项目的用户需求

9. (A)成本—效益分析(B)资源分析和风险分析

(C)分析比较各种解决方案(D)以上都是

10.(A)项目投资开始到停止投资的时间区间(B)项目开始到产生经济效益的时间区间

(C)项目开始到完成所需的时间(D)项目的累计经济效益等于投资额所需的时间结构化分析(SA)、结构化设计(SD)、Jackson方法,都是传统的软件开发过程中常用

的方法。其中,SA实现 11. ,得到 12. 图;SD实现 13. ,得到 14. 图;而Jackson 方法实现 15. ,得到 16. 图。SD主要依据 17. 的类型,选用不同的映射规则进行设计。从抽象层次看, 18. 方法的抽象层次最低,主要用在详细设计阶段简化数据处理部分的设计。

11.13和15.

(A)从数据结构导出程序结构(B)从数据流图导出初始软件结构

(C)从数据流导出系统功能描述(D)从模块结构导出程序结构12.14.和16. (A)程序流程图(B)数据流图(C)软件结构(D)Jackson

17. (A)控制流(B)数据流(C)变换流(D)事务流

18. (A)SA (B)SD (C)Jackson (D)OO

下列对于两个模块的关系描述中,模块独立性最高的是 19. ,最低的是 20. 。19.和20. (A)两个模块间有调用关系,通过参数传递数据值

(B)两个模块间没有调用关系,共享数据库中的同一个表

(C)两个模块间有调用关系,通过参数传递标志量/开关值

(D)两个模块间没有调用关系,通过GOTO语句转换控制流测试是软件开发的重要步骤。 21. 是最基本的测试环节,一般采用白盒法针对模块的逻辑结构设计测试用例进行测试; 22 主要考察模块间的接口及各模块间的关系,以黑盒法为主设计测试用例; 23. 主要依据需求分析确定的验收标准以用户为主进行测试;而 24. 则是将软件与硬件、外设等其它系统结合起来,对计算机系统进行一系列的测试。

21.22.23.和24. (A)系统测试(B)确认测试(C)单元测试(D)集成测试

下列关于面向对象方法,说法正确的是 25. 。

25. (A)面向对象开发方法是利用面向对象程序设计语言进行的软件开发方法

(B)Jacobson的OOSE方法建立的AM模型中包括实体对象、界面对象和用例对象(C)正方形、四边形和多边形三者是泛化关系

(D)面向对象方法采用继承性实现软构件的重用,传统结构化方法无法实现重用软件管理是一项复杂而艰巨的任务,它是对 26. 阶段一切活动的管理。软件 27. 的作用是有效地、定量地进行软件管理,从而把握软件工程过程的实际情况和它所产生的产品质量。巡回秩数V(G)用来评价软件的 28. ,下图程序的巡回秩数为 29. 。

26. (A)需求分析(B)软件开发

(C)系统设计(D)软件生存期各

27. (A)度量(B)风险分析

(C)测试(D)进度安排

28. (A)可靠性(B)复杂性

(C)安全性(D)可维护性

29. (A)5 (B)6

(C)7 (D)8

二.简答题(共18分,每小题6分。下列5小题中任选3小题作答,标明题号)

1.人们常常认为:“软件工程让我们炮制大量的无用的文档,从而使软件开发进度延缓”。

这个观点对吗?为什么?

2.Dijkstra曾经说:“Program testing can be used to show the presence of bugs, but never to show their absence!”。试从测试的目标及作用的角度,谈谈你对这段话的理解。

3.分别采用等价类划分和边界值分析法,为int getNumDaysInYear (int year)设计测试用例。4.假设你的任务是对一个已有的软件做重大修改,而且只允许你从下列文档中选取两份作为修改维护的依据,请问你会选择哪两份文档?为什么?

① 概要设计说明书

② 详细设计说明书(用某种过程设计工具描述的)

③ 源程序清单(带有适当的注解)

5.Brooks在《人月神话》中写道:“Adding manpower to a late software project makes it later.”

你同意他的观点吗?试说明理由。

三.分析综述题(共12分。下列2小题中任选1小题作答,标明题号)分析下列事实和说法,并回答问题:

20世纪80年代之前,将结构化方法用于许多中小规模的软件项目开发获得了极大成功。但之后人们发现,随着软件复杂性的增大,当人们把它应用于大型软件产品

的开发和维护时却很少取得成功。

面向对象方法在20世纪60年代首次提出,到了90年代,已成为人们开发软件时首选的软件工程方法。尤其在开发和维护大型软件产品时,其优势非常明显。

1.“分而治之”和抽象是人们在求解复杂问题时经常采用的思维方式,是控制复杂性的重要手段。对比结构化方法和面向对象方法在系统分解和组织方式上的本质差异,分析产生上述现象的原因。(6分+6分)

有人说:“软件结构的好坏直接关系到系统的可维护性。”

2.你同意这个说法吗?(2分)请分别谈谈采用结构化方法或面向对象方法进行软件开发,一个好的软件结构应具备哪些特征?(5分+5分)

四.应用题(共40分)

假设你负责为某高校开发一个网上选课系统,实现网上在线处理选课/退课等事务,并打印各种课程表和统计表。该网上选课系统应具有以下功能:

身份验证:系统包括学生、教师和教务管理员三类用户,可利用学号/工号和密码登录系统,并维护个人信息(修改密码)。

查询:登录成功后,学生可以查询开课信息(如本学期的开课计划、课程详细信息、专业课信息、选修课信息、已选课信息等);教师可以查询所开设课程的选课情况(如选课人数、学生名单等)。

选课:学生在线选课。系统根据选课规则进行合法性检查(如学生每学期选课学分不能

相关文档
最新文档