2015软件工程期末总复习
- 格式:pdf
- 大小:441.53 KB
- 文档页数:8
1、2、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。
A、详细计划B、可行性分析C、运行阶段D、测试与排错2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C )。
A、详细设计阶段B、概要设计阶段C、需求分析阶段D、测试和运行阶段3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A )。
A、需求分析阶段B、详细设计阶段C、概要设计阶段D、可行性研究阶段4、软件工程的出现主要是由于(C )。
A.程序设计方法学的影响B.其它工程科学的影响C. 软件危机的出现D.计算机的发展5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为( B)A、相互排斥B、相互补充C、独立使用D、交替使用7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成(A )A、计划阶段、开发阶段、运行阶段B、计划阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C)A、分析阶段B、设计阶段C、编码阶段D、测试阶段三.判断1.软件的开发与运行经常受到硬件的限制和制约。
《软件工程》2015期末试题及答案
一、选择题,请从四个可选项中选择正确答案。
(60分,每题3分)
1.软件工程的出现是由于( )。
A.软件危机 B.计算机硬件技术的发展
C.软件社会化的需要 D.计算机软件技术的发展
2.螺旋模型是一种将瀑布模型和哪种模型结合起来的软件开发模型?( ) A.快速原型模型 B.专家模型
C.V模型 D.演化模型
3.软件可行性研究一般不考虑( )。
A.是否有足够的人员和相关的技术来支持系统开发
B.是否有足够的工具和相关的技术来支持系统开发
C.待开发软件是否有市场、经济上是否合算
D.待开发的软件是否会有质量问题
4.软件需求分析的任务不包括( )。
A.问题分析 B.信息域分析
C.结构化设计 D.确定逻辑结构
5.结构化分析方法(SA法)使用的主要描述工具有( )。
A.数据库 B.模块结构图
C.PAD图 D.分层的DFD图
6.源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计 B.总体设计
C.单元设计 D.详细设计
7.画DFD图的主要目的是( )。
A.作为需求分析阶段用户与开发者之间交流信息的工具
B.对系统的数据结构进行描述
C.对目标系统的层次结构进行描述
D.作为编码和测试的工具’.
8.耦合度最高的是( )。
《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
中国海洋大学2014-2015学年第一学期期末考试试卷及参考答案信息科学与工程学院《软件工程》课程试题(A卷)考试说明:本课程为闭卷考试,可携带文具,满分为:100 分。
一、填空题(本大题共20个空,每空1分,共20分)(1)软件生命周期由、和三个时期组成,每个时期又可进一步划分成若干个阶段。
(2)可行性研究主要是从、和三个方面研究可行性。
(3)是输入、处理和输出图的简称。
(4)是对一个软件结构内不同模块之间互连程度的度量。
(5)结构程序设计中只使用、和3种基本的控制结构。
(6)软件维护主要包括、、和四种。
(7)用面向对象方法开发软件一般要建、、和三种模型。
(8)软件测试的目的是发现错误,通常把测试方法分成和两大类。
二、简答题(本大题共5小题,每小题6分,共30分)(1)请简要说明面向对象方法学的要点。
(2)请说明软件设计过程中应该遵循的基本原理。
(3)简述用例图的作用和包含的模型元素。
(4)问题空间和解空间有何区别?(5)请简要说明决定软件可维护性的因素。
三、条件测试可用于检查程序模块中所包含逻辑条件是否正确。
在布尔变量和关系操作符只出现一次且没有公共变量的情况下,BRO(Branch and Relational Operator)测试保证能发现条件中的分支和条件操作符错误。
考虑条件C1: (E1= E2) & (E3< E4),其中E1, E2, E3, E4是关系表达式,“&”表示逻辑“与”,“<”和“=”是关系运算符,为了检查C1中的关系操作符错误,请给出C1的条件约束,并给出求解过程(本题15分)。
四、PAD是问题分析图(problem analysis diagram)的英文缩写,它的基本符号如图一所示。
请使用PAD图重画图二中的程序流程图(本题15分)。
2.文档有何作用?程序代码属不属于文档?答:文档指的是在软件开发和维护过程中形成的文字记录。
从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。
文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。
没有文档的软件维护不但不能延长反而会缩短软件寿命。
文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。
3.什么是软件危机?什么原因产生了软件危机?答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生的原因是主客观不相适应。
见书图1-2。
●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。
5.软件工程三要素是什么?答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。
见图1-4。
(2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。
过程定义的活动集合及其序列见第2章。
(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。
如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。
软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。
(4)“工具”为过程和方法提供自动的或半自动的支持。
这些工具既包括软件也有硬件。
软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。
CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)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、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法14、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码15、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
《软件工程》期末复习第一章软件工程概述一、重点掌握的内容:软件和软件工程的基本概念二、一般掌握内容:软件生存周期及软件开发的各种模型。
三、主要知识点:软件:软件定义由以下三部分组成:(1在运行中能提供所希望的功能和性能的指令集(即程序;(2使程序能够正确运行的数据结构;(3描述程序研制过程、方法所用的文挡。
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
⑤软件的开发至今尚未完全摆脱手工的开发方式。
⑥软件的开发费用越来越高,成本相当昂贵。
软件的分类:软件依据不同的标准,可划分为不同的分类。
软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程准则可以概括为六条基本原理:(1用分阶段的生存周期计划严格管理;(2坚持进行阶段评审;(3实行严格的产品控制;(4采用现代程序设计技术;(5应能清楚地审查结果;(6合理安排软件开发小组的人员。
软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。
软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
软件生存周期一般可分为以下阶段:·问题定义·需求分析与可行性研究·设计·编码·测试·运行与维护软件生存期也可以分为三个大的阶段:计划阶段。
《软件工程》总复习题一、判断题判断以下叙述的正误。
正确的叙述请在答题纸上的相应题号后打“√”,错误的打“×”。
1、在主存储器能容纳得下的前提下,应使模块尽可能大,以减少模块的个数。
×2、编码时应尽可能使用全局变量。
×3、为了提高程序的易读性,尽可能使用高级语言编写程序。
√4、规划模块间的单向调用关系叫做模块的层次结构。
√5、只要模块之间的接口关系不变,各模块的内部实现细节的修改不会影响别的模块。
√6、为了加快软件维护作业的进度,尽可能增加维护人员的数目。
×7、尽可能用GOTO语句×8、程序的注释并不是可有可无的。
√9、尽可能在软件生产过程中保证各阶段文档的正确性。
√10、在进行总体设计时应加强模块间的联系。
×11、程序的模块划分得越大越好。
×12、模块越小,模块化的优点越明显,一般说来,模块的大小都在10行以下。
×14.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
√15.在可行性研究中最难决断和最关键的问题是经济可行性。
×16.系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
×17.在软件开发中,采用原型系统(样机)策略的主要困难是时间问题。
×18.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
√19.模块越多,开发成本越小。
×20.耦合是指一个模块内各个元素彼此结合的紧密程度。
×21.内聚是指一个软件结构内各个模块之间互连程度的度量。
×22.模块分解时应注意不要降低模块的独立性。
√23.总体设计阶段完成的主要文档是总体设计说明书。
√24.详细设计是在总体设计之后进行的,它利用总体设计的结果,对系统中的每个模块给出足够的过程性描述。
√25.程序设计语言中应绝对禁止使用GOTO语句。
软件工程复习题(课程代码252258)一、填空题(本大题共60小题)1.数据项是指__不可再分解的___数据单元。
2.软件概要设计的主要任务就是___软件结构的设计___。
3.软件维护的内容包括校正性维持,适应性维护、____完善性维护_____和预防性维护。
4.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和___数据存储对象___。
5.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件具有容错功能的软件。
6.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
7.为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。
8.软件结构是以模块为基础而组成的一种控制层次结构。
9.在结构化分析中,用于描述加工逻辑的主要工具有结构化语言、判定表和判定表三种。
10.软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
11.PDL是一种介于___自然语言___和形式化语言之间的半形式化语言。
12.从软件的功能角度划分,协助用户开发软件的工具性软件称为_支撑__软件13.消除软件结构中高扇入扇出的做法是______增加中间层次的控制模块_____。
14.如果一个软件系统的全部实际加工都由原子模块来完成,而其他所有非原子模块仅仅执行控制或协调功能,这样的系统就是____完全因子分解_____的系统。
15.软件的可移植性是指当把软件移植到不同的运行环境时,不需改变其__规格___就能照原样工作的特性。
16.为满足用户对软件提出的新的要求而对软件进行扩充、改进的维护称为____完善性__维护。
17.将整个软件划分成若干单独命名和可编址的部分,称之为___模块___。
18.软件需求的____物理视图_____给出处理功能和数据结构的实际表示形式。
19.在面向对象的开发技术中,__类___是一组具有相同数据结构和相同操作的对象的集合。
1.软工方法学:传统方法学、面向对象方法学;三要素:方法、工具、过程2.软件生命周期:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护3.可行性研究:技术可行性、经济、操作;过程:复查系统规模和目标、研究目前正在使用的系统、导出新系统的高层逻辑模型、进一步定义问题、导出和评价供选择的解法、推荐行动方针、草拟开发计划、书写文档提交审查4.数据字典元素:数据流、数据流分量(数据元素)、数据存储、处理5.数据元素组成数据方式:顺序、选择、方法6.需求分析结束产物:软件需求规格说明书7.对软件系统综合要求:功能需求、性能、可靠性和可用性、出错处理、接口、约束、逆向、将来可能提出的要求8.沟通获取需求方法:访谈、面向数据流自顶向下求精、简要的应用规格说明技术、快速建立软件模型9.模型是对事物做出的的抽象10.实体联系图(ER图)表示数据模型11.状态转换图:系统的状态、引起其变化的事物;状态之间带箭头连线为状态转换;箭头指转换方向12.需求分析时层次方框图和Warnier图用树形结构描述13.总体设计:系统该如何实现;概要或初步设计;过程:设想供选择的方案、选取合理方案、推荐最佳方案、功能分解、设计软件结构、设计数据库、制定测试计划、书写文档、审查和复查;基本设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立;模块独立标准:耦合、内聚14.人机界面设计:系统响应时间、用户帮助设施、出错信息处理、命令交互15.实现:编码、测试;测试方法:黑盒测试(功能)、白盒测试(工作过程)16.模块组装成程序方法:非渐增式、渐增式17.白盒测试技术:逻辑覆盖、控制结构测试18.逻辑覆盖:语句覆盖、判定、条件覆、判定条件、条件组合、点、边、路径19.控制结构测试技术:基本路径测试、条件测试、循环测试20.软件测试途径:蛮干法、回溯法、原因排除法;原因排除法方法:对分查找法、归纳法、演绎法软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题,包含如何开发软件以满足对软件日益增长的需求、如何维护数量不断膨胀的已有软件软件工程:把系统的,规范的,可定量的,过程化的方法途径去应用于软件开发,运行,和维护过程,以及如何把经过的时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来把工程应用于软件,及软件中的操作的途径软件工程基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。