软件工程填空题试题及答案

合集下载

计算机二级考试软件工程题库及答案

计算机二级考试软件工程题库及答案

计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。

答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。

答案:分析3. 软件测试的目的是为了发现软件中的_________。

答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。

答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。

主要阶段包括需求分析、设计、编码、测试和维护。

需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。

2. 请简要说明软件工程的重要性。

答案:软件工程的重要性体现在以下几个方面。

首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。

其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。

最后,软件工程可以提高软件的开发效率,节省时间和资源。

以上是计算机二级考试软件工程题库及答案的内容。

希望对您有所帮助!。

软件工程期末考试参考题及答案

软件工程期末考试参考题及答案

一、填空题(每空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 )。

软件工程期末试题(含答案)

软件工程期末试题(含答案)

软件⼯程期末试题(含答案)填空题(每空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 )。

软件工程期末试题及答案

软件工程期末试题及答案

软件工程期末试题及答案一、选择题(每题2分,共20分)1. 以下哪项不是软件工程的基本目标?A. 提高软件的生产效率B. 提高软件的质量C. 减少软件的开发成本D. 增加软件的复杂性答案:D2. 下面哪个不属于软件工程的三个主要过程?A. 软件规格B. 软件开发C. 软件测试D. 软件维护答案:A3. 下列哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A4. 以下哪个不属于软件项目的管理活动?A. 项目计划B. 风险管理C. 质量保证D. 软件开发答案:D5. 以下哪个不是软件需求分析的工具?A. 数据流图(DFD)B. 实体关系图(ERD)C. 状态转换图(STD)D. 类图答案:B6. 以下哪个不属于软件设计的原则?A. 模块化B. 抽象C. 封装D. 继承7. 以下哪种测试方法主要用于检测软件的功能是否满足需求?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:C8. 以下哪个不属于软件维护的类型?A. 适应性维护B. 完善性维护C. 纠错性维护D. 预防性维护答案:D9. 以下哪个不属于软件项目管理工具?A. Microsoft ProjectB. JiraC. TrelloD. Visual Studio10. 以下哪个不属于敏捷软件开发的特点?A. 短周期迭代B. 客户参与C. 重构D. 线性开发流程答案:D二、填空题(每题2分,共20分)1. 软件工程的基本目标包括提高软件的生产效率、提高软件的质量和______。

答案:减少软件的开发成本2. 软件工程的三个主要过程分别是软件规格、软件开发和______。

答案:软件维护3. 软件需求分析的主要工具包括数据流图(DFD)、实体关系图(ERD)和______。

答案:状态转换图(STD)4. 软件设计的原则包括模块化、抽象、封装和______。

答案:继承5. 软件测试的四个层次分别是单元测试、集成测试、系统测试和______。

软件工程考试试题含答案

软件工程考试试题含答案

