软件工程复习题
软件工程复习题
软件工程习题课一.名词解释01.软件危机02.需求分析03.软件工程:04.黑盒测试法05.软件维护06.软件生存周期07.瀑布模型08.可行性研究09.数据流图10.数据字典11.软件体系结构12.冗余程序设计13.软件测试14.项目计划二.问答题1.计算机软件定义及特点?2.软件危机的表现?3.软件生存周期一般可分几个阶段,每个阶段的工作内容是什么?4.瀑布模型的特点是什么?5.可行性研究的内容?6.可行性研究应从那些方面进行研究,每一方面包含的内容是什么?7.需求获取的主要内容有哪几个方面?8. 需求获取的方法有哪些?9. 需求分析的目标是什么?10.需求分析做完以后得到的主要文档是什么?11. 需求分析存在的困难?12. 需求分析的原则?13. 需求分析的方法?14. 数据流图的特性?15. 数据流图基本符号及含义?16. 数据流图的用途?17. 数据流图画法(参考课堂实例)?18. 数据字典的作用?19. 数据字典中”= + [ ] {}()”的含义?20.概念性数据模型的含义及特点,最常用的表示概念性数据模型的方法?21. ER模型的基本成分及描述元素是什么22概要设计任务?23. 系统设计的原则?24. 软件体系结构的常见形式及特点?25. 评价模块设计优劣的三个特征因素及其含义?26. 界面的风格的含义?27. 系统结构图是SD(结构化设计)方法在概要设计中使用的主要表达工具,SD方法约定系统结构模块的表示符号是什么,各个模块之间调用的方法有哪些?28. DFD图如何映射到功能模块图?29. 需求分析的目标是什么?30.需求分析做完以后得到的主要文档是什么?31. 详细设计的工具及使用方法?32. 详细设计的原则?33. Jackson程序设计方法的特点?34. Jackson图表达基本结构和改进结构的用法?35. Jackson伪代码的含义与用法?36. 设计,编码和程序语言对程序的质量的影响?37. 程序设计语言分类及特点?38. 编码风格主要包含哪些内容?39. 结构化程序设计的目的是什么?40. 软件测试的基本方法?41. 软件测试的步骤?42. 软件维护的分类及含义?43维护的费用和代价计算方法?44. 项目计划的含义?45软件质量的影响因素?三.分析题分析一家公司的营销系统。
软件工程复习资料
软件工程复习题一一、选择题,请从四个可选项中选择正确答案。
1.以下哪一项不是软件危机的表现形式()A.成本高B.生产率低C.技术发展快D.质量得不到保证2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。
()A.演化模型B.喷泉模型C.原型模型D.螺旋模型3.可行性研究的目的不包括()A.分析开发系统的必要性B.确定系统建模的方案C.分析系统风险D.确定是否值得开发系统4.可行性分析研究的费用大约是项目总经费的()。
A.2%B.8%C.20%D.50%5.在E-R 模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、联系6.软件需求分析产生一个重要文档是()。
A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册7.内聚程度较低的是()。
A.通信内聚B.过程内聚C.顺序内聚D.时间内聚8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块 B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码9.UML 语言支持的建模方式不包括有()。
A.静态建模B.动态建模C.模块化建模D.功能建模10.以下哪一项不是面向对象的特征。
()A.多态性B.继承性C.封装性D.过程调用11.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了()A.软件危机B.软件工程C.程序设计革命D.结构化程序设计12.瀑布模型的关键不足在于()A.过于简单B.不能适应需求的动态变更C.过于灵活D.各个阶段需要进行评审13.可行性研究的四大要素是()。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性14.经济可行性研究的主要内容包括()A.开发过程B.开发工具C.风险分析D. 效益分析15.在需求分析过程中,分析员要从用户那里解决的最重要的问题是()。
软件工程复习题库带答案完整版
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
软件工程复习题及答案
一、单项选择题(本大题共60小题,在每小题的四个备选答案中,选出一个正确答案,并将正确答案填涂在答题卡上)1.软件质量因素不包括。
A.正确性B.高性能C.可测试性D.可理解性2.软件可行性研究实质上是要进行一次需求分析、设计过程。
A.简化、压缩的B.详细的C.彻底的D.深入的3.以下哪个软件生存周期模型是一种风险驱动的模型。
A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型4.可行性分析中,系统流程图用于描述。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统5.结构化分析建立功能模型的工具是。
A.DFDB.判定树/判定表C.SCD.结构化语言6.检查软件产品是否符合需求定义的过程称为。
A.确认测试B.集成测试C.系统测试D.单元测试7.在整个软件维护阶段所花费的全部工作中,所占比例最大的是。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护8.通信内聚是指。
A.把需要同时执行的动作组合在一起形成的模块B.各处理使用相同的输入数据或者产生相同的输出数据C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行D.模块内所有元素共同完成一个功能,缺一不可9.一个只有顺序结构的程序,其环形复杂度是。
A.0B.1C.3D.510.下述四个能力成熟度等级,级别最高的是。
A.已定义级B.优化级C.可重复级D.已管理级11.结构化程序设计,主要强调的是。
A.程序的执行效率B.模块大小C.程序的可理解性D.模块关系12.软件调试技术包括。
A.边界值分析B.演绎法C.循环覆盖D.集成测试13.需求分析中开发人员要从用户那里了解。
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模14.数据字典是对数据定义信息的集合,它所定义的对象都包含于。
A.数据流图B.程序框图C.软件结构D.方框图15.面向对象的主要特征除唯一性、继承性、多态性外,还具有。
A.封装性B.移植性C.完整性D.兼容性16.关于软件维护的说法错误的是。
软件工程复习题及答案(完整)
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件.对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动. 错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型.错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级.除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B).A 关键实践B 关键过程域C 软件过程能力D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
A 需求不确定的B 需求确定的C 管理信息D 决策支持18、(A)意味着一个操作在不同的类中可以有不同的实现方式.A 多态性B 多继承C 类的可复用D 信息隐蔽19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。
软件工程复习题及答案
软件工程复习题及答案1. 软件工程的三要素是()。
A. 技术、方法和工具B. 方法、对象和类C. 方法、工具和过程(正确答案)D. 过程、模型、方法2. 在下列选项中,()不属于软件工程学科所要研究的基本内容。
A. 软件工程材料(正确答案)B. 软件工程目标C. 软件工程原理D. 软件工程过程3. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A. 软件生命周期B. 软件测试C. 软件工程(正确答案)D. 软件过程4. 下列说法中正确的是()。
A. 20世纪50年代提出了软件工程的概念B. 20世纪60年代提出了软件工程概念(正确答案)C. 20世纪70年代出现了客户机/服务器技术D. 20世纪80年代软件工程学科达到成熟5. 软件危机的主要原因是()。
A. 软件工具落后B. 软件生产能力不足C. 对软件的认识不够D. 软件本身的特点及开发方法(正确答案)6. 增量模型本质上是一种()。
A. 线性顺序模型B. 整体开发模型C. 非整体开发模型(正确答案)D. 螺旋模型7. 软件过程是()。
A. 特定的开发模型B. 一种软件求解的计算逻辑C. 软件开发活动的集合(正确答案)D. 软件生命周期模型8. 软件生命周期模型不包括()。
A. 瀑布模型B. 用例模型(正确答案)C. 增量模型D. 螺旋模型9. 数据流图是进行软件需求分析的常用图形工具,其基本图形符号是()。
A. 输入、输出、外部实体和加工B. 变换、加工、数据流和存储C. 加工、数据流、数据存储和外部实体(正确答案)D. 变换、数据存储、加工和数据流10. 在结构化分析方法中,用以表达系统内数据的运动情况的工具是()。
A. 数据流图(正确答案)B. 数据字典C. 结构化语言D. 判定表与判定树11. 在需求分析之前有必要进行()工作。
A. 程序设计B. 可行性研究(正确答案)C. ER分析D. 2NF分析12. 进行需求分析可使用多种工具,但()是不适用的。
软件工程复习题(带答案)
软件工程复习题(带答案)软件工程复习题一、单选题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.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
软件工程复习题
软件工程复习题一、单选题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、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的( C )A.可理解性 B.可维护性C.可扩展性D.可靠性10、从( C )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( D )A.实体B.数据存储C.关系D属性13、结构化程序设计主要强调程序的( C )A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
《软件工程》复习题及答案
第一部分
一、选择题:
1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。
A.软件工程B.软件周期C.软件危机D.软件产生
2.瀑布模型本质上是一种(A)模型。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品
3.瀑布模型存在的问题是(B)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求
数据流图的基本符号的意思:
1.矩形表示数据的外部实体;
2.圆角的矩形表示变换数据的处理逻辑;
3.少右面的边矩形表示数据的存储;
4.箭头表示数据流。
8.什么是数据字典?其作用是什么?它有哪些条目?
答:数据字典,主要用来描述数据流程图中的数据流、数据存储、处理过程和和数据源点/终点。
作用:数据流程图描述了系统的逻辑结构,其中的四个基本图形元素的含义无法在数据流程图中详细说明,因此数据流程图需要与其他工具配合使用,数据字典就是这样的工具之一。
32.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的(C)上。
A.配置项B.程序C.基线D.过程
33.在软件设计中应该保持模块的独立性原则,( A )反映模块独立性。
A.耦合和内聚 B.数据和模块 C. 模块内部的凝聚力 D.模块之间的耦合
二、简答题
1.什么是软件工程?软件工程的目标是什么?
A、1%B、20%C、8%D、50%
13.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。
A.《计算机软件保护条例》
B.《中华人民共和国计算机信息系统安全保护条例》
C.《中华人民共和国著作权法》
D.《计算机病毒防治管理办法》
软件工程-复习题
《软件工程》复习题一、单项选择题1.螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。
( )A. 增量模型B.专家系统C. 喷泉模型D. 变换模型2.UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。
消息序列可用两种图来表示,分别是(D)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.UML中有四种关系是:依赖,泛化,关联和()A. 继承B. 合作C. 实现D. 抽象8.用白盒法技术设计测试用例的方法包括()A .错误推测B .因果图C .基本路径测试D .边界值分析9.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护10.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )A. 前者属于静态测试,后者属于动态测试B. 前者属于动态测试,后者属于静态测试C. 都属于静态测试D. 都属于动态测试11.程序的三种基本控制结构的共同特点是( )A. 只能用来描述简单程序B.不能嵌套使用C.单入口,单出口D.仅用于自动控制系统12.下面哪个不是UML中的静态视图()A.状态图 B. 用例图 C. 对象图 D. 类图13.()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A. 泳道B. 分叉汇合C. 分支D. 转移14.软件生存期包括计划,需求分析和定义,(),编码,软件测试和运行维护。
《软件工程》复习题
《软件工程》复习题一、填空题1、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和_______ 。
2、按数据流的类型,结构化设计方法有两种设计策略,它们是变换型设计和___________。
3、风险管理包括了________、_______、____________和风险监控四个活动。
4、数据流图和数据字典共同构成了系统的_______模型,是需求规格说明书的主要组成部分.5、软件是包括程序,____及其___的完整集合。
6、为了便于对照检查,测试用例应由输入数据和预期的两部分组成。
7、可移植性指的是___________________________。
8、一般而言,单独测试某一模块时,要为它设计驱动模块和模块,它们的作用是分别模拟被测试模块的和。
9、G.J.Myers提出:软件测试是为了发现___________而执行程序的过程。
10、软件可行性研究从__________、__________、社会可行性三个方面分析研究每种解决方案的可行性。
11、数据流图用图形符号表示、、及外部实体。
12、在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关系。
13、类具有操作,它是对象的抽象。
14、标志一个模块内各个元素彼此结合的紧密程度。
15软件总体设计时应该遵循模块化、抽象、、局部化和模块独立等6条基本原理。
16、为了便于对照检查,测试用例应由输入数据和预期的两部分组成。
17、将数据流图映射为程序结构时, 所用映射方法涉及信息流的类型。
其信息流分为和两种类型。
18、软件由程序、、组成。
19、软件工程方法分两类:方法和对象方法。
20、单元测试过程应为测试模块开发一个和(或)若干个。
21、一个模块拥有的直属下级模块的个数称为,一个模块的直接上级模块的个数称为。
22、维护阶段是软件生存周期中花费精力和费用______的阶段。
23、被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为。
软件工程复习习题(含答案)
一、选择题1.在软件危机中表现出来的软件质量差的问题,其原因是___没有软件质量标准____。
2.在软件质量因素中,软件在异常条件下仍能运行的能力成为软件的___健壮性__。
3.在下列测试技术中,___逻辑覆盖___不属于黑盒测试技术。
4.___封装___是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
5.软件测试时为了___发现错误_____而执行程序的过程。
6.在软件系统中,一个模块应具有什么样的功能,这是由___需求分析__决定的。
7.面向对象分析是对系统进行___需求分析_____的一种方法。
8.软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的___可维护性____。
9.模块内聚度越高,说明模块内各成分彼此结合的程序越____紧密__。
10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码、测试和维护等阶段,一般认为可能占用人员最多的阶段是_维护阶段__。
11.常用的面向对象的软件过程模型是__喷泉模型_____。
生命周期模型A.瀑布模型(规范化,阶段性取得前进)B.喷泉模型(面向对象,开发活动间没明显边界,无缝过渡)C.原型模型(快速,线性顺序,不带反馈环)D.增量模型(产品分解为一系列增量构件,开发中逐步加入)E.螺旋模型(瀑布&快速原型结合,每阶段加风险评估)12.面向对象的分析阶段建立的系统模型不包括____数据模型____。
有对象模型、动态模型、功能模型13.提高软件的可维护性可采用很多措施,下列哪个不在措施之列?提供没有错误的程序。
措施:建立质量保证制度、改进程序文档质量、明确软件质量标准14.计算机系统可以划分为软件系统和硬件系统,软件是一种逻辑产品。
15. 可行性分析研究的主要目的是项目是否值得开发16.在下列四种模块的耦合性中,信息隐蔽性能最好的是(C数据耦合)A.控制耦合B.内容耦合C. 数据耦合D. 特征耦合17.需求分析是回答系统必须(D做什么)的问题。
软件工程 复习题
软件工程复习题一、单选题(20分)第一组: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.多态性B.类的复用C.封装D.对象的复用7、软件测试计划开始于需求分析阶段,完成于()阶段。
A.需求分析 B.软件设计 C.软件实现 D.软件测试8、在软件生存周期的瀑布模型中一般包括计划、()、设计、编码、测试、维护等阶段。
A.可行性分析 B.需求采集 C.需求分析 D.问题定义9.软件需求分析阶段的测试手段一般采用()。
A.总结 B.阶段性报告 C.需求分析评审 D.不测试10.()是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
A.多态性 B.继承 C.封装 D.消息11.软件测试是为了()而执行程序的过程。
A.纠正错误 B.发现错误 C.避免错误 D.证明正确12.在结构化分析方法中,()表达系统内部数据运动的图形化技术。
A.数据字典 B.实体关系图 C.数据流图 D.状态转换图13.软件工程的基本要素包括方法、工具和()。
A.过程 B.软件系统 C.硬件环境 D.人员14.TURBO PASCAL是()软件。
A.系统软件 B.人工智能 C.事务软件 D.应用软件15、选择结构的复杂性比顺序结构的复杂性要()。
软件工程复习题及参考答案
《软件工程》课程复习资料一、单项选择题:1.下面哪些UML图描述系统行为?()A.用例图B.类图C.对象图2.属于概要设计活动的是()A.软件结构设计B.数据结构设计C.算法设计3.属行为型设计模式的是()A.组合模式B.工厂方法模式C.观察者模式4.下列说法正确的是()A.UML 是软件开发方法B.UML是系统描述语言C.UML是软件开发过程5.根据程序流程图划分的模块通常是()A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为()A.m-1B.mC.m+17.按ISO9000-3的说明,下列属软件配置项的是()A.软件开发方法B.软件开发组织管理制度C.软件开发合同8.软件测试的目的是()A.证明软件无错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是()A.软件体系结构B.模块细节C.软件性能10.软件项目开发计划的内容有()A.数据分析B.风险分析C.功能分析11.在UML的类图中,描述整体与部分关系的有()A.泛化关系B.聚合关系C.依赖关系12.软件过程能力成熟度模型CMM用以评价()A.软件过程能力B.组织能力C.学习能力13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为()A.完善性维护B.改正性维护C.适应性维护14.对项目软件而言,软件功能需求信息主要由谁提供()A.软件用户B.软件开发人员C.软件项目管理人员15.IDEF0 图反映不出()A.系统做什么B.系统功能由谁做C.系统如何做16.原型模型是一种什么开发过程模型()A.自顶向上B.由外至内C.增量式17.系统流程图描述()A.物理系统B.逻辑系统C.软件体系结构18.需求规格说明书的内容不应该包括()A.软件确认准则B.软件的性能描述C.算法过程的详细描述19.适合需求模糊或需求不确定系统开发的软件开发模型有()A.瀑布模型B.RAD 模型C.原型模型20.UML 图中描述系统结构的有()A.组件图B.顺序图C.状态图21.面向对象方法是一种什么软件开发方法()A.层次化B.迭代增量式C.逐步求精22.不可以用来衡量软件可维护性的有()A.可靠性B.可用性C.可行性23.系统分析员在需求分析最后负责编写()A.用户手册B.概要设计说明书C.可行性研究报告24.为了提高软件的可靠性、可维护性等而对软件的修改称为()A.改正性维护B.适应性维护C.预防性维护25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构()A.与问题结构对应B.与问题结构独立C.与用户界面对应26.单元测试的计划应该在什么阶段完成?()A.需求分析B.概要设计C.详细设计27.下列属面向对象软件开发方法的有()A.LCP 方法B.OMT 方法C.IDEF0 方法28.强调信息隐藏的软件工程设计方法有()A.Jackson 方法B.Parnas 方法C.SA/SD 方法29.描述系统动态行为的模型有()A.包图B.软件结构图C.状态图30.考虑输入条件组合的测试用例设计方法有()A.等价分类法B.语句覆盖法C.因果图法31.下列能减少支援性维护活动的有()A.利用软件包B.进行配置管理C.对用户进行适当培训32.只支持单重继承的程序设计语言有()A.C++B.DelphiC.C33.IDEF0 图的顶层图是()A.A0 图B.A-0 图C.A-1图34.在UML 的用例图中,扩展关系是一种()A.泛化关系B.依赖关系C.关联关系35.独立测试小组开始介入测试是在()A.模块测试阶段B.集成测试阶段C.确认测试阶段36.在成本估计中容易低估局部问题的方法是()A.基于经验模型的估计B.自底向上估计C.自顶向下估计37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的()A.全部属性B.主关键字属性C.非主关键字属性38.结构化分析方法使用的工具有()A.数据流图B.类图C.软件结构图39.白盒测试设计用例的方法是()A.等价分类法B.基本路径覆盖法C.因果图法40.在衡量软件质量时,最重要的标准是()A.可维护性好B.可用性好C.满足用户功能需求41.瀑布模型是一种()A.演化模型B.顺序模型C.增量模型42.模块的独立程度可以由什么定性标准度量?()A.耦合度B.复杂度C.可靠性43.以下选项中,不属于对象的特点有()A.继承B.多态C.封闭44.面向数据结构的设计方法有()A.Parnas 方法B.Jackson 方法C.IDEF0 方法45.与UML配合最好的软件开发方法是()A.RUP 方法B.Coad/Yourdon方法C.IDEF4方法二、填空题:1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是和。
《软件工程》复习题
C.一个输入或输出流D.一个输入流和一个输出流
49.下列关于功能性注释不正确的说法是( )
A.功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B.注释用来说明程序段,需要在每一行都要加注释
C.可使用空行或缩进,以便很容易区分注释和程序
D.修改程序也应修改注释
A.给出软件解决方案B.给出系统模块结构
C.定义模块算法D.定义需求并建立系统模型
56.一个项目是否开发,从经济上来说是否可行,归根结底是取决于( )。
A.成本估算B.项目计划
C.工程管理D.工程网络图
57.在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有( )。
A.隐藏复杂性B.信息隐蔽
C.可以借助状态转换图来描述用例D.用例是一个类,而不是事件
21.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有( )
A.模块的功能B.语句的功能
C.模块的接口D.开发历史
22. DFD中的每个加工至少需要( )
A.一个输入流B.一个输出流
C.一个输入或输出流D.一个输入流和一个输出流
A.通信、过程、顺序、时间
B.通信、时间、顺序、过程
C.顺序、通信、时间、过程
D.顺序、通信、过程、时间
29.使用程序设计的控制结构导出测试用例的测试方法是()
A、黑盒测试B、白盒测试
C、边界测试D、系统测试
30.软件工程学的目的应该是最终解决软件生产的()问题。
A.提高软件的开发效率B.使软件生产工程化
64、可使用多种工具进行需求分析,下面( )是不适用ห้องสมุดไป่ตู้。
A.数据流图B.判定表C. PAD图D.数据词典
软件工程复习试题及答案
一、填空题在下划线上填写正确的答案,每题2分,共20分1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数;2.数据流图和数据字典共同构成了系统的逻辑模型;3.盒图也称为N-S图;这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题; 4.软件有效性,指软件系统的时间和空间效率;5.IPO图的中文意思是结构化设计中变换型结构的输入Input、加工Processing、输出Output; 6.数据流图有四种基本成分:源、终点,处理,存储,数据流;7.数据字典有以下四种条目:数据流、数据项、数据存储、基本加工,其中数据项是组成数据流和数据存储的最小元素;8.软件工程中的结构化分析SA是一种面向数据流的分析方法;9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程;10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础;1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型;2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段;3.软件测试的步骤:单元、集成、系统、验收;4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点;5.IPO图由输入、处理和输出三个框组成;这个图的特点是能够直观的显示三者之间的关系;6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法;7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程;8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动;9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块;10.常用的测试方法有黑盒测试和白盒测试;1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益可行性等方面研究;2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环结构;3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护阶段;4.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求;7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程;8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动进行查找的编码执行活动;9.为了获得较高的模块独立性,尽量设计出具有低耦合和高内聚性能的模块;1.若年利率为i,n年后可得钱数为F则现在的价值F/1+Ni;2.在结构化分析中用来描述加工逻辑的主要工具是结构化语言、判定表、判定树;3.软件测试的步骤:制定、设计、实施测试、测试后调试、做4.自顶向下结合的渐增测试法,在组合模块时有两种组合策略:71;2;3.HIPO图是由一组IPO图和一张H 图组成;4.在前期需求明确、资料完整的情况下尽量采用瀑布模型;5.用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用扩展关系来表示;6.UML;7.类是类图的主要的主要部件,由类名、属性、操作3部分组成;8.UML中的泛化关系就是通常所说的继承关系;9;10Rose中对应图形的分类;1.软件危机具有下列表现D;1、对软件开发成本估计不准确2、软件产品的质量往往靠不住3、软件常常不可维护4、软件成本逐年上升A、1、2和3B、1、3和4C、2、3和4D、以上都正确2.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是A;A运行和维护阶段B、设计阶段C、代码实现阶段D、测试阶段3.下列属于软件的特点的是D;A、软件是一种逻辑实体,具有抽象性B、软件在使用过程中没有磨损、老化C、软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高D、以上都正确4.软件开发技术不包含D;A、软件开发方法学B、软件工程环境C、软件工具D、软件质量度度量5.需求分析阶段最重要的技术文档是B;A、设计说明书B、需求规格说明书C、可行性分析报告D、用户手册6.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是CA、数据库设计B、数据通信C、数据定义D、数据维护7.需求分析阶段的研究对象是C;A、系统分析员要求B、用户要求C、软硬件要求D、系统要求8.结构化方法的基本原则是B;A、模块化B、抽象与分解C、信息隐藏D、逐步求精9.耦合度最高的是B耦合;A、环境耦合B、内容耦合C、控制耦合D、数据耦合10.画软件结构图时应注意调用关系只能是BA、从下到上B、从上到下C、从左到右D、从右到左11.软件设计中划分模块的一个准则是CA、低内聚低耦合B、低内聚高耦合C、高内聚低耦合D高内聚高耦合12.Jackson设计方法是由英国的提出的,它是一种面向C的软件设计方法;A、对象B、数据流C、数据结构D、控制结构13.使用白盒测试方法时,确定测试数据应根据A和指定的覆盖标准;A、程序内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能14.软件维护工作的最主要的部分是A;A、校正性维护B、适应性维护C、完善性维护D、预防性维护15.PDL是B语言;A、高级程序设计语言B、伪码式C、中级程序设计语言D、低级程序设计语言16.下列哪个阶段不属于软件生存期的三大阶段C;A、定义阶段B、开发阶段C、编码阶段D、维护阶段17.可维护性的特性中相互促进的是AA、可理解性和可测试性B、效率和可移植性C、效率和可修改性D、效率和结构好18.软件测试的目标是BA、证明软件是正确的B、发现错误、降低错误带来的风险C、排除软件中所有的错误D、与软件调试相同19.软件生命周期中所花费用最多的阶段是DA、详细设计B、软件编码C、软件测试D、软件维护20.详细设计的基本任务是确定每个模块的D设计;A、功能B、调用关系C、输入输出数据D、算法22.下列哪个图不是N-S图的构件C;23.对于下列各图,有关描述中正确的是A;A、数据A和B同时输入变成CB、数据A变换成B和CC、数据A或数据B不能同时输入,变换成CD、数据A变换成B和C24.下列哪种方法不是度量效益的方法B;A、货币的时间价值B、算法模型估计C、投资回收期D、纯收入25.下列描述错误的是D;A、数据流图将各种信息流抽象成数据流的形式B、数据流图不反映控制关系、调用关系C、数据流图不反映处理逻辑的先后顺序D、数据流图不反映数据的流向26.软件是CA、处理对象和处理规则的描述B、程序C、程序及文档D、计算机系统27.软件需求规格说明的不应包括B;A、主要功能B算法的详细描述C、用户界面及运行环境D、软件性能28.程序的三种基本控制结构是B;A、过程、子程序和分程序B、顺序、选择和循环C、递归、迭代和回溯D、调用、返回和转移29.面向对象的分析方法主要是建立三类模型,即D;A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型B、ER模型、对象模型、功能模型D、动态模型、功能模型、对象模型30.ER模型中,包含以下基本成分C;A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作1.快速原型模型的主要特点之一是 BA.开发完毕才见到产品B.及早提供工作软件C.及早提供全部完整软件D.开发完毕才见到工作软件2.软件工程学的一个重要目标是DA.提高程序的执行效率B.降低程序对存储空间的要求C.定义各种软件开发过程模型D.提高软件的可维护性3.需求分析最终结果是产生BA.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告4.数据存储和数据流都是处于不同状态的 DA.分析结果B.事件C.动作D.数据5.数据字典是对数据定义信息的集合,它所定义的对象都包含于A A.数据流图B.程序框图C.软件结构D.方框图6、结构化设计是一种面向A的设计方法;A.数据流B.数据库C.数据结构 D.程序7.下列可哪个组件不是用例图的基本组件 DA.参与者B.用例C.系统D.文档8.用例图中用例之间存在各种关系,但不包括 BA.包含B.关联C.泛化D.扩展9.常用动词或动词词组来表示CA.对象B.类C.关联D.属性10.组件图中通常不包括下列哪个元素 AA.对象B.组件C.接口D.依赖11.好的软件结构应该是BA.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚D.低耦合、低内聚12.静态模型不包括CA.类图B.组件图C.状态图D.部署图13.动态模型不包括 DA.交组图B.活动图C.状态图D.部署图14.Rose模型文件的扩展名为 AA.mdlB.vsd C.pdf D.swf15.逆向工程是什么过程CA.模型到代码B.设计到实现C.代码到模型D.类图到包图三、判断题正确的在括号内打上“√”,错误的打上“×”;每小题2分,共20分1软件开发的主要任务是写程序;F2测试只能证明程序有错误,不能证明程序没有错误;T3模块化程序设计中,模块越小,模块化的优点越明显;一般来说,模块的大小都在10行以下;F4在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等;F5程序设计风格指导原则提出,尽量多使用临时变量;F6用黑盒法测试时,测试用例是根据程序内部逻辑设计的;F7发现错误多的程序模块,残留在模块中的错误也多;T8为了加快软件维护作业的进度,应尽可能增加维护人员的数目;F9软件维护就是改正软件中的错误;F10质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;T11螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示;F12模块越多,开发成本越小;F13内聚是指一个软件结构内各个模块之间互连程序的度量;F14结构化设计属于面向数据流的设计方法;T15详细设计是在概要设计之后进行的;它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述;T16程序运行过程中出现错误叫做容错;F17软件测试的目的是证明程序没有错误;F18白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程;F19PAD图在设置了五种基本的控制结构后,还允许递归调用;T20独立编译是指一个大程序的不同程序单元分别编译,然后重新连接整个程序段;T31开发软件就是编写程序F32系统测试的主要方法是白盒测试法,主要进行功能、性能测试、安全性测试及可靠性测试等F 33编程时应尽可能利用硬件特点以提高程序效率F;34软件需求分析的任务是建立软件模块结构图F;35尽可能使用高级语言编写程序T;36以结构化方法建立的系统模型就是数据流图F;37进行总体设计时加强模块间的联系F;38编码时尽量多用全局变量F;39用CASE环境或程序自动化生成工具来自动生成一部分程序T40软件测试是要发现软件中所有错误FT41、软件开发、设计几乎都是从头开始,成本和进度很难估计;F42、VG值越高的程序往往是越不复杂、越不容易出问题的程序;F43、适应性维护是改进软件未来的可维护性和可靠性;F44、软件是逻辑产品,软件质量较容易直接度量;T45、随着软件复杂性的不断提高,软件的维护难度越来越大;F46、软件也会磨损和老化;F47、用穷举法测试是较现实的测试方法;T48、面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和循环三种基本形式表示数据等步骤;F49、测试计划、测试用例,出错统计和有关的分析报告一般不用长期保存;F50、McCabe建议模块规模应满足:VG≤20;T 61.总体设计阶段要设计软件体系结构;F62、软件即程序;T63.采用对象设计系统时,首先建立系统的物理模型;T 64.用例图中,扩展关系表示为虚线箭头加“extend”;T65.实现关系指定两个实体之间的一个合同;T66.状态图通常作为对类图的补充;F67.聚集关系是关联的一种形式,表示两个类之间的一般与特殊关系;T68.一个完整的模型必然描述系统的静态和动态两个方面;F 69.状态图是对多个对象建模;T 70.在UML中,组件是指系统中可替换的物理部分;四简述题每小题5分,共10分1.测试用例测试用例TestCase是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个路径或核实是否满足某个特定需求;2.模块化模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性;3.对象指行动或思考时作为目标的事物4.软件生命周期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行;5.软件重用的效益是什么答:1、软件重用可以显着地改善软件的质量和可靠性;2、软件重用可以极大地提高软件开发的效率;3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费;6.结构化程序设计方法的基本要点;1.采用自顶向下、逐步求精的程序设计方法:在需求分析、概要设计中,都采用了自定向下、逐层细化的方法;2.使用三种基本控制结构构造程序,分别是顺序、选择和循环,这三种基本结构的共同点是、单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段;3.采用主程序员的组织形式:指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组;7.什么是软件生命周期8.简述什么是回归测试回归测试-----在集成测试过程中每当一个新模块结合进来时,程序就发生了变化:建立了新的数据流路径,可能出现新的I/O操作,激活新的控制逻辑;这样变化有可能使原来正常的功能出现了问题;所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述变化没有带来非预期的错误;9.简述软件危机有哪几种表现软件开发和维护的过程中常遇到的问题1对于软件开发的成本和进度的估计很不准确;2开发的软件产品不能完全满足用户要求;3开发的软件可靠性差,软件产品质量差;4软件通常没有适当的文档资料;5软件的可维护性差;6软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势,效率低;7软件价格昂贵;10.什么是软件工程SoftwareEngineering,简称为SE是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科;它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面;11.简述需求分析的任务需求分析的任务就是:确定待开发的软件系统“做什么”;具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册12.详细设计的主要任务是什么答:详细设计的基本任务包括:1、为每个模块进行详细的算法设计2、为模块内的数据结构进行设计3、对数据库进行物理设计4、其他设计5、编写详细设计说明书6、评审13.自顶而下渐增测试与自底向上渐增测试各有何优缺点答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误;缺点:需要存根程序,底层错误发现较晚;②自底而上渐增测试优点与缺点和自顶而下渐增测试相反;14.软件生存期各阶段的主要任务;15.简述需求分析工作可以分成哪四个方面软件需求分析有三个基本原则需求分析阶段的基本过程包括四个方面:对问题的识别,分析与综合,制定规格说明以及评审;1问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划;然后进行功能需求、性能需求、环境需求、可靠性需求安全保密需求、用户界面需求、资源使用需求等方面的工作;2分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理;3制定规格说明,编写需求分析的文档;4需求分析评审;为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行;需求分析的原则1.必须能够传达和理解问题的数据域和功能域2.必须按自顶向下、逐层分解的方式对问顺进行分解和不断细化3.给出系统的逻辑模型和物理模型161、为了发现错误而执行程序的过程2、一个好的用例能够发现至今尚未发现的错误的测试3、一个成功的测试是发现至今尚未发现的错误的测试17.在面向对象的系统开发过程中,每个阶段需要建造的模型各有什么作用1、在面向对象的系统开发过程中,每个阶段要建造不同的模型2、需求分析阶段建造的模型用来捕获系统需求分析3、设计阶段的模型是分析模型的扩充,为实现阶段作指导性和技术性的解决方案4、实现阶段的模型是真正的源代码及编译后的组件5、发布阶段是描述系统物理上的架构18.软件工程的原则是什么软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则;五、应用题20分1.某厂对部分职工重新分配工作的政策是:年龄有20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄有20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度者当技术员;年龄有40岁以上者,中学文化程度当材料员,大学文化程度当技术员;请用结构化语言,判定树或判定表描述上述问题的加工逻辑;职工重新分配工作的政策可描述为:若年龄在20岁以下则初中文化程度脱产学习高中文化程度当电工若年龄在20-40岁之间则中学文化程度男性当钳工女性当车工大学文化程度都当技术员若年龄在40岁以上者则中学文化当材料员大学文化当技术员技术员√√材料员√初中脱产学习年龄<20 高中电工男钳工中学女车工工作分配规则年龄20-40高中技术员年龄>40 中学村料员高中技术员2.假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李;当行李重量超过30kg 时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半;用判定表表示每种条件组合相对应的计算行李费的算法;用判定树表示计算行李费的算法用判定树表示计算行李费的算法3.以自己开发软件可以是C、C++、VC++、VF、甚至是汇编、等其他语言的一个自选项目为背景,应用软件工程方法进行策划,要求必须给出项目描述,主要的软件工程过程的描述以及各阶段的主要内容。
软件工程复习题
软件工程课程复习题一、单选题1、软件生存周期模型有多种,下列选项中,(C)不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型2、检查软件产品是否符合需求定义的过程称为(D)。
A.集成测试B.确认测试C.验证测试D.验收测试3、黑盒测试是从(C )观点出发的测试,白盒测试是从(A )观点出发的测试。
A.开发人员B.管理人员C.用户4、可行性研究要进行一次(D)需求分析。
A.深入的B.详尽的C.彻底的D.简化的、压缩了的5、回归测试是( A )中最常用的方法。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护6、与选择编程语言无关的因素是( C ) 。
A.软件开发的方法B.软件执行的环境C.程序设计风格 D. 软件开发人员的知识7、面向对象程序设计将数据与( A )放在一起,作为一个相互依存、不可分割的整体来处理。
A.对数据的操作B.信息C.数据隐藏D.数据抽象8、软件生存周期的( D )工作和软件可维护性有密切的关系。
A.编码阶段B.设计阶段C.测试阶段 D. 每个阶段9、好的软件结构应该是( C ) 。
A.高耦合,高内聚B.高耦合,低内聚C.低耦合,高内聚 D. 低耦合,低内聚10、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是(A)A.探索型模型 B.演化型模型 C.实验型模型 D.提交型模型11、软件结构图的形态特征能反映程序重用率的是(C)A.深度 B.宽度C.扇入 D.扇出12、需求分析最终结果是产生(B)A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告13、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( C )。
A.总体B.细节C.抽象D.分解14.可行性研究要进行一次需求分析。
答案为:DA.深入的 B.详尽的 C.彻底的 D.简化的、压缩了的2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作 B 。
软件工程复习题
软件工程复习题1.软件生命周期中所花费用最多的阶段是( D )。
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.结构化程序设计主要强调的是( D )。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性7.软件测试的目的是( B )。
A.为了表明程序没有错误B.为了说明程序能正确地执行C.为了发现程序中的错误D.为了评价程序的质量8.针对软件需求分析所进行的软件测试是指()。
A.集成测试B.确认测试C.黑盒子测试D.白盒子测试9.块间的信息可以作“控制信息”用,也可以作为()使用。
A.控制流B.数据结构C.控制结构D.数据10.在对数据流的分析中,主要是找到中心变换,这是从()导出结构图的关键。
A.数据结构B.实体关系C.数据流图D.E-R图11.Putnam成本估算模型是一个( D )模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量12.软件调试技术包括(B)。
A.边界值分析B.演绎法C.循环覆盖D.集成测试13.瀑布模型的存在问题是( B )。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求14.程序的三种基本控制结构是( B )。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移15.在详细设计阶段,经常采用的工具有( A )。
A.PAD B.SAC.SC D.DFD16.需求分析中开发人员要从用户那里了解()。
软件工程复习题
盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员
用白盒测试方法对构件进行测试,这是常用的测试方法。
7、什么叫风险分析?技能风险与技术风险有何区别?
答:这里的风险分析是指软件立项过程中对产品开发、销售等可能出
现的风险进行分析。分析方法是将一个大风险化解为多个小风险,然后
再一个个克服小风险。
2、请说明“三层结构”与“三个模型”之间的关系以及“三层结 构”的优点。
答:三个模型从根本上满足了B/A/S三层结构的需求:B层(又称
浏览层)对应功能模型,A层(又称业务逻辑层)对应业务模型,S层 (又称数据库服务器层)对应数据模型。这真是一种奇妙的、天衣无缝 的巧合! 三层结构优点:① 三层之间的低耦合,互不干扰,哪一层出了问题就 去找哪一层解决。同时,由于同一层内的各个类之间,也是低耦合,所 以不会出现Bug现象。 ② 三层结构减少了客户机的工作量,提高了网络系统的运行效率。 ③ 三层结构有利于系统的维护和升级,各个层的维护,互不影响。
A.数据流程图案 B.数据字典 C.判定表 D.需求规 格说明书 19、数据字典是软件需求分析阶段的最重要工具之一,其最 基本的功能是( )。
A.数据库设计 B.数据通信 C.数据定义 D.数据维护 20、提高测试的有效性非常重要,成功的测试是指( )。 A.证明了被测试程序正确无误 B.说明了被测试程序符合 相应的要求 C.发现了至今为止尚未发现的错误 D.未发现被测试程序的错 误
软件运行的最低配置或者最低资源需求;另一方面,可以正常提供软件 需要的资源,但是通过不断加重软件要处理的任务,来测试软件在正常 配置下具有的能力指标; (8)易用性测试:易用性测试的目的很明确,即简单易用,但是标准 不容易确定; (9)其他测试:如边界值测试、兼容性测试、回归测试、Alpha测试和 Beta测试等。
软件工程复习题及答案
选择题1.在结构化设计SD方法中全面指导模块划分的最重要的原则是( D )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.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于A.集成测试B.恢复测试C.验收测试D.单元测试8.采用Gantt图表示软件项目进度安排,下列说法中正确的是( D )A.能够反映多个任务之间的复杂关系B.能够直观表示任务之间相互依赖制约关系C.能够表示哪些任务是关键任务D.能够表示子任务之间的并行和串行关系9.程序的三种基本控制结构是( B )A.过程、子过程和分过程B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.软件生存周期中时间最长的是( D )阶段A.总体设计B.需求分析C.软件测试D.软件维护11.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,所以( C )的编制是很重要的。
A.需求说明B.概要设计C.软件文档D.测试计划12.软件部件的内部实现和外部可访问性的分离,是指软件的( C )。
A.继承性B.共享性C.封装性D.抽象性13.单元测试是发现编码错误,集成测试时发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( C )错误。
A.接口错误B.编码错误C.性能、质量不合要求D.功能测试14.软件工程管理对软件项目的开发管理,即对整个软件( B )的一切活动的管理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习
一、填空题
1、软件是一种产品,它与物质产品有很大区别。
2、可行性研究的目的是用的代价,在尽可能的时间内,确定该项目是否能够。
3、软件测试的步骤主要包括、、、
和。
4、两个模块之间的耦合方式中,耦合的耦合度最高,耦合的耦合度最低。
5、测试用例应有和预期的两部分组成。
6、一个模块拥有的直属下级模块的个数称为,一个模块的直接上级模块的个数称为。
7、软件工程包括三个要素、和。
8、结构化分析是面向___________进行需求分析的方法。
9、在软件的详细设计中,根据控制流程从上到下,从左到右展开的
设计工具是。
10、软件生存周期中时间最长、花费的精力和费用最多的一个阶段是____ ___阶段。
答案:1、逻辑产品2、最小;短;开发3、单元测试;集成测试;确认测试;系统测试4、数据耦合;内容耦合5、输入数据;输出数据6、扇出;扇入7、方法、工具、过程
8、数据流9、PAD图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. 块说明书
B. 软件规格说明书
C. 项目开发计划
D. 合同文档
7、好的软件结构应该是( )。
A. 高耦合、高内聚
B.低耦合、高内聚
C. 高耦合、低内聚
D. 低耦合、低内聚
8、DFD中的每个加工至少有( )。
A. 一个输入流或一个输出流
B. 一个输入流和一个输出流
C. 一个输入流
D. 一个输出流
9、快速原型模型的主要特点之一是( )。
A. 开发完毕才见到产品
B. 及早提供全部完整的软件产品
C. 开发完毕后才见到工作软件
D.及早提供工作软件
10、成功的测试是指( )。
A. 运行测试实例后未发现错误项
B. 发现程序的错误
C. 证明程序正确
D. 改正程序的错误
答案:C D C D B B B B D B
三、判断题
1、N—S图是一种符合结构化程序设计原则的图形描述工具。
()
1、分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。
( )
3、如果通过软件测试没有发现错误,则说明软件是正确的。
( )
4、只要对软件进行严格的技术评审,都能发现软件所有的错误。
()
5、软件开发的主要任务是写程序。
( )
6、模块内的高内聚往往意味着模块间的松耦合。
( )
7、模块的个数越多,开发的成本越低。
( )
8、SA法是面向数据流,建立在数据封闭原则上的需求分析方法。
( )
9、快速原型模型可以有效地适应用户需求的动态变化。
( )
10、模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
( )
答案:√××××√×√√√
四、简答题(共4题,每题5分,共20分)
1、什么是数据字典?数据字典与数据流图有什么关系?
答:数据字典的定义关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合,是数据流图的补充工具,数据字典与数据流图应相辅相成、互相配合,它们共同构成了系统的逻辑模型,缺一不可。
2、衡量模块独立性的两个标准是什么?各表示什么含义?
答:内聚和耦合
内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。
耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。
3、软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?
答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。
该阶段涉及编码和详细设计文档。
集成测试是为了检查与设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。
确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。
系统测试是把已确认的软件与其他系统元素(如硬件、其他支持软件、数据、人工等)结合在一起进行测试。
以确定软件是否可以支付使用。
4、什么是软件维护?软件维护包括哪几种类型,哪种维护所占比重最大,哪种维护所占比重最小?
答:软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
软件维护包括改正性维护、适应性维护、完善性维护和预防性维护。
其中完善性维护所占比重最大,预防性维护所占比重最小。
第五题、设计题
1、自学考试报名过程中有个“记录报名单”的加工。
该加工主要是根据报名表(姓名、性别、
身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。
请绘制该加工的DFD图,并写出数据词典中的数据流条目。
答:数据流图如下:
2、程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。
(1)按等价分类法设计测试用例(要求列出设计过程)
(2)按边缘值分析法设计测试用例。
答:1)合理等价类
选修1门
选修2门
选修3门
不合理等价类
没选课
选3门以上
测试用例
选修=2
选修=0
选修>3
2) 边缘值法
0,1,3,4
3、对下列子程序进行测试:
void example(float y,float z,float x)
{
if (y>1 && z==0)
x:=x/y;
if (y=2 || x=l)
x:=x+l;
}
该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
答题要求:
(1)画出流程图。
(2)用白盒法设计测试用例,写出用条件组合覆盖设计测试用例、预期结果以及路径。
答:(1)程序流程图
(2)用白盒法中条件组合覆盖设计测试用例:(不唯一,只要符合条件组合覆盖即可)
①y=2, z=0, x=4;
②y=2, z=1, x=1;
③y=1, z=0, x=2;
④y=1, z=1, x=1.
4、比较下列两段语句,从编码风格的角度分析哪一段好些,并说明好在哪些方面。
程序段一:
if a>b
then
if x>y
then
b=y;
else
a=x;
end
else
a=b;
end
程序段二:
/ position_x is the position x of object; position_y is the position y of object; / if a>b then
a=b;
else
if position_x>position_y then
b=position_y;
else
a=position_x;
end
end
答:第二段程序优于第一段。
注释起到提示的作用,利于程序阅读者对程序段全貌的理解
缩进格式清晰的显示程序中逻辑判断的结构。
变量命名方式表明变量的含义。