软件工程导论期末复习题
软件工程导论期末复习题

软件工程导论期末复习题第一章1、什么是软件工程?软件工程方法学包括哪三要素?答:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程方法学三要素:方法、工具、过程。
目前使用得最广泛的软件工程方法学:传统方法学、面向对象方法学。
2、传统方法学与面向对象方法学定义传统方法学也称为生命周期方法学或结构化范型。
它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。
面向对象方法学:面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
面向对象方法学具有下述4个要点:(1)把对象作为融合了数据及在数据上的操作行为的软件构件。
(2)把所有对象都划分成类。
(3)按照父类(或称为基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。
(4)对象彼此间只能通过发送消息互相联系。
3、软件生命周期有哪些阶段?软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分为若干个阶段。
软件定义时期分3阶段:问题定义、可行性研究、需求分析。
开发时期分4个阶段:总体设计、详细设计、编码和单元测试、综合测试。
其中前两个阶段称为系统设计,后两个称为系统实现。
维护时期的主要任务是使软件持久地满足用户的需要。
第二章1、为什么要进行可行性研究,要从哪几个方面研究?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性研究至少应从3个方面研究:技术可行性、经济可行性、操作可行性。
软件工程导论期末考试试题

软件工程导论期末考试试题1.选择题1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。
选项中正确的是C,即运行阶段。
2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大,选项中正确的是C,即测试和运行阶段。
3.在结构化的瀑布模型中,系统测试阶段的目标是由哪个阶段定义的标准决定的,选项中正确的是A,即需求分析阶段。
4.软件工程的出现主要是由于软件危机的出现,选项中正确的是C。
5.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境,选项中正确的是C。
6.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充,选项中正确的是B。
7.UML主要应用于基于对象的面向对象的方法,选项中正确的是C。
8.在下面的软件开发方法中,要求软件设计和开发人员的开发要求最高的是原型化方法,选项中正确的是B。
9.结构化分析方法强调分析对象的数据流,选项中正确的是B。
10.软件开发的结构化生命周期方法将软件生命周期划分成计划阶段、开发阶段和运行阶段,选项中正确的是A。
11.软件开发中常采用的结构化生命周期方法一般称其为瀑布模型,选项中正确的是A。
12.软件开发的瀑布模型中,可能占用人员最多的阶段是编码阶段,选项中正确的是C。
2.改写1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。
其中,运行阶段是指软件开发完成后,软件被交付给用户并开始使用的阶段。
2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大。
在这八个阶段中,测试和运行阶段是最后一个阶段,也是软件交付给用户前的最后一个阶段,如果在这个阶段出现问题,将会对软件的使用造成很大的影响。
软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的部结构。
此方法将程序看作是A)路径的集合B)循环的集合C)目标的集合D)地址的集合c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序I.功能测试Ⅱ.结构测试A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱa(3)检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试c(4)下述述中,哪一个不是软件健壮性的度量指标?A)失败后重新启动所需的时间B)引起失败的时间所占的百分比D)失败前的平均工作时间D)在一次失败中数据恶化的概率b(5)对软件是否能达到用户所期望的要求的测试称为A)集成测试B)有效性测试C)系统测试D)验收测试a(6)在面向数据流的软件设计方法中,一般将信息流分为A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的容I.数据描述Ⅲ.模块描述II.功能描述Ⅳ.性能描述A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ(8)软件测试一般分为三类,即I.静态测试Ⅱ.动态测试Ⅲ.正确性测试设计测试用例对程序进行测试,应属于A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ(9)模块独立性是由聚性和耦合性来度量的,其中聚性是度量____,耦合性是度量____。
A)模块间联系程度B)模块的功能强度C)信息隐蔽程度D)模块的复杂程度(10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具I.结构图Ⅱ.实体关系图Ⅲ.IPO图II.Ⅳ.流程图Ⅴ.N-S图A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部A(2)C(3)A(4)C(5)B(6)A(7)D(8)B(10)C(11)试判断下列论述中哪个(些)是正确的I.软件系统中所有的信息流都可以认为是变换流II.软件系统中所有的信息流都可以认为是事务流III.事务分析和变换分析的设计步骤基本类似A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ(12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书C)总体设计报告D)有效性测试要求(13)软件设计中的软件过程其主要描述的是A)模块间关系B)模块操作细节C)模块控制方法D)模块类型(14)软件测试是软件件开发过程的重要阶段,是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?I.预防软件发生的错误Ⅱ.发现改正程序错误Ⅲ.提供诊断错误信息A)只有Ⅰ均不须B)只有ⅡC)只有ⅢD)都是(15)软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?A)功能测试B)单元测试C)结构测试D)确认测试(16)软件维护是软件运行期的重要任务,下列维护任务中哪一类维护是软件维护的主要部分?A)完善性维护B)适应性维护C)改正性维护D)预防性维护(17)软件开发中常采的结构化生命周期方法,由于其特征而一般称其为A)瀑布模型B)对象模型C)螺旋模型D)层次模型(18)软件原型化开发方法有其基本步骤,下述I.获取基本需求Ⅱ.开发工作模型Ⅲ.严格细部说明Ⅳ.模型验证中,哪些(个)是实现原型化的最基本的步骤?A)全部都是B)Ⅰ,Ⅱ和ⅣC)ⅣD)Ⅰ和Ⅱ(19)软件设计将涉及软件的结构、过程和模块的设计,其中软件过程是指A)模块间的关系B)模块的操作细节C)软件层次结构D)软件开发过程(20)软件需求分析和设计过程中,其分析与设计对象可归结为两个主要的对象,即数据和程序,按一般实施的原则,对二者的处理应该是A)先数据后程序B)先程序后数据C)与顺序无关D)可同时进行(11)D(12)B(13)B(14)D(15)B(16)A(17)A(18)B(19)B(20)A(21)结构化分析(SA)方法将欲开发的软件系统分解为若干基本加工,并对加工进行说明,下述I.结构化语言Ⅱ.判定树Ⅲ.判定表是常用的说明工具,其中便于对加工出现的组合条件的说明工具是A)Ⅱ和ⅢB)Ⅰ、Ⅱ和ⅢC)Ⅰ和ⅢD)Ⅰ和Ⅱ(22)软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是A)分析阶段B)设计阶段C)编码阶段D)测试阶段(23)加工是对数据流图中不能再分解的基本加工的精确说明,下述哪个是加工的最核心成分?A)加工顺序B)加工逻辑C)执行频率D)激发条件(24)构建一个原型不支持下述哪种功能?A)取代最终系统B)辅助收集软件需求C)辅助估计工程代价D)作为较大工程的基础(25)软件文档是软件的重要组成部分,也是软件开发阶段的基础,它还影响到软件的A)可复用性B)可维护性C)可扩展性D)可移植性(26)下列哪种描述是正确的?A)定义阶段产生软件需求规划B)测试在软件生命周期中是可选的C)CASE工具只能辅助软件生命周期的设计阶段D)后一阶段改变时,不需要更新以前所有阶段的文档(27)黑盒测试法和白盒测试法经常用于软件测试阶段,其中白盒测试法主要用于测试软件的A)结构合理性B)程序正确性C)程序外部功能D)程序部逻辑(28)软件计划是软件开发的早期和重要阶段,此阶段要求交互和配合的是A)设计人员和用户B)分析人员和用户C)分析人员和设计人员D)编码人员和用户\(21)A(22)C(23)B(24)A(25)B(26)A(27)D(28)B(29)C(30)A(29)数据流图是用于软件需求分析的工具,下列元素I.数据流Ⅱ.加工Ⅲ.数据存储Ⅳ.外部实体(源或潭)哪些是其基本元素?A)Ⅰ,Ⅱ和ⅢB)Ⅰ和ⅢC)全部D)Ⅰ,Ⅲ和Ⅳ(30)数据字典(DD)是定义哪一种系统描述工具中的数据的工具?A)数据流程图B)系统流程图C)程序流程图D)软件结构图(31)软件需求分析一般应确定的是用户对软件的A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求(32)软件设计包括总体设计和详细设计两部分,下列述中哪个是详细设计的容?A)软件结构B)数据库设计C)制定测试计划D)模块算法(33)数据字典是对数据定义信息的集合,它所定义的对象都包含于A)数据流图B)程序框图C)软件结构D)方框图(34)软件设计中,设计复审是和设计本身一样重要的环节,其主要目的和作用是能A)减少测试工作量B)避免后期付出高代价C)保证软件质量D)缩短软件开发周期(35)程序设计语言的选择是顺利实施编程的重要基础,评价可用语言的因素甚多,而其首要的选择依据是A)语言的应用领域B)对语言的熟悉程度C)数据结构的复杂度D)算法的复杂度(36)软件开发的原型化方法是一种动态定义软件需求的方法,下述条件:I.成熟的原型化人员Ⅱ.快速的成型工具Ⅲ.需求了解的准确性哪个(些)条件是实施原型化方法所必备的?A)Ⅰ和ⅡB)Ⅱ和ⅢC)Ⅰ,Ⅱ和ⅢD)Ⅲ(37)软件的可维护性度量可分解为对多种因素的度量,下述各种因素I.可测试性Ⅱ.可理解性Ⅲ.可修改性Ⅳ.可复用性哪个(些)是可维护性度量的容?A)全部B)ⅠC)Ⅰ,Ⅱ和ⅢD)Ⅰ和Ⅱ(38)软件测试是软件开发过程中重要和不可缺少的阶段,其包含的容和步骤甚多,而测试过程的多种环节中基础的是A)集成测试B)单元测试C)系统测试D)验收测试(39)数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,那些是常采用的?I.自顶向下Ⅱ.自底向上Ⅲ.分层绘制Ⅳ.逐步求精A)全是B)Ⅰ,Ⅲ和ⅣC)Ⅱ,Ⅲ和ⅣD)Ⅰ和Ⅲ(31)D(32)D(33)A(34)B(35)A(36)A(37)C(38)B(39)B(40)B(40)结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的A)控制流B)数据流C)程序流D)指令流(41)软件结构是软件模块间关系的表示,下列术语中哪一个不属于对模块间关系的描述?A)调用关系B)从属关系C)嵌套关系D)主次关系(42)原型化方法是一类动态定义需求的方法,下列叙述中,哪一个不具有原型化方法的特征?A)提供严格定义的文档B)加强用户参与和决策C)简化项目管理D)加快需求的确定(43)评审是对软件进行静态测试的一种方法,下述结论中,哪个是与软件评审无关的容?A)尽量发现错误B)检查软件文档C)根据评审标准D)依靠测试信息(44)软件维护是软件得以正常运行的重要环节,按照软件工程方法的理解,一般软件维护应该开始于A)阅读设计文档B)理解程序代码C)分析软件结构D)查阅测试记录(45)软件工程哪个阶段产生软件需求定义?A)定义阶段B)工程阶段C)维护阶段D)开发阶段(46)自顶向下绘制多层数据流程图时,必须考虑到父图与子图之间的平衡,此平衡通常由___来维护A)输出数据B)数据字典C)处理序号D)输入数据(47)下述哪种是聚性最严格的形式?A)逻辑B)功能C)过程D)一致性(48)下述哪个不是白盒测试法的概念?A)应该执行边界条件下的所有循环B)应该执行边界条件下的所有接口B)应该执行所有逻辑判断的真假情况D)应该至少执行一次模型中的所有独立路径(49)原型化方法是一个动态设计过程,它要求使用该方法的人员具有下述哪种能力A)熟练的编程技能B)及时获得用户需求C)协作精神及有力管理D)巧妙使用工具(50)数据流程图(DFD)是用于描述结构化方法中哪一个工作阶段的工具?(41)D(42)A(43)D(44)C(45)A(46)B(47)B(48)B(49)B(50)BA)可行性分析B)需求分析C)详细设计D)程序编码(51)判定树和判定表是用于描述结构化分析方法中哪一环节的工具?A)功能说明B)数据加工C)流程描述D)结构说明(52)在结构化方法中,软件功能分解应属于软件开发中的哪一阶段?A)详细设计B)需求分析C)总体设计D)编程调试(53)信息隐蔽的概念与下述哪一种概念直接相关?A)软件结构定义B)模块独立性C)模块类型划分D)模块耦合度(54)结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于其基本结构?A)顺序结构B)条件结构C)选择结构D)嵌套结构(55)软件复审时其主要的复审对象是A)软件结构B)软件文档C)程序编码D)文档标准(56)软件需求规格说明书不应包含的容是A)系统输入/输出的描述B)质量控制方案C)数据字典D)用户界面需求描述E)系统可靠性要求描述F)测试方案G)需求分析阶段进度安排H)人员需求(51)B (52)C (53)B (54)D (55)B (56)F G H(57)将下面的DFD 转换为初始化的模块结构图图中:左竖虚线表示此处为系统的逻辑输入右竖虚线表示此处为系统的逻辑输出57-1)57-2)57-3)(58)将下面的伪码转换为PAD 和N-S 图beginS1;If x>5then S2else S3;while y<0do beginif z>3then S4else S5;while w>0then S6;S7end;S8;If u>0thenS9;S10;End.(59)将下面的PAD 转换为流程图X D 4G M 7B A 12C 3E56H N 8Y 9Z v g 6j u 10a 1f5i 78k x y Zb 2dc 4e391112j f h i e 47l1c 3d28ab g 6k 59(60)将下面给出的伪码,转换为PAD 图和程序流程图。
《软件工程导论》期末考试试题和答案