一、填空题每空1分,共25分1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、编码、测试和____________;2.基于软件的功能划分,软件可以划分成__________、__________、__________三种;3.可行性研究,应从、技术可行性、运行可行性、和开放方案可行性等方面研究;4.系统流程图是描绘的传统工具;它的基本思想是用图形符号以描绘系统里面的每个部件;5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、和;6.结构化分析方法是面向________________进行需求分析的方法;结构化分析方法使用________________与________________来描述;7.是自动地共享类、子类和对象中的方法和数据的机制;8.软件详细设计工具可分为3类,即________________、________________和________________;9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________;10.大型软件测试包括、、确认测试和四个步骤;1、可行性研究需求分析运行与维护2、系统软件支撑软件应用软件3、经济可行性法律可行性4、物理系统黑盒子形式5、加工数据流数据存储文件6、数据流数据流图DFD数据字典DD7、继承性8、图示工具、设计语言表格工具9、审查测试10、单元测试集成测试系统测试二、单项选择题每小题2分,共20分1.软件设计中划分模块的一个准则是;A、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.Jackson设计方法是由英国的提出的,它是一种面向的软件设计方法;A、对象B、数据流C、数据结构D、控制结构3.试判断下列叙述中,哪个些是正确的4.;a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c5.是用户和设计交换最频繁的方法;A、原型化方法B、瀑布模型方法C、螺旋模型方法D、构件组装模型6.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是;A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质7.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言;A、PASCALB、VISUALBASICC、C++D、汇编语言8.软件测试的目的是A、证明软件的正确性B、找出软件系统中存在的所有错误C、证明软件系统中存在错误D、尽可能多的发现软件系统中的错误9.使用白盒测试方法时,确定测试数据应根据和指定的覆盖标准;A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能10.软件维护工作的最主要部分是;A、校正性维护B、适应性维护C、完善性维护D、预防性维护11.PDL是语言;A、高级程序设计语言B、伪码式B、C、C、中级程序设计语言D、低级程序设计语言三、判断题正确的在括号内打上“√”,错误的打上“×”;每题2分,共20分1.用黑盒法测试时,测试用例是根据程序内部逻辑设计的;X2.发现错误多的程序模块,残留在模块中的错误也多;V3.为了加快软件维护作业的进度,应尽可能增加维护人员的数目;X4.软件维护就是改正软件中的错误;X5.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;V6.软件开发的主要任务是写程序;X7.测试只能证明程序有错误,不能证明程序没有错误;V8.模块化程序设计中,模块越小,模块化的优点越明显;一般来说,模块的大小都在10行以下;X9.在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等;X10.程序设计风格指导原则提出,尽量多使用临时变量;X四、简答题每题5分,共20分1.什么是软件工程软件工程是指导计算机软件开发和维护的工程学科;采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来;2.耦合性和内聚性有几种类型其耦合度、内聚强度的顺序如何低:非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合:高强:功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合内聚:弱3.简述需求分析工作可以分成哪四个方面软件需求分析的有哪三个基本原则4.:需求分析阶段分成四个方面:对问题的识别、分析与综合、制定规格说明和评审;三个基本原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图;5.什么是黑盒测试法黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息;五、程序设计与算法描述题共15分1.根据下面的伪代码程序,完成相应要求;8分STARTIFC1THENWHILEC2DOfENDDOELSEBLOCKgpENDBLOCKENDIFREPEATUNTILC3qrENDREPSTOP1)画出程序流程图4分2)用N—S图描述4分2.有下列伪码程序:STARTINPUTM,NIFM>=10THENX=10ELSEX=lENDIFIFN>=20THENY=20ELSEY=2ENDIFPRINTX,YSTOP设计该程序的语句覆盖和路径覆盖测试用例;7分M=9或<l0,N=l9或<20;M=l0或>=10,N=20或>=20路径覆盖的测试用例为M=9,N=19;M=9、N=20;M=l0,N=l9;M=10,N=20要目标是提高软件质量,减少软件维护代价;软件过程五个模型对比瀑布模型、快速原型、增量、螺旋、喷泉模型可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决;2、四个方面:技术、经济、操作可行性3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求;2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法;3、实体联系图:1、数据对象2、属性3、联系1:1、1:N、M:N总体设计:任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构;系统设计阶段确定系统具体实施方案、结构设计阶段确定软件结构模块独立:内聚和耦合耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统内聚Cohesion:一个模块内各元素结合的紧密程度面向数据流的设计方法:变换流和事务流详细设计:任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序;过程设计的工具程序流程图、盒图、PAD图、判定表、判定树面向数据结构的设计方法jackson方法:程序复杂程度的定量McCabe方法:1、VG=E-N+2E是流图中边的条数,N是结点数2、VG=P+1P是流图中判定结点的个数3、流图中的区域数等于环形复杂度;编码单元测试:又称模块测试;每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试;由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性;集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试;这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等;白盒测试技术逻辑覆盖、基本路经测试白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程;所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作;白盒测试又称为结构测试;语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次;判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果;判定/条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果;条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次;基本路经测试:黑盒测试技术等价划分黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求;黑盒测试是在程序接口进行的测试,又称为功能测试;1、黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息如数据文件的完整性等;用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出2、等价类划分等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则:1如果输入条件规定了取值范围,则可划分出一个有效的等价类输入值在此范围内和两个无效的等价类输入值小于最小值、输入值大于最大值;2如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类输入数据的个数等于给定的个数要求和两个无效的等价类输入数据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求;3如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类;4如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类所有不允许值的集合;5如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类符合规则和若干个无效的等价类从各种角度违反规则;维护改正性维护、适应性维护、完善性维护、预防性维护决定软件可维护性因素可理解性、可测试性、可修改性、可移植性、可重用性面向对象方法学优点:1、与人类习惯的思维方法一致2、稳定性好3、可重用性好4、较易开发大型软件产品5、可维护性好对象模型1、关联2、聚集3、泛化4、依赖和细化贰软件工程软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题;熟记2、了解软件危机主要的一些典型表现;P23、出现软件危机的原因:4、消除软件危机的途径:首先,我们要对计算机软件有一个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严格、各类人员协同配合、共同完成的工程项目;最后,应该开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施方法和工具,又要有必要的组织管理措施;软件工程1、软件工程:采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它;熟记2、了解软件工程的本质特征:1、软件工程关注于大型程序的构造2、软件工程的中心课题是控制复杂性3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程的领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品3、缺乏应用领域地相关知识,是软件开发项目出现问题的常见原因;4、软件工程的基本原理:1、用分阶段的生命周期计划严格管理2、坚持进行阶段审评3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组的人员应该少而精7、承认不断改进软件工程实践的必要性5、方法学范型:在软件生命周期全过程中使用的一整套技术方法的集合;6、软件工程方法学3要素:方法、工具和过程;7、目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学8、传统方法学也成为生命周期方法学或结构化范型;9、面向对象方法学具有的4个要点;P10软件生命周期1、概括地说,软件生命周期由软件定义、软件开发和运行维护也称为软件维护3个时期组成,每个时期又进一步划分成若干个阶段;2、软件定义时期的任务3、软件定义时期通常进一步划分成3个阶段:问题定义、可行性研究、需求分析4、维护时期的主要任务是使软件持久地满足用户的需要;5、软件开发时期通常分成4个阶段:总体设计、详细设计、编码和单元测试、综合测试;前两个阶段又称为系统设计,后两个阶段又称为系统实现;6、软件生命周期每个阶段的基本任务:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试;软件工程生命周期模型过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型;对各种模型要了解小结熟读,对本章系统地了解可行性分析可行性分析的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决;可行性研究的任务研究解法的可行性的三个方面:技术可行性、经济可行性、操作可行性;可行性研究最根本的任务:对以后的行动方针提出建议;可行性研究需要的时间长短取决于工程的规模;可行性研究过程复查系统规模和目标研究目前正在试用的系统导出新系统的高层逻辑模型进一步定义问题导出和评价供选择的解法推荐行动方针草拟开发计划书写文档提交审查系统流程图1、系统流程图:概括地描绘物理系统的工具;2、系统流程图的基本思想:用图形符号以黑盒子形式描绘组系统的每个部件程序、文档、数据库、人工过程等;3、P39符号4、系统流程图的习惯画法:使信息在图中从顶向下或从左向右流动;5、面对复杂的系统时,一个比较好的方法时分层次地描绘这个系统;数据流图数据流图DFD:一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换;数据流图的四种基本符号P41数据存储静止状态和数据流运动都是数据;数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”;星号是数据流之间的“与”关系;加号+表示“或”关系;⊕号表示只能从中选一个互斥关系;画数据流图的基本目的是利用它作为交流信息的工具;数据字典数据字典应由对下列4类元素的定义组成:数据流、数据流分量即数据元素、数据存储、处理;由数据元素组成数据的方式的三种基本类型:顺序、选择、重复;+可选用以下符号描述由数据元素组成数据的关系:=意思是等价于或定义为、+意思是和即连接两个分量、}意思是或通常用“|”号隔开供选择的分量、{}意思是重复、意思是可选;数据字典最重要的用途是作为分析阶段的工具;成本/效益分析成本/效益分析的目的:从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定;软件开发成本:主要表现为人力消耗;成本估算技术:代码行技术、任务分解技术、自动估计成本技术;货币的时间价值:用利率的形式;假设年利率为i,如果现在存入P元,则n年后的价值:F=P1+i^n衡量一项开发工程的价值:投资回收期;纯收入投资回收率小结三需求分析需求分析是软件定义时期的最后一个阶段;基本任务:准确地回答“系统必须做什么”这个问题;用于需求分析的结构化分析方法必须遵守下述准则:1、必须理解并描述问题的信息域,根据这条准则应该应该建立数据模型;E-R图2、必须定义软件应完成的功能,这条准则要求建立功能模型;数据流图3、必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;状态图4、必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节;需求分析的任务对软件系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求;需求分析的任务:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划与用户沟通获取需求的方法访谈、面向数据流自顶向下求精、简易地应用规格说明技术,快速建立软件原型;结构化分析方法就是面向数据流自顶向下求精进行需求分析的方法;快速建立软件原型是最准确、最有效、最强大的需求分析技术;分析建模与规格说明需求分析过程应建立3种模型:数据模型、功能模型、行为模型;数据流图是建立功能模型的基础;状态转换图是行为建模的基础;实体-联系图E-RE-R图中包含着实体即数据对象、关系和属性3种基本成分;数据规范化第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构;第二范式:满足第一范式的条件,而且每个非关键字都由整个关键字决定而不是由关键字的一部分来决定;第三范式:符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述即一个非关键字属性值不依赖于另一个非关键字属性值;状态转换图状态转换图简称状态图:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为;在状态图中定义的状态主要有:初态即初始状态、终态即最终状态和中间状态;在状态图中只能有一个初态,而终态则可以有0至多个;事件就是引起系统做动作或和转换状态的控制信息;在状态图中,初态用一对同心圆内圆为实心圆表示;中间状态用圆角矩形表示;如图:/动作表达式3种标准事件:EntryExitDo;/动作表达式事件说明与守卫条件同时使用时,则当且仅当事件发生且布尔表达式为真时,状态转换才发生;如果只有守卫条件没有事件说明则只要守卫条件为真,状态转换就发生;守卫条件是一个布尔表达式;动作表达式是一个过程表达式,当状态表达式开始时执行该表达式;其他图形层次方框图、warnier图、IPO图输入、处理、输出图的简称验证软件需求从四个方面进行验证:一致性、完整新、现实性、有效性小结五总体设计设计过程总体设计过程通常有两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件的结构;典型的总体设计过程包括下述9个步骤:1、设想宫选择的方案需求分析阶段得出的数据流程图是总体设计的极好的出发点;2、选择合理的方案对每个合理的方案,分析员都应准备下列四份材料:A.系统流程图B.组成系统的物理元素清单C.成本/效益分析D.实现各个系统的进度计划3、推荐最佳方案4、功能分解5、设计软件结构软件结构可以用层次图或结构图来描绘;6、设计数据库7、制定测试计划8、书写文档这个阶段完成的文档有:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果;9、审查和复查设计原理模块化、抽象、逐步求精、信息隐藏和局部化、模块独立模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它;模块是构成程序的基本构件;模块化就是把程序分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求;抽象:把相似的方面集中和概括起来,暂时忽略它们之间的差异,或者说,抽出事物的本质特性而暂时不考虑它们之间的细节;逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础;定义:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑;信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息过程和数据对于不需要这些信息的模块来说,是不能访问的;局部化:把一些关系密切的软件元素物理地放得彼此靠近;模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果;模块独立化重要性的原因:第一,有效地模块化的软件比较容易开发出来;第二,独立的模块化比较容易测试和维护;模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合;耦合是对一个软件结构内不同模块之间互连程度的度量;耦合的强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据;如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合;如果传递的信息中有控制信息尽管有时这种控制信息以数据的形式出现,则这种耦合称为控制耦合;数据耦合是低耦合;公共环境耦合、最高程度的耦合式内容耦合;内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展;偶然内聚、逻辑内聚、时间内聚低内聚、中内聚、高内聚的分类;启发规则/软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的应用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测。

软件工程概论的练习题及答案

软件工程概论的练习题及答案

