软件工程《软件工程》习题集
软件工程《软件工程》习题集

软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( B )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想(A )A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( D )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于(B )(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4.常用的软件生存周期模型有瀑布模型和结构化模型。
()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
《软件工程》练习题

《软件工程》练习题一一、单选题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.后期13.从事物的属性侧面来描述事物的方法就是()的方法。
A.面向对象B.面向过程C.面向数据D.面向属性14.Jackson方法在需求分析阶段的主要步骤不包括()。
A.了解实体行为B.标识实体与行为C.生成实体结构图D.创建软件系统模型15.原型化方法是用户和设计者之间执行的一种交互构成,适用于()系统。
A.需求不确定性高的B.需求确定的C.管理信息D.实时16.原型化方法是一种()型的设计过程。
软件工程综合练习题

《软件工程》课程练习题第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。
A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。
A、SAB、SDC、SCD、CASE3、以下判断正确的是()。
A、所谓软件开发就是编写程序。
B、利用软件工程的思想,已成功的解决了软件危机。
C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。
D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。
4、_____是以提高软件质量为目的的技术活动。
A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。
B.CPU,存储器,控制器,I/O接口及设备。
C.计算机硬件系统和软件系统。
D.计算机及其应用系统。
8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。
B.软件设计对人的智商要求很高,也要求很高的资金投入。
C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。
D.软件很难理解,硬件也很复杂。
9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。
B.问题定义,可行性研究,需求分析。
C.可行性研究,需求分析,问题定义。
D.以上顺序都不对。
10、下列选项中()是软件开发中存在不正确的观念、方法。
A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。
2、一般软件应该有三部分组成:()、()和()。
3、按软件的功能可将软件分成()、()和()等三类。
软件工程习题集答案

软件工程习题集答案第一章《软件工程概述》作业答案一、名词解释1.软件软件是计算机程序以及开发、使用和维护程序所需要的所有文档。
软件是包括程序、数据及其相关文档的完整集合。
2.软件危机软件生产的进度、数量、质量、成本满足不了社会对软件的需求量和希望的现象,称为“软件危机”。
软件工程IEEE[IEE93]:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。
4.软件生存周期软件生存周期是指一个软件从提出开发要求开始直到不再使用(报废)为止的整个时期。
软件过程模型软件过程指为获得高质量软件所需要完成的一系列任务以及完成这些任务的工作步骤。
过程还规定了运用的方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施、任务完成的标志等。
软件过程模型也叫软件生存期模型、软件工程范型,是软件过程的一种抽象表示。
二、填空题1、在信息处理和计算机领域内,一般认为软件是程序、数据和文档的集合。
2、软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代,各时代的生产方式分别是个体、作方式和工程化。
3、软件生存周期的8个阶段分别是问题定义、可行性研究、需求分析、概要设计、详细设计、编码与模块测试、综合测试、维护。
4、软件工程是利用工程化的原理和方法来进行开发、维护和管理软件的一门学科。
5、描述软件开发过程中各种活动如何执行的模型称为软件过程模型。
6、瀑布模型不适应需求可变的软件开发,只有到最后才能见到整个软件系统。
7、软件产品的生产主要是研制,软件产品的成本主要体现在人力成本上。
8、软件工程面临的问题有软件费用、可靠性、可维护性、生产率。
三、单项选择题1、软件文档是( C )。
A.程序B.工具C.文书和资料D.数据2、软件是一种( B )性工业产品A.理论B.知识(或逻辑)C.消耗D.体力3、与计算机科学的理论研究不同,软件工程是一门( B )的学科。
《软件工程练习题及参考答案》

《软件工程练习题及参考答案》一、单向选择题(四选一、每小题3分,共18分)1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。
对应映射反映反射2、盒图也称为(D)或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序数据逻辑物理4、人机界面的风格大致经过了(B)代的演变。
三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档—一种数据媒体和其上所记录的(数据)。
2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性,指软件系统的时间和(空间)效率。
4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。
5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。
6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。
04027.一个软件的深度是指其控制的(层数)。
8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。
9.软件维护是软件生命周期的(最后)一个阶段。
三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
《软件工程》11套考试复习练习题、作业题(含答案)

作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程习题集

概论1.1 什么是软件软件是计算机系统中与硬件相互依存的另一部分,它包括程序,数据及相关文档的完整集合.1.2 软件的特点有哪些(1)软件是一种逻辑实体,而不是具体的物理实体.(2)软件是被开发的或被设计的,它没有明显的制造过程(3) 软件的使用没有硬件那样的机械磨损和老化问题,有着无备件特征(4) 软件的开发和运行常受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性.(5)软件的开发至今尚未完全实现自动化(6)软件是复杂的.(7)软件成本相当昂贵.(8)相当多的软件工作涉及到社会因素1.3 软件的分类,按其功能可分为:系统软件,支撑软件,和应用软件.1.4 软件的分类,按其规模可分为:(1)微型,(2)小型,(3)中型,(4)大型,(5)甚大型,(6)超大型. 1.5 什么是软件危机为什么会产生软件危机将来怎样消除软件危机软件危机是指计算机软件开发和维护过程中所遇到的一系列严重的问题。
这些问题不仅仅是不能正常运行的软件才具有的,实际上几乎所有软件都不同程度的存在这些问题。
1.6 软件生存周期指软件计划,需求分析,设计,程序编码,测试及运行维护.1.7 软件开发模型有瀑布模型(Waterfall Model),演化模型(Evolutional Model),螺旋模型(Spiral Model),喷泉模型(Water Fountain Model),智能模型(Intelligence Model).1.8 软件工程项目的基本目标是:(1)付出较低的开发成本;(2)达到要求的软件功能;(3)取得较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发工作,及时交互使用.1.9 什么叫软件工程.鲍姆(B.W.Boehom)曾为软件工程定义:"运用现代科学技术知识来设计并构造计算机程序及为开发,运行和维护这些程序所必需的相关文件资料".这里对"设计"一词应有广义的理解,它应包括软件的需求分析和对软件进行修改时所进行的再设计活动.1983年IEEE给出的定义为:"软件工程是开发,运行,维护和修复软件的系统方法".其中"软件"的定义为:计算机程序,方法,规则,相关的文档资料以及在计算机上运行时所需要的数据.费莱(Fairley)认为:"软件工程学是为了在成本限额以内按时完成开发任务和修改软件产品所需的系统生产和维护的技术和管理的学科".鲍威尔(Fritz Bauer):"建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法".1968年,在北大西洋公约组织(NATO)召开的计算机科学会议上,Fritz Bauer首先提出了"软件工程"的概念,试图建立并使用正确的工程方法开发出成本低,可靠性好并在机器上能高效运行的软件,从而解决或缓解软件危机.软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学,心理学,经济学,人机工程学等,所以,它是一门综合性的学科.1.10 软件工程三要素是:方法,工具,过程.2.1 计算机系统的元素可分为:(1)过程;(2)硬件;(3)软件;(4)人;(5)数据库;(6)文档.2.2 系统分析的目标是(1)识别用户要求;(2)评价系统的可行性;(3)进行经济分析和技术分析;(4)把功能分配给硬件,软件,人,数据库和其它系统元素;(5)建立成本和进度限制;(6)生成系统规格说明,消除所有后续工程的基础.2.3 系统分析过程,必须考虑哪八个方面的问题(1)所期望的功能和性能是什么(2)可靠性和质量问题是哪些(3)总的系统目标是什么(4)成本与进度限制如何(5)制造的需求是什么(6)市场与竞争情况怎样(7)有效的技术有哪些(8)将来可能有哪些扩充2.4 可行性研究主要包括哪几个方面可行性研究包括经济可行性,技术可行性,法律可行性和开发方案的选择性.经济可行性:进行成本效益分析,评估项目的开发成本,估算开发成本是否会超过项目预期的全部利润.分析系统开发对其它产品或利润的影响.技术可行性:根据客户提出的系统功能,性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性.法律可行性:研究在系统开发过程中可能涉及的各种合同,侵权,责任以及各种于法律相抵触的问题. 开发方案的选择性:提出并评价实现系统的各种看法方案.从中选出一种用于软件项目开发.2.5 技术可行性研究要考虑的情况包括:(1)开发的风险;(2)资源的有效性;(3)技术.2.6 可行性报告的内容主要包括哪几方面可行性研究目录:1.引言 A.问题 B.实现环境 C.约束条件2.管理 A.重要的发现 B.注解 C.建议 D.效果3.方案选择 A.选择系统配置 B.选择方案标准4.系统描述 A.缩写词 B.各子系统的可行性5.成本―效益分析6.技术风险评价7.有关法律问题8.其它2.7 系统规格说明文档的主要内容包括哪些(1)引言:文档的范围和目的,概述;目标;限制条件(2)功能和数据描述:系统结构(结构环境图(ACD);描述ACD)(3)子系统描述:对于子系统n的结构图描述:结构流程图(AFD);系统模块描述;性能问题;设计限制条件;系统部件的分配结构字典结构互连图及其描述(4)系统模型化和模拟结果:用于模拟的系统模型,模拟结果,特殊的性能问题.(5)项目问题:项目的开发成本,项目进度计划.2.8 系统定义的评审,其目的是要保证:(1)正确地定义了项目的范围;(2)恰当地定义了功能,性能和接口;(3)环境的分析和开发风险证明了系统是可行的;(4)开发人员与用户对系统的目标达成了共识.2.9 系统技术评审的评审内容包括哪些问题(1)系统的功能复杂性是否与开发风险,成本,进度的评估相一致(2)功能分配是否定义得足够详细(3)系统元素之间的接口,系统元素与环境的接口是否定义得足够详细(4)在规格说明中是否考虑了性能,可靠性和可维护性问题(5)系统规格说明是否为后续的硬件和软件工程步骤提供了足够的基础2.10 系统管理评审的范围应包括哪些比较关键的问题(1)是否已经建立了稳定的商业需求系统可行性是否合理(2)特定的环境(或市场)是否需要所描述的系统(3)考虑了哪些候选方案(4)每个系统元素的开发风险有哪些(5)资源对于系统的开发是有效的吗(6)成本与进度界限合理吗3.1 需求分析阶段的基本任务是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件其它有效的需求.3.2 请写出软件需求分析的基本原则:(1)必须能够表达和理解问题的数据域和功能域(2)必须按自顶向下,逐层分解的方式对问题进行分解和不断细化(3)要给出系统的逻辑视图和物理视图3.3 系统分析员应具备的素质是什么(1)能够熟练地掌握计算机硬,软件的专业知识,具有一定的系统开发经验.(2)善于进行抽象的思维和创造性的思维,善于把握抽象的概念,并把它们重新整理成为各种逻辑成分,并给出简明,清晰的描述.(3)善于从相互冲突或混淆的原始资料中抽取出恰当的条目来.(4)善于进行调查研究,能够很快学习用户的专业领域知识,理解用户的环境条件.(5)能够倾听他人的意见,注意发挥其他人员的作用.(6)具有良好的书面和口头交流表达能力.3.4 需求分析方法由数据驱动的.也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其它特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型.3.5 在软件原型化方法中,由于软件项目的特点和运行原型的目的不同,原型主要有哪三种不同的作用类型探索型,实验型和进化型.3.6 建立快速原型进行系统的分析和构造,好处有.(1)增进软件人员和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化.(2)原型化方法提供了一种有力的学习手段.(3)使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果.(4)软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统.3.7软件复用的范围基本上有五个层次:(1)复用数据;(2)复用模块;(3)复用结构;(4)复用设计;(5) 复用规格说明.3.8 软件复用技术可分为两大类合成技术和生成技术.3.9 请你描述一个软件项目的开发过程.3.10 有哪三种方式可将构件合成更大的构件连接,消息传递和继承,和管道机制.3.11 结构化的分析方法使用了哪几个工具数据流图,数据词典,结构化英语,判定表和判定树等.3.12 请画出数据流图的基本图形元素,并标明每个图形元素的意义.加工:输入数据在此进行变换产生输出数据,其中要注明加工的名字.数据输入的源点(Source)或数据输出的汇点(Sink):其中要注明源点或汇点的名字.数据流:被加工的数据与流向,箭头边应给出数据流名字,可用名词或名词性短语命名.数据存储文件:3.13 在数据词典中,数据流词条应有哪几项内容数据流名:说明:简要介绍作用即它产生的原因和结果数据流来源:来自何方数据流去向:去向何处数据流组成:数据结构每个数据量流通量:数据量,流通量3.14 在数据词典中数据文件词条应有哪几项内容数据文件名:简述:存放的是什么数据.输入数据:输出数据:数据文件的组成:数据结构存储方式:顺序,直接,关键码3.15 在数据词典中,加工逻辑词条主要描述哪几项内容.加工名:加工编号:反映该加工的层次简要描述:加工逻辑及功能简述输入数据流:输出数据流:加工逻辑:简述加工程序,加工顺序3.16 Warnier图表示数据层次结构的一种图形工具,它用来描述数据结构.3.17 写基本加工逻辑说明时,应满足哪些要求对数据图的每个基本加工,必须有一个加工逻辑说明;加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则;加工逻辑说明必须描述实现加工的策略而不是实现加工的细节3.18 目前用于描写加工逻辑说明的工具有结构化英语,判定表和判定树.3.19 请用Petri网解释系统出现死锁现象的主要原因.4.1 软件设计的主要任务是应用各种技术和原理,对设备,过程或系统做出足够详细的定义,使之能够在物理上得以实现 .4.2 软件设计一般分为概要设计和详细设计两个阶段.4.3 总体设计任务是要设计出总体结构和子模块之间的相互关系.4.4 详细设计阶段的任务是确定算法,数据结构,产生模块开发卷宗.4.5 请画出开发阶段的信息流图,并标明各阶段的名称及有关信息.开发阶段的信息流如图4.1所示.在设计步骤,根据用信息域表示的软件需求,以及功能和性能需求,采用某种设计方法进行数据设计,系统结构设计和过程设计.数据设计侧重于数据结构的定义.系统结构设计定义软件系统各主要成分之间的关系.过程设计则是把结构成分转换成软件的过程性描述.在编码步骤,根据这种过程性描述,生成源代码程序,然后通过测试最终得到有效的软件.4.6 软件设计是一个把需求变换成软件表示的过程.4.7 性能主要有四个指标,分别为:(1) 周转时间 ;(2) 响应时间 ;(3) 吞吐量 ;(4) 精度 .4.8 概要设计阶段完成之后,应该编写哪些文档概要设计说明书:给出系统目标,总体设计,数据设计,处理方式设计,运行设计,出错设计等.数据库设计说明书:给出所使用数据库简介,数据模式设计,物理设计等.用户手册:对需求分析阶段编写的初步的用户手册进行审订制定初步的测试计划:对测试的策略,方法和步骤提出明确的要求.4.9 请简要回答设计阶段需要完成的工作主要有:(1)制定规范;(2)软件系统结构的总体设计;(3)处理方式设计(4)数据结构设计(5)可靠性设计(6)编写概要设计阶段的文档(7)概要设计评审4.10 在详细设计过程中,需要完成的工作是:(1)确定软件各个组成部分内的算法以及各部分的内部数据组织;(2)选定某种过程的表达形式来描述各种算法;(3)进行详细设计的评审.4.11 软件设计的最终目标是:要取得最佳方案.4.12 软件的结构包括两部分,其一为程序模块的层次结构,其二为数据的结构.4.13 在软件设计中,为什么程序结构通常采用树状结构而不使用网状结构对于不加限制的网状结构,整个结构十分复杂,处理起来会引起许多麻烦,这与原来划分模块,为便于处理的意图相矛盾.4.14 结构图是精确表达程序结构的图形表示方法,它主要包括的内容有:(1)模块;(2)模块的调用关系和接口;(3)模块间的消息传递;(4)两个辅助符号;(5)结构图的形态特征.4.15 什么是结构图的深度和宽度在多层次的结构图中,其模块结构的层次数称为结构图的深度.结构图中同一层模块的最大模块数称为结构图的宽度.4.16 什么是模块的扇入和扇出扇入则定义为调用(或控制)一个给定模块的模块个数;扇出表示一个模块直接调用(或控制)的其他模块数目.4.17 将整个软件划分成若干单独命名和可编址的部分 ,称为模块.4.18 信息隐蔽是指每个模块的实现细节对于其它模块来说是隐蔽的.也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用.4.19 模块化设计在软件开发中起很重要的作用,带来了许多好处,其中(1) 模块化设计降低了系统的复杂性,使得系统容易修改;(2) 推动了系统各个部分的并行开发,从而提高了软件的生产效率.4.20 模块具有三个基本属性(1) 功能 ;(2) 逻辑 ;(3) 状态 .4.21 模块的外部特征是指模块的模块名,参数表,其中的输入参数和输出参数,以及给程序以至整个系统造成的影响.4.22 模块的内部特征是指完成其功能的程序代码和仅供该模块内部使用的数据 .4.23 模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的.4.25 模块独立性比较强的模块应是高内聚低藕合模块.4.26 藕合性是程序结构中各个模块之间相互关联的度量.4.27 Myers提出了哪七种藕合性类型非直接藕合(Nondirect Coupling):两个模块间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的.数据藕合(Data Coupling):一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数,公共数据结构或外部变量)来交换输入,输出信息的.标记藕合(Stamp Coupling):模块间通过参数表传递记录信息.控制藕合(Control Coupling):模块通过传送开关,标志,名字等控制信息.外部藕合(External Coupling):一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息.公共藕合(Common Coupling):一组模块都访问同一个公共数据环境内容藕合(Content Coupling):两个模块间发生下面情形:(1)一个模块直接访问另一个模块的内部数据;(2)一个模块不通过正常入口转到另一个模块内部;(3)两个模块有一部分程序代码重叠(只可能程序在汇编语言中);(4)一个模块有多个入口.4.28 在模块化设计时,应从哪几个方面考虑才可降低模块间的藕合度呢1) 据问题的特点,选择适当的藕合类型;2) 降低模块接口的复杂性4.29 模块的内聚一共分为七种类型,它们分别是:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,巧合内聚.4.30 在系统结构图中称为不能再分解的底层模块称为原子模块.8.1 什么是软件测试软件测试是为了发现错误而执行程序的过程.8.2 Myers提出的关于软件测试的目的是:(1) 测试是程序的执行过程 ;(2) 一个好的测试用例在于能发现至今未发现的错误 ;(3) 一个成功的测试是发现了至今未发现的错误的测试 .8.3 软件测试的原则是什么(1)应当把"尽早地和不断地进行软件测试"作为软件开发者的座右铭(2)测试用例应由测试输入数据和与之对应的预期输出结果这两个部分组成(3)程序员应避免检查自己的程序(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件(5)充分注意测试中的群集现象(6)严格执行测试计划,排除测试的随意性(7)应当对每个测试结果做全面检查(8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便.8.4 测试计划应包括哪些内容所测试软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方式和过程,系统组装方式,跟踪规程,测试规程,以及回归测试的规定等以及评价标准.8.5 软件测试对象应包括哪些内容软件测试并不等于程序测试.软件测试应贯穿于软件定义与开发的整个期间.因此,需求分析,概要设计以及程序编码等各阶段所得得文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序都应成为软件测试的对象.8.6 假设在测试阶段未能被发现的错误留到用户使用时才发现,到那时改正错误的费用比在开发阶段改正错误的费用要高出 40倍到80 倍.8.7 在软件测试中,采用黑盒测试主要是为了发现哪几类错误是否有不正确或遗漏了的功能在接口上,输入能否正确地接受能否输出正确的结果是否有数据结构错误或外部信息(例如数据文件)访问错误性能上是否能够满足要求是否有初始化或终止性错误8.8 在软件测试中,采用白盒测试方法主要是为了对程序进行哪些检查对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取"真"与取"假"的两种情况都能至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等等8.9 白盒测试的逻辑覆盖可分为:语句覆盖,判定覆盖,判定―条件覆盖,条件组合覆盖及路径覆盖.8.10 基本路经测试法适用于模块的详细设计及源程序,它的是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法.设计出的测试用例要保证在测试中的程序的每个可执行语句至少执行一次.8.11 控制流图是描述程序控制流的一种图示方法 .8.12 在黑盒测试过程中,采用等价类划分的方法是一种典型的黑盒测试方法,也是一种非常实用的重要测试方法.8.13 等价类的划分有两种不同的情况:(1) 有效等价类 ;(2) 无效等价类 .8.14 划分等价类时,确定等价类的原则是什么(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类.(2)如果输入条件规定了输入值的集合,或者是规定了"必须如何"的条件,这时可以确立一个有效等价类和一个无效等价类.(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类.(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理.(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)(6)如果确知已划分的等价类中各元素在程序中的处理方式不同,则应将此类等价类进一步划分成更小的等价类.8.15 从划分出来的等价类中选择测试用例的原则是什么(1)为每个等价类规定一个唯一的编号;(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止.(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止.8.16 用边界值分析方法,其选择测试用例的原则是什么(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.(2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最大个数多1,比最小数少1的数作为测试数据.(3)根据规格说明的每个输出个数,使用前面的原则1).(4)根据规格说明的每个输出条件,使用前面的原则2)(5)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表,顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例.(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.(7)分析规格说明,找出其它可能的边界条件.8.17 在软件测试中,什么是错误推测法列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例.8.18 用因果图生成测试用例的基本步骤是(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.(2)分析软件规格说明描述中的语意义,找出原因与结果之间,原因与原因之间对应的关系.根据这些关系,画出因果图.(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现.为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件.(4)把因果图转换成判定表.(5)把判定表的每一列拿出来作为依据,设计测试用例.8.19 请画出因果图的基本图形符号(恒等,非,或,与).8.20 请画出因果图的约束符号,并且标出有关信息以及解释每种约束符号的含义.8.21 软件测试过程按四个步骤进行:(1)单元测试,(2)组装(集成)测试,(3)确认测试,(4)系统测试.8.22 在单元测试中,需要在哪五个方面对所测试模块进行检查模块接口,局部数据结构,边界条件,独立路径,出错处理8.23 单元测试的测试环境由哪几部分构成所测模块,与它相关的驱动模块及桩模块共同构成一个测试环境.8.24 在组装测试时,需要考虑哪些问题(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;(2)一个模块的功能是否会对另一个模块的功能产生不利的影响;(3)各个子功能组合起来,能否达到预期要求的父功能;(4)全局数据结构是否有问题;(5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度.8.25 把模块组装成为系统的方式有两种方式: 一次性组装方式和增殖式组装方式 .8.26 采用自顶向下的增值方式将模块按系统程序结构进行组装,其步骤是:(1)以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩模块代替,对主模块进行测试.(2)采用深度优先或分层的策略,用实际模块替换相应桩模块,再用桩模块代替它们直接下属模块,与已测试的模块或子系统组装成新的子系统.(3)进行回归测试(即重新执行以前做过的全部测试或部分测试),排除组装过程中引入新的错误的可能.(4)判断是否所有的模块都已组装到系统中是则结束测试,否则转到(2)去执行.8.27 采用自底向上的增值方式从程序模块结构的最底层的模块开始组装和测试,其步骤是: (1)驱动模块控制最底层模块的并行测试;也可以把最底层的模块组合成实现某一特定软件功能的模块,由驱动模块控制它进行测试.。
软件工程《软件工程》习题集

软件工程习题集第一章概述一、选择题1.“软件危机〞产生的主要原因是()。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、()、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成()和()两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩详细设计3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是〔〕。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是()A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想〔〕A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是()A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于〔〕〔A〕过于简单〔B〕不能适应需求的动态变更〔C〕过于灵活〔D〕各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与〔〕三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行与维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ()3.软件生存期是从软件项目需求定义直至软件开始使用为止。
〔〕4.常用的软件生存周期模型有瀑布模型和结构化模型。
〔〕5.瀑布模型是一种线形的、顺序的软件开发模型()6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
软件工程习题集

软件工程练习题一、填空题1.软件生存周期一般可以划分为, 问题定义、可行性研究、需求分.、设计、编码、测试和运营与维护。
2.可行性研究, 应从经济可行性、技术可行性、运营可行性、法律可行性等方面研究。
3.数据流图的四种基本成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文献。
4.结构化分析方法是面向_数据.进行需求分析的方法。
5.结构化分析方法使.数据流图DF..数据字典DD来描述。
6.软件具体设计的重要任务是算法描述和数据结构的设计。
7.为了在软件开发过程中保证软件的质量, 重要采用下述措施:审查_、复查和管理复审、测试。
8.大型软件测试涉.单元测. 、集成测. 、确认测试.系统测.四个环节。
9. 在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管.能协调软件开发,并使混乱减到最低限度.10. McCall提出的软件质量模型涉及__13_个软件质量特性。
11. 软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
12.为了便于对照检查, 测试用例应由输入数据和预期的输出结果两部分组成。
13.软件结构是以模块为基础而组成的一种控制层次结构。
14.在结构化分析中,用于描述加工逻辑的重要工具有三种,即: 结构化语言、鉴定表、鉴定树。
15.结构化语言是介于自然语言和形式语.之间的一种半形式语言。
16.系统流程图是描述物理模型的传统工具, 用图形符号表达系统中各个元素表达了系统中各种元素之间的信息流动情况。
17.CASE技术是软件工具和软件开发方法的结合。
18. 数据字典有四类条目, 分别是数据流、数据项、数据存储和基本加工。
19. 各种软件系统的数据流图一般可分为变换型和事务型两类。
20.软件可维护性可用七种质量特性来衡量,分别是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
21.面向对象分析中,动态模型使用状态图_作为描述工具,该图反映了状态与事件的关系。
(完整版)软件工程习题+答案(可编辑修改word版)

一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。
B)问题定义,可行性研究,需求分析。
C)可行性研究,需求分析,问题定义。
D)以上顺序都不对。
(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。
B)技术可行性,经济可行性,系统可行性。
C)经济可行性,系统可行性,操作可行性。
D)经济可行性,系统可行性,时间可行性。
3.耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。
B)内容耦合,控制耦合,公共环境耦合,数据耦合。
C)内容耦合,公共环境耦合,控制耦合,数据耦合。
(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D)控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使用到的设计工具是:(C )A)程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。
C)判定表,判定树,PDL,程序流程图,PAD 图,N-S 图。
D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD 图、N-S 图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD 数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。
B)模块的控制域应在模块的作用域之内。
C)模块的控制域与模块的作用域互相独立。
D)以上说法都不对。
软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。
2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。
方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。
3、软件可行性研究实质上是要进行一次()需求分析和设计过程。
A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。
4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。
5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。
二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。
软件工程习题集一