1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A )。
A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
《软件工程导论》期末考试试题和答案

1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标.5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型.7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要( B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护 B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A )。
A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
软件工程导论复习题及答案详解

第一章一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与________。
2.程序设计时代的生产方式是________。
3.软件工程涉及到几个学科,它是一门_____学科。
4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能________。
5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是________模型。
6.喷泉模型是一种以用户需求为动力,以_______为驱动的模型。
7.结构化方法是一种面向数据流的开发方法。
由结构化分析、_______、结构化程序设计构成。
8.软件工程研究的主要内容是软件开发管理和_______两个方面。
9.软件工具是支持软件开发人员的开发和维护活动而使用的________。
10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种________,使用相应的工具来进行。
三、选择题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.1/2B.1/3C.1/4D.2/37.软件开发中大约要付出( )%的工作量进行测试和排错。
A.20B.30C.40D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。
A.可行性研究B.需求分析C.详细设计D.编码9.软件生存周期中最长的是( )阶段。
A.需求分析B.概要设计C.测试D.维护四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件 2.个体手工劳动3.综合性交叉 4.相同5.瀑布 6.对象7.结构化设计8.软件开发技术9.软件10.开发方法三、选择题1.B 2.D 3.A 4.C5.A 6.B 7.C 8.B 9.D第二章一、名称解释1.可行性研究2.技术可行性3.经济可行性4.社会可行性5.货币时间价值6.投资回收期7.纯收入8.系统流程图二、填空题1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定________。
《软件工程导论》期末复习题知识点
《软件工程导论》期末复习知识点第一章填空题1、软件是、及其说明程序的。
答案:数据、计算机程序、各种文档2、软件工程包括软件开发技术和两大部分内容。
答案:软件工程管理选择题1、软件危机出现于,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。
A50年代末B60年代初 C 60年代末 D 70年代初A运筹学 B 工程学C软件学D软件学答案:C B2、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。
A 软件投机B软件危机C软件工程D软件产生答案:B3、产生软件危机的原因有如下几点,除了______。
A 软件开发过程未经审查B 软件开发不分阶段,开发人员没有明确的分工C 所开发的软件,除了程序清单外,没有其他文档D 采用工程设计的方法开发软件,不符合软件本身的特点答案:D4、软件产品的开发主要是( )。
A 复制B 再生产C 拷贝D 研制答案: D判断题1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
()答案:√2、一个成功的项目唯一提交的就是运行程序。
()答案:×3、瀑布模型不适用于需求不确定的情况。
()答案:√名词解释1、软件工程答案:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
2、软件生存周期答案:软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。
简答题1、简述软件危机发生的原因。
答案:(1)软件的规模加大、复杂性提高、性能增强;(2)软件是逻辑产品,尚未完全认识其本质和特点;(3)缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法;(4)用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应;(5)软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足。
软件工程导论复习题
1.软件工程学概述一、填空题1.软件=()+()。
2.软件生存周期一般可分为系统工程、()、()、()、测试、运行与维护阶段。
3.在瀑布模型中,将软件开发划分为若干个时期,软件项目的可行性研究一般被归属于()。
4.根据软件工程学的七项基本原则,DOS中把标准输入、输出设备视为文件,这一思想体现了软件工程学的()原则。
二、判断题1.软件是一种逻辑实体,而不是具体的物理实体。
()2.软件工程是开发、运行、维护和修复软件的系统方法。
()3.螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示,()4.在软件开发中,采用原型系统策略的主要困难是时间问题。
()三、选择题1.软件工程的概念是哪年提出的()。
A.1988B.1968C.1948D.19282.软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据而且也影响软件的()。
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.软件是一种()。
软件工程导论期末复习
一、填空题1.软件生存周期一般可分为问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试、软件维护。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和操作可行性。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计方法,以数据结构为基础构造模块的方法,以对象、类、继承和通信为基础的面向对象设计方法。
6.数据流图和数据字典共同构成系统的逻辑模型。
7.软件测试的方法有分析方法和非分析方法。
8.单元测试一般以白盒测试为主,黑盒测试为辅。
9.成本估计方法主要有自底向上、自顶向下和算法模型估计三种类型。
10.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的( )情况。
解:信息流动[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
11.成本效益分析的目的是从( )角度评价开发一个项目是否可行。
解:经济[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。
12.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和( ) 。
解:宽度优先策略[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。
它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
13.独立路径是指包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含有一条( )的边的路径。
《软件工程导论》期末考试试题附答案
软件工程导论期末复习和答案1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
1.下列哪个阶段不属于软件生存周期的三大阶段( C )。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。
A、明确的需求定义B、完整的生命周期C、较长的开发时间D、熟练的开发人员4.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、预防性维护5.一般说来,投入运行的软件系统中有错误(A )。
A、不是不可以理解的B、是不能容忍的C、是要求退货的理由D、是必然的1.在进行总体设计时应加强模块间的联系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论期末复习题 第一章 1、什么是软件工程?软件工程方法学包括哪三要素? 答:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程方法学三要素:方法、工具、过程。 目前使用得最广泛的软件工程方法学:传统方法学、面向对象方法学。 2、传统方法学与面向对象方法学定义 传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。 面向对象方法学:面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。 面向对象方法学具有下述4个要点: (1)把对象作为融合了数据及在数据上的操作行为的软件构件。 (2)把所有对象都划分成类。 (3)按照父类(或称为基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。 (4)对象彼此间只能通过发送消息互相联系。 3、软件生命周期有哪些阶段? 软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分为若干个阶段。 软件定义时期分3阶段:问题定义、可行性研究、需求分析。 开发时期分4个阶段:总体设计、详细设计、编码和单元测试、综合测试。其中前两个阶段称为系统设计,后两个称为系统实现。 维护时期的主要任务是使软件持久地满足用户的需要。 第二章 1、为什么要进行可行性研究,要从哪几个方面研究? 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究至少应从3个方面研究:技术可行性、经济可行性、操作可行性。 必要时还应从法律、社会效益等更广泛的方面研究每种解法的可行性。 2、可行性研究的步骤(8个) (1)复查系统规模和目标 (2)研究目前正在使用的系统 (3)导出新系统的高层逻辑模型 (4)进一步定义问题 (5)导出和评价供选择的解法 (6)推荐行动方针 (7)草拟开发计划 (8)书写文档提交审查 第三章 1、什么是需求分析?需求分析的任务是什么? 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”这个问题。 需求分析的任务: (1)确定对系统的综合要求 (2)分析系统的数据要求 (3)导出系统的逻辑模型 (4)修正系统开发计划 2、与用户沟通获取需求的方法是什么? (1)访谈 (2)面向数据流自顶向下求精 (3)简易的应用规格说明技术 (4)快速建立软件原型 3、情景分析技术的用处体现在哪两方面? (1)它能在某种程度上演示目标系统的行为,从而便于用户理解,而且还可能进一步揭示出一些分析员目前还不知道的需求。 (2)由于情景分析较易为用户所理解,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。 4、在哪些方面验证软件需求的正确性 4个方面:一致性、完整性、现实性、有效性。 5、什么是数据流图,其中有哪4种元素?(给定需求描述,画数据流图,大题。) 数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程,是系统逻辑功能的图形表示。 4种元素:(1)正方形(或立方体)表示数据的源点或终点 (2)圆角矩形(或圆形)代表变换数据的处理 (3)开口矩形(或两条平行横线)代表数据存储 (4)箭头表示数据流。 第五章 1、什么是总体设计 总体设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题,因此总体设计又称为概要设计或初步设计。 2、在软件设计过程中,需要遵循哪些基本原理? (1)模块化(2)抽象(3)逐步求精(4)信息隐藏和局部化(5)模块独立 3、解释模块化,模块化的好处 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 好处: 采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多的程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。 4、启发规则有哪些? 共7个: (1)改进软件结构提高模块独立性 (2)模块规模应该适中 (3)深度、宽度、扇出和扇入都应适当 (4)模块的作用域应该在控制域之内 (5)力争降低模块接口的复杂程度 (6)设计单入口单出口的模块 (7)模块功能应该可以预测 5、什么是功能结构图 功能结构图是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的的调用关系。 第六章 1、详细设计我们要做什么 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2、在进行人机界面设计时应考虑哪些问题? 系统响应时间、用户帮助设施、出错信息处理、命令交互。 3、出错信息处理 出错信息和警告信息,是出现问题时交互式系统给出的“坏消息”。出错信息设计的不好,将向用户提供无用的甚至误导的信息,反而会加重用户的挫折感。 一般说来,交互式系统给出的出错信息或警告信息,应该具有下述属性: (1)信息应该用用户可以理解的术语描述问题。 (2)信息应该提供有助于从错误中恢复的建设性意见。 (3)信息应该指出错误可能导致哪些负面后果,以便用户检查是否出现了这些问题,并在确实出现问题时及时解决。 (4)信息应该伴随着听觉上或视觉上的提示。 (5)信息不能带有指责色彩,也就是说,不能责怪用户。 4、什么是程序处理流程图 程序流程图又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法。 5、什么是数据库的设计,数据库设计阶段我们应该做什么 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 数据库设计阶段内容:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。 第七章 1、如何选择程序设计语言 根据下面的主要的实用标准: (1)系统用户的要求 (2)可以使用的编译程序 (3)可以得到的软件工具 (4)工程规模 (5)程序员的知识 (6)软件可移植性要求 (7)软件的应用领域 2、软件测试的方法有哪些 黑盒测试、白盒测试。 3、测试步骤有哪些,解释系统测试 步骤:(1)模块测试(2)子系统测试(3)系统测试(4)验收测试(5)平行运行 系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现 设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个测试中步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误 不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。 4、白盒测试中怎样设计测试用例 (1)逻辑覆盖(2)控制结构测试 下面是网上查找的答案: (1)保证一个模块中的所有独立路径至少被使用一次 (2)对所有逻辑均需测试 (3)在上下边界及可操作范围内运行所有循环 (4)检查内部数据结构以确保其有效性 5、黑盒测试中怎样设计测试用例 (1)等价划分 (2)边界值分析 (3)错误推测 第八章 1、维护阶段有哪些因素决定软件的可维护性 (1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性 可重用性: 所谓重用是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。大量使用可重用的软件构件来开发软件,可以从下述两个方面提高软件的可维护性: (1)通常,可重用的软件构件在开发时都经过很严格的测试,可靠性比较高,且在每次重用过程中都会发现并清除一些错误,随着时间推移,这样的构件将变成实质上无错误的。因此,软件中使用的可重用构件越多,软件的可靠性越高,改正性维护需求就越少。 (2)很容易修改可重用的软件构件使之再次应用在新环境中,因此,软件中使用的可重用构件越多,适应性和完善性维护也就越容易。 第十章 1、面向对象的方法需要建立哪三种模型 对象模型、动态模型、功能模型。 2、面向对象中的三个子模型和五个层次 3个子模型:对象模型、动态模型、功能模型。 5个层次:主题层、类与对象层、结构层、属性层、服务层。 3、解释结构层(类和对象的关系) 第十三章 1、什么是软件质量 概括地说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。