概述一、填空题1、软件由计算机程序、数据和文档组成;2、软件是一种逻辑产品,它与物质产品有很大的区别;3、计算机系统由硬件、软件、使用计算机的人、数据库、文档和执行过程组成;4、软件的发展,到现在为止,经历了三个阶段:程序设计、程序系统和软件工程;5、程序设计时代的生产方式是个体手工艺者,程序系统时代的生产方式是手工作坊,软件工程时代的生产方式是工程化;6、软件工程是一门综合性的交叉学科,它涉及计算机学科工程学科、管理学科和数学学科;7、计算机科学的成果都可用于软件工程,但计算机科学着重于理论和原理,软件工程着重于建造软件系统;8、软件工程研究的主要内容是方法、过程和工具等三个方面;9、软件开发各阶段任务的划分应尽可能相对独立,同一阶段任务的性质应尽可能相同;10、瀑布模型是将软件生存期各个活动规定为依线性顺序连接的若干阶段的模型;它规定了各阶段的活动由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落;11、演化模型是一种非整体开发模型;先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的产品;12、螺旋模型将开发过程分为几个螺旋周期;在每个螺旋周期内分为四个工作步骤:制定计划、风险分析、开发实施、用户评估;13、喷泉模型是一种以用户要求为动力,以对象为驱动的模型;它使开发过程具有迭代性和无间隙性,适用于面向对象开发方法;二、单项选择题1、软件产品的生产主要是C;A.制造B.复制C.开发D.研制2、个体手工劳动是B时代的软件生产方式;A.程序系统B.程序设计C.软件工程D.程序编码3、软件工程是一门C学科;A.理论性B.原理性C.工程性D.心理性4、软件开发费用只占软件生存期全部费用的B;35、在软件开发过程中大约要花费C%的工作量进行测试和调试;、准确地解决“软件系统必须做什么”是B阶段的任务;A.可行性研究B.需求分析C.软件设计D.程序编码7、软件生存期中时间最长的是D阶段;A.需求分析B.软件设计C.软件测试D.软件运行/维护8、在软件生存期的模型中,D适合于大型软件的开发它吸收了软件工程中“演化”的概念;A.喷泉模型B.基于知识的模型C.瀑布模型D.螺旋模型9、在软件生存期中,用户的参与主要在A;A.软件定义阶段B.软件开发阶段C.软件维护阶段D.整个软件生存期过程中10、在软件开发过程中的每个阶段都要进行严格的D,以尽早发现在软件开发过程中产生的错误;A.检验B.验证C.度量D.评审11、在软件开发和维护过程中需要变更需求时,为了保持软件各个配置成分的一致性,必须实施严格的BA.产品检验B.产品控制C.产品标准化D.开发规范12、实践表明,采用先进的开发技术可提高软件开发的生产率,还可提高软件的D;A.可靠性B.可使用性C.安全性D.可维护性13、为了提高软件开发过程的A,有效地进行管理,应当根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准;A.可见性B.生产率C.安全性D.有效性14、随着开发小组人数的A,因交流开发进展情况和讨论遇到的问题而造成的通信开销也急剧增加;A.增加B.降低C.稳定D.不稳定15、为保证软件开发的过程能够跟上技术的进步,必须不断地灵活地改进软件工程C;A.原则B.工具C.过程D.方法三、选择填空题1、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件是计算机系统中与硬件相互依存的另一部分,它是包括②、⑦及⑤的完整集合;其中,②是按事先设计的功能和性能要求执行的指令序列;⑦是使程序能够正确操纵信息的数据结构;⑤是与程序开发、维护和使用有关的图文材料;供选择的答案:A~C.①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;开发软件时对提高软件开发人员工作效率至关重要的是①;软件工程中描述生存周期的瀑布模型一般包括计划、①、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成③和⑥两步;供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;有人将软件的发展过程划分为4个阶段:第一阶段1950~1950年代末称为“程序设计的原始时期”,这时既没有A ,也没有B ,程序员只能用机器指令编写程序;第二阶段1950年代末~1960年代末称为“基本软件期”;出现了①,并逐渐普及;随着④的发展,编译技术也有较大的发展;第三阶段1960年代末~1970年代中期称为“程序设计方法时代”;这一时期,与硬件费用下降相反,软件开发费急剧上升;人们提出了⑤和⑧等程序设计方法,设法降低软件的开发费用;第四阶段1970年代中期~现在称“软件工程时期”;软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如⑤、④、编码、单元测试、综合测试、①及其整体有关的各种管理技术;供选择的答案:A~D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E~G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4、从供选择的答案中选出与下列有关软件需求分析叙述相对应的正确答案,将其编号填入到相应的括内;软件工程的最终目的是以较少的投资获得可维护的、可靠的、高效率的和可理解的软件产品;软件工程技术应遵循⑦、④、⑥、③、一致性、确定性、完备性、可验证性、抽象和信息隐蔽;原型法适用于开发较复杂的系统,原型可分为三种:②、⑤和④;供选择的答案:A~D①有效性②合理性③局部化④协同性⑤实用性⑥模块化⑦抽象⑧信息隐蔽E~G:①复用型②实验型③废弃型④演化型⑤探索型项目管理一、填空题1、要成功地完成软件开发工作的一个主要的决定性因素是项目管理;2、软件过程是软件生存期中的一系列相关工程活动集合;3、所有的软件开发都可以看成是一个问题循环解决过程,其中包括4个截然不同的阶段:状态捕捉、问题定义、技术开发和方案综合;4、在制定软件项目计划之前,必须先明确项目的目标和范围;项目的目标标明了软件项目的目的但不涉及如何去达到这些目的;5、对软件进行度量,是为了表明软件产品的质量,弄清软件开发人员的生产率,建立项目估算的基线,帮助调整对新的工具和附加培训的要求;6、软件质量的事后度量包括正确性、可维护性、完整性和可使用性;其中完整性包括危险性和安全性;7、软件范围包括功能、性能、限制、接口和可靠性;8、软件项目计划的第二个任务是对完成该软件项目所需的资源进行估算;资源包括人与工具;9、对于一个大型的软件项目,要进行一系列的估算处理;主要靠分解和类推的手段进行;10、基本COCOMO模型是一个静态单变量模型,它用一个已估算出的源代码行数LOC为自变量的经验函数来计算软件开发工作量;11、成本-效益分析的目的,是从经济角度评价开发一个新的软件项目是否可行;12、风险估计从两个方面估价风险;一是估计一个风险发生的可能性;一是估价与风险相关的问题出现后将会产生的结果;13、一个软件任务由一个人单独开发,生产率最高;14、在与软件成本相关的影响因素中,人员的能力是最大影响因素;15、软件开发所需的人力随开发的进展逐渐增加,在编码与单元测试阶段达到高峰,以后又逐渐减少;16、在建立项目组织时应注意的原则有三:①尽早落实责任,指定专人负责;②减少接口,要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失;③责权均衡;17、风险出现概率可以使用从过去项目、直觉或其它信息收集来的度量数据进行统计分析估算出来;18、用各种不同的方法对风险进行分类是可能的;从宏观上来看,可将风险分为项目风险、技术风险和商业风险;二、选择题1、所有的软件开发都可以看成是一个问题B过程;A.顺序解决B.循环解决C.分类解决D.分组解决2、软件项目管理所涉及的范围覆盖了整个软件D;A.开发过程B.运行与维护过程C.定义过程D.生存期3、为使软件开发获得成功,一个关键问题是必须对软件范围、风险、资源、任务、里程碑、成本,进度等做到心中有数,而C可以提供这些信息;A.计算机辅助工程B.软件开发工具C.软件项目管理D.软件估算4、软件范围标明了软件要实现的基本功能,并尽量以A的方式界定这些功能;A.定量B.规范C.统一D.定性5、只要事先建立特定的度量规程,很容易做到B开发软件所需要的成本和工作量、产生的代码行数等;A.间接度量B.直接度量C.间接估算D.直接估算6、为了计算特征点,可以像计算功能点那样,对信息域值进行计数和加权;此外,需要对一个新的软件特征A进行计数;A.算法B.计算误差C.程序复杂性D.效率7、对于软件的D,有一种简单的面向时间的度量,叫做平均变更等待时间MTTCMeanTimeToChange;这个时间包括开始分析变更要求、设计合适的修改、实现变更并测试它、以及把这种变更发送给所有的用户;A.可靠性B.可修改性C.可测试性D.可维护性8、软件的完整性是度量一个系统抗拒对它的C攻击事故的和人为的的能力;A.可靠性B.正确性C.安全性D.容错性9、对每一种软件资源,应说明4个特性:资源的描述,资源的有效性说明,资源在何时开始需要,使用资源的持续时间;最后两个特性统称为A;A.时间窗口B.时间安排C.日程安排D.资源定义10、业务系统计划工具借助特定的C建立一个组织的战略信息需求的模型,导出特定的信息系统;A.过程性语言B.形式化语言C.元语言D.伪码11、软件开发成本主要是指软件开发过程中所花费的B及相应的代价;A.劳动力B.工作量C.资源D.持续时间12、自顶向下估算软件成本的方法主要是从项目的整体出发进行B,即根据已完成项目的总成本或总工作量,来推算待开发软件的总成本或总工作量,然后按比例将它分配到各开发任务单元中去;A.分解B.类推C.推导D.评估13、自底向上估算软件成本的方法主要是把待开发软件A,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发的总工作量;A.分解B.类推C.推导D.评估16、系统的经济效益B因使用新系统而增加的收入加上使用新系统可以节省的运行费用;A.大于B.等于C.小于D.不等于17、项目复杂性、规模和结构的不确定性构成C估算风险因素;A.技术B.经济C.项目D.商业18、识别风险的一种最好的方法就是利用一组A来帮助人们了解在项目和技术方面有哪些风险;因此,Boehm建议使用一个“风险项目检查表”;A.提问B.项目C.脚本D.场景19、在做风险评价时常采用的一个非常有效的方法就是定义D;A.风险评价标准B.风险影响因子C.风险调整因素D.风险参照水准21、当几个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的A 问题,即所谓通信问题;A.接口B.衔接C.调用D.控制22、假设一个人单独开发软件,生产率是5000行/人年;若4个人组成一个小组共同开发这个软件,在每条通信路径上耗费的工作量是250行/人年;则组中每人的生产率降低为C、PERT技术叫做B技术,它是采用网络图来描述一个项目的任务网络,安排开发进度,制定软件开发计划的最常用的方法;A.日程安排B.计划评审C.关键路径D.因果图24、在进度压力下赶任务,其成果往往是以B产品的质量为代价的;A.浪费B.牺牲C.抵押D.维持三、选择填空题1、从供选择的答案中选出与下列有关软件过程叙述相对应的正确答案,将其编号填入到相应的括弧内;软件过程是软件4中的一系列相关软件工程3的集合;每一个软件过程又是由一组6、项目8、软件工程产品和交付物以及质量保证SQA点等组成;一个软件过程可以用右图的形式来表示;首先建立一个2过程框架,其中定义了少量可适用于所有软件项目的框架3,再给出各个框架3的任务集合,最后是保护伞活动,如软件质量保证、软件配置管理以及测量等;软件过程模型的选择基于项目和应用的特点、采用的5和工具、要求的控制和需交付的产品;A.④B.③C.⑥D.⑧E.②F.⑤供选择的答案:A~F.①工程②公共③活动④生存期⑤方法⑥工作任务⑦功能⑧里程碑2、从供选择的答案中选出与下列有关软件项目管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 由于软件工程有如下的特点,使软件管理比其它工程的管理更为困难;软件产品2;6标准的过程;大型软件项目往往是3项目;2的作用是为有效地定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量;在制定计划时,应当对人力、项目持续时间、成本作出4;5实际上就是贯穿于软件工程过程中一系列风险管理步骤;最后,每一个软件项目都要制定一个1,一旦6制定出来,就可以开始着手5;供选择的答案:A.②B.⑥C.③D.②E.④F.①G.⑥H.⑤A~C.①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在D~H.①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划3、从供选择的答案中选出与下列有关软件度量叙述相对应的正确答案,将其编号填入到相应的括弧内;软件的度量包括A1和B4;软件产品的A1包括产生的代码行数、执行速度等;软件产品的B则包括若干质量特性;我们还可进一步将软件度量如右图所示那样分类;软件C度量主要关注软件工程过程的结果;D度量则指明了软件适应明确和不明确的用户要求到什么程度;E度量主要关注软件的一些特性而不是软件开发的全过程;从图中还可看到另一种分类方法:面向F的度量用于收集与直接度量有关软件工程输出的信息和质量信息;面向G的度量提供直接度量的尺度;面向H的度量则收集有关人们开发软件所用方式的信息和人们理解有关工具和方法的效率的信息;A.①B.④C.④D.①E.②F.⑤G.⑦H.③供选择的答案:A~B.①直接度量②尺度度量③二元度量④间接度量C~E.①质量②技术③成本④生产率F~H.①过程②对象③人④存取⑤规模⑥进程⑦功能⑧数据4、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;估算资源、成本和进度时需要经验、有用的历史信息、足够的定量数据和作定量度量的勇气;通常估算本身带有A;项目的复杂性越高,规模越大,开发工作量B,估算的A就C;项目的结构化程度提高,进行精确估算的能力就能D,而风险将E;有用的历史信息F,总的风险会减少;供选择的答案:A.③B.②C.⑦D.①E.③F.②A.①风范范型②风格③风险④度量B~F.①增加②越多③降低④不变⑤越少⑥越高⑦越大5、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:一是作为一个估算变量,度量软件每一个A的大小;一是联合使用从过去的项目中收集到的B和其它估算变量,进行成本和C估算;LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的D不同;当用E作为估算变量时,功能分解是绝对必要且应达到很详细的程度,而用F作为估算变量时,分解程度可以不很详细;E是直接估算,F 是间接估算;若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a,m,b,则LOC或FP的期望值E的公式为G,m是加权的最可能的估计值,遵循H;供选择的答案:A.③,B.⑦,C.⑤,D.①,E.②,F.①,G.②,H.③;A~C.①模块②软件项目③分量④持续时间⑤工作量⑥进度⑦基线数据⑧改进数据D.①详细程度②分解要求③改进过程④使用方法E,F.①FP②LOCG.①E=a+m+b/3②E=a+4m+b/6③E=2a+3m+4b/3④H.①χ概率②γ概率③β概率④泊松6、从供选择的答案中选出与下列有关软件估算叙述相对应的正确答案,将其编号填入到相应的括弧内;在考虑各种软件开发资源时,A是最重要的资源;如果把软件开发所需的资源画成一个金字塔形:在塔的上层是最基本的资源A,在底部为B;B包括硬件资源和软件资源;C、D和其它硬件设备属于硬件资源;IPSE工具属于软件资源中的E;为了提高软件的生产率和软件产品的质量,可建立F;供选择的答案:A.②B.③C.②D.④E.⑥F.⑤A,B.①方法②人力③工具④上下文环境C,D.①虚拟机②目标机③自动机④宿主机E,F.①维护工具②分析设计工具③支持工具④编程工具⑤可复用构件库⑥框架工具⑦原型化模拟工具7、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;定义一个人参加劳动时间的长短为A,其度量单位为PM人月或PY人年;而定义完成一个软件项目或软件任务所需的A为B,其度量单位是人月/项目任务,记作PM人月;进一步地,定义单位A所能完成的软件C的数量为软件D,其度量单位为LOC/PM;它表明一般指E的一个平均值;例如,一个软件的开发工作量如下表所示;该软件共有源代码2900行,其中,500行用于测试,2400行是执行F的源代码;则劳动生产率是GLOC/PM;供选择的答案:A.④B.②C.④D.①E.①F.②G.④A,B,D.①生产率②工作量③成本④劳动量E.①开发全过程②某开发阶段③软件生存期④某开发任务F,C.①软件②程序③进程④产品G.①520②120③320④2408、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内;对于一个大型的软件项目,由于项目的复杂性,需要进行一系列的估算处理;主要按A和B手段进行;估算的方法分为三类:从项目的整体出发,进行B的方法称为C估算法;把待开发的软件细分,直到每一个子任务都已经明确所需要的开发工作量,然后把它们加起来,得到软件开发总工作量的方法称为D估算法;而把待开发的软件项目与过去已完成的软件项目做类比,区分出类似部分和不同部分分别处理的方法称为E估算法;F是由多位专家进行成本估算的方法;供选择的答案:A.③,B.①,C.②,D.③,E.①,F.④A,B.①类推②类比③分解④综合C~F.①差别②自顶向下③自底向上④专家判定技术⑤循序渐进⑥比较10、从供选择的答案中选出与下列有关软件成本估算叙述相对应的正确答案,将其编号填入到相应的括弧内; 一个规模为10KDSI的商用微机远程通信的嵌入型软件,使用中间COCOMO模型进行软件成本估算;程序的名义工作量MM=A;程序实际工作量MM=B;开发所用的时间TDEV=C;如果软件开发人员的工资都按每月6000美元计算,则该软件项目的开发人员的工资总额=D;表1中间COCOMO模型的名义工作量与进度公式表2影响工作量的因素fi的取值A.③,B.②,C.①,D.④供选择的答案:A,B.①②③④.①月②月③月④月D.①万美元②36万美元③万美元④万美元11、从供选择的答案中选出与下列有关软件成本-效益分析叙述相对应的答案,将其编号填入到相应的括弧内; 假设开发某个计算机应用系统的投资额为3000元,该计算机应用系统投入使用后,每年可以节约1000元,5年内可能节约5000元;3000元是现在投资的钱,5000元是5年内节省的钱,两者不能简单地比较;假定年利率为12%,利用计算货币现在价值的公式,可以算出该计算机应用系统投入使用后每年预计节省的金额的现在价值;A.④,B.②,C.③则该系统的纯收入是A,投资回收期是B,投资回收率为C;供选择的答案:A.①元②元③元④元B.①年②年③年④元C.①25%②30%③20%④15%12从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 在特定情况下,是否必须进行风险分析,是对项目开发的形势进行A后确定的;A可以按如下步骤进行:明确项目的目标、总策略、具体策略和为完成所标识的目标而使用的方法和资源;保证该目标是B,项目成功的标准也是B;考虑采用某些条目作为项目成功的C;根据估计的结果来确定是否要进行风险分析;一般来说,风险分析的方法要依赖于特定问题的需求和有关部门所关心的方面;具体分3步进行;第一步识别潜在的风险项,首先进行D过程;第二步估计每个风险的大小及其出现的可能性,选择一种E,它可以估计各种风险项的值;第三步进行风险评估;风险评估也有三个步骤:确定F,确定G,把风险与“参照风险”做比较;供选择的答案:A.②B.①C.②D.②E.③F.④G.③A.①风险管理②风险估计③风险评价④风险测试B.①可度量的②不可度量的③准确的④不确定的C.①规范②标准③过程模型④设计要求D,E.①信息分类②信息收集③度量尺度④标准⑤度量工具⑥信息获取F,G.①风险的范围②风险的特性③风险的级别④风险的评价标准⑤风险的排除策略13、从供选择的答案中选出与下列有关软件风险分析叙述相对应的正确答案,将其编号填入到相应的括弧内; 风险分析实际上是4个不同的活动,按顺序依次为A、B、风险评价和C;在风险评价时,应当建立一个三元组:ri,li,xi,ri是风险描述,li是D,而xi是风险的影响;一个对风险评价很有用的技术是定义E;F、G、H是三种典型的E;在做风险分析的上下文环境中一个E就存在一个单独的点,叫做参照点或I;在这个点上要公正底给出判断;实际上,参照点能在图上表示成一条平滑的曲线的情况很少,多数情况它是一个J;供选择的答案:A.②,B.③,C.①,D.②,E.①,F.③,G.④,H.⑥,I.②,J.④A~C.①风险驾驭和监控②风险识别③风险估计④风险消除D.①风险的大小②风险的概率③风险的时间④风险的范围E.①风险参照水准②风险度量③风险监控④风险工具F~H.①生产率②功能③成本④进度⑤范围⑥性能I,J.①凹点②崩溃点③终点④区域⑤拐点⑥原点14、从供选择的答案中选出与下列有关软件进度管理叙述相对应的正确答案,将其编号填入到相应的括弧内; 任何软件项目都必须做好项目管理工作,最常使用的进度管理工具是A,当某一开发项目的进度有可能拖延时,应该B;对于一个典型的软件开发项目,各开发阶段需投入的工作量的百分比大致是C;各阶段所需不同层次的技术人员大致是D,而管理人员在各阶段所需数量也不同,相对而言大致是E;供选择的答案:A.①数据流图②程序结构图③因果图④PERT图B.①增加新的开发人员②分析拖期原因加以补救③从别的小组抽调人员临时帮忙④推迟预定完成时间。

