《高级软件工程》试题。
2014级工程硕士用)
一、单项选择题:请将正确答案的字母写在题号前面的括号内。(每小题3分,共30分)
a )1、确定待开发软件的功能要求、性能要求和运行环境约束的阶段是 。
a.需求分析 b.总体设计 c.详细设计 d.测试。
d )2、在结构化分析方法中,数据字典定义了数据流图中的各个元素的具体含义。下列选项中,不需要在数据字典中定义的是 。
a、数据流分量 b、数据流 c、处理 d、源点和终点。
a )3、软件总体设计后可以得到 。
a、软件结构图 b、程序图 c、系统流程图 d、数据流图。
b )4、软件结构图中,模块框之间若有直线连接,表示它们之间存在
a、调用关系 b、组成关系 c、继承关系 d、嵌套关系。
c )5、下列工具中用于详细设计的是 。
a. 数据流图 b. 判定表 c. pad图 d. 数据字典。
b )6、程序的三种基本控制结构是
a、过程、子程序和分程序 b、顺序、选择和重复。
c、递归、迭代和回溯 d、调用、返回和转移。
b )7、如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征:前一个处理动作所产生的输出数据是后一个处理动作的输入数据,称为 。
a、功能内聚 b、顺序内聚 c、通信内聚 d、过程内聚。
c )8、在软件测试中,下列说法正确的是
a、每个程序员最好测试自己编写的程序。
b、测试用例只需选用合理的输入数据。
c、测试用例应由输入数据和预期的输出数据两部分组成
d、测试时只需检查程序是否做了它应该做的事。
c )9、下列测试技术中,属白盒测试的是 。
a、边界值分析 b、等价类划分 c、逻辑覆盖 d、错误推测。
c )10、下面关于软件维护的说法,错误的是 。
a、软件维护是软件生命周期中占用时间最长的一个阶段。
b、软件维护不只是修改软件中的错误。
c、软件维护对于开发商来说是无利可图的。
d、在编码过程中添加适当的注释,可以降低软件维护的难度。
二、问答题:(每小题5分,共25分)
1、什么叫做软件工程?为什么要采用软件工程方法开发大型软件?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。随着企业信息化的深入,对软件项目的需求日益复杂,并会产生频繁的变更, 传统的个人英雄主义的开发方式已经越来越不能适应发展的需要。
从软件企业的发展战略来说,如何在技术日新月异和人员流动频繁的情况下,建立本公司的知识库及经验库,把企业中分散的隐性的财富,即个人的知识及经验,转变为企业的知识和经验,以便提高工作效率,缩短产品周期,加强企业的竞争力,具有至关重要的作用。如果软件开发机构不能有效地控制和使用软件资源,则在面对风险时就可能导致软件开发活动出现各种问题。由于不能很好地管理软件过程,会使得一些好的开发方法和技术没有起到预期的作用。
项目的成功往往是通过工作组的杰出努力来达到的,这种仅仅建立在依赖特定高素质开发人员基础上的成功,不能保证全组织的持续稳定的软件生产和质量的长期提高。因此,要降低软件开发过程的风险、保证软件产品质量,就必须加强管理,而软件工程方法开发大型软件是企业过程改善和能力提升的基础。
2、简述瀑布模型各阶段的基本任务?
瀑布模型包含可行性研究、需求分析、概要设计、详细设计、编程调试、测试运行、运行维护。
1)可行性研究:需要从目标方案的可行性、技术方案的可行性、经济方面的可行性以及社会方面的可行性进行分析,从而明确具体的系统方案。
2)需求分析:该阶段是系统开发的重要环节。实事求是地全面调查分析是系统设计的基础,影响整个系统开发工作的成败,形成系统分析报告,并从总体上给出系统的设想和逻辑方案。
3)概要设计:概要设计主要是提出系统的总体方案,包括网络设备的配置、设备选型、软件平台和开发工具的选择、系统子系统的划分、制定测试计划等。该阶段需要在多种技术方案中选择最优设计,即能以简单而有效率的方式,在特定的技术、组织、财务和时间限制条件下满足用户需求的方案。
4)详细设计:该阶段给出系统实现的详细规格说明,为下一阶段的系统实现(如编程、调试、试运行等)制定蓝图。主要工作包括:
数据结构和数据库设计、各子系统的计算机处理流程设计、各功能模块和处理过程设计、输入输出设计、用户界面设计等。
5)编程调试:该阶段将系统设计和详细设计阶段中的设计采用某种程序设计语言编码描述而实现应用程序,并以各种可能的数据和操作条件对程序单元模块进行试验。
6)测试运行:该阶段通过各种类型的测试以及实际运行测试,使系统达到预定的要求;并进行系统应用转换。
7)运行维护:根据用户要求改进或扩充系统以适应环境的变化。
3、简述软件测试的基本原则。
原则1:测试显示缺陷的存在。
原则2:穷尽测试是不可能的。
原则3:测试的尽早介入。
原则4:缺陷的集群性。
原则5:测试活动依赖于测试内容。
原则6:测试贯穿于整个生命周期。
原则7:第三方或独立的测试团队。
4、面向对象分析中的三种主要模型是什么?它们之间有什么关系?
三种模型主要是动态模型、对象模型和功能模型。
3个模型之间具有下述关系。
1)与功能模型的关系:对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。
2)与对象模型的关系:功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“**者一客户"关系;动态模型展示了每个对象的状态以及它接收事件和改变状态时所执行的操作。
3)与动态模型的关系:功能模型展示了动态模型中未定义的不可分解的动作和活动的定义,对象模型展示了是谁改变了状态和承受了操作。
5、什么是uml建模语言?它有哪些图形工具?
unified modeling language (uml)又称统一建模语言或标准建模语言,是始于2023年一个omg标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。它不仅统一了booch、rumbaugh和jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
包括的图形工具有:用例图、类图、序列图、状态图、活**、组件图、部署图。
三、阅读伪码程序,(1)画出该伪码程序的程序流程图和程序图;(2)计算它的环形复杂度;
startwhile 条件p do
语句awhile 条件q do
语句bif 条件r then
语句cendif
enddoenddo
语句estop
本题10分)
复杂度=e-n+2=10-8+2=4
四、银行计算机储蓄系统工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或**号码、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并打印利息清单给储户。画出系统的数据流图,并用实体-联系图描绘系统中的数据对象。
(本题15分)
五、下面是一个程序的程序流程图(图7.18),提供以下测试用例,试在其中选择最少的测试用例分别实现语句覆盖、条件覆盖、条件组合覆盖和路径覆盖。
用例1:a=0,b=0,c=0;
用例2:a=0,b=1,c=1;
用例3:a=1,b=0,c=0;
用例4:a=1,b=1,c=0;
用例5:a=1,b=1,c=1。(本题10分)
1. 语句覆盖:2,5
2. 条件覆盖:3,5
3. 条件组合覆盖:1,5
4. 路径覆盖:1,2,4,5
六、复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描述复印机的行为。
(本题10分)
高级软件工程
人人网 测试分析报告。编写测试文档的目的是验证人人网的正确性 可移植性 健壮性 可修改性,为了人人网含有更少的错误,方便以后维护 调试,使 运行的更加稳定,让用户能使用一个满意 稳定 不易出问题的 制定本测试说明文档,预期的读者包含会使用人人网的人员。通过对 的测试,找出其中的bug,对 进行修改和...
高级软件工程
一 判断 每题1分 1 如果绝对将soft完全包给第三方公司开发。错 不可能,因为第三方不清楚要做什么。2 有3项目标大概了解便可以开发,写程序。错 还没极限图,没有需求 2个极限包括极限编程的思想和传统软件工程思想 3 成功的软件项目,可执行的程序是唯一的交付。错 软件 programe date...
高级软件工程
姓名 刘自强 班级 信息18班 学号 2014517 1.模式定义。软件模式分为三大类 创建型模式 creational pattren 结构型模式 structural patterm 和行为型模式 beh ioral pattern 都是用于解决软件设计开发上的特定问题。本文主要结合面向对象程序...