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

软件工程(期末试题及答案)软件工程(期末试题及答案)一、选择题(共20题,每题2分,共40分)1. 在软件工程中,以下哪一项不是七大工程()。
A. 软件需求B. 软件设计C. 软件开发D. 软件维护答案: D2. 软件需求分析的目的是()。
A. 理解用户需求B. 设计软件架构C. 编写用户手册D. 测试软件功能答案: A3. 软件开发过程中的迭代模型,不存在的是()。
A. 瀑布模型B. 敏捷开发模型C. 螺旋模型D. 喷泉模型答案: D4. 以下哪个不是软件测试的目的()。
A. 发现错误和缺陷B. 验证软件是否满足需求C. 评估软件的可靠性和质量D. 优化软件的性能答案: D5. 软件项目管理中,以下哪种方法适用于大型复杂项目()。
A. 瀑布模型B. 敏捷开发C. 增量模型D. 螺旋模型答案: D6. 软件开发生命周期中,以下哪个过程不属于()。
A. 需求分析过程B. 设计过程C. 编码过程D. 运维过程答案: D7. 在软件工程中,什么是软件测试()。
A. 软件开发的最后阶段B. 发现软件缺陷的过程C. 确保软件质量的控制过程D. 软件最终验收的流程答案: C8. 以下哪种测试方法旨在评估软件在不同负载下的性能和稳定性()。
A. 单元测试B. 集成测试C. 系统测试D. 性能测试答案: D9. 软件开发中,以下哪个活动不属于软件配置管理()。
A. 版本控制B. 配置变更控制C. 缺陷管理D. 代码评审答案: D10. 以下哪个是敏捷开发的基本原则()。
A. 面对面交流胜过文档B. 完全按照计划进行C. 精确的需求分析是关键D. 严格的变更控制是必要的答案: A11. 下列哪个不属于软件配置管理的内容()。
A. 变更控制B. 版本控制C. 缺陷管理D. 运维管理12. 软件的可靠性是指()。
A. 软件是否能正常运行B. 软件是否符合用户需求C. 软件运行期间不出现故障的能力D. 软件功能的完善程度答案: C13. 下列哪个不属于软件开发的7大原则()。
软件工程试题与答案

一、单选题1.在软件危机中表现出来的软件质量差的问题,其原因是_____C__。
A.软件研发人员素质太差B.用户经常干预软件系统的研发工作C.没有软件质量标准D.软件开发人员不遵守软件质量标准2.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的___B__。
A.安全性B.健壮性C.可用性D.可靠性3.在下列测试技术中,__D____不属于黑盒测试技术。
A.等价划分B.边界值分析C.错误推测D.逻辑覆盖4.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法主要是指_____B_。
A.原型化方法B.结构化方法C.功能化方法D.面向对象方法5.__C____是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A.多态B.继承C.封装D.消息6.Jackson方法是在软件开发过程中常用的方法,使用Jackson方法时可以实现____A__。
A.从数据结构导出程序结构B.从数据流图导出初始结构图C.从模块结构导出数据结构D.从模块结构导出程序结构7.软件测试时为了_____B___而执行程序的过程。
A.纠正错误B.发现错误C.避免错误D.证明错误8.在软件系统中,一个模块应具有什么样的功能,这是由__B___决定的。
A.总体设计B.需求分析C.详细设计D.程序设计9.面向对象分析是对系统进行___A______的一种方法。
A.需求分析B.程序设计C.设计评审D.10.测试验收软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的___B____。
A.可理解性B.可维护性C.可扩展性D.11.可移植模块内聚度越高,说明模块内各成分彼此结合的程序越____B___。
A.松散B.紧密C.无法判断D.12.相等软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码、测试和维护等阶段,一般认为可能占用人员最多的阶段是_____C___。
软件工程试题及答案(较详细)