软件工程期末试题(含答案)

软件工程期末试题(含答案)

一、填空题(每空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 )。

国开电大本科《软件工程》期末考试试题及答案

国开电大本科《软件工程》期末考试试题及答案

国开电大本科《软件工程》期末考试试题及答案一、选择题(每题2分,共20分)1. 软件工程的三要素是:_______A. 软件开发、软件维护、软件管理B. 软件设计、软件编码、软件测试C. 软件需求分析、软件设计、软件开发D. 软件开发、软件项目管理、软件维护答案:B2. 下面哪个不是软件工程的七个基本活动之一?_______A. 软件规格说明B. 软件设计和实现C. 软件验证D. 软件部署答案:D3. 面向对象方法中,下面哪个不是三大基本特征之一?_______A. 封装B. 继承C. 多态D. 模块化答案:D4. 软件需求分析的主要目的是:_______A. 确定软件的功能和性能要求B. 设计软件的结构C. 编写软件的测试用例D. 确定软件的开发计划答案:A5. 下面哪个不属于软件测试的级别?_______A. 单元测试B. 集成测试C. 系统测试D. 需求测试答案:D二、填空题(每题2分,共20分)6. 软件生命周期是指软件从_______到_______的全过程。

答案:需求分析、软件退役7. 结构化分析方法主要包括数据流图(DFD)、_______和_______。