一、判断题判断以下叙述的正误。
正确的叙述请在答题纸上的相应题号后打“√”,错误的打“×”。
1.编码时应尽可能使用全局变量。
2.为了提高程序的易读性,尽可能使用高级语言编写程序。
3.只要模块之间的接口关系不变,各模块的内部实现细节的修改不会影响别的模块。
4.为了加快软件维护作业的进度,尽可能增加维护人员的数目。
5.尽可能用GOTO语句6.程序的注释并不是可有可无的。
7.尽可能在软件生产过程中保证各阶段文档的正确性。
8.在进行总体设计时应加强模块间的联系。
9.程序的模块划分得越大越好。
10.模块越小,模块化的优点越明显,一般说来,模块的大小都在10行以下。
11.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
12.在可行性研究中最难决断和最关键的问题是经济可行性。
13.在软件开发中,采用原型系统策略的主要困难是时间问题。
14.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
15.模块越多,开发成本越小。
16.耦合是指一个模块内各个元素彼此结合的紧密程度。
17.内聚是指一个软件结构内各个模块之间互连程度的度量。
18.模块分解时应注意不要降低模块的独立性。
19.总体设计阶段完成的主要文档是总体设计说明书。
20.详细设计是在总体设计之后进行的,它利用总体设计的结果,对系统中的每个模块给出足够的过程性描述。
21.程序设计语言中应绝对禁止使用GOTO语句。
22.PAD图在设置了五种基本的控制结构后,还允许递归调用。
23.程序中嵌套的层数应加以限制。
24.程序的书写格式最好所有语句都左对齐,这样也可以节省纸张。
25.在编写程序时尽可能对程序代码进行优化。
26.使用可以看得出意义的标识符。
27.在进行需求分析时需同时考虑维护问题。
28.完成测试作业后,为了缩短源程序的长度应删去源程序的注释。
29.重视程序结构的设计,使程序具有较好的层次结构。
软件工程题库(含答案)