一.判断题:1.如果决定将软件全部包给第三方公司开发。
(×)2.有了对系统的目标有了大致的了解,就可以开始开发项目,以后的在开发中继续了解。
(×)3.对于一个成功的软件项目,可执行程序是唯一交付的东西。
(×)4.直到程序运行,才评估软件系统的质量。
(×)5.如果未能按时完成任务,我们可以通过增加程序员来加快完成任务.(×)6.虽然软件需求不断变更,但因软件比硬件有弹性,所以我们经常可以变更它.(×)7.软件工程将导致我们产生大量的无用文档,降低工作效率。
(×)8.在面向对象建模中,主题划分提供了在更高一层上描述。
(主题划分是指UML中将一组关联比较强的类的集合。
则上百个类可划分为几个主题)(√)9.面向对象的开发,对象分解取代功能分解. (√)10.软件中80%的错误存在20%的模块中。
(√)11.结构化分析方法在建立系统模型时,使用一般――特殊结构(实际上没有这种关系)来处理信息。
(×)12.开发软件就是编程。
(×)13.需求规格说明书说明了(√)14.结构化方法,建立系统模型时使用一般连接组织信息. (×)15.敏捷过程模型选用小而高激励的团队使用而不适用于大团队。
(√)二.简答题1.软件工程是层次化的,其四个层次是?答:方法,工具,过程,质量保证软件工程是一种层次化的技术(如图2-1所示)。
任何工程方法(包括软件工程)必须以有组织的质量保证为基础。
全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。
支持软件工程的根基就在于对质量的关注。
软件工程的基层是过程层。
软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来.过程定义了一组关键过程区域的框架(KPAs)[PAY93],这对于软件工程技术的有效应用是必须的。
关键过程区域构成了软件项目的管理控制的基础,并且确立了上下各区域之间的关系,其中规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。
软件工程试题库及答案

一、选择题软件(2)1.在软件开发的各种资源中,( D )是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员2.软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.软件是一种( B )产品。
A、有形B、逻辑C、物质D、消耗软件危机(1)5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程B.软件周期C.软件危机D.软件产生6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( A )A.软件危机B.软件工程 C.程序设计革命D.结构化程序设计7.3:以下哪一项不是软件危机的表现形式( C )(A)成本高(B)生产率低(C) 技术发展快(D)质量得不到保证8.4:“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件9.5:软件危机是指在软件开发和( C )过程中遇到的一系列严重问题。
A 开发B 使用 C维护D更新软件工程(2)10.1:为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生的基础。
(A) 运筹学(B) 工程学 (C) 软件学(D) 数学11.2.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展12.3. 软件管理工作涉及到的直接对象不包括( B )。
A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目13.4. 软件工程方法学有三个要素,它们是( A )A.方法、工具和过程B.质量、进度和成本C.顺序、分支和循环D.入口、过程、出口生命周期及模型(5)14.1:软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维护等几个阶段。
软件工程考试试题含答案

一、填空题每空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.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统()A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是()A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。
软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
软件工程试题及答案