答案:实体关系图(ER图)、状态转换图(STD)8. 在软件设计中,设计模式是一种_______的解决方案,它可以解决软件设计中的常见问题。

答案:通用9. 软件编码阶段的主要任务是编写_______和_______。

答案:源代码、文档10. 软件测试的目的是_______,而不是证明软件是正确的。

答案:发现错误三、简答题(每题5分,共25分)11. 简述软件工程的定义及其目标。

答案:软件工程是一门应用计算机科学、数学及管理科学的方法、技术和工具,来定义、开发和维护软件的学科。

软件工程的目标是提高软件的生产率、提高软件的质量、降低软件的成本。

12. 简述面向对象方法的特点。

答案:面向对象方法具有以下特点:(1)封装:将数据和操作数据的方法封装在一起,形成一个对象。

软件工程习题附答案

软件工程习题附答案

软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。

一、选择题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、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。

软件工程试卷及答案

软件工程试卷及答案

一、单项选择题(本大题共 20 小题,每小题 1 分,共 20 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. “软件工程的概念是为解决软件危机而提出的”这句话的意思是 ( )A.强调软件工程成功解决了软件危机的问题B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题2.瀑布模型的主要特点是 ( )A.将开发过程严格地划分为一系列有序的活动B.将开发过程分解为阶段C.提供了有效的管理模式D.缺乏灵活性3.在软件工程的需求分析阶段,不属于问题识别内容的是 ( )A.功能需求B.性能需求C.环境需求D.输入/输出需求4.画某系统的数据流图时,顶层图有 ( )A.0 张B.1 张C.2 张D.3 张及其以上5.软件模块内聚性最强的是 ( )A.功能内聚B.通信内聚C.偶然内聚D.逻辑内聚6.最早提出软件系统维护问题的阶段是 ( )A.可行性分析B.需求分析C.概要设计D.详细设计7.SD(结构化设计)方法设计的结果是( )A.模块B.模块结构图C.模块的算法D.数据流图8.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( )A.单元测试B.系统测试C.集成测试D.确认测试9.软件详细设计阶段的任务是 ( )A.算法与数据结构设计B.功能设计C.调用关系设计D.输入/输出设计10.下列属于静态测试方法的是 ( )A.黑盒法B.路径覆盖C.白盒法D.人工检测11.Fortran 语言主要作为以下哪个方面的语言 ( )A.科学工程计算B.系统软件C.事务处理D.人工智能12.用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是 ( )A.顺序结构B.选择结构C.嵌套结构D.重复结构l3.可维护软件的主要特性包括 ( )A.可理解性、可修改性、可移植性B.可使用性C.可维护性、可使用性、可靠性D.可测试性14.程序设计语言不具有的特性是 ( )A.心理特性B.工程特性C.应用特性D.技术特性15.下列不属于项目进度安排主要方法的是 ( )A.工程网络图B.Gantt 图C.进度结构图D.任务资源表16.下列不属于通常冗余技术的是 ( )A.结构冗余B.信息冗余C.时间冗余D.代码冗余17.下列工具中,属于需求追踪工具的是 ( )A.在 DBMS 上的应用运行工具B.追踪和状态报告C.访问和版本控制机构D.文件和修改管理18.关于软件测试的目的,下面观点错误的是 ( )A.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C.证明程序是正确、没有错误的D.一个成功的测试用例是发现了至今尚未发现的错误的测试19.在制定项目开发计划文档时,不包含的内容是 ( )A.项目概述B.实施计划C.测试计划D.交付期限20.面向对象的开发方法中,以下哪种方法原是面向 Ada 语言的,并处于面向对象开发方法的奠基性地位( )A.Booch 方法B.Coad 方法C.UML 语言D.OMT 方法二、填空题(本大题共 10 小题,每小题 2 分,共 20 分)请在每小题的空格中填上正确答案。

软件工程填空题(18套试题及答案)

软件工程填空题(18套试题及答案)

《软件工程》填空题二、填空题(请把答案写在相应的横线上,每小题1.5分)1、软件是数据、计算机程序及其说明程序的各种文档。

2、概要设计主要是把各项功能需求转换成系统的体系结构。

3、面向对象开发方法包括OOA 、OOD 、OOP 三部分。

4、结构化设计中以数据流图为基础的两种具体分析设计方法是变换分析、事物分析设计。

5、在单元测试时,需要为被测模块设计驱动模块和桩模块。

6、CMM把软件过程从无序到有序的进化分成5个阶段,排序而形成5个逐层提高的等级,分别是初始级、可重复级、已定义级、已管理级和可优化级。

7.子类自动共享父类的属性和操作的机制称为继承。

8. 软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。

9、可行性研究的三个方面是技术可行性、社会可行性和__经济可行性__。

10、在软件概要设计阶段,建立软件结构后,还应为每个模块写一份处理说明和_接口说明__。

11、在画分层的DFD时,父图与子图的输入输出数据流要__平衡__。

12、在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的__数据结构_进行设计。

13. 对象的抽象是___类___。

14. 基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。

因此,基线可以作为项目的一个___检查点__。

15. 软件工程包括软件开发技术和__软件工程管理__两大部分内容。

16、开发过程管理包括项目计划、控制和___任务管理__等。

17、CASE是多年来在软件开发管理、软件开发方法、软件开发环境和__软件工具__等方面研究和发展的产物。

18、数据字典中有四类条目,分别是___数据流、数据项、数据存储、基本加工。

19、用于描述基本加工的小说明的三种描述工具是结构化语言、判定表、判定树_。

20、子类只继承一个父类的属性和操作,这称为__单重继承__。

21、McCabe复杂性度量又称__环路度量_。

22、喷泉模型是一种以用户需求为动力,以__对象__为驱动的模型。

软件工程-填空判断题带答案

软件工程-填空判断题带答案

二、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。

( T )2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。

( F )3.JAVA语言编译器是一个CASE工具。

( T )。

4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。

( F )5.软件模块之间的耦合性越弱越好。

( T )。

追求高内聚低耦合。

6.数据库设计说明书是一个软件配置项( T )7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。

( F )8.过程描述语言可以用于描述软件的系统结构。

( F )9.如果通过软件测试没有发现错误,则说明软件是正确的。

( F )10.快速原型模型可以有效地适应用户需求的动态变化。

( T )11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

( T )12.集成测试主要由用户来完成。

( F )13.确认测试计划应该在可行性研究阶段制定( F )14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。

( F )15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。

( T )二.判断题(每题1分,共10分)将答案写在题号前的()中,正确用√,错误用χ。

(×)1、开发软件就是编写程序。

(×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。

(×)3、编程序时应尽可能利用硬件特点以提高程序效率.(×)4、软件需求分析的任务是建立软件模块结构图。

(√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。

(×)7、进行总体设计时加强模块间的联系。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。

A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。

A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。

A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。

A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。

A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。

A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。

A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。

A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。

A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。

A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。

A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。

A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。

A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。

(完整word版)软件工程-填空判断题带答案

(完整word版)软件工程-填空判断题带答案

二、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。

( T )2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。

( F )3.JAVA语言编译器是一个CASE工具。

( T )。

4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。

( F )5.软件模块之间的耦合性越弱越好。

( T )。

追求高内聚低耦合。

6.数据库设计说明书是一个软件配置项( T )7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。

( F )8.过程描述语言可以用于描述软件的系统结构。

( F )9.如果通过软件测试没有发现错误,则说明软件是正确的。

( F )10.快速原型模型可以有效地适应用户需求的动态变化。

( T )11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。

( T )12.集成测试主要由用户来完成。

( F )13.确认测试计划应该在可行性研究阶段制定( F )14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。

( F )15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。

( T )二.判断题(每题1分,共10分)将答案写在题号前的()中,正确用√,错误用χ。

(×)1、开发软件就是编写程序。

(×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。

(×)3、编程序时应尽可能利用硬件特点以提高程序效率.(×)4、软件需求分析的任务是建立软件模块结构图。

(√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。

(×)7、进行总体设计时加强模块间的联系。

软件工程复习试题及答案

软件工程复习试题及答案

一、填空题(在下划线上填写正确的答案,每题2分,共20分)1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。

2.数据流图和数据字典共同构成了系统的逻辑模型。

3.盒图也称为N-S图。

这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。

4.软件有效性,5.IPO输出(Output)。

6.数据流图有四种基本成分:源、终点,处理,存储,数据流。

7.数据字典有以下四种条目:数据流、数据项、数据存储、基本加工,其中数据项是组成数据流和数据存储的最小元素。

8.软件工程中的结构化分析SA是一种面向数据流的分析方法。

9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程. 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。

1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。

2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。

3.软件测试的步骤:单元、集成、系统、验收。

4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点.5.IPO图由输入、处理和输出三个框组成。

这个图的特点是能够直观的显示三者之间的关系。

6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。

7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。

8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。

9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。

10.常用的测试方法有黑盒测试和白盒测试。

1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益可行性等方面研究.2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环结构。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、选择题(每题2分,共20分)1. 软件工程中的需求分析阶段的主要任务是什么?A. 确定软件的功能需求B. 设计软件的架构C. 编写软件的详细设计文档D. 进行软件的编码实现答案:A2. 在软件开发过程中,哪个阶段是进行风险评估的?A. 需求分析B. 设计C. 编码D. 测试答案:B3. 软件测试中的黑盒测试通常是基于什么进行的?A. 程序源代码B. 程序的内部逻辑C. 程序的功能需求D. 程序的运行环境答案:C4. 敏捷开发方法论中,哪个活动是迭代的核心?A. 需求收集B. 编码实现C. 测试D. 回顾会议答案:B5. 在软件维护中,哪种类型的维护是最常见的?A. 纠错性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:A二、填空题(每空1分,共10分)6. 软件工程的生命周期包括需求分析、________、编码、测试和维护等阶段。

答案:设计7. 软件工程中的_______原则指的是高内聚低耦合。

答案:模块化8. 在软件开发中,_______ 是指软件在特定条件下使用时,能够达到预期功能、性能要求的能力。

答案:可靠性9. 软件项目管理中的_______ 是指在项目开发过程中,对项目进行监控和控制,确保项目按计划进行。

答案:监控10. 在软件测试中,_______ 是指测试用例设计得尽可能覆盖所有可能的执行路径。

答案:穷尽测试三、简答题(每题10分,共30分)11. 简述软件工程中的模块化设计原则及其优点。

答案:模块化设计原则是指将软件系统划分为多个模块,每个模块具有特定的功能,并且模块之间通过定义良好的接口进行交互。

其优点包括:- 易于管理:模块化使得软件更容易理解和维护。

- 可重用性:模块可以在不同的项目中重复使用。

- 并行开发:模块化允许多个团队并行开发不同的模块。

- 灵活性:模块化提高了软件的灵活性,便于扩展和修改。

12. 解释什么是软件的可维护性,并说明其重要性。

软件工程填空题(18套试题及答案)

软件工程填空题(18套试题及答案)
e)模块通信
8.在建立软件系统的模块结构。应根据(C)评价系统模块划分的质量。
a)数据独立性
b)程序独立性
c)模块独立性
d)可修改性
e)可理解性
9.结构化程序设计方法要求每个(A)结构应是单入口和单出口。
a)程序块
b)公共块
c)数据块
d)记录块
e)通信块
10.开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。
26.功能点技术的信息域包含(输入项数)(输出项数)、(查询数)、(主文件数)、(外部接口数)等5个方面的信息。
27.软件的工作量计算模型是(软件规模)的函数,软件工作量的单位通常是(人月),常用的计算软件工作量的计算模型有(静态单变量模型)、(动态多变量模型)、(COCOMO2模型)等。
28.软件过程是软件(生存期)中的一系列相关软件工程(活动)的集合。每个软件过程又是由一组(工作任务)、项目(里程碑)、软件工程产品和交付物以及软件质量保证(SQA)电等组成。
33、对象之间进行通信的构造叫做_消息_。
34、按软件服务对象的范围可以把软件划分为项目软件和产品软件。
35、瀑布模型将软件生命期划分为若干阶段,各个阶段之间是通过文档实现过渡的。
36、概要设计主要是把各项功能需求转换成系统的__体系结构__。
37、详细设计的任务是确定每个模块的内部特性,即模块的数据结构和算法。
34.对象是封装了数据结构及可以施加在这些数据结构上的(操作)的封装体,这个封装体可以唯一地标识它的名字,而且向外界提供一组(服务)。
二、单项选择题
1.软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可源自C)a)强b)适中
c)弱
2.若一个模块直接引用另一个模块中的数据,这种类型的耦合称为(E)。

