软件工程期末复习试卷
《软件工程》期末试卷(3套含答案)
《软件工程》期末试卷(一)(满分100分)考试时间:120分钟(可根据具体情况适当调整)1.单项选择题(每题2分,共20分)(1)以下哪一项不属于软件工程三要素()。
A.过程B. 方法C. 工具D. 计划(2)以下哪一项不属于软件管理过程()。
A. ISO9000B. CMMC. IEEED. 软件企业文化(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. 包含关系、扩展关系2.填空题(每题2分,共20分)(1)需求分析员参与客户需求调研,撰写________________。
(2)_______________是软件策划的核心、重点与难点。
(3)软件由程序、数据和______________组成。
(4)______________是软件设计的基础,______________是软件开发的核心。
(5)需求分析分为两个阶段,_______________阶段和需求规约阶段。
(6)对象图的组成元素包括对象和______________。
《软件工程》期末复习题及答案
《软件工程》期末复习题及答案1.运用所掌握的知识,通过抽象,给出该系统的结构,这就是A.系统建模B.软件开发C.问题求解D.验证确认3.结构化分析方法给出了一种能表达功能模型的工具是()。
A.HIP0图 B.PAD图 C.N-S图 D.DFD图7.在某大学学生学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是()。
A.可划分为2个有效等价类,2个无效等价类B.可划分为1个有效等价类,2个无效等价类C.可划分为2个有效等价类,1个无效等价类D.可划分为1个有效等价类,1个无效等价类10.是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;继承是指子类可以自动拥有父类的全部属性和服务;()是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。
A.继承B.多态C.消息D.封装11.分层DFD中父子平衡是指()。
A.父加工的数据流数目与子图中数据流数目相同B.父图应包含子图中的全部数据流C.子图应包含父图中的全部数据流D.父加工和子图的输入数据和输出数据应分别保持一致2.在建模过程中,可用以描述加工的工具是()。
A.数据流 B.判定树 C.数据字典 D.数据存储13.以下软件生存周期的活动中,要进行软件结构设计的是()。
A.测试用例设计 B.概要设计C.程序设计 D.详细设计16.CMMI 成熟度等级中的第四级为()。
A.已定义级B.已定量管理级C.持续优化级D.已重复17.以下选项中,最适合于用交互式计算机软件解决的问题是()。
A.非结构化决策问题B.半结构化决策问题C.结构化决策问题D.确定性问题18.系统测试是将软件系统与硬件、外设和网络等其他因素结合,对整个软件系统进行测试。
不是系统测试的内容()。
A.路径测试 B.可靠性测试 C.安装测试 D.安全测试19.项目管理工具中,将网络方法用于工作计划安排的评审和检查的是()。
软件工程期末复习试卷
《软件工程》试题一、从供选择的答案中选出应填入下列叙述中()内的正确答案。
软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可能( A 3 )。
三种可能的模块耦合是:( B 5 ),例如,一个模块直接引用另一个模块中的数据。
( C 6 ),例如,一个模块把开关量作为参数传送给另一个模块。
( D 1 ),例如,一个模块通过公共数据结构把数据传送给另一个模块。
其中, ( E 5 )的耦合性最强。
【供选择的答案】A:①强②适中③弱B~E:①公共耦合②数据耦合③逻辑耦合④外部耦合⑤内容耦合⑥控制耦合二、为高质量地开发软件项目,在软件结构设计时必须遵循(A3 )的原则,(B2 )建立软件系统的模块结构。
并且应根据( C 3 )评价系统模块划分的质量。
此外在模块设计时,应从5种基本的(D5 )出发,利用它们组合成一个模块的程序块结构。
要求每个(E1 )的结构应是单入口和单出口。
【供选择的答案】A:①质量控制②程序优化③信息隐蔽④数据共享⑤模块通信B:①自底向上②自顶向下③衍变的自顶向下④随机⑤回归C:①数据独立性②程序独立性③模块独立性④可修改性⑤可理解性D:①数据结构②处理结构③功能结构④成份⑤控制结构E:①程序块②公共块③数据块④记录块⑤通信块三、从下列叙述中选出5条关于好的程序设计风格的正确叙述。
(在对的前面打√)(1) 使用括号以改善表达式的清晰性。
x(2) 对递归定义的数据结构不要使用递归过程。
x(3) 尽可能对程序代码进行优化。
v(4) 不要修补不好的程序, 要重新写。
v(5) 不要进行浮点数的相等比较。
v(6) 应尽可能多地输出中间结果。
x(7) 利用数据类型对数据值进行防范。
v(8) 用计数方法而不是用文件结束符或输入序列结束符来判别输入的结束。
x(9) 程序中的注释是可有可无的。
x(10) 使用有意义的标识符。
v四、从下列叙述中选出5条关于软件测试的正确叙述。
(在对的前面打√)(1) 为了使得软件容易测试, 应该使用高级的程序设计语言编制程序。
软件工程期末试题(含答案)
一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试和运行和维护。
2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。
3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方案可行性等方面研究。
4.系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文件。
6.结构化分析方法是面向_数据流_进行需求分析的方法。
结构化分析方法使用_数据流图DFD_与_数据字典_来描述。
7.继承性是自动地共享类、子类和对象中的方法和数据的机制。
8.软件详细设计工具可分为3类,即_图示工具_、_设计语言_和_表格工具_。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___测试_。
10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。
二、单项选择题(每小题2分,共20分)1.软件设计中划分模块的一个准则是(C )。
A、低内聚低耦合 B.低内聚高耦合C.高内聚低耦合 D.高内聚高耦合2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。
A、对象 B.数据流 C.数据结构 D.控制结构3.试判断下列叙述中,哪个(些)是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.( A )是用户和设计交换最频繁的方法。
A、原型化方法B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )。
软件工程期末考试参考题及答案
一、填空题(每空1分, 共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件旳功能进行划分, 软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究重要集中在如下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.顾客界面旳可使用性是顾客界面设计最重要旳也是最基本旳目旳。
5.常见旳软件概要设计措施有3大类: 以数据流图为基础构造模块构造旳___构造化设计措施_________, 以数据构造为基础构造模块旳__jackson措施__________, 以对象、类、继承和通信为基础旳__面向对象设计措施__________。
6.__数据流图________和__数据字典___共同构成系统旳逻辑模型。
7.软件测试旳措施有__分析措施________和___非分析措施_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主, ___黑盒______测试为辅。
9.成本估计措施重要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
二、单项选择题(每题2分, 共10分)1.下列哪个阶段不属于软件生存周期旳三大阶段( C )。
A.计划阶段B.开发阶段2. C.编码阶段 D.维护阶段3.需求分析是(A )。
A. 软件开发工作旳基础B. 软件生存周期旳开始C. 由系统分析员单独完毕旳D. 由顾客自己单独完毕旳原型化措施是软件开发中一类常用旳措施, 它与构造化措施相比较, 更需要( B )。
A. 明确旳需求定义B.完整旳生命周期C、较长旳开发时间D、纯熟旳开发人员软件维护时, 对测试阶段未发现旳错误进行测试、诊断、定位、纠错, 直至修改旳回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、防止性维护一般说来, 投入运行旳软件系统中有错误(A )。
《软件工程》期末复习题及答案
《软件工程》期末复习题及答案一、单项选择题(本大题共60小题,在每小题的四个备选答案中,选出一个正确答案,并将正确答案填涂在答题卡上)1. 软件危机产生的主要原因是 A 。
A.软件日益庞大B.不能与用户良好地沟通C.开发人员编写程序能力差D.没有适应的开发模型2.软件工程的发展不包括以下那个阶段 B 。
A.传统软件工程阶段B.自主化开发阶段C.过程软件工程阶段D.构件软件工程阶段3. 现代软件工程研究的内容不包括 D 。
A.软件开发模型B.软件开发方法C.软件支持过程D.软件开发质量4.以下哪个软件生存周期模型是一种风险驱动的模型 C 。
A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型5.软件的开发方法不包括 C 。
A.结构化开发方法B.面向对象开发方法C.面向管理的开发方法D. 面向数据结构的开发方法6.软件生存周期中,准确地确定软件系统必须做什么的阶段是 B 。
A.可行性分析和项目开发计划 B.需求分析 C.概要设计D.详细设计7. 需求分析中开发人员要从用户那里了解 A 。
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模8. 结构化分析建立功能模型的工具是 A 。
A.DFDB.判定树/判定表C.SCD.结构化语言9. 数据词典是对数据定义信息的集合,它所定义的对象都包含于 B 。
A.数据流图B.程序框图C.软件结构D.方框图10.用于描述结构化分析中数据流加工逻辑的是 A 。
A.判定 B.ER图 C.状态 D.用例图11.下列几种耦合类型,耦合性最高的是 A 。
A.公共耦 B.控制耦合 C.标记耦 D.数据耦合12. 通信内聚是指 B 。
A. 把需要同时执行的动作组合在一起形成的模块 B各处理使用相同的输入数据或者产生相同的输出数据C一个模块中各个处理元素都密切相关于同一功能且必须顺序执行 D模块内所有元素共同完成一个功能,缺一不可13.模块 B 定义为受该模块内一个判定影响的所有模块集合。
软件工程期末试题(含答案)
软件工程期末试题(含答案)软件工程期末试题(含答案)1. 选择题(1) 在软件开发过程中,以下哪个活动是与需求分析相关的?A. 代码编写B. 测试C. 需求验证D. 项目规划答案:C(2) 在敏捷开发方法中,以下哪个原则强调“面对面交流”?A. 个体和交互高于工具和过程B. 客户合作高于合同谈判C. 可以交付的软件高于详尽的文档D. 响应变化高于遵循计划答案:A2. 简答题(1) 简述软件开发生命周期的阶段及每个阶段的主要任务。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护阶段。
需求分析阶段的主要任务是收集用户需求、进行需求分析和规格说明;设计阶段的主要任务是根据需求进行软件的整体架构设计、模块设计等;编码阶段的主要任务是根据设计文档进行程序代码的编写;测试阶段的主要任务是对软件进行功能、性能、兼容性等各方面的测试;维护阶段的主要任务是修复软件中的缺陷、升级功能等。
(2) 什么是软件需求?简述软件需求分析的过程。
答案:软件需求是对软件系统的功能、性能、接口、约束和设计约束条件的描述。
软件需求分析是指对软件需求进行识别、获取、明确和规格说明的过程。
其过程包括以下几个步骤:a. 需求获取:通过与用户交流、收集现有文档等方式,获取软件需求相关的信息;b. 需求分析:对获取的软件需求进行整理和分类,识别出需求之间的关联和依赖关系;c. 需求明确:明确每个需求的具体含义,确保需求描述准确清晰;d. 需求规格说明:将明确的需求进行形式化的规格说明,以便后续的设计和开发工作。
3. 论述题软件开发中的版本控制是一项重要的技术,它可以有效地管理和追踪软件代码的变化,并协同开发者之间的合作。
请简要讨论软件版本控制的几种常见方式及其优缺点。
答案:常见的软件版本控制方式包括本地版本控制、集中式版本控制和分布式版本控制。
每种方式都有其优缺点:a. 本地版本控制:通过在本地维护一份完整的代码仓库,实现对代码的版本控制。
软件工程期末试卷10套(带答案)
软件工程期末试卷10套(带答案)软件工程期末试题(一)单项选择题1.瀑布模型的存在问题是(B)A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是(B)A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记4.在SD方法中全面指导模块划分的最重要的原则是(D)A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性5.软件测试的目的是(B)。
A.评价软件的质量B.发现软件的错误C.找出软件的所有错误D.证明软件是正确的6.在设计测试用例时,(A)是用得最多的一种黑盒测试方法。
A.等价类划分B.边界值分析C.因果图D.判定表7.需求分析最终结果是产生(B)。
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告8.Jackson图中,模块框之间若有直线连接,表示它们之间存在(B)。
A.调用关系B.组成关系C.链接关系D.顺序执行关系9.软件详细设计的主要任务是确定每个模块的(C)。
A.功能B.外部接口C.算法和使用的数据结构D.编程10.为了提高软件的可维护性,在编码阶段应注意(D)A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格11.设年利率为i,现存入p元,若计复利,n年后可得钱数为(B)A.p﹡(1+i﹡n) B.p﹡(i+1)nC.p﹡(1+i)﹡n D.p﹡(i+n)12.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(A)。
A.状态图B.数据流图C.系统结构图D.时序图13.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
《软件工程》期末考试试卷附答案
《软件工程》期末考试试卷附答案一、选择题(每小题3分,共10小题,共30分)1. 软件需求规格说明的内容不应包括()。
A.主要功能B.算法的详细描述C.用户界面及运行环境D.软件的性能2. 程序的三种基本控制结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、迭代和回溯D.调用、返回和转移3. 在E-R模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、操作4.软件测试的目标是()。
A.证明软件是正确的B.发现错误、降低错误带来的风险C.排除软件中所有的错误D.与软件调试相同5.软件是()。
A.处理对象和处理规则的描述B.程序C.程序及其文档D.计算机系统6. <!--[endif]-->面向对象的分析方法主要是建立三类模型,即()。
A.系统模型、ER模型、应用模型B.对象模型、动态模型、应用模型C.E-R模型、对象模型、功能模型D.对象模型、动态模型、功能模型7. <!--[endif]-->各种软件维护的类型中最重要的是( )。
A.完善性维护B.纠错性维护C.适应性维护D.预防性维护8.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法9.在软件开发模型中,提出最早,应用最广泛的模型是()A,瀑布B,螺旋C,演化D,智能10.软件工程方法是在实践中不断发展着的,而早期的软件工程方法一般是()A,原型化方法B,结构化方法C,面向对象方法D,功能分解法二、判断题(每小题3分,共10小题,共30分)()1、开发软件就是编写程序。
()2、系统测试的主要方法是白盒法和黑盒法。
()3、编程序时应尽可能利用硬件特点以提高程序效率.()4、软件需求分析的任务是建立软件模块结构图。
软件工程期末考试题[含答案解析]
软件工程期末考试题[含答案解析]一、选择题1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。
( C ),A .详细计划B .可行性分析C .运行阶段 D.测试与排错2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A )A .需求分析阶段B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段,3.软件工程的出现主要是由于(C ) ,A.程序设计方法学的影响B.其它工程科学的影响C.软件危机的出现D.计算机的发展,4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C)A.硬件环境B.软件开发的环境C.软件开发工具和软件开发的环境D.开发人员的素质5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A.相互排斥B相互补充C独立使用 D.交替使用6.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A.基于瀑布模型的结构化方法B.基于需求动态定义的原型化方法C.基于对象的面向对象的方法 D.基于数据的数据流开发方法7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A.结构化方法B原型化方法C面向对象的方法 D.控制流方法8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A.控制流 B.数据流 C.程序流 D.指令流9.软件开发的结构化生命周期方法将软件生命周期划分成(A)A.计划阶段.开发阶段.运行阶段B.计划阶段.编程阶段.测试阶段C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段11.适合于面向对象方法学的软件生存周期模型是(B)A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型12.从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大的是(C)A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段13.从实用角度看,数据规范化在大多数场合选用第____范式。
软件工程期末考试试题
软件工程期末考试试题一、选择题(每题2分,共20分)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. 状态图二、简答题(每题10分,共30分)1. 解释什么是软件危机,并简述其产生的原因。
2. 描述软件开发生命周期(SDLC)的主要阶段。
3. 解释什么是软件架构,并简述其在软件开发中的作用。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的项目经理,你的团队正在开发一个电子商务网站。
请描述你将如何使用敏捷开发方法来管理这个项目,并列出至少三个关键的敏捷实践。
2. 给定一个场景:一个软件产品在发布后发现存在性能问题,用户报告响应时间缓慢。
作为软件工程师,你需要设计一个性能测试计划来诊断问题。
请列出你的测试计划的主要步骤,并解释你将如何使用这些步骤来识别和解决问题。
四、案例分析题(共30分)阅读以下案例,并回答相关问题:某软件公司开发了一个在线预订系统,但在用户使用过程中频繁出现系统崩溃的问题。
经过初步调查,开发团队怀疑是数据库连接问题。
请分析可能的原因,并提出解决方案。
请根据上述案例,回答以下问题:1. 系统崩溃可能与哪些数据库连接问题有关?2. 如何设计测试来验证这些假设?3. 如果测试结果证实了问题,你将如何优化数据库连接以提高系统稳定性?。
软件工程期末试卷(十套含答案)
软件工程期末试卷(十套含答案)一、选择题(每题1分,共5分)A. 方法论B. 工具C. 过程D. 人员2. 下列哪一项不是软件生命周期的阶段?A. 需求分析B. 设计C. 编码D. 销售与市场A. 瀑布模型B. 喷泉模型C. 增量模型D. 敏捷模型4. 下列哪种方法不是软件需求获取的方法?A. 问卷调查B. 访谈C. 观察D. 编码A. 单一职责原则B. 开放封闭原则C. 里氏替换原则D. 依赖倒置原则二、判断题(每题1分,共5分)1. 软件工程的目标是生产出高质量的软件产品。
(√/×)2. 在软件开发过程中,需求分析阶段是最重要的阶段。
(√/×)3. 软件开发模型只有瀑布模型和喷泉模型两种。
(√/×)4. 在面向对象方法中,类是现实世界中实体的抽象。
(√/×)5. 软件测试的目的是证明软件的正确性。
(√/×)三、填空题(每题1分,共5分)1. 软件工程的三要素包括方法论、工具和______。
2. 软件生命周期包括需求分析、设计、编码、测试和______。
3. 在面向对象方法中,对象是现实世界中实体的______。
4. 软件开发模型包括瀑布模型、喷泉模型、增量模型和______。
5. 软件测试的目的是发现软件中的______。
四、简答题(每题2分,共10分)1. 简述软件工程的目标。
2. 简述软件生命周期的阶段。
3. 简述面向对象方法的基本概念。
4. 简述软件开发模型的作用。
5. 简述软件测试的目的。
五、应用题(每题2分,共10分)1. 假设你是一个软件开发人员,你需要为一个图书馆开发一个图书管理系统。
请列出该系统的需求。
2. 请解释瀑布模型和喷泉模型的区别。
3. 请解释面向对象方法中的继承和多态的概念。
4. 请解释软件测试中的黑盒测试和白盒测试的区别。
5. 请解释软件维护的类型。
六、分析题(每题5分,共10分)1. 假设你是一个软件开发人员,你需要为一个在线购物网站开发一个支付系统。
软件工程基础期末试题及答案
软件工程基础期末试题及答案一、选择题 (每题2分,共20分)1. 软件工程的主要目标是( )。
A. 提高软件的质量B. 降低软件的开发成本C. 提高软件的开发效率D. 以上都对答案:D2. 下列哪个不是软件工程的基本活动?A. 软件规格B. 软件设计和实现C. 软件验证D. 软件评估答案:D3. 下列哪个不是软件工程的关键过程?A. 需求分析B. 软件设计C. 软件测试D. 代码审查答案:D4. 下列哪个不是软件工程的核心思想?A. 规范性B. 可维护性C. 可靠性D. 高效性答案:D5. 在软件开发过程中,需求分析的目的是( )。
A. 确定软件的功能和性能要求B. 确定软件的架构和设计C. 确定软件的开发方法和工具D. 确定软件的测试策略答案:A6. 下列哪个不是需求分析的主要任务?A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的开发需求答案:D7. 下列哪个不是软件设计的主要任务?A. 确定软件的架构B. 确定软件的模块划分C. 确定软件的数据结构D. 确定软件的开发计划答案:D8. 下列哪个不是软件设计的重要考虑因素?A. 软件的可扩展性B. 软件的可维护性C. 软件的可靠性D. 软件的性能答案:D9. 下列哪个不是软件测试的主要目的?A. 发现和修复软件缺陷B. 验证软件的功能和性能是否符合需求C. 评估软件的质量和可靠性D. 提高软件的开发效率答案:D10. 下列哪个不是软件测试的主要方法?A. 黑盒测试B. 白盒测试C. 静态测试D. 代码审查答案:D二、填空题 (每题2分,共20分)1. 软件工程是一种应用系统工程的方法和工具,以规范化的、可量化的和可控制的方式开发和维护软件的工程学科,其基本目标是以$$______$$的方式开发和维护软件,以提高软件的质量、降低软件的开发成本和提高软件的开发效率。
答案:工程化2. 软件工程的核心思想可以概括为规范化、$$______$$、可维护性和可靠性,其中规范化是软件工程的基础,可维护性是软件工程的重要目标,可扩展性是软件工程的关键。
软件工程期末考试试卷附答案
软件工程期末考试试卷附答案一. 选择题(每题4分,共30题,总分120分)1. 软件工程的目标是什么?A. 提高软件开发效率和质量B. 实现软件系统的功能需求C. 加快软件产品的上市时间D. 增加软件系统的用户体验答案:A2. 软件生命周期模型有哪些?A. 瀑布模型B. 原型模型C. 敏捷开发模型D. 螺旋模型答案:A、B、C、D3. 在软件工程中,需求工程的任务是什么?A. 收集用户需求B. 分析用户需求C. 规划需求开发过程D. 验证和确认需求答案:A、B、C、D4. 软件配置管理是指什么?A. 管理软件的需求变更B. 管理软件的源代码C. 管理软件的版本迭代D. 管理软件的错误修复答案:B、C、D5. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 提高软件的可靠性和质量D. 减少软件开发时间和成本答案:A、B、C6. 软件维护是指什么?A. 修复发现的软件错误B. 优化软件的性能和效率C. 更新软件的功能和特性D. 软件系统的日常管理和支持答案:A、B、C、D7. 软件风险管理包括哪些活动?A. 风险识别和评估B. 风险规避和转移C. 风险监控和控制D. 风险应对和应急处理答案:A、B、C、D8. 软件工程的核心原则是什么?A. 解释性和可行性原则B. 详细性和可测性原则C. 可维护性和可扩展性原则D. 可重复性和可验证性原则答案:B、C、D9. UML(统一建模语言)是用来做什么的?A. 描绘软件系统的静态结构B. 描述软件系统的行为和交互C. 绘制软件系统的数据流程D. 显示软件系统的部署结构答案:A、B、C、D10. 软件工程中的项目管理包括哪些主要过程?A. 项目计划和进度管理B. 项目风险和质量管理C. 项目需求和配置管理D. 项目团队和沟通管理答案:A、B、C、D11. 软件度量是用来做什么的?A. 评估软件产品的质量B. 监控软件开发的进展C. 改进和优化软件工艺D. 比较不同软件的性能答案:A、B、C、D12. 软件工程的伦理问题包括什么?A. 知识产权和版权问题B. 用户隐私和数据保护C. 软件安全和漏洞利用D. 职业道德和责任意识答案:A、B、C、D13. 什么是软件工程的标准?A. 是评估软件工程管理的指标B. 是规定软件开发流程的指南C. 是实现软件质量保证的方法D. 是确保软件安全性的基准答案:B、C14. 软件工程中的团队协作有哪些挑战?A. 沟通和协调不畅B. 人员技能和素质不匹配C. 资源和时间的约束D. 对项目目标和需求理解不一致答案:A、B、C、D15. 关于软件工程的学科范畴,下列说法正确的是:A. 软件工程包括软件开发过程的实施和管理B. 软件工程仅关注软件开发阶段C. 软件工程只涉及编程和代码实现D. 软件工程不包括对用户需求的研究答案:A二. 简答题(每题10分,共5题,总分50分)1. 什么是软件工程?软件工程的基本原理和方法有哪些?答案:软件工程是将工程学原理和方法应用于软件开发的学科,旨在提高软件开发的效率和质量。
《软件工程》期末考试复习题及参考答案
软件工程复习题(课程代码252258)一、填空题(本大题共60小题)1.数据项是指__不可再分解的___数据单元。
2.软件概要设计的主要任务就是___软件结构的设计___。
3.软件维护的内容包括校正性维持,适应性维护、____完善性维护_____和预防性维护。
4.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和___数据存储对象___。
5.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。
6.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
7.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
8.软件结构是以模块为基础而组成的一种控制层次结构。
9.在结构化分析中,用于描述加工逻辑的主要工具有结构化语言、判定表和判定表三种。
10.软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
11.PDL是一种介于___自然语言___和形式化语言之间的半形式化语言。
12.从软件的功能角度划分,协助用户开发软件的工具性软件称为_支撑__软件13.消除软件结构中高扇入扇出的做法是______增加中间层次的控制模块_____。
14.如果一个软件系统的全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是____完全因子分解_____的系统。
15.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其__规格___就能照原样工作的特性。
16.为满足用户对软件提出的新的要求而对软件进行扩充、改进的维护称为____完善性__维护。
17.将整个软件划分成若干单独命名和可编址的部分,称之为___模块___。
18.软件需求的____物理视图_____给出处理功能和数据结构的实际表示形式。
19.在面向对象的开发技术中,__类___是一组具有相同数据结构和相同操作的对象的集合。
软件工程(期末试题及答案)
软件工程霄末试题及答案)软件工程佴末试题及答案)一、选择题(共20题,每题2分,共40分)1. 在软件工程中,以下哪一项不是七大工程()。
A.软件需求B.软件设计C.软件开发D.软件维护答案:D2.软件需求分析的目的是()。
A.理解用户需求B.设计软件架构C.编写用户手册D.测试软件功能答案:A3软件开发过程中的迭代模型,不存在的是()。
A.瀑布模型B.敏捷开发模型C.螺旋模型D.喷泉模型答案:D4.以下哪个不是软件测试的目的()。
A.发现错误和缺陷B.验证软件是否满足需求C.评估软件的可靠性和质量D.优化软件的性能答案:D5.软件项目管理中,以下哪种方法适用于大型复杂项目()。
A.瀑布模型B.敏捷开发C.增量模型D螺旋模型答案:D6软件开发生命周期中,以下哪个过程不属于()。
A. 需求分析过程B. 设计过程C. 编码过程D. 运维过程答案:D7. 在软件工程中,什么是软件测试()。
A. 软件开发的最后阶段B. 发现软件缺陷的过程C. 确保软件质量的控制过程D. 软件最终验收的流程答案:C8. 以下哪种测试方法旨在评估软件在不同负载下的性能和稳定性()。
A. 单元测试B. 集成测试C系统测试D. 性能测试答案:D9.软件开发中,以下哪个活动不属于软件配置管理()。
A.版本控制B.配置变更控制C.缺陷管理D.代码评审答案:D10.以下哪个是敏捷开发的基本原则()。
A.面对面交流胜过文档B.完全按照计划进行C.精确的需求分析是关键D.严格的变更控制是必要的答案:A11.下列哪个不属于软件配置管理的内容()。
A.变更控制B.版本控制C.缺陷管理D.运维管理12. 软件的可靠性是指()。
A. 软件是否能正常运行B. 软件是否符合用户需求C. 软件运行期间不出现故障的能力D. 软件功能的完善程度答案:C13. 下列哪个不属于软件开发的7大原则()。
A. 开放封闭原则B. 依赖倒置原则C. 单一职责原则D. 模块化编程原则答案:D14. 软件过程改进的指导框架是()。
软件工程期末试卷(十套含问题详解)
软件工程期末试题(一)单项选择题1.瀑布模型的存在问题是(B )A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程B.软件周期C.软件危机D.软件产生3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是( B )A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记4.在SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性5.软件测试的目的是( B )。
A.评价软件的质量 B. 发现软件的错误C.找出软件的所有错误 D. 证明软件是正确的6.在设计测试用例时,( A )是用得最多的一种黑盒测试方法。
A.等价类划分 B. 边界值分析 C. 因果图 D. 判定表7. 需求分析最终结果是产生( B )。
A. 项目开发计划B. 需求规格说明书C. 设计说明书D. 可行性分析报告8. Jackson图中,模块框之间若有直线连接,表示它们之间存在(B )。
A. 调用关系B. 组成关系C. 链接关系D. 顺序执行关系9. 软件详细设计的主要任务是确定每个模块的( C )。
A. 功能B. 外部接口C. 算法和使用的数据结构D. 编程10.为了提高软件的可维护性,在编码阶段应注意( D )A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格11.设年利率为i,现存入p元,若计复利,n年后可得钱数为(B)A.p﹡(1+i﹡n) B.p﹡(i+1)nC.p﹡(1+i)﹡n D.p﹡(i+n)12.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(A )。
A .状态图 B. 数据流图 C. 系统结构图 D. 时序图13. 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。
软件工程 期末考试题(含答案)
软件工程期末考试题(含答案)软件工程期末考试题(含答案)一、选择题1. 在软件项目管理中,以下哪个阶段不属于软件开发的基本阶段?A. 需求分析阶段B. 设计阶段C. 开发阶段D. 测试阶段答案:D2. “面向对象”是一种软件系统开发的基本方法论,以下哪个不属于面向对象的特点?A. 封装性B. 继承性C. 多态性D. 并发性答案:D3. 软件开发过程中,以下哪个模型不属于常见的软件开发模型?A. 瀑布模型B. 敏捷模型C. 增量模型D. 螺旋模型答案:D4. 在软件测试中,以下哪个不属于黑箱测试方法?A. 等价类划分测试B. 边界值测试C. 功能性测试D. 白盒测试答案:D二、简答题1. 请简述软件工程的定义和目标。
软件工程是研究和应用工程原理、方法和工具,以开发、维护和管理软件系统的工程学科。
其目标是提高软件开发效率、软件质量和软件项目管理能力,以满足用户的需求。
2. 什么是软件需求工程?请简要阐述软件需求工程的过程。
软件需求工程是指在软件开发过程中,通过系统化的方法和工具,对用户需求进行获取、分析、定义和规格化的过程。
软件需求工程的过程包括以下几个步骤:1) 需求获取:通过与用户沟通、分析用户需求文档等方式,获取用户对软件系统的需求。
2) 需求分析:对获取的需求进行验证、整理和分类,识别出关键需求和优先级,并进行需求的可行性评估。
3) 需求定义:将需求进行详细而准确的描述,包括功能需求、性能需求、界面需求等。
4) 需求规格化:将需求转化为形式化的规格说明,包括用例图、状态图、数据流图等工具。
5) 需求验证:通过与用户或相关人员的确认,验证需求规格是否准确、完整和一致。
三、综合题某公司决定开发一个在线购物系统,你作为软件工程团队的负责人,请围绕该系统的需求分析、设计和测试等方面,给出相应的工作计划。
1. 需求分析阶段:(1) 与项目发起人进行需求讨论,明确系统的功能和性能需求,并进行需求分析和整理,编写需求文档。
软件工程期末复习题
软件工程期末复习题一、单选题(本大题共10小题,每小题2分,共20分)1.软件是一种( C ) A.物质产品 B.物理产品 C.逻辑产品 D.文档产品2.下列4个选项中,不属于软件危机表现的是( D ) A.开发的软件可靠性差 B.经费预算不断突破,完成时间一再拖延 C.开发的软件可维护性差 D.开发的软件规模庞大,结构复杂3.下列4个选项中,不属于软件危机原因的是:软件( D ) A.规模越来越大 B.结构越来越复杂 C.开发技术落后 D.用户素质不高4.软件产品的生产主要是( D ) A.生产 B.再生产 C.开发 D.研制5.软件工程是一门( C ) A.理论性学科 B.原理性学科 C.工程性学科D.心理性学科6.软件重用的单位是( A ) A.软件模块 B.性能 C.系统 D.功能7.软件工程着重于( C ) A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论8.软件工程中的“软件”是指( D ) A.程序 B.数据 C.文档 D.程序、数据及文档9.软件开发费用只占整个软件系统费用的( B ) A.1/2 B.1/3 C.1/4D.2/310.下列4种模型中,属于文档驱动的是(C ) A.喷泉模型 B.增量模型C.瀑布模型D.螺旋模型11.下列4种模型中,较为适合用于面向对象的开发方法的是( A ) A.喷泉模型 B.增量模型品 C.瀑布模型 D.螺旋模型12.下列4中方法中,属于面向数据结构的设计方法的是(C ) A. Booch方法 B. Coad方法 C. Jackson方法 D. SA方法13.下列4中方法中,属于面向数据流的分析方法的是( D ) A. Booch方法 B. Coad方法 C. Jackson方法 D. SA方法14.软件生存周期中时间最长的阶段是( B ) A.需求分析 B.概要设计C.测试D.维护15.一般而言,软件开发各阶段中,时间长、费用高、困难大的阶段是( D ) A.需求分析 B.详细设计 C.编码 D.测试16.解决“软件必须做什么”问题的阶段是( B ) A.可行性研究 B.需求分析 C.详细设计 D.编码17.下列工作中,不在需求分析阶段进行的是( B ) A.编写需求规格说明书 B.编写集成测试计划 C.编写用户手册初稿 D.修改完善软件开发计划18.下列工作中,不在需求分析阶段进行的是( B ) A.确定软件的功能需求 B.建立软件物理模型 C.导出软件逻辑模型 D.编写需求规格说明书19.需求分析的主要结果是( C ) A.项目开发计划 B.可行性分析报告C.需求规格说明书 D.设计说明书20.需求分析要解决的最重要的问题是( A ) A.要让软件做什么 B.要给软件提供哪些信息C.要求软件工作效率怎样D.要让该软件具有何种结构21.需求规格说明书的内容不应包括软件的( B ) A.主要功能与性能B.算法详细过程 C.用户界面 D.运行环境22.系统流程图用于描述待开发软件的(B ) A.结构系统 B.物理系统C.程序系统D.逻辑系统23.数据流图用于描述待开发软件的( B ) A.物理模型 B.逻辑模型 C.控制结构 D.数据结构24.DFD中的每个加工至少有( A ) A.一个输入流和一个输出流B.一个输入流或一个输出流 C.一个输入流 D.一个输出流25.分层DFD的顶层图描述了系统的( B ) A.细节 B.输入与输出 C.作者 D.绘制时间26.在DFD中,下列数据流中可以不命名的是( A ) A.处理与处理之间的数据流 B.处理与局部数据存储之间的数据流C.处理与数据源点之间的数据流D.处理与数据终点之间的数据流27.DFD中一般不画( A ) A.控制流 B.数据流 C.局部数据存储 D.外部实体28.在DFD中,箭头表示( A ) A.数据流 B.数据存储 C.数据处理 D.数据源点29.在DFD中,双杠表示( D ) A.数据处理 B.数据源点 C.数据流 D.数据存储30.父图与子图平衡指子图的输入、输出流同父图相应加工的输入、输出流( A ) A.必须一致 B.数目必须相等 C.名字必须相同 D.数目必须不等31.数据字典中一般不包括( D ) A.数据流条目B.数据存储条目C.加工条目 D.源点与终点条目32.关于DD的4类条目,不可再分解的最小元素是( B ) A.数据流条目 B.数据项条目 C.数据存储条目 D.加工条目33.表示“X由a或b组成”的DD定义式是(B ) A. X=a+b B. X=[a|b] C.X=a…b D. X=|a b|34.软件结构图上,一层中最大模块数称为该图的( C ) A.扇出 B.扇入C.宽度D.深度35.当一幅DFD中既有变换流又有事务流时,这就是一个( C ) A.变换型DFD B.事务型DFD C.综合型DFD D.分层DFD35.软件结构图上,一层中最大模块数称为该图的( C ) A.扇出 B.扇入C.宽度D.深度36.软件开发中结构化设计方法用于( B ) A.测试用例设计 B.概要设计 C.程序设计D.详细设计37.软件结构使用的图形工具,一般采用( C ) A.DFD图B.PAD图C.SC图D.ER图38.软件结构图中,模块框之间若有直线接,表示它们之间存在着(A )A.调用关系B.组成关系 C.连接关系 D.顺序执行关系39.下列工作中,不在概要设计进行的是( D ) A.划分模块B.确定模块功能 C.确定模块的接口 D.确定模块的算法40.为提高模块独立性,模块之间最好是(D ) A.公共耦合 B.控制耦合C.内容耦合D.数据耦合41.为提高模块独立性,模块内部最好是(C ) A.逻辑内聚 B.时间内聚C.功能内聚D.通信内聚42.在软件概要设计中,不使用的图形工具是( D ) A.SC图 B.IPO图C.IDEF图D.PAD图43.概要设计与详细设计衔接的图形工具是( B ) A.数据流图 B.结构图 C.程序流程图 D.PAD图44.软件概要设计结束后得到( B ) A.数据流图 B.结构图 C.程序流程图 D.PAD图45.划分模块时,一个模块的( A ) A.作用范围应在其控制范围内B.控制范围应在其作用范围内C.作用范围与控制范围互不包含D.作用范围与控制范围不受任何限制46.结构化程序设计主要强调程序的( C ) A.效率 B.执行速度 C.易读性 D.规模47.详细设计的任务是确定每个模块的( B ) A.外部特性 B.内部特性C.功能D.输入输出数据48.程序的三种基本控制结构是( B ) A.过程、子程序和分程序 B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移49.程序的三种基本控制结构的共同特点是( D ) A.不能嵌套使用 B.只能用来写简单程序C.已经用硬件实现D.单入口和单出口50.下列工作中不属于详细设计基本任务的是( D ) A.为模块内的数据结构进行设计B.对数据库进行物理设计C.为每个模块进行详细的算法设计D.为模块进行功能设计51.不属于详细描述处理过程常用的工具是( D ) A.图形B.表格C.语言 D.程序52.下列4图中不属于详细设计中描述处理过程的主要工具的是(D )A.PAD图B.IPO图 C.程序流程图 D.程序图53.结构化程序设计主要强调的是( A ) A.程序易读性 B.程序效率 C.程序规模 D.程序代码54.下列4图中支持结构化程序设计原理并可自动生成程序的是( D ) A.程序流程图B.工程网络图C.程序图D. PAD图55.下列结构中不属于Jackson结构图描述的基本结构的是( D ) A.顺序结构 B.选择结构 C.重复结构 D.组装结构56.结构化程序思想提出前程序设计中曾强调程序的效率,现在更重视程序的( D )A.效率B.安全性C.一致性D.可理解性57.源程序文档化要求在每个模块之前加序言性注释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程》试题一、从供选择的答案中选出应填入下列叙述中()内的正确答案。
软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可能( A 3 )。
三种可能的模块耦合是:( B 5 ),例如,一个模块直接引用另一个模块中的数据。
( C 6 ),例如,一个模块把开关量作为参数传送给另一个模块。
( D 1 ),例如,一个模块通过公共数据结构把数据传送给另一个模块。
其中, ( E 5 )的耦合性最强。
【供选择的答案】A:①强②适中③弱B~E:①公共耦合②数据耦合③逻辑耦合④外部耦合⑤内容耦合⑥控制耦合二、为高质量地开发软件项目,在软件结构设计时必须遵循(A3 )的原则,(B2 )建立软件系统的模块结构。
并且应根据( C 3 )评价系统模块划分的质量。
此外在模块设计时,应从5种基本的(D5 )出发,利用它们组合成一个模块的程序块结构。
要求每个(E1 )的结构应是单入口和单出口。
【供选择的答案】A:①质量控制②程序优化③信息隐蔽④数据共享⑤模块通信B:①自底向上②自顶向下③衍变的自顶向下④随机⑤回归C:①数据独立性②程序独立性③模块独立性④可修改性⑤可理解性D:①数据结构②处理结构③功能结构④成份⑤控制结构E:①程序块②公共块③数据块④记录块⑤通信块三、从下列叙述中选出5条关于好的程序设计风格的正确叙述。
(在对的前面打√)(1) 使用括号以改善表达式的清晰性。
x(2) 对递归定义的数据结构不要使用递归过程。
x(3) 尽可能对程序代码进行优化。
v(4) 不要修补不好的程序, 要重新写。
v(5) 不要进行浮点数的相等比较。
v(6) 应尽可能多地输出中间结果。
x(7) 利用数据类型对数据值进行防范。
v(8) 用计数方法而不是用文件结束符或输入序列结束符来判别输入的结束。
x(9) 程序中的注释是可有可无的。
x(10) 使用有意义的标识符。
v四、从下列叙述中选出5条关于软件测试的正确叙述。
(在对的前面打√)(1) 为了使得软件容易测试, 应该使用高级的程序设计语言编制程序。
v(2) 程序测试是一个程序的执行过程, 目的是为了发现软件中隐藏的错误。
v(3) 如果程序中连锁式连接了8个判定(IF)结构, 则程序中总的路径数达28 。
v(4) 白盒测试仅与程序的内部结构有关, 完全可以不考虑程序的功能要求。
x(5) 为了快速完成集成测试, 采用一次性集成方式是适宜的。
v(6) 对一批模块进行测试,发现错误多的模块中残留的错误将比其它的模块少。
v(7) 好的测试用例应能证明软件是正确的。
v(8) 边界值分析方法是取输入/输出等价类的边界值做为测试用例。
v(9) 等价类划分方法考虑了各等价类之间取值的组合情况下可能的结果。
v(10) 判定覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。
v五、从下列叙述中选出5条有利于软件可维护性的正确叙述。
(在对的前面打√)(1) 在进行需求分析时需同时考虑如何实现可维护性问题。
v(2) 完成测试作业后,为了缩短源程序的长度应删去程序中的注解。
x(3) 尽可能在软件生产过程中保证各阶段文档的正确性。
v(4) 编程时应尽可能使用全局变量。
x(5) 选择时间效率和空间效率尽可能高的算法。
v(6) 尽可能利用硬件的特点。
x(7) 重视程序结构的设计,使程序具有较好的层次结构。
v(8) 使用维护工具或支撑环境。
x(9) 在进行概要设计时应加强模块间的联系。
x(10) 提高程序的可读性,尽可能使用高级语言编写程序。
v(11) 为了加快软件维护作业的进度,应尽可能增加维护人员的数目。
x六、下面是一段用赛德尔迭代法求解线性方程组的程序。
其中A[n,n] 是方程组的系数矩阵, B[n]是方程组的右端项,X[n] 是方程组的解向量。
eps是控制迭代精度的较小实数。
imax是控制迭代的最大次数。
flag 是标志,=0,表示迭代不收敛;=1,表示迭代收敛。
for k := 1 to n do X[k] := 0.0;X[n] := 1.0;for i := 1 to imax dobegin flag := 1;for j := 1 to n tobegin s := B[j];for k := 1 to n dobeginif j =k then s := s + X[k];s := s-A[j, k] * X[k]end;if abs(X[j]-s) > (abs(s) + 1.0) * eps then flag := 0;X[j] := s;end;if flag =1 then goto L1;end;L1:(1) 试画出它的结构化的程序流程图。
(2) 将它改为N-S图。
(3) 计算它的McCabe环路复杂性。
七、下面是一趟插入排序的程序, 把R[i+1]插入到R[1..i]的适当位置R[0] = R[i + 1];j = i;while ( R[j] > R[0] ){ R[j + 1] = R[j];j = j -1; }R[j + 1] = R[0];用路径覆盖方法为它设计足够的测试用例(while循环次数为0次、1次、2次)。
八、阅读下列关于软件可靠性方面的叙述,回答问题1和问题2。
软件的可靠度可定义为:在假定输入和硬件不发生错误的前提下,对于给定的环境和给定的输入,在指定的时间内能完成规定任务的概率。
某软件中心的评测部为了评估已开发实现的应用软件ASP的可靠性,决定采用软件可靠性的错误播种模型来进行测试和评估。
评测部在评估时,作了下列三个假设:(1) 在测试前,单位长度的故障个数E T/ I T为一常数,此常数基本上落在一个固定的范围内。
其中I T为被测程序的长度(即机器指令条数),E T为被测程序中故障总数。
(2) 失效率正比于软件中剩余的(潜伏的)故障数,平均无故障时间MTTF与单位长度的剩余故障个数成反比,即MTTF = 1/(K*εr )。
其中εr 为单位长度剩余故障个数,K的典型值现取为200。
(3) 测试中发现的错误都得到了及时改正,在测试过程中没有引入新的错误。
评测部对ASP软件人为地植入了10个错误,即N S= 10,在开始测试的一小段时间内,发现了160个固有故障,即n = 160,又发现了植入的故障2个,即n S = 2,被测程序ASP的长度(机器指令条数)为105。
问题1:用故障播种(植入)的数学模型,估算出被测程序ASP的固有故障的个数N的值。
如果通过测试一段时间后,发现的固有错误个数为E D= 795时,请估算此程序的平均无故障时间MTTF值。
问题2:若要求把此MTTF再提高4倍,应至少再排除多少个固有错误? 请简要地列出有关计算式。
参考答案一、答案:A. ③ B.⑤ C. ⑥ D. ① E. ⑤二、答案:A. ③ B. ② C. ③ D. ⑤ E. ①三、答案:正确的叙述有:(1)、(4)、(5)、(7)、(10)说明:(1) 利用括号可以明确地规定表达式中各运算符的优先顺序,这样可以提供表达式运算的清晰性,因此是对的。
(4) 对于不好的程序,一是程序逻辑混乱以致理解困难,二是隐藏错误多,三是错误定位和修改容易出问题,所以修修补补,越补越糟,不如重新写。
(5) 浮点数的运算有其近似性,两个浮点数可能会非常接近但永远不会相等,所以做浮点数的相等比较可能不会有结果。
(7) 利用数据类型来检查数据值,这是静态分析的一种手段,叫做类型分析,因此是对的。
(10) 使用有意义的标识符,可以提高程序的可读性,因此是对的。
其它的叙述都不对。
(2) 对递归定义的数据结构,应当使用递归过程来解决基于这种数据结构的应用问题。
(3) 程序代码的优化工作应交给编译器来做,程序设计时应首先考虑程序代码的清晰性、简明性、可读性、正确性、以至于可维护性。
(6) 输出中间结果只是在调试程序时才有用,其它时候输出大量中间结果,不但浪费资源,而且给使用者造成麻烦。
(8) 从文件输入数据时,应当使用文件结束符来判断输入的结束,使用计数方法判断输入结束不一定是最佳方式。
(9) 程序中的注释是必须的,不是可有可无的。
四、答案:正确的叙述有:(1)、(2)、(3)、(4)、(8)。
说明:(1) 使用高级语言编写的程序模块化、结构化程度都比较好,可读性强,容易测试。
(2) 程序测试本身应当是一个程序的执行过程,而不是静态的逻辑分析,其目的是发现程序中潜藏的错误。
(3) 连锁式分支结构有n个判定,其路径数有2n条,因此当n = 8时程序中总的路径数有28条。
(4) 白盒测试基于程序的内部结构设计测试用例,可以不考虑程序的功能要求。
(8) 由于在等价类的边界上最容易出错,所以边界值分析方法选取输入∕输出等价类的边界值作为测试用例,可以有效地查错。
不正确的叙述,如(5) 采用一次性集成方式进行模块组装,往往成功的可能性低,而且出现错误时,不容易确定在什么地方出了问题,因此应采用增殖式集成方式,可以把出错的范围局限到少数模块中间。
(6) 测试的实践表明,对一批模块进行测试,发现错误多的模块中残留的错误也多,因此必需注意这一现象,弄清哪些模块问题发现得多,对这些模块重点测试。
(7) 好的测试用例是能够发现新错误的测试用例,发现不了问题的测试用例就不是好的测试用例,用它们做测试是浪费时间和金钱。
(9) 等价类划分法是选择输入等价类的代表值作为测试用例,而因果图法才是考虑了各等价类之间取值的组合情况及可能的结果来设计测试用例的。
(10) 语句覆盖法可能查不出在判定中逻辑运算符使用有误时产生的错误。
而判定覆盖法则可能查不出在判定中某些条件中关系运算符使用有误时产生的错误。
五、答案:正确的叙述有:(3)、(5)、(7)、(8)、(10)说明:(3) 尽可能在软件生产过程中保证各阶段文档的正确性,对于保证软件的可靠性、功能性等有相当大的作用,这样可减少用户提出维护请求的可能,即使要更新,工作的难度和工作量也会降低。
(5) 选择时间效率和空间效率尽可能高的算法,可以让编程者把注意力集中在提供程序的正确性、可理解性、可修改性、可测试性、可使用性等方面,从而提高可维护性,不必为追求效率而把程序编写得让人看不懂。
(7) 如果程序结构设计得较好,层次结构合理,在维护时理解程序和修改程序容易,不易出错。
(8) 使用维护工具或支撑环境可以大大降低维护的工作量。
(10) 用高级语言编写程序,易读易懂,可以提高可维护性。
不正确的叙述,如(1) 在需求分析时主要考虑软件要“做什么?”这一阶段对可维护性可以提出要求,要达到什么指标,而如何实现可维护性,是在设计和实现阶段考虑的问题。
(2) 在程序中加入注释,这是提高程序可读性,从而提高可维护性的重要手段,不能因为测试通过就删去它们。