软件工程一、选择题1、软件需求规格说明的内容不包括(B)A、主要功能B、算法的详细描述C、用户界面及运行环境D、软件的性能2、面向对象的分析方法主要是建立三类模型,即(D)A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型C、ER模型、对象模型、功能模型D、对象模型、动态模型、功能模型3、在ER模型中,包括以下基本成分(C)A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作4、各种软件维护的类型中最重要的是(A)A、完善性维护B、纠错性维护C、适应性维护D、预防性维护5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[—2.0,2.0],现从输入的角度考虑一组测试用列—2.001,-2,20,2.001,设计这组测试用列的方法是(C)A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法6、下列白盒测试法,哪种是最强的覆盖准则(D)A、语句覆盖B、条件覆盖C、判定覆盖D、条件组合覆盖7、确定测试计划是在(A)阶段制定的。
A、总体设计B、详细设计C、编码D、测试8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C)A、数据库设计B、数据通信C、数据定义D、数据维护9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D)A、生成期B、软件意向C、结构化程序设计D、面向对象分析10、以下不属于IT企业当中过程管理和过程改进模型的是(D)A、ISO9001B、CMMIC、软件企业文化D、UML11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java)12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A )。
A、调用关系B、组成关系C、链接关系D、顺序执行关系13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作.A、需求分析B、概要设计C、详细设计D、软件维护14、PDL属于(B)语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 面向对象的分析方法主要是建立三类模型,即( D )。
A) 系统模型、ER模型、应用模型B) 对象模型、动态模型、应用模型C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型5. 在E-R模型中,包含以下基本成分( )。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、操作9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是( c )A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a )A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。
A.数据流B.系统结构C.控制结构D.信息流14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试16.需求分析的产品是( D )A.数据流程图案B.数据字典C.判定表D.需求规格说明书17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C )A.数据库设计B.数据通信C.数据定义D.数据维护18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A.增量模型B.喷泉模型C.原型模型D.螺旋模型(×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。
(×)4、软件需求分析的任务是建立软件模块结构图。
(√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。
(×)7、进行总体设计时加强模块间的联系。
(×)8、编码时尽量多用全局变量.(√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。
1. 软件生命期各阶段的任务是什么?答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。
2、软件重用的效益是什么?答:1、软件重用可以显著地改善软件的质量和可靠性。
2、软件重用可以极大地提高软件开发的效率。
3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。
3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。
缺点:需要存根程序,底层错误发现较晚。
②自底而上渐增测试优点与缺点和自顶而下渐增测试相反。
4 、提高可维护性的方法有哪些?答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。
在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。
在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。
在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。
在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。
在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。
在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。
为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。
简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。
【解答】测试过程按 4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。
单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。
集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。
与其相关的文档是集成测试计划和软件需求说明书。
确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。
与其相关的文档是确认测试计划和软件需求说明书。
平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
与其相关的文档:用户指南、使用手册等。
四、应用题(每题8分,共40分)1、 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。
零件入库或出库称为事务,通过放在仓库中的CRT 终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
要求:画出系统的数据流图。
答:2、 将下面给出的伪码转换为N-S 图和PAD 图。
void root ( float root1, float root2 ) {i = 1; j = 0; while ( i <= 10 ) { 输入一元二次方程的系数a, b, c ; p = b*b – 4*a*c ;if ( p < 0 ) 输出“方程i 无实数根”; else if ( p > 0 ) 求出根并输出;if ( p == 0 ) { 求出重根并输出; j = j + 1; } i = i +1; } 输出重根的方程的个数j ; }【解答】(1)N-S 图(2)PAD 图3、:输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”. 要求:1.用程序流程图i = 1; j = 0;while ( i <= 10 ) 输入a, b, c; 计算 p = b 2 - 4ac ; p < 0 ? 输出“方程i ”无求出根并输出 ↓ p > 0 ? p == 0 ? 求出重根并输出; j = j + 1; ↓ i = i + 1; 输出重根的方程个数i T T T F F F i = 1; j = 0; 输出重根的方程个数iwhile ( i <= 10 ) 输入a,b,c; 计算 p = b 2–4ac; 求出根并输出 p > 0 ? p < 0 ? 输出方程i 无实根 p = 0 ? 求出重根并输出; j = j+1; i = i + 1;表示该问题的算法;2.计算程序复杂度; 3.设计路径覆盖的测试用例。
答:路径:1.①—②—③—④—⑥—⑦ 2.①—②—⑤—⑥—⑦3.①—⑤—⑥—⑦4.①—②—③—⑤—⑥—⑦程序复杂度=3+1=4 测试用例路径测试用例(A ,B ,C ) 结果 1A=3,B=4,C=5 A=3,B=4,C=5 2A=5,B=8,C=2 不能构成三角形 3A=2,B=2,C=5 不能构成三角形 4 A=5,B=2,C=2 不能构成三角形 4、某航空公司规定,乘客可以免费托运重量不超过30kg 的行李。
当行李重量超过30kg 时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定树表示与上述每种条件组合相对应的计算行李费的算法.答案:5、一个软件公司有许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一① ②①③④ ⑤⑥⑦Ⅰ ⅰ Ⅱ Ⅲ ⅰⅣ ⅰ确定。
该公司有许多员工,员工分为经理,工作人员和开发人员。
开发部门有经理和开发人员,管理部门有经理和工作人员。
每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,每位经理可主持多个开发项目,建立该公司的对象模型。
答案:1、C2、B3、B4、D5、C6、A7、B8、D9、C 10、D 11、A 12、D 13、A 14、A 15、A 16、D 17、C 18、D 19、D 20、DB 卷 1、瀑布模型把软件生命周期划分为8个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(运行阶段)。
2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,需求分析阶段出错,对软件的影响最大。
3、在结构化的瀑布模型中,(需求分析阶段)定义的标准将成为软件测试中的系统测试阶段的目标。
4、软件工程的出现主要是由于(软件危机的出现)5软件工程方法学的目的:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境。
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充。
7、UML 是软件开发中的一个重要工具,它主要应用于基于对象的面向对象的方法。
8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(原型化方法)。
9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(数据流)。
10、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(编码阶段)。
11、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。
主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。
螺旋模型将瀑布模型和演化模型相结合,并增加了(风险分析),它建立在()的基础上,沿着螺线自内向外每旋转一圈,就得到(原型)的一个新版本。
喷泉模型描述了(面向对象)的开发模型,它体现了这种开发方法创建软件的过程所固有的(递归)和(开发各阶段之间无“间隙”)的特征。
12、以下不属于白盒测试技术的是(等价类划分)。
13、为改正软件系统中潜藏的错误而进行的维护活动称为(纠错性维护 )。
14、保证软件质量的手段有复审、复查、管理复审和测试等。