软件工程习题解答

软件工程习题解答

第一章软件工程概论一、填空题⑴ 软件是计算机系统中与硬件相互依存的部分,它是包括(A)、(B)、及(C)的完整集合。

其中,(A)是按事先设计的功能和性能要求执行的指令序列,(B)是使程序员能够正确操纵信息的数据结构,(C)是与程序开发、维护和使用有关的图文材料。

①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表⑵ 开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。

软件工程中描述软件生存周期的瀑布类型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。

其中,设计阶段在管理上可以依次分成(C)和(D)两个步骤。

A:① 程序开发环境② 操作系统的资源管理功能③ 开发程序人员数量④ 计算机的并行处理能力B:① 需求分析②需求调查③可行性分析④问题定义C、D:① 方案设计② 代码设计③ 概要设计④ 数据设计⑤ 运行设计⑥ 详细设计⑦ 故障处理设计⑧ 软件体系结构设计⑶ 有人将软件的发展过程划分为四个阶段,第一阶段(20世纪50年代),称为程序设计的“原始时期”。

这时既没有(A),也没有(B),程序员只能用机器指令编写程序。

第二阶段(20世纪60年代),称为“基本软件期”。

出现了(A),并逐渐普及。

随着(B)的发展,编译技术也有较大的发展。

第三阶段(20世纪60年代末至70年代中期)称为“程序设计方法时代”。

