2015软件工程期末总复习
2015年软件工程期末试卷(自己整理的_很完整的)
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期末试题及答案
《软件工程》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
中国海洋大学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集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
软件工程复习题(2015复习题)
软件工程复习题一、单选题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.软件测试途径:蛮干法、回溯法、原因排除法;原因排除法方法:对分查找法、归纳法、演绎法软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题,包含如何开发软件以满足对软件日益增长的需求、如何维护数量不断膨胀的已有软件软件工程:把系统的,规范的,可定量的,过程化的方法途径去应用于软件开发,运行,和维护过程,以及如何把经过的时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来把工程应用于软件,及软件中的操作的途径软件工程基本原理:用分阶段的生命周期计划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。
软件工程期末复习(超详细!!!)
软件工程期末复习(超详细!!!)一:软件工程概述软件工程学的存在价值:促进软件项目成功。
软件的概念:软件(software):软件是计算机系统中与硬件相互依存的另一部分。
它包括程序、数据及其相关文档的完整集合。
(1)能够完成预定功能和性能的可执行指令(program)(2)使得程序能够适当地操作信息的数据结构(data)(3)描述程序的操作和使用的文档(document)软件危机:软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。
软件危机包含两层含义:如何开发软件。
如何维护数量不断膨胀的已有软件。
软件工程(Software Engineering):是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
软件生存周期:是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。
一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
计划阶段确定待开发系统的总体目标和范围。
研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。
分析阶段分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
设计阶段(总体设计和详细设计)设计阶段的目标是决定软件怎么做。
软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。
实现阶段(编码)实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。
测试阶段设计测试用例,对软件进行测试,发现错误,进行改正。
运行和维护阶段应当在软件的设计和实现阶段充分考虑软件的可维护性。
维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。
维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。
软件工程三要素:工具、方法、开发过程瀑布模型:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。
软件工程期末考试复习(精)
第一章软件工程的概述软件工程的三要素:过程: 为建造高质量的软件所需完成的任务框架方法: 为软件开发提供了“如何做”的技术工具: 为软件工程方法提供了自动的或半自动的软件支撑环境软件生命周期的概念:软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期.软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
这个过程即为计算机软件的生命周期生命周期阶段的划分原则: 各阶段的任务相对独立;同一阶段任务的性质相同;软件的生存期划分的几个阶段:1、软件定义:问题定义可行性研究(软件计划需求分析2、软件开发:系统设计软件实现软件测试3、软件使用、维护和退役软件工程的过程模型(4 个瀑布模型(生存周期模型就是传统的生命周期方法学(既自顶向下结构化开发模型方法。
优点:奠定了软件工程方法的基础;流水依赖;便于分工协作;推迟实现;文档易修改;有复审质量保证。
缺点:用户需求明确困难;用户见面晚;纠错慢;难于克服系统分析员不懂专业领域的知识,用户不懂计算机的困难,成功率低。
适合于系统要求明确的小系统。
原型模型(rapid prototype model是为了确定需求而提出的实际模型。
打破传统的自顶向下结构化开发模型方法,在计划和需求分析后,把系统主要功能接口做为设计依据,快速开发出软件样机,及时征求用户意见,正确确定系统需求,然后再进一步准确地进行系统设计与实现。
优点:与用户见面快;开发成功率高,适合于需求不确定的大系统。
缺点:周期长,开发成本高。
螺旋模型(spiral model沿着螺线旋转(一个螺旋式周期,在四个象限上分别表达四个方面的活动制定计划:确定软件目标,选定实施方案,弄清项目开发的限制,选定完成目标的策略风险分析分析所选方案,考虑如何识别和消除风险,风险角度分析该策略实施工程实施软件开发,启动一个开发阶段客户评估评价前一步开发工作,提出修正建议,计划下一轮的工作特点:瀑布模型+快速原型+风险分析迭代过程统一过程过程模型RUP 的特点:用例驱动基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。
软件工程期末考试总复习题及答案
软件工程期末考试总复习题及答案复习题填空题1.在信息处理和计算机领域内,一般认为软件是_程序____、_文档____ 和_数据____ 。
2.数据流图的基本组成部分有_数据的源点与终点____、数据流_____、加工_____、数据文件_____。
3.数据流图和数据字典共同构成了系统的_逻辑____模型,是需求规格说明书的主要组成部分。
4.划分模块时尽量做到__高内聚、低耦合______,保持模块的独立性,尽量使用公共模块。
5.类的实例化是_对象_______。
6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可7.靠性的两个指标是_成功地运行的概率_______和_平均故障时间_______。
8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,9.将得到软件的总开发量。
这种成本估算方法称为_自底向上_______。
10.如果一个模块被n 个模块调用,其中直接的上级模块的个数是m个(m<=n )那么该模块的扇入数是____N_______ 个。
11.结构化设计以__数据流图_________ 为基础,按一定的步骤映射成软件结构。
12.软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。
13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。
14.软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。
15.面向对象分析的目的是对客观世界的系统进行___建模_______________ 。
16.软件维护工作的生产性活动包括分析评价、修改设计和____编写程序代码_______ 等。
17.为了使应用软件适应计算机环境的变化而___修改软件_______________ 的过程称为适应性维护。
18.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是__________顺序内聚________ 。
软件工程期末复习要点归纳总结
第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升;3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关忽略需求分析,轻视软件维护5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现什么是软件危机1、成本高:2、软件质量得不到保证:软件质量问题导致失败的软件项目非常多3、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成4、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机1、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等2、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科;采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程;1、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件;2、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程;他借鉴传统工程的原理、方法,以提高质量,降低成本为目的;5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期1、概念:软件生命周期由软件定义、软件开发和运行维护也成软件维护3个时期组成;2、内容:1、问题定义回答“要解决的问题是什么“,写出关于问题性质、工程目标和工程规模的书面报告2、可行性分析回答”对于问题是否有行得通的解决办法“,即探索问题是否值得去解,是否有可行的办法3、需求分析确定”为了解决这个问题,目标系统必须做什么“,确定目标系统必须具备哪些功能,得到需求规格说明书;4、总体设计回答”概括地说,应该怎样实现目标系统“,确定程序由哪些模块组成以及模间的关系5、详细设计回答”应该怎样具体地实现这个系统呢”,确定实现模块功能所需要的算法与数据结构6、编码和单元测试写出正确的容易理解、容易维护的程序模块,然后仔细测试每个模块7、综合测试通过各种类型的测试及相应的调试是软件达到预定要求8、软件维护通过各种必要活动是系统持久地满足用户需求8、生命周期模型1、瀑布模型传统瀑布模型特点:1、阶段间具有顺序性与依赖性2、推迟实现的观点3、质量保证的观点瀑布模型优点:1、可强迫开发人员使用规范的方法例如:结构化技术;2、严格规定每个阶段必须提交的文档;3、要求每个阶段交出的所有产品都必须通过验证;缺点:1、“瀑布模型是由文档驱动的”成为主要缺点适用范围:适合于用户需求明确、完整、无重大变化的软件项目开发;2、快速原型模型适用范围:用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等情况;3、增量模型特点:1、反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个“增量”的发布或提交,该增量均是一个可运行的产品;2、早期的版本实现用户的基本需求,并提供给用户评估的平台;优点:1、在较短时间内向用户提交可完成部分工作的产品;2、逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击;缺点:1、软件体系结构必须是开放的;2、开发人员既要把软件系统看作整体;又要看成可独立的构件,相互矛盾;3、多个构件并行开发,具有无法集成的风险;4、螺旋模型基本思想:使用原型或其他方法来降低风险;适用范围:适用于内部开发大规模软件项目;优点:1、对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件发的一个重要目标2、减少了过多测试或测试不足3、维护和开发之间并没有本质区别缺点:1、风险驱动,需要相当丰富的风险评估经验和专门知识,否则风险更大2、随着迭代次数的增加,工作量加大,软件开发成本增加5、喷泉模型特点:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目;该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性;6、Rational统一过程RUP重复一系列周期,每个周期由一个交付给用户的产品结束;每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流需求、分析、设计、实现、测试分别迭代;第二章可行性研究1、概念目的用最小的代价在尽可能短的时间内确定问题是否能够解决,不是解决问题,而是确定问题是否值得去解决;2、可行性研究任务了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划;即对软件开发以后的行动方针提出建议;3、研究内容(1)技术可行性使用现有的技术能实现这个系统吗(2)经济可行性这个系统的经济效益能超过它的开发成本吗(3)操作可行性系统的操作方式在这个用户组织内行得通吗(4)法律可行性新系统开发是否会侵犯法藤、集体或国家利益4、数据字典1、内容1、数据流2、数据流分量即数据元素3、数据存储4、处理2、作用对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素都有一个确切的定义;第三章需求分析1、需求分析的任务(1)确定对系统的综合要求(2)分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统的开发步骤2、获取需求的方法(1)访谈(2)面向数据流自顶向下(3)简易的应用规模说明技术(4)快速建立软件模型3、实体-关系图P63、层次方框图P68和IPO图P694、结构化分析模型●数据流图:描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,是建立功能模型的基础●实体-联系图:描绘数据对象及数据对象之间的关系,用于建立数据模型;●状态转换图:指明了作为外部事件结果的系统行为;描绘了系统的各种行为模式称为“状态”和在不同状态间转换的方式;是行为建模的基础第四章总体设计1、模块独立性与耦合性P97(1)模块化把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求模块化的优点:1.使软件结构清晰,容易设计也容易阅读与理解2.容易测试与调试,提高可靠性3.提高软件的可修改性4.有助于软件开发工程的组织管理(2)模块独立的重要性○有效的模块化即具有独立的模块的软件比较容易开发出来○独立的模块比较容易测试和维护(3)耦合衡量不同模块彼此间互相依赖连接的紧密程度,耦合要低,即每个模块和其他模块之间的关系要简单1、数据耦合:两个模块之间通过参数交换信息,而且交换的信息仅仅是数据2、控制耦合:传递的信息中有控制信息3、特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素4、公共环境耦合:两个或多个模块通过一个公共环境相互作用5、内容耦合:出现一下情况之一,则为内容耦合:1、一个模块访问另一个模块的内部数据2、一个模块不通过正常入口而转到另一个模块的内部3、两个模块有一部分代码重叠4、一个模块有多个入口数据耦合<控制耦合<特征耦合<公共环境耦合<内容耦合(4)内聚P99衡量一个模块内部各个元素彼此结合的紧密程度;内聚要高,每个模块完成一个相对独立的特定子功能信息隐藏P96应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的2、启发规则1、改进软件结构提高模块独立性2、模块规模应该适中3、深度、宽度、扇入、扇出都应适中4、模块的作用域应该在控制域之内5、力争降低模块接口的复杂度6、设计单入口、单出口模块7、模块功能应该可以预测3、层次图和HIPO图P1024、面向数据流的设计方法P104(1)概念面向数据流设计就是把信息流映射成软件结构,信息流的类型决定了映射的方法;信息流包括变换流、事物流;(2)变换分析与事务分析P1055、小结i.进行软件结构设计遵循的最主要的原理是模块独立原理ii.抽象和求精是一对互补概念iii.软件工程师在实践中总结经验得出一些很有参考价值的启发式规则iv.自顶向下逐步求精是进行软件结构设计的常用途径v.用形式化的方法由数据流图映射出软件结构第五章实现1、选择程序设计语言为了使程序容易测试和维护以减少软件的总成本,所选用的高级语言程序应该有理想的模块化机制,以及可读性好的控制结构和数据结构:为了便于调试和提高软件可靠性,语言特点应该是编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制;第六章软件测试2、测试的概念(1)测试是为了发现程序中的错误而执行程序的过程(2)好的测试方案是极可能发现了至今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试;3、测试的过程与步骤P153大型软件的测试过程基本由下述几个步骤组成(1)模块测试单元测试发现编码和详细设计的错误(2)子系统测试(3)系统测试集成测试(4)验收测试确认测试(5)平行运行4、单元测试P153着重从下述5个模块进行测试主要使用白盒测试技术(1)模块接口(2)局部数据结构(3)重要的执行通路(4)出错处理通路(5)边界条件5、集成测试P156集成测试就是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题;有两种集成策咯(1)自顶向下集成(2)自底向上集成6、确认测试P160也称验收测试,它的目标是验证软件的有效性;通常使用黑盒测试法;7、白盒测试技术P162白盒方法测试软件时设计测试数据的典型技术(1)逻辑覆盖1、语句覆盖2、判定覆盖3、条件覆盖4、判定/条件覆盖5、条件组合覆盖6、点覆盖7、边覆盖8、路径覆盖(2)控制结构测试1、基本路径测试2、条件测试3、循环测试8、黑盒测试技术P171黑盒测试力图发现下述类型的错误:(1)功能不正确或遗漏了功能;(2)界面错误;(3)数据结构错误或外部访问数据库错误(4)性能错误(5)初始化和终止错误黑盒测试用到的技术(1)等价划分(2)边界值分析(3)错误推测第七章维护1、维护的定义P189所谓软件维护就是在软件已经交付使用周,为了改正错误或满足新的需要而修改软件的过程;根据交付使用之后可能进行的4项活动具体定义软件维护(1)改正性维护纠正在使用过程中暴露出来的错误;诊断和改正错误的过程,(2)适应性维护为了和变化了的环境适当地配合而进行的修改软件活动(3)完善性维护在使用软件的过程中增加新的功能或修改已有功能,还可能提出一般性的改进意见的过程(4)预防性维护为了改进未来的可维护性与可靠性,或为了给未来的改进奠定更好的基础而修改软件的过程;2、维护的过程P192(1)维护组织(2)维护报告(3)维护的事件流(4)保存维护记录(5)评价维护活动3、小结1、软件生命周期每个阶段的工作都和软件可维护性有密切关系;2、再工程过程可以在完成任意一个活动之后中止第八章面向对象技术1、面向对象方法学要点(P203面向对象方法学的出发点和基本原则,是尽可能模拟人类思维方法,是开发软件尽可能接近人类认识世界解决问题的方法与过程;2、面向对象方法学优点1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好3、对象模型(P216对象模型表示静态的,结构化的系统的“数据”性质;它是对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构;4、动态模型(P223动态模型表示瞬时的、行为化的系统的”控制“性质,它规定了对象模型中的对象的合法序列;5、功能模型(P224功能模型表示变化的系统的”功能“性质,他指明了系统应该”做什么”,因此更直接反映了用户对目标系统的需求;6、 三种模型之间的关系(P 228功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候即在何种状况下接受什么时间的触发做;对象模型则定义了做事情的实体;在面向对象方法学中,对象模型是最基本的,它为其他两种模型奠定了基础,人们依靠对象模型完成了3中模型的集成;下面扼要地叙述3种模型之间的关系; 三种模型描述了系统的不同方面: 对象模型 动态模型 功能模型 对象的静态结构及相互关系与时间和顺序有关的系统性质 与值的变化有关的系统性质 描述系统的数据结构控制结构 系统的功能 “干事的主体”“什么时候干” “干什么”7、 其他复杂问题大型系统的对象模型通常由下述5个层次组成:主题层、类与对象层、结构层、属性层、服务层主题层类与对象层结构层属性层服务层功能模型与对象模型的关系--对象模型描述了功能模型中的动作对象,数据存储以及数据流结构 --功能模型中的处理对应于对象模型中的操作 动态模型与对象模型的关系 --状态转换驱使行为发生,这些行为在DFD 中被映射成处理,它们同时与对象模型的操作相对应 --针对每个建立的动态模型描述了类实例的生命周期或运行周期动态模型与功能模型的关系--功能模型中的处理可能产生动态模型中的事件;面向对象开发方法包括OOA面向对象分析、OOD面向对象设计、OOP面向对象实现三个部分第九章软件项目管理1、估算软件规模P305(1)代码行技术每个人了估计程序的最小规模a,最大规模b和最可能规模m,分别算出这3中规模的平均值a̅、b̅和m̅之后,用下面公式计算程序规模:L=a̅+4m̅+b̅6(2)功能点技术2、项目进度Gantt图3、质量保证概括得说,软件质量就是“软件与明确地和隐含地定义的需要相一致的程度”;更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度;4、软件配置管理软件配置管理事是在软件的整个生命周期内管理变化的一组活动;具体地说,这组活动用来:(1)标识变化(2)控制变化(3)确保适当地实现了变化(4)向需要知道这类信息的人报告变化5、基线基线是一个软件配置管理概念,它有助于人们在不严重合理变化的前提下来控制变化,简而言之,基线就是通过了正式复审的软件配置项;;在软件配置项变成基线之前,可以迅速而非正式地修改它;其他复习简答题1、简述文档在软件工程中的作用;1 提高软件开发过程的能见度2 提高开发效率3 作为开发人员阶段工作成果和结束标志4 记录开发过程的有关信息便于使用与维护;5 提供软件运行、维护和培训有关资料;6 便于用户了解软件功能、性能;。
软件工程总复习(包括试题)
软件工程总复习一、概念题软件软件工程软件危机软件生存周期可行性研究瀑布模型增量模型喷泉模型需求分析结构化分析方法面向对象分析方法数据流图数据流图分层父图与子图的平衡数据字典总体设计模块模块独立性耦合内聚详细设计判定表判定树软件测试单元测试集成测试系统测试白盒测试技术黑盒测试技术确认测试(验收测试)UML对象模型功能模型动态模型软件维护软件度量二、数据流图画法1.仓库管理系统有如下角色和功能:(1)仓库管理员完成货物的入库和出库操作,入库是将指定数量的货物存入仓库(包括:货物名称、数量信息);出库是将指定数量的货物从仓库中取出,在取出货物时需要对仓库中是否有足够的货物进行判断,再决定是否执行该操作; (2)部门经理完成对货物的查询工作,在货物查询过程中,是根据输入的货物名称进行的,输入货物名称后将显示仓库中所该货物的库存量。
试根据要求画出该系统的数据流图,不必分层。
入库文件2.酒店客房管理系统有如下角色和功能:(1)顾客通过提供相关信息,向酒店申请入住,如果申请通过,则办理入住客房,否则将遭到拒绝;(2)顾客在离开酒店前需要退房,退房的同时结算房费; (3)管理员可以通过输入查询条件,查询酒店里客房的入住情况。
试根据要求画出该系统的数据流图,不必分层。
三、流程图、PAD图、N-S图的画法1、请根据以下程序流程图画出N-S图、PAD图。
四、用例图画法五、类图画法六、白盒测试逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖等价类划分法。
2015软件工程期末总复习
2015软件⼯程期末总复习⼀、填空题1.软件是计算机系统中与硬件相互依存的另⼀部分,它是包括(程序)、(数据)及其(相关⽂档)完整集合。
其中,(程序)是按事先设汁的功能和性能要求执⾏的指令序列,(数据)是使程序能够正确操纵信息的数据结构,(相关⽂档)是与程序开发、维护和使⽤有关的图⽂资料.2.软件危机是指计算机软件的(开发)和(维护)过程中所遇到的⼀系列严重问题。
3.软件⼯程是指导计算机软件(开发)和(维护)的⼀门⼯程学科,采⽤⼯程的概念、原理、技术和⽅法来开发和维护软件,把经过时间考验⽽证明正确的管理技术和当前能够得到的最好技术⽅法结合起来,以经济地开发出⾼质量的软件并有效地(维护)它,这就是软件⼯程。
4.常见的软件开发模型有(瀑布模型)、(快速原型模型)、(增量模型)和(螺旋模型)等;5.软件⼯程学⽅法的三要素是:(⽅法)、(⼯具)和(过程)。
6.瀑布模型是⼀个(⽂档)驱动模型。
7.可⾏性研究⼀般可以从(经济)可⾏性、(技术)可⾏性、法律可⾏性和法律可⾏性等⽅⾯来研究。
8.数据流图从数据传输和(数据加⼯)⾓度,以(图形)的⽅式描述数据流从输⼊到输出的传输变换过程。
9.数据流图的四个基本符号分别表⽰(数据的源点或终点)、(数据的加⼯)、(数据存储)和数据流;10.实体-联系图中,数据对象之间的关系有(⼀对⼀)、(⼀对多)和(多对多关系)。
11.需求分析阶段应该建⽴三种模,即:(数据模型)、(功能模型)和(⾏为模型)。
12.⼀般从(⼀致性)、(完整性)、(现实性)和(有效性)四个⽅⾯验证软件需求的正确性。
13.HIPO 图是由⼀组(层次图)图加上⼀张(IPO)图组成。
14.模块独⽴性的两个度量标准为:(耦合)和(内聚)。
15.⼀般说来,模块之间的耦合程度(低),则单个模块的内聚程度(⾼)。
16.经验表明,设计好的软件结构,通常顶层模块的扇出(⽐较⾼),中层模块扇出(较少),底层模块(⾼)扇⼊17.三种基本的程序控制结果是(顺序结果)、(选择(分⽀)结构)和(循环结构)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
27. 在人工智能领域,目前最广泛使用
的高级语言是(LISP)。
44、软件需求规格说明书的内容不应包括对
( 算法的详细过程 )的描述。
28. 下列(WINDOWS 2000)属于系
统软件。
45、SA 方法的分析步骤是首先调查了解当前
29. 下列哪个图是 N-S 图的构件
系统的工作流程,然后( 获得当前系统
8. 在建立软件系统的模块结构。应根
22. 允许用户建立、修改、存储正文的40、数据流图是常用的进行软件需求分析的
计算机程序是(Editor)。
图形工具,其基本符号是( 加工、数据流、
23. FORTRAN 语言的源程序是(块状) 数据存储和外部实体 )。
结构。
据(模块独立性)评价系统模块划 分的质量。
6. 以下各种类型的耦合中,(内容耦 合)的耦合性最强。
19. 汇编程序是指(汇编语言的处理程37.目前存在有若干种软件生存周期模型。例
序)。
如瀑布模型、增量模型、螺旋模型等。其中
20. 为了实现递归子程序的正确调用,规定了由前至后、相互衔接的固定次序的模
人们必须用(堆栈)来保存(返回型是 ( 瀑布模型 )。
28. 软件过程是软件(生存期)中的一 系列相关软件工程(活动)的集合。 每个软件过程又是由一组(工作任 务)、项目(里程碑)、软件工程产 品和交付物以及软件质量保证 (SQA)电等组成。
29. 软件的度量包括直接度量和间接度 量、软件产品的直接度量包括(产 生的代码行数)、(执行速度)、(存 储量大小)、在某种时间周期中所
17. 三种基本的程序控制结果是(顺序 结果)、(选择(分支)结构)和
报告的差错数。软件产品的间接度 量则包括(功能性)、(复杂性)、
(循环结构)。
(效率)、(可靠性)、
18. 把程序从一个硬件或软件环境中转 移到另一种配置环境称为软件的
(可维护性)和许多其他的质量特 性。
(可移植性)。
30. 软件配置管理是在软件的整个生命
9. 结构化程序设计方法要求每个(程 序块)结构应是单入口和单出口。
10. 开发软件时,对于提高软件开发人 员工作效率至关重要的是(程序开 发环境)。
11. 软件工程中描述软件生存周期的瀑 布模型一般包括计划、(需求分析)、
24. 国际上最广泛使用的商用及行政管41.数据流图是用于表示软件模型的一种图
19. 如果一个模块完成一组任务,这些 任务彼此之间的关系是很松散的, 这种內聚称为(偶然(或巧合)类 聚)。
20. 白盒法的具体设计程序测试方法有 语句覆盖、(判定覆盖)、(条件覆 盖)和路径覆盖。
周期内管理变化的一组活动。这组 活动包括:①标志变化,②控制变 化,③实现变化,④报告变化。 31. 软件的质量可以定义为(用户对软 件的满意程度),具体地说,软件 质量是软件与(功能和性能需求), (开发标准)以及所有软件产品都 应该具有的(隐含特性)相一致的
反复比较,确定以高级语言
(ALGOL 68)作为 Ada 研究的出 43.结构化分析方法使用的描述工具(数据字
发点。
典 )定义了数据流图中每一个图形元素。
设计、编码、测试、维护等几个阶 段。其中,设计阶段在管理上又可 以依次分为(概要设计)和(详细 设计)两个步骤。 12. 各种需求分析方法都有它们共同适 用的(准则。
使用维护工具或支撑环境。 8
软件生存周期是从软件开始开发到开发结 束的整个时期。(F)
ห้องสมุดไป่ตู้
作量,K 为一常数,c 为软件的复 杂程度, d 为维护人员对软件的数 熟悉程度。从这个模型可以看出: (不使用软件工程学方法指导开发 的软件维护起来工作量较大 软件 开发人员参加维护工作,维护的工
10. 从下列关于模块化程序设计的叙述 中,选出 5 条正确的叙述。 (②③④⑦⑧)
理语言是(COBOL)。
示方法,在下列可采用的绘图方法中,(自顶
向下自底向上逐步求精 ) 是常采用的。 25. 国际上最流行的数值计算的程序设
计语言是(FORTRAN)。
42、在软件开发过程中常用图作为描述工
26. 美国国防部主持开发了高级程序设 具,DFD 就是面向(数据流 )分析方法的描 计语言 Ada,在它研制开始时,经 述工具。
1. 软件设计中划分程序模块通常遵循 的原则是使各模块间的耦合尽可 (弱)
2. 若一个模块直接引用另一个模块中 的数据,这种类型的耦合称为(内 容耦合。
3. 瀑布模型是(文档)驱动模型
4. 若一个模块把开关量作为参数传送 给另一个模块,这种类型的耦合称 为(控制耦合)。
5. 若一个模块通过公共数据结构把数 据传送给另一个模块,这种类型的 耦合称为公共偶合)。
用户的需要 软件产品的质量差 软
算符使用有误时产生的错误。 10
护
件的可维护性差 软件的价格昂贵
9. 从下列叙述中选出 5 条有利于软件可
14. 软件系统可维护性好体现在以下几
2. 优秀的程序员经常使用(空格 空
维护性的正确叙述。(①③⑤⑦⑧⑩)
个方面 OO 的软件的稳定性比较好
行 注释 缩进)显示他们的经验。 3. 下列(内存检查 时间检查)属于
a) 2 b) 3
50.为了提高测试的效率,应该(选择发现 错误可能性大的数据作为测试数据 )。
16. 软件需求分析的任务不应包括(结 构化程序设计)。
c) 4 d) 5
51.使用白盒测试方法时,确定测试数据
34. 软件过程能力的提高首先需要对当 应根据( 程序的内部逻辑 )和指定的覆盖
17. 进行需求分析可使用多种工具;但 (PAD 图)是不适用的。
(数据流图中不夹带控制流、数据 流图的主图必须包括数据流图中的 四种基本元素、数据流图不是系统
选择时间效率和空间效率尽可能高的算 法。 5
型)。 四、判断题
的执行程序,不是程序流程图)。
重视程序结构的设计,使程序具有较好 的层次结构。 7
5. 软件维护工作量的数学模型如下为:
M=P+K*e(c-d),其中 P 是生产性工
一、填空题
1. 软件是计算机系统中与硬件相互依 存的另一部分,它是包括(程序)、 (数据)及其(相关文档)完整集 合。其中,
(程序)是按事先设汁的功能和性 能要求执行的指令序列,(数据) 是使程序能够正确操纵信息的数 据结构,(相关文档)是与程序开 发、维护和使用有关的图文资料. 2. 软件危机是指计算机软件的(开发) 和(维护)过程中所遇到的一系列 严重问题。
地址)及有关信息。
38、瀑布模型的问题是( 缺乏灵活性 )。
21. UNIX 操作系统是()研制的,它 39、系统定义明确之后,应对系统的可行性
是用程序语言(IBM 公司)书写
进行研究。可行性研究包括(经济可行性、
实现的。
技术可行性、操作可行性 )
7. 为了高质量地开发软件项目,在软 件结构设计时必遵循(信息屏蔽) 的原则
在进行需求分析时需同时考虑可维护性 问题。 1
OO 的软件比较容易修改 OO 的软 件比较容易理解 OO 的软件易于测 试和调试
主动式防错程序设计。 4. 关于数据流图有关描述中正确的是
尽可能在软件生产过程中保证各阶段文 档的正确性。 3
15. 方法建模需要建立以下哪几种模型 (对象模型、功能模型、动态模
测试)和面向对象的软件维护等主
和操作系统)转移到另一种计算环
要内容。
境的难易程度叫软件的(移植性)。
23. 保证软件质量的措施主要有(审 查)、复查和管理复审、(测试)。
34. 对象是封装了数据结构及可以施加 在这些数据结构上的(操作)的封
24. 提高软件质量和可靠性的技术大致
装体,这个封装体可以唯一地标识
3. 软件工程是指导计算机软件(开发) 和(维护)的一门工程学科,采用 工程的概念、原理、技术和方法来 开发和维护软件,把经过时间考验 而证明正确的管理技术和当前能够 得到的最好技术方法结合起来,以 经济地开发出高质量的软件并有效 地(维护)它,这就是软件工程。
4. 常见的软件开发模型有(瀑布模 型)、(快速原型模型)、(增量模型) 和(螺旋模型)等;
5. 软件工程学方法的三要素是:(方 法)、(工具)和(过程)。
6. 瀑布模型是一个(文档)驱动模型。
7. 可行性研究一般可以从(经济)可 行性、(技术)可行性、法律可行 性和法律可行性等方面来研究。
8. 数据流图从数据传输和(数据加工) 角度,以(图形)的方式描述数据 流从输入到输出的传输变换过程。
前的软件过程状况进行料学的(评 标准。
估。
三、多项选择题
36.软件工程学的目的应该是最终解决软件
18.
1960
年底
Dijkstra
提倡的(结构化 生产的(
使软件生产工程化
)问题。
程序设计)是一种有效的提高程序
设计效率的方法。
1. 软件危机可以表现为 产品不符合
判定覆盖法可能查不出在判定中逻辑运
c) 完善性维护 d) 预防性维
多,这些分析方法大都遵循以下准 则(必须理解并描述问题的信息域 必须定义软件的功能域 必须描述 软件的行为 用层次的方法展示各 种模型的细节 )
7. 从下列叙述中选出 5 条关于好的程 序设计风格的正确叙述使用括号以 改善表达式的情晰性。 不要修补 不好前程序,要重新写。 不要进
(源程序的效率与详细设计阶段确47 模块独立性是软件模块化所提出的要求,
定的算法的效率无关)。
衡量模块独立性的度量标准是模块的( 内聚性
和耦合性 )。
32. 下列伪码片段的程序流图是(),
其环路复杂度是()
49.Jackson 方法是一种面向( 数据结构 )的
方法。
33. 下列伪码片段的环路复杂度是()