软件工程题库(含答案)一、单选题(共60题,每题1分,共60分)1、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A、可用性B、正确性C、完整性D、可靠性正确答案:D2、软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是( ).A、可移植性B、可理解性C、可重用性D、可修改性正确答案:A3、在软件质量要素的评价准则中,操作该软件的难易程度指的是( )。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是( )A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是( )A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括( )。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的( )。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( )A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是( )。
A、可追踪性B、可理解性C、可互操作性D、可维护性正确答案:C10、可维护性的特性中相互促进的是( )A、效率和可移植性B、可理解性和可测试性C、效率和结构好D、效率和可修改性正确答案:B11、在软件质量特性中,( )是指在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
A、可靠性B、易使用性C、正确性D、准确性正确答案:A12、设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X 需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( )A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是( )。
《软件工程概论》题集

《软件工程概论》题集一、选择题(每题2分,共20分)1.软件工程的目标是提高软件的( )。
A. 开发效率B. 维护效率C. 质量和生产率D. 可靠性和复用性答案:C2.在软件开发的生命周期中,需求分析阶段的主要任务是( )。
A. 确定软件开发方法B. 编写程序代码C. 确定软件系统的功能需求D.进行系统测试答案:C3.下列选项中,不属于软件设计原则的是( )。
A. 开闭原则B. 依赖倒转原则C. 迪米特法则D. 尽早编码原则答案:D4.在结构化分析方法中,数据流图(DFD)用于描述( )。
A. 数据在系统中的流动和处理过程B. 软件的模块结构C. 软件的层次结构D. 软件的控制流程答案:A5.白盒测试和黑盒测试的主要区别在于( )。
A. 测试者是否知道程序的内部结构B. 测试是否使用测试用例C. 测试是否在系统开发完成后进行D. 测试是否关注性能答案:A6.敏捷开发方法强调( )。
A. 严格遵循预先定义的计划B. 快速响应变化,交付可用的软件C. 详细的文档和过程控制D. 尽量避免与客户沟通答案:B7.下列哪项不是软件配置管理(SCM)的目标( )。
A. 标识变更B. 控制变更C. 确保变更的正确实施D. 消除所有错误答案:D8.在软件项目中,风险管理的目的是( )。
A. 消除所有风险B. 最小化风险对项目的影响C. 将风险转移给第三方D. 仅关注技术风险答案:B9.面向对象编程(OOP)的三大特征是( )。
A. 封装、继承、多态B. 数据抽象、过程控制、模块化C. 模块化、结构化、封装D. 过程控制、继承、多态答案:A10.软件复用是通过( )来提高软件开发效率的。
A. 使用已有的软件组件B. 增加开发人员数量C. 延长开发时间D. 采用新的开发工具答案:A继续二、填空题(每题2分,共14分)1.软件工程是一种(应用计算机科学、经济学、管理学和其他工程学科的知识和实践,以系统化、规范化、量化的方法开发、运行和维护软件的过程)。
《软件工程》(第五版)习题参考答案