这一时期,与硬件价格下降相反,软件开发费用急剧上升。

人们提出了(C)和(D)等程序设计方法,设法降低软件的开发费用。

第四阶段(20世纪70年代中期至今),称为“软件工程”时期。

软件开发技术不再仅仅是程序设计技术,而是包括了软件开发的各个阶段。

如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。

A、B、C、D:① 汇编语言② 操作系统③ 虚拟存储器概念④ 高级语言⑤ 结构化程序设计⑥ 数据库概念⑦ 固件⑧ 模块化程序设计E、F、G:① 使用和维护② 兼容性的确认③ 完整性的确认④ 设计⑤ 需求定义⑥ 图像处理二、简答题⑴ 软件工程过程有哪几种基本活动,试加以说明。

软件工程习题及答案-填空题

软件工程习题及答案-填空题

1.传统的瀑布模型把软件生存周期划分成问题定义、、、、、、和维护共8个阶段。

(可行性研究,需求分析,概要设计,详细设计,编码,测试)2.软件= + + 。

(程序,数据,文档)3.画数据流图的正确做法是:从系统的开始,逐层地对系统进行。

每一次,系统的加工数量就增加一些,每个加工的功能也就更具体一些。

继而重复这种分解,直到所有的加工都足够简单,不必再分解为止。

(模型,分解,分解)4.结构化分析方法是一种面向需求分析方法(数据流)5.最低一层的包含了系统的全部数据和加工,从哪里开始分析呢?W.Davis认为,一般应该从数据的开始。

因为的数据代表系统的输出,其要求是明确的。

由这里天始,沿着一步步向数据,较易看清楚数据流中每一个数据项的来龙去脉,有利于减少错误和遗漏。

(DFD图,终点,终点,DFD图,数据源点回溯)6.通过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统的数据,描述了处理这些数据的基本策略。

将这些共同的理解进行整理,最后形成文档。

(需求规格说明书)7.SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。

这些描述工具是、、、、。

(数据流图,数据字典,描述加工逻辑的结构化语言,判定表,判定树)8.需求分析的基本任务是要准确地定义,为了满足用户需要,回答系统必须的问题(新系统的目标、做什么)9.在软件需求分析阶段,已经搞清楚了软件的的问题,(做并把这些需求通过描述出来,这也是目标系统的。

什么、需求规格说明书、逻辑模型)10.面向对象的三种分析模型是:模型、模型和、模型。

(对象,行为,功能)11.和是模块独立性的两个定性标准,将软件系统划分成模块时,尽量做到内聚、耦合,提高模块的,为设计高质量的软件奠定基础。

(内聚性、耦合性、高、低、独立性)12.是最高程度的耦合。

这种耦合出现在当一个模块直接使用另一个模块的,或通过转入另一个模块内部。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《软件工程》填空题二、填空题(请把答案写在相应的横线上,每小题分)1、软件是数据、计算机程序及其说明程序的各种文档。

2、概要设计主要是把各项功能需求转换成系统的体系结构。

3、面向对象开发方法包括 OOA 、OOD 、 OOP 三部分。

4、结构化设计中以数据流图为基础的两种具体分析设计方法是变换分析、事物分析设计。

5、在单元测试时,需要为被测模块设计驱动模块和桩模块。

6、CMM把软件过程从无序到有序的进化分成5个阶段,排序而形成5个逐层提高的等级,分别是初始级、可重复级、已定义级、已管理级和可优化级。

7.子类自动共享父类的属性和操作的机制称为继承。

8. 软件工程管理的具体内容包括对开发人员、组织机构、用户、文档资料等方面的管理。

9、可行性研究的三个方面是技术可行性、社会可行性和__经济可行性__。

10、在软件概要设计阶段,建立软件结构后,还应为每个模块写一份处理说明和_接口说明__。

11、在画分层的DFD时,父图与子图的输入输出数据流要__平衡__。

12、在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的__数据结构_进行设计。

13. 对象的抽象是___类___。

14. 基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。

因此,基线可以作为项目的一个___检查点__。

15. 包括软件开发技术和__软件工程管理__两大部分内容。

16、开发过程管理包括项目计划、控制和___任务管理__等。

17、CASE是多年来在软件开发管理、软件开发方法、软件开发环境和__软件工具__等方面研究和发展的产物。

18、数据字典中有四类条目,分别是___数据流、数据项、数据存储、基本加工。

19、用于描述基本加工的小说明的三种描述工具是结构化语言、判定表、判定树_。

20、子类只继承一个父类的属性和操作,这称为__单重继承__。

21、 McCabe复杂性度量又称__环路度量_。

22、喷泉模型是一种以用户需求为动力,以__对象__为驱动的模型。

23、Jackson图不仅可表示程序结构,还可表示___数据结构__。

24、详细设计的任务是确定每个模块的内部特性,即模块的算法和数据结构。

25、UML提供的构建系统动态模型的机制有动态视图视图(包括顺序图和协作图)、静态视图视图、功能视图。

