软件工程复习题
- 格式:doc
- 大小:386.50 KB
- 文档页数:30
一、填空题1.程序设计的三种基本结构是、、(顺序、条件、循环),它们的共同点是一个入口和一个出口。
2.程序的三种基本控制结构的共同特点是。
(单入口单出口)3.用结构化语言来描述加工逻辑的外层结构时,基本结构有________(顺序结构、选择结构、循环结构)4.软件的实现阶段主要包括(编码)阶段和(测试)阶段。
5.计算机程序及其说明程序的各种文档称为。
(软件)6.软件是、和(程序、数据、相关文档)的完整集合。
7.软件工程管理的具体内容包括对开发人员、组织机构、用户和______(文档资料)等方面的管理。
8.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以(软件文档)的编制是很重要的。
9.软件工程方法学有3大要素、工具、。
(方法、过程)10.需求分析是确定系统(必须做什么),其最终成果是(需求分析规格说明书)。
11.在需求分析中,开发人员要从用户那里解决的之重要的问题是。
(软件应当做什么)12.软件开发活动的顺序是_________。
(问题定义、可行性研究、需求分析、设计、编码和测试)13.软件需求分析的任务包括_________。
(问题分析、信息域分析、确定程序结构)14.最早提出软件系统维护问题的阶段是_________。
(需求分析)15.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做______(软件危机)。
16.“软件危机”是指________ 。
(软件开发和维护中出现的一系列问题)17.快速原型模型是用户和设计人员之间的一种交互过程,适用于(需求不确定性高)的系统。
18.快速原型是利用原型辅助软件开发的一种新思想,它是在研究(需求阶段)的方法和技术中产生的。
19.瀑布模型是以文档为驱动,适用于(软件需求明确)的系统。
20.瀑布模型本质上是一种________ 模型。
(线性顺序)21._______(喷泉模型)是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的软件开发方法。
软件工程复习题一一、选择题,请从四个可选项中选择正确答案。
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. 软件工程的三要素是()。
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.螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。
( )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、被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为。
复习题一. 选择题软件工程&软件过程需求工程结构化分析与设计面向对象分析与设计UML软件测试1.验证(Verification)与确认(V alidation)是贯穿软件生命周期的规范化评估方法,其中验证的目的是(),确认的目的是()。
A. 检查当前阶段的产品(或制品)是否保持上一阶段的产品(或制品)需求B. 检查当前阶段的产品(或制品)是否存在错误C. 检查最终产品是否满足客户需求D. 检查最终产品是否存在错误A C2.使用独立测试团队的最好理由是()。
A. 软件开发人员不需要做任何测试B. 测试团队将更彻底地测试软件C. 测试人员在测试开始之前不参与项目D. 开发人员与测试人员之间的争论会减少B3.下面的()说法是正确的。
A. 恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测试B. 安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击C. 压力测试是检测在极限环境中使用系统时施加在用户上的压力D. 性能测试只对实时系统或嵌入式系统是重要的B4.类的行为应该基于()进行测试。
A. 数据流图B. 用例图C. 状态图D. 对象图B5.()好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。
A. 真B. 假A6.()好的测试用例应能证明软件是正确的。
A. 真B. 假B7.()等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
A. 真B. 假A8.下面的()说法是正确的。
(B,D,E)A. 恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测试。
B. 安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击。
C. 压力测试是检测在极限环境中使用系统时施加在用户上的压力。
B D ED. 功能测试是根据软件需求规格说明和测试需求列表,验证产品的功能实现是否符合需求规格。
E. 安装测试是保证应用程序能够被成功地安装B9.软件测试的目的是()。
A. 评价软件的质量B. 发现软件的错误C. 找出软件中的所有错误D. 证明软件是正确的D10.白盒法主要用于()。
A. 功能测试B. 系统测试C. 测试D. 单元测试A11.确认测试也称为()A. 有效性测试B. 无效性测试C. 静态测试D. 动态测试B12.黑盒测试技术不包括()A. 等价类划分B. 路径覆盖C. 边界值分析D. 错误推测A13.以下四种逻辑覆盖中,发现错误能力最弱的是( )A. 语句覆盖B. 条件覆盖C. 判定覆盖D. 条件组合覆盖B 14.对某个学生成绩系统进行测试,输入值是学生的成绩,范围为0~100,根据黑盒测试的等价类划分技术,下列划分正确的是( )A. 1个合理等价类,1个不合理等价类B. 1个合理等价类,2个不合理等价类C. 2个合理等价类,1个不合理等价类D. 2个合理等价类,2个不合理等价类A 15.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试()A. 单元测试B. 系统测试C. 集成测试D. 确认测试D16.下列属于静态测试方法的是()A. 黑盒法B. 路径覆盖C. 白盒法D. 人工检测D 17.在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为()A. 确认测试B. 系统测试C. 渐增式测试D. 非渐增式测试A18.软件调试技术包括()A. 回溯法调试B. 循环覆盖调试C. 边界值分析调试D. 集成测试调试A19.检查软件产品是否符合需求定义的过程称为()A. 确认测试B. 集成测试C. 系统测试D. 单元测试D 20.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试()A. 结构合理性B. 软件外部功能C. 程序正确性D. 程序内部逻辑B 21.以下哪种测试的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合()A. 集成测试B. 确认测试C. 单元测试D. 系统测试C22.软件测试中设计测试实例(test case)主要由输入数据和( )两部分组成。
A. 测试规则B. 测试计划C. 预期输出结果D. 以往测试记录分析B23.成功的测试是指( )。
A. 运行测试实例后未发现错误项B. 发现程序的错误C. 证明程序正确D. 改正程序的错误二. 名词解释软件计算机软件是与计算机系统操作有关的程序,规程、规则以及任何与之有关的文档和数据。
软件工程软件工程师用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
软件工程的原则:抽象,信息隐藏,模块化,局部化,一致性,完整性,可验证性。
软件危机在计算机软件的开饭和维护过程中遇到的一系列严重问题,包括两个方面,如何开发软件和如何维护软件。
软件过程软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:过程中所执行的活动及其顺序关系;每一个活动的内容和步骤;团队人员的工作和职责。
软件生存周期软件产品从形成概念开始,经过开发,使用和维护,直到最后退役的全过程称为软件生存周期。
计算机系统工程计算机系统工程是指与构造基于计算机系统有关的过程,方法和技术,它是一种问题求解活动。
可行性分析在接受项目之前,根据客户可能提供的时间和资源条件对项目风险进行分析评估,包括经济可行性、技术可行性、法律可行性和开发方案的选择。
需求分析对应用问题及环境的理解和分析,为问题涉及的信息、功能和系统行为建立模型。
系统结构图深度表示软件结构从顶层模块到最底层模块的层数系统结构图宽度软件结构所控制的总跨度分布模块扇入指一个模块的直接上属模块的个数模块扇出指一个模块直接控制的下属模块的个数耦合是对软件结构中模块间的关联程度的一种度量内聚是信息隐藏和局部化概念的自然扩展,标志一个模块内部各成分彼此结合的紧密程度UMLUnified Modeling Language,统一建模语言,UML是为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
软件测试在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
是为了发现软件错误而执行程序的过程。
黑盒测试已知产品应该具有的功能,测试功能是否能正常使用。
白盒测试已知产品的内部结构,测试内部动作是否按规格说明正常进行单元测试单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。
其目的在于发现各模块内部可能存在的各种差错集成测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。
系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
确认测试确认测试又称有效性测试。
任务是验证软件的功能和性能及其它特性是否与用户的要求一致验证测试验证是以用户需求为依据,试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性;即证明软件对用户是有效的,一般需求用户参与测试过程。
软件维护根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改。
修改时应充分利用源程序,修改后要填写程序改登记表,并写明新旧程序不同之处。
纠错性维护指在系统开发阶段已发生而系统测试阶段尚未发现的错误,定制计划,进行修改,进行复查、控制。
改善性维护扩充和改善性能,功能进行的修改。
预防性维护为了改进应用软件的可靠性和可维护性,为了适应未来软硬件环境变化,应主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。
适应性维护软件适应信息技术变化和管理需求变化而进行的修改。
三. 简答题1.软件生命周期主要包括哪些阶段?请简要说明各阶段的主要任务。
软件的定义,开发,使用,维护和退役。
(1)定义:可行性研究:确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实施计划。
需求分析:分析.、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
(2)开发设计(概要设计、详细设计):设计人员依据软件需求规格说明文档,确定软件的体系结构,进而确定每个模块的实现算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。
实现:源程序编码,把软件设计转换成计算机可以接受的程序代码。
编写用户手册、操作手册和单元测试计划。
测试:在设计测试用例的基础上,测试软件的各个组成模块。
然后,将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明。
(3)运行维护(使用、维护、退役):将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
2.软件生命周期的模型有哪些,各自的适用范围。
瀑布模型:适合于系统需求明确的小系统。
原型模型:适合于需求不确定的大系统。
螺旋模型:适合于面向规格说明、面向过程和面向对象的软件开发,也适用于几种开发方法的组合3.软件工程包括哪些基本要素?请简要说明这些要素及其作用。
软件工程包括过程、方法和工具三个要素。
软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生. 里程碑的建立. 质量的保证和变更的管理,从而将人员. 技术. 组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法. 良好的设计实践以及质量保证标准等;软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。
现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE。
4.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。
将分析类划分成这三种类型的好处在于:所产生的类更小更专门化;这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。
5.什么是软件测试,软件测试的目的是什么,对象包含哪些?定义:测试是程序的执行过程,目的在于发现错误。
测试目的:以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
测试对象:需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序。
6.类之间的关系能够准确的判别和应用7.等价类法的使用8.边界值法的使用9.变换分析10.事务分析11.会看状态图,注意历史状态的应用12.用例图的正确画法,给定简单需求,能够画出用例图13.UML中有哪些是静态图,哪些是动态图?类图,对象图,用例图,部署图,构件图,包图为静态图状态图,顺序图,活动图,协作图为动态图14. 在螺旋模型中,风险分析的作用是什么?在螺旋模型中,软件开发是在风险等级的指导下进行的。