《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构
软件工程(习题及参考答案)

第1章概述(习题与参考答案)[判定题]1. 由于今天个人运算机不断进展壮大,人们再也不采纳软件团队的开发方式。
(×)2. 由于软件是产品,因此能够应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数运算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不需要增强功能。
(×)5. 大多数软件系统是不容易转变的,除非它们在设计时考虑了转变。
(√)6. 一样来讲,软件只有在其行为与设计者的目标一致的情形下才能成功。
(×)[选择题]1. ()因素促使运算机系统愈来愈复杂。
(D)A. 运算机内存和存储容量上的庞大增加B. 外部输入/输出选项的加倍多样性C. 运算机体系结构方面的深刻转变D. 以上所有选项2. 下面的()再也不是现代软件工程师关注的问题。
(A)A. 什么缘故运算机硬件的本钱这么高?B. 什么缘故软件需要很长时刻才能完成?C. 什么缘故开发一个软件的本钱这么高?D. 什么缘故不能在产品发布前去除软件错误?3. 软件会慢慢退化而可不能磨损,其缘故在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在利用以后C. 不断的变更使组件接口之间引发错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其缘故在于()。
(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法利用C. 软件在不利用其他组件的情形下很容易构造出来D. 商业组件在很多应用领域中能够取得5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年代末期全面暴发B. 当前先进的软件工程方式已经解决了软件危机的问题C. 软件危机是指在运算机软件的开发和保护进程中碰到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的大体目标是()。
(B)A. 排除软件固有的复杂性B. 开发高质量的软件C. 尽力发挥开发人员的制造性潜能D. 更好地保护正在利用的软件产品7. ()是将系统化的、标准的、可定量的方式应用于软件的开发、运行和保护的进程,它包括方式、工具和进程三个要素。
软件工程习题集

软件工程习题集绪论(一)单项选择题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. 确认测试(二)填空题1. 在信息处理和计算机领域内,一般认为软件是、和。
2. 软件生产的发展经历了时代、时代和时代,各时代的生产方式分别是、和。
3. 软件危机是在软件发展第阶段末期,随着第代计算机的诞生而产生的。
4. 文档一般可分为面向的文档、面向的文档、面向的文档和面向的文档。
5. 国家标准“计算机软件开发规范”中,把软件生存周期划分为8个阶段,即、、、、、、和。
6. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为、、和四个步骤。
7. 软件工程过程包含的7个过程是、、、、、和。
8. 软件工程面临的问题有、、、。
9. 结构化方法包括结构化方法、结构化方法和结构化程序设计方法。
它是一种面向的开发方法,其实质就是分解。
10. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和。
(三)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机是怎样产生的?其表现形式是什么?说明产生软件危机的原因。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错软件工程习题集第一章概述、选择题1. “软件危机”产生的主要原因是⑥代码设计⑦概要设计 ⑧ 数据设计⑨ 运行设计⑩ 详细设计A •利用瀑布模型,如果发现问题修改的代价很低B •瀑布模型的核心是按照软件开发的时间顺序将问题简化C .瀑布模型具有良好的灵活性D •瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 7 •瀑布模型的关键不足在于( )(A )过于简单 (B )不能适应需求的动态变更 (C )过于灵活(D )各个阶段需要进行评审&瀑布模型把软件生存周期划分为软件定义、软件开发与( )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 软件日益庞大 B. 开发方法不当 C.开发人员编写程序能力差D. 没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、 、设计、编码、 测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成 和() 两步。
①需求分析 ②需求调查 ③可行性分析 ④问题定义 ⑤方案设计 A.程序、数据B.程序、文档C. 程序D. 程序、数据、文档4 •在软件工程时期,决定软件质量的主要因素是 ()A.管理水平B.个人程序技术 C • 小组技术水平D.硬件的发展5.下列哪个模型没有采用迭代的思想( )A .瀑布模型B.渐增模型C •螺旋模型D.RUP 模型6 •下列关于瀑布模型的描述正确的是( )3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( )。
二、判断题1. 软件工程是指导计算机软件开发和维护的工程学科。
()2. 在软件工程时期,决定软件质量的主要因素是管理水平. () 3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4. 常用的软件生存周期模型有瀑布模型和结构化模型。
()5. 瀑布模型是一种线形的、顺序的软件开发模型()6. 瀑布模型的关键不足在于不能适应需求的动态变更.()7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
()8. 快速原型模型可以有效地适应用户需求的动态变化。
()9.风险分析是螺旋模型的优点,因此螺旋模型适合任何大系统的开发。
()三、简答题1、什么软件工程?什么是软件过程?2、软件工程学的主要内容是什么?3、什么是软件生命周期?软件生命周期为什么要划分阶段?划分阶段的原则是什么?第二章可行性研究与软件开发计划一、选择题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)待开发的软件是否会有质量问题二、判断题1.可行性研究的目标是规划项目。
( )2.需求规格说明书是软件可行性研究的依据。
( )3.软件需求规格说明书的内容应当包括对算法的详细过程性描述。
( )4.分层DFD 图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于描绘了系统的实现细节.( )5.对于软件项目,投资回收期越长,越快获得利润。
( ) 6.项目效益分析中投资回收率越低越好。
( )7.甘特图表是一种比较常用的进度图表。
( )8.数据流图应采用由外向里画的原则逐步细化。
( )三、简答题1、什么是可行性研究?可行性研究报告的内容是什么?可行性研究的结论有哪几种?第三章需求分析一、选择题1.软件需求分析的任务不应包括( ) 。
进行需求分析可使用多种工具,但( ) 是不适用的。
在需求分析中,分析员要从用户那里解决的最重要的问题是( ) 。
需求规格说明书的内容不应当包括( ) 。
该文档在软件开发中具有重要的作用,但其作用不应当包括( ) 。
A•①问题分析②信息域分析③结构化程序设计④确定逻辑模型B. ①数据流图②判定表③PAD图④数据词典4•在SD 方法中全面指导模块划分的最重要的原则是5•需求分析是由分析员经过了解用户的要求,认真细致地调研、分析,最终应建立目标系(A ) 模块说明书 (B ) 软件规格说明书 (C ) 项目开发计划 (D ) 合同文档6•分层DFD 图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于 ()。
A. 描绘了系统的实现细节B. 表明了被开发系统的范围以及它和周围环境的数据交换关系C. 描绘了系统的抽象D. 描绘了软件实现的作者和绘制的时间二、判断题1.数据流图可分为两种基本形式:事务型数据流图和变换型数据流图。
( ) 2 •软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
()3. HIPO 图由H 图和IPO 图组成,即一个 H 图对应一个或多个IPO 图()。
4. 软件模块之间的耦合性越弱越好。
()5•模块的内聚度越高,则说明模块的独立性越强。
()6.模块独立性有两个定性的度量标准是扇入与扇出。
( )7・模块化就是将系统划分为若干个模块,每个模块完成一个子功能。
因此,模块分得越小越好。
( )&用例图的主要元素是用例和执行者及其它们之间的联系。
()2.3.C.① 要让软件做什么② 要给该软件提供哪些信息 ③ 要求软件工作效率如何④ 要让软件具有什么样的结构D.① 对重要功能的描述② 对算法的详细过程性描述 ③ 软件确认准则④ 软件的性能E •① 软件设计的依据② 用户和开发人员对软件要 “做什 ③ 软件验收的依据④ 软件可行性分析的依据在结构化分析方法中,用以表达系统内数据的运动情况的工具有 数据流图② 数据词典③ 结构化英语)。
判定表与判定树 在结构化分析方法中,用以表达系统内数据的运动情况的工具有 )。
A.数据流图B.数据词典C.结构化英语D.判定表与判定树 A.程序模块化B .模块高内聚C •模块低耦合D.模块独立性统的逻辑模型,并写出()。
(④ ”的共同理解9. 模块独立性有两个定性的度量标准是耦合和内聚。
()10.模块的作用范围可不限制在其控制范围之内()11.事务调度中心并不对输入数据进行加工,而只是根据不同的输入数据作出不同的事务流程选择。
()12.事务数据流以事务调度中心为核心,在此之前为接收事务,在此之后为事务分流处理。
()13.变换数据流所体现的是数据从输入到加工再到输出的一般步骤。
()14.模块接口简单是软件发生错误的一个主要原因。
()15.C/S 结构的系统客户端要安装程序,维护起来比较麻烦()16.模块分为传入模块、传出模块、协调模块、变换模块()17.公共耦合是一种通过访问公共数据环境而实现通信的模块耦合形式。
()18..一个较好的软件结构有这样的特征:顶层模块高扇出, 中间层模块低扇出, 底层模块高扇入()19.模块独立性是衡量软件中模块质量最重要的指标。
()20.系统构架中集中式结构是最传统的系统构架,系统建设费用和运行费用都非常便宜()三、简答题1、什么是需求分析?结构化分析的基本任务是什么?结构化分析的步骤有哪些?2、什么是实体-关系图?它的基本符号有哪些?3、什么是数据流图?它的基本符号各表示什么含义?第四章概要设计一、选择题1.Jackson 方法是以()为基本依据的程序算法设计方法。
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. 避免模块的病态连接&软件系统模块化分解中,正确的是()( A )满足最小成本模块范围( B )模块越小越好(C)模块越大越好( D )最小模块必须是50~100 行代码范围9. 概要设计的结果是提供一份()。
A. 模块说明书B. 框图C. 程序D. 数据流图10.Jackson方法数据分三种结构:顺序结构、选择结构、(A. 重复B. 选择C. 顺序D. 有规则GOTO11 • Jackson 详细设计方法中数据结构不包括()。
A. 重复结构B. 顺序结构C. 选择结构D. 有规则GOTO 面模块独立性由强到)结构。
二、判断题1.结构化程序的基本特征是程序的任何位置是单入口、单出口的。
()2. “顺序”、“选择”、“循环”这三种基本的控制结构能实现任何复杂的程序计算问题。
()3.结构化程序设计的基本途径是对程序问题自顶向下、逐步求精。
()4.聚集关系可以分为共享聚集与复合聚集两种形式。
()5.复合聚集是一种较强的聚集关系,也称组合关系,其图形符号是实心菱形。
()6.共享聚集是一种较弱的聚集关系,其图形符号是空心菱形。
()三、简答题1、什么是概要设计?基本任务是什么?2、什么是模块?模块有哪些属性?3、什么是模块化?划分模块的原则是什么?4、什么是软件结构设计?软件结构设计的准则是什么?第五章详细设计一、选择题1.下列哪一个不是详细设计时使用的工具。