26、软件质量管理由软件质量保证、软件质量规划和软件质量控制三方面活动组成。

27、用等价类划分法设计一个测试用例时,使其覆盖__尽可能多的__尚未被覆盖的合理等价类; 覆盖__一个_不合理等价类。

28、需求分析阶段产生的最重要的文档是__需求规格说明书_。

29、两个模块都使用同一张表,模块的这种耦合称为___公共耦合__。

30、被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为_静态_测试。

31、采用手工方法开发软件只有程序而无文档,维护困难,这是一种__非结构化__维护。

32、结构化方法是一种面向数据流的开发方法。

由结构化分析、_结构化方法_、结构化程序设计构成。

33、对象之间进行通信的构造叫做_消息_。

34、按软件服务对象的范围可以把软件划分为项目软件和产品软件。

35、瀑布模型将软件生命期划分为若干阶段,各个阶段之间是通过文档实现过渡的。

36、概要设计主要是把各项功能需求转换成系统的__体系结构__。

37、详细设计的任务是确定每个模块的内部特性,即模块的数据结构和算法。

38、结构化程序设计方法提倡开发人员的组织形式是__主程序员组_。

39、软件质量管理由软件质量保证、软件质量规划和软件质量控制三方面活动组成。

40、类具有操作,它是对象__行为_的抽象。

41、产品管理包括版本管理和__配置管理___。

42、集成测试中的具体方法是___渐增式和非渐增式___测试方法。

43、增量模型适合于__软件需求_不明确、设计方案有一定风险的软件项目。

44、结构化分析方法的分析策略是__自顶向下逐步求精__。

45、可行性研究实质上是要在较高层次上以较抽象的方式进行___需求分析和设计__的过程。

46、衡量模块独立性的两个定性标准是__耦合性与内聚性___。

47、Jackson方法是一种面向__数据结构__的设计方法。

48、维护阶段是软件生存周期中花费精力和费用___最多___的阶段。

49、继承性是子类自动共享其父类的__数据结构和方法__机制。

50、在面向对象方法中,人们常用状态图描述类中对象的_动态行为_。

51、规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为___容错__软件。

52.软件工程包括3个要素,即方法、工具、过程。

53.软件生存周期是指一个软件从提出开发要求开始直到该软件报废不止的整个时期。

通常,软件生存周期包括问题定义、可行性研究,需求分析,总体设计,详细设计,_编码_,测试,维护活动,可以将这些活动以适当方式分配到不同阶段去完成54.数据流图中的箭头表示__数据流__。

软件结构图中的箭头方向表示___模块调用__。

55.___可行性研究___的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

56.数据流图仅反映系统必须完成的逻辑功能,所以它是一种__功能_模型。

复习资料一、填空题1.软件是计算机系统中与硬件相互依存的另一部分,它是包括(程序)、(数据)及其(相关文档)完整集合。

其中,(程序)是按事先设汁的功能和性能要求执行的指令序列,(数据)是使程序能够正确操纵信息的数据结构,(相关文档)是与程序开发、维护和使用有关的图文资料.2.软件危机是指计算机软件的(开发)和(维护)过程中所遇到的一系列严重问题。

3.软件工程是指导计算机软件(开发)和(维护)的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地(维护)它,这就是软件工程。

4.常见的软件开发模型有(瀑布模型)、(快速原型模型)、(增量模型)和(螺旋模型)等;5.软件工程学方法的三要素是:(方法)、(工具)和(过程)。

6.瀑布模型是一个(文档)驱动模型。

7.可行性研究一般可以从(经济)可行性、(技术)可行性、法律可行性和法律可行性等方面来研究。

8.数据流图从数据传输和(数据加工)角度,以(图形)的方式描述数据流从输入到输出的传输变换过程。

9.数据流图的四个基本符号分别表示(数据的源点或终点)、(数据的加工)、(数据存储)和数据流;10.实体-联系图中,数据对象之间的关系有(一对一)、(一对多)和(多对多关系)。

11.需求分析阶段应该建立三种模,即:(数据模型)、(功能模型)和(行为模型)。

12.一般从(一致性)、(完整性)、(现实性)和(有效性)四个方面验证软件需求的正确性。

13.HIPO图是由一组(层次图)图加上一张(IPO)图组成。

14.模块独立性的两个度量标准为:(耦合)和(内聚)。

15.一般说来,模块之间的耦合程度(低),则单个模块的内聚程度(高)。

16.经验表明,设计好的软件结构,通常顶层模块的扇出(比较高),中层模块扇出(较少),底层模块(高)扇入17.三种基本的程序控制结果是(顺序结果)、(选择(分支)结构)和(循环结构)。

18.把程序从一个硬件或软件环境中转移到另一种配置环境称为软件的(可移植性)。

19.如果一个模块完成一组任务,这些任务彼此之间的关系是很松散的,这种內聚称为(偶然(或巧合)类聚)。

20.白盒法的具体设计程序测试方法有语句覆盖、(判定覆盖)、(条件覆盖)和路径覆盖。

21.组成UML的三种基本建筑块是(事物)、关系和(图)。

22.面向对象的软件工程方法包括面向对象的分析、(面向对象的设计)、(面向对象的编程)、(面向对象的测试)和面向对象的软件维护等主要内容。

23.保证软件质量的措施主要有(审查)、复查和管理复审、(测试)。

24.提高软件质量和可靠性的技术大致分为两类,即(避开错误技术)和(容错技术)。

25.常用的估算软件规模的方法有(代码行技术)和(功能点技术)。

26.功能点技术的信息域包含(输入项数)(输出项数)、(查询数)、(主文件数)、(外部接口数)等5个方面的信息。

27.软件的工作量计算模型是(软件规模)的函数,软件工作量的单位通常是(人月),常用的计算软件工作量的计算模型有(静态单变量模型)、(动态多变量模型)、(COCOMO2模型)等。

28.软件过程是软件(生存期)中的一系列相关软件工程(活动)的集合。

每个软件过程又是由一组(工作任务)、项目(里程碑)、软件工程产品和交付物以及软件质量保证(SQA)电等组成。

29.软件的度量包括直接度量和间接度量、软件产品的直接度量包括(产生的代码行数)、(执行速度)、(存储量大小)、在某种时间周期中所报告的差错数。

软件产品的间接度量则包括(功能性)、(复杂性)、(效率)、(可靠性)、(可维护性)和许多其他的质量特性。

30.软件配置管理是在软件的整个生命周期内管理变化的一组活动。

这组活动包括:①标志变化,②控制变化,③实现变化,④报告变化。

31.软件的质量可以定义为(用户对软件的满意程度),具体地说,软件质量是软件与(功能和性能需求),(开发标准)以及所有软件产品都应该具有的(隐含特性)相32.软件维护可以分为(改正性维护)、(适应性维护)、(完善性维护)、(预防性维护)等四类。

33.把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度叫软件的(移植性)。

34.对象是封装了数据结构及可以施加在这些数据结构上的(操作)的封装体,这个封装体可以唯一地标识它的名字,而且向外界提供一组(服务)。

二、单项选择题1.软件设计中划分程序模块通常遵循的原则是使各模块间的耦合尽可(C)a)强b)适中c)弱2.若一个模块直接引用另一个模块中的数据,这种类型的耦合称为(E)。

a)公共偶合b)数据耦合c)逻辑耦合d)外部耦合e)内容耦合f)控制耦合3.瀑布模型是()驱动模型a)功能b)文档c)数据d)时间4.若一个模块把开关量作为参数传送给另一个模块,这种类型的耦合称为(F)。

a)公共偶合b)数据耦合c)逻辑耦合d)外部耦合e)内容耦合f)控制耦合5.若一个模块通过公共数据结构把数据传送给另一个模块,这种类型的耦合称为(A)。

a)公共偶合b)数据耦合c)逻辑耦合d)外部耦合e)内容耦合f)控制耦合6.以下各种类型的耦合中,(E)的耦合性最强。

a)公共偶合b)数据耦合d)外部耦合e)内容耦合f)控制耦合7.为了高质量地开发软件项目,在软件结构设计时必遵循(C)的原则a)质量控制b)程序优化c)信息隐蔽d)数据共享e)模块通信8.在建立软件系统的模块结构。

相关文档
最新文档