软件工程复习
- 格式:docx
- 大小:226.72 KB
- 文档页数:7
《软件工程》综合复习资料第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。
A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。
A、SAB、SDC、SCD、CASE3、以下判断正确的是()。
A、所谓软件开发就是编写程序。
B、利用软件工程的思想,已成功的解决了软件危机。
C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。
D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。
4、_____是以提高软件质量为目的的技术活动。
A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。
A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。
B.CPU,存储器,控制器,I/O接口及设备。
C.计算机硬件系统和软件系统。
D.计算机及其应用系统。
8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。
B.软件设计对人的智商要求很高,也要求很高的资金投入。
C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。
D.软件很难理解,硬件也很复杂。
9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。
B.问题定义,可行性研究,需求分析。
C.可行性研究,需求分析,问题定义。
D.以上顺序都不对。
10、下列选项中()是软件开发中存在不正确的观念、方法。
A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。
2、一般软件应该有三部分组成:()、()和()。
3、按软件的功能可将软件分成()、()和()等三类。
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程复习题库带答案完整版一、选择题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)是从软件的功能可行性角度考虑的。
软件工程1、软件的概念:软件是计算机系统中与硬件相依存的另一部分,包括程序、数据、以及相关的文档。
2、软件的组成:程序、数据、文档。
3、软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
4、软件危机消除的办法:P51、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。
2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法3、应该开发和使用更好的软件工具。
总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施。
5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
6、软件生命周期的过程以及任务。
(1)问题定义(2)可行性研究(3)需求分析(4)总体设计(5)详细设计(6)编码和单元测试(7)综合测试(8)软件维护****************************以上为第一章******************第二章●数据流图有四种成分:源点或终点,处理,数据存储,数据流●画DFD(数据流图)的指导原则:1.符号要使用标准符号2.恰当的命名3.流入流出的数据流的条数一致4.名字要保值一致(平衡)5.遵守加工编号规则6.处理必须既有输入流又有输出流(注意:源点和终点可以相同也可以不同)●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于数据的描述信息。
●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储(4)、处理*********************** *******以上为第二章************************************第三章●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。
软件工程复习题(带答案)软件工程复习题一、单选题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、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对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)系统。
软件工程复习大纲考试主要章节:第一章软件与软件工程第二章软件项目管理第三章计算机系统工程第3.2节第五章面向数据流的分析方法第八章软件设计基础第十四章软件测试其他:上课讲义题型一、选择题(单选或多选)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、需求分析的主要目的是(BC)。
A) 系统开发的具体方案B) 进一步确定用户的需求C) 解决系统是“做什么的问题”D) 解决系统是“如何做的问题”7、SA法的主要描述手段有(B)。
A) 系统流程图和模块图B) DFD图、数据词典、加工说明C) 软件结构图、加工说明D) 功能结构图、加工说明8、画分层DFD图的基本原则有(ACD)。
A) 数据守恒原则B) 分解的可靠性原则C) 子、父图平衡的原则D) 数据流封闭的原则9、在E-R模型中,包含以下基本成分(C)。
A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性D) 实体、属性、联系10、画DFD图的主要目的是(A D)。
A) 作为需求分析阶段用户与开发者之间交流信息的工具B) 对系统的数据结构进行描述C) 对目标系统的层次结构进行描述D) 作为分析和设计的工具11、数据字典是数据流图中所有元素的定义的集合,一般由以下四类条目组成(C)。
《软件工程》复习资料一、选择题1.软件工程的研究内容具有层次化结构,最底层是质量保证层,中问层是(C),最主.层是工具层。
A过程层 B.方法层C.过程层和方法层 D.系统层2.可行性研究的四大要素是(D)。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平巳经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性3.针对需求不确定的软件开发,比较好的模型是(A)。
A.快速原型化模型B.瀑布模型c.软件成熟度模型。
.系统化模型4.下面的哪个选项不是软件工程的宗旨?(D)A.开发满足用户需求的软件B.研究算法C.及时交付软件D.生产无故障软件5.瀑布模型的主要特点是(A)。
A.将开发过程严格地划分为一系列有序活动B.将开发过程分解为阶段c.提供了有效的管理模式D.缺乏灵活性6.软件结构图中没有(D)元素。
A.模块B.调用参数C.返回结果D.判断7.结构化设计方法划分模块的原则是(C)A.模块扇出小于5B.模块扇人小于5c.低搞合,高内聚 D.模块深度小于78.配置视图体现了系统的实现环境,反映系统的(B)。
A.逻辑架构B.物理架构C组成结构 D.体系结构9.角色可以有四种类型:系统的使用者,硬件设备,外部系统和(D)。
A.数据库B.接口C.对象D.时间10.功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由(C)实现。
A.场景描述B.活动图和1场景描述C.用例图和场景描述D.交互图和场景描述11.在分析模型内表示协调,}I顶序、事务处理以及控制其他对象的类是(A)。
A.控制类B.组件类C.主函数D.事务类12.而信息隐藏的核心内容是(C)。
A.人把数据都放在公共的区域B.数据不能被其他模块访问C.一个模块的内部信息不允许其他模块直接访问D.把信息加密,只能让有密钥的模块访问13.面向过程的方法最关心的是过程,而过程实施的对象是作为过程(A)传递的。
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。
采用工程的槪念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。
2)用分阶段的生命周期汁划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设讣技术、结果应能淸楚的审査、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。
2.是什么导致了软件工程?主要是软件危机的出现导致了软件工程3.通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。
21.软件危机的现象:1)经费超出预算,项目一再拖延。
02 )不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。
3圄)开发工具落后,手工方式,开发效率低。
2 2 .软件工程的三要素1)"过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质疑开发出软件。
2)"方法”为软件开发提供"如何做”的技术。
它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。
3) "工具"可为过程和方法提供自动的或半自动的支持。
这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为汁算机辅助软件工程,即CASE。
C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
23.简述软件工程的目标,过程和原则佢)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。
软件工程的目标:降低成本,及时交付髙质量的软件产品。
m实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约朿,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。
第一章1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。
1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。
2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。
3)不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。
4)软件的开发和运行必须依赖于特定的计算机系统环境。
5)具有可复用性。
3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。
1)经费超出预算,项目一再拖延。
2)不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。
4)开发工具落后,手工方式,开发效率低。
所有导致软件危机的原因,都与软件本身的产品特点相关。
1)软件是一个复杂的逻辑产品。
如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
2)软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
4)软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。
5,请简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。
7,请简述软件工程的目标、过程和原则。
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
《软件工程》总复习题一、判断题判断以下叙述的正误。
正确的叙述请在答题纸上的相应题号后打“√”,错误的打“×”。
1、在主存储器能容纳得下的前提下,应使模块尽可能大,以减少模块的个数。
×2、编码时应尽可能使用全局变量。
×3、为了提高程序的易读性,尽可能使用高级语言编写程序。
√4、规划模块间的单向调用关系叫做模块的层次结构。
√5、只要模块之间的接口关系不变,各模块的内部实现细节的修改不会影响别的模块。
√6、为了加快软件维护作业的进度,尽可能增加维护人员的数目。
×7、尽可能用GOTO语句×8、程序的注释并不是可有可无的。
√9、尽可能在软件生产过程中保证各阶段文档的正确性。
√10、在进行总体设计时应加强模块间的联系。
×11、程序的模块划分得越大越好。
×12、模块越小,模块化的优点越明显,一般说来,模块的大小都在10行以下。
×14.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
√15.在可行性研究中最难决断和最关键的问题是经济可行性。
×16.系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
×17.在软件开发中,采用原型系统(样机)策略的主要困难是时间问题。
×18.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
√19.模块越多,开发成本越小。
×20.耦合是指一个模块内各个元素彼此结合的紧密程度。
×21.内聚是指一个软件结构内各个模块之间互连程度的度量。
×22.模块分解时应注意不要降低模块的独立性。
√23.总体设计阶段完成的主要文档是总体设计说明书。
√24.详细设计是在总体设计之后进行的,它利用总体设计的结果,对系统中的每个模块给出足够的过程性描述。
√25.程序设计语言中应绝对禁止使用GOTO语句。
什么是软件?什么叫软件工程?它的目标是什么?软件:程序与文档。
定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。
定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。
软件工程目标:用较少的投资获得高质量的软件。
什么是软件危机?主要表现?软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。
表现在:⑴对软件开发成本和进度的估计常常很不准确。
⑵用户易对“已完成的”软件系统产生不满。
⑶软件质量不可靠。
⑷软件常常是不可维护的。
⑸软件通常没有适当的文档资料。
⑹软件成本越来越高。
⑺软件开发生产率提高速度慢,跟不上发展。
可行性研究的目的是什么?用最小的代价在尽可能短的时间内确定问题是否能够解决。
若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)数据流图的基本要点是什么?描绘“做什么”,而不考虑“怎样做”。
软件生成期分几个阶段?几阶段的主要工作是?生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。
4、总体设计:应如何解决这个问题。
5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。
7、综合测试:通过各种类型的测试使软件达到预定的要求。
8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。
何为功能模块?设计模块?功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。
设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。
HIPO PSL PAD SADT 中文意思SADT:结构分析设计方法。
PSL:问题说明。
PSA:问题说明分析器。
HIPO:H图加IPO,即层次图加输入/处理/输出图。
一.概述1.什么是软件?什么是软件工程?--软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件具有不可见性,是抽象的、形式化和逻辑化的。
--软件会逐渐退化而不会磨损的原因是不断地变更使组件接口之间引起错误。
--软件工程要素:过程、方法、工具。
--软件工程的基本目标是开发高质量的软件。
2.现代软件工程师关注的问题开发过程中遇到的各种困扰。
3.软件生存周期模型--软件生存期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分若干阶段,即可行性研究、需求分析、概要设计、详细设计、编码、测试、使用与维护。
--软件生存周期模型包括瀑布模型、原型模型、增量模型、螺旋模型。
4.软件开发的各种模型(瀑布、快速原型等)的特点--瀑布模型:1)阶段间具有顺序性和依赖性。
2)推迟实现的观点。
3)质量保证的观点。
瀑布模型适用于需求被清晰定义的情况。
--快速原型模型:适用于客户需求难以清楚定义的情况。
--增量模型:适用于一种需要快速构造可运行程序的方法。
--螺旋模型:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。
螺旋模型只适合于大规模的软件项目。
--喷泉模型:喷泉模型是典型的面向对象生命周期模型。
二.需求分析1.需求分析的目的--需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
--需求分析中开发人员从用户那里了解软件做什么。
--可行性研究要进行一次“简化的、压缩的”需求分析。
2.主要任务--获取并理解用户的需求是软件工程师所面对的最困难的任务之一--发现和分析问题,并分析问题的原因/结果关系;与用户进行各种方式的交流,并使用调查研究方法收集信息;按照三个成分观察问题的不同侧面,即数据、过程、接口;将获取的需求文档化,形式有用例、决策表、需求表等。
3.功能性需求和非功能性需求--功能性需求:系统需要提供的服务或功能:如图书检索;系统对特定输入的处理方式:如对非法输入的提示;系统在特定环境下的行为:如长时间无操作时的屏保。
第一章概论1.软件工程的主要内容:为了有限的资金、资源和时间条件下开发满足客户要求的高质量软件,就需要研究与软件开发和管理相关的模型、方法、技术、过程、工具和环境等。
2.计算机软件:指的是计算机系统中的程序及其文档,3.程序:指的是计算任务的处理对象和处理规则的描述.4.计算任务:任何以计算机为处理工具的任务都是计算任务。
5.处理对象:是数据(如数字、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及相关的含义)。
6.处理规则:一般指处理的动作和步骤.7.文档:是为了便于了解程序所需的阐述性资料.8.软件工程:是应用计算机科学,数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法、以提高质量、降低成本为目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
9.杨芙清院士指出软件工程的框架可概括为:目标、过程和原则。
10.软件工程目标:只生产具有正确性、可用性和开销合宜的产品。
正确性:指软件产品达到预期功能的程度。
可用性:只软件基本结构、实现及文档为用户可用的程度。
开销合宜:只软件开发,运行的整个开销满足用户要求的程度。
11.软件工程原则包括围绕工程设计、工程支持和工程管理所提出的4条基本原则:(1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑(4)重视软件工程的管理。
12.软件的生存周期:软件孕育、诞生、成长、衰亡的生存过程。
软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。
软件生存周期大致可以分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
13.软件过程:是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。
过程是活动的集合,活动是任务的集合。
14.软件过程有3层含义:(1)、个体含义:指软件产品或系统存在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等。
一、写出下列缩写英文的中文涵义[30T]CFD DFD OOASA SD SP CMM CMMI UMLCASE XPC/S B/SA TAM PDL SQA MVC CRC MBSCBSD GUISQLMTTR MTTF MTBF FTR PERT SCM CPMRMMP【参考答案】计算流体动力学(CFD)Computational Fluid Dynamics数据流图(DFD)Data FlowDiagram面向对象分析方法(OOA)Object—Oriented Analysis结构化分析方法(SA) Structured Analysis结构化设计(SD)Structureddevise结构化编程(SP)Structured Programming成熟度模型(CMM)CapabilityMaturity Model能力成熟度模型集成(CMMI) Capability Maturity Model Integration统一建模语言(UML)Unified Modeling Language计算机辅助软件工程(CASE) Computer Aided Software Engineering极限编程(XP)ExtremeProgramming客户机/服务器网(C/S) Client/Server浏览器和服务器结构(B/S)Browser/Server构架权衡分析方法(ATAM)Architecture Tradeoff AnalysisMethod页描述语言(PDL)Program DesignLanguage软件质量保证(SQA)SoftwareQualityAssurance模型—视图-控制器(MVC)ModelView Controller循环冗余码校验(CRC)Cyclical RedundancyCheck相互广播系统(MBS)Mutual BroadcastingSystem基于构件的软件开发(CBSD)Component—Based SoftwareDevelopment图形用户界面(GUI)Graphical User Interface结构化查询语言(SQL)Structured Query Language平均恢复前时间(MTTR)Mean TimeTo Restoration平均失效前时间(MTTF)MeanTimeTo Failure平均无故障时间(MTBF)Mean Time Between Failure正式技术复审(FTR)Formal Technical Review计划评审技术(PERT) Program EvaluationAnd Review Technique软件配置管理(SCM)Software Configuration Management关键路径方法(CPM)Critical Path Method二、概念[34][1]在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。
软件工程师复习资料整理清单一、引言在软件工程师的职业道路上,复习是非常重要的一环。
复习资料的整理不仅有利于知识的巩固,还可以提高复习效率。
本文将为大家提供一份软件工程师复习资料整理清单,帮助大家系统地准备复习内容。
二、基础知识1. 编程语言:包括但不限于Java、C++、Python、JavaScript等常用编程语言的语法、特性、面向对象思想等方面的知识。
2. 数据结构与算法:复习线性表、树、图等常用数据结构,并了解各种排序算法、查找算法、常见算法思想等。
3. 计算机网络:了解计算机网络的基本概念、协议、网络层次结构以及常见的网络攻击与防范措施等。
三、软件开发1. 软件设计原理:掌握面向对象设计原则、设计模式等,了解软件设计的思路和方法。
2. 软件测试与调试:了解常用的测试方法和工具,并掌握如何进行软件调试和故障排查等技巧。
3. 软件质量与维护:了解软件质量管理的基本概念和方法,了解软件维护的流程和技巧。
四、数据库1. 关系型数据库:了解关系型数据库的基本概念、SQL语言以及常用的关系型数据库管理系统(如MySQL、Oracle等)的使用。
2. 非关系型数据库:了解非关系型数据库的特点、分类和应用场景,并了解一些常见的非关系型数据库(如MongoDB、Redis等)。
3. 数据库设计与优化:了解数据库的设计原则、范式理论以及常见的数据库优化策略等。
五、项目管理与团队协作1. 软件开发流程:了解软件开发过程中的需求分析、设计、编码、测试等各个环节,并掌握常用的软件开发模型(如瀑布模型、敏捷开发等)。
2. 版本控制工具:学习使用常见的版本控制工具(如Git、SVN 等),了解分支管理、代码合并等基本操作。
3. 团队协作与沟通:了解团队协作的重要性,学习有效的沟通技巧和团队合作方法。
六、实践项目1. 实践项目经验:通过参与实际开发项目,积累项目经验,掌握项目管理的流程和技巧。
2. 开源项目参与:参与开源项目的开发,学习优秀的代码风格和设计思想,并与其他开发者进行交流与合作。
一、填空题(在下划线上填写正确的答案,每题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种基本控制结构是顺序结构、选择结构、循环结构。
软件工程复习选择和判断第一章1、软件定义:软件=程序+数据+文档程序:按事先设计的功能和性能需求执行的指令序列数据:是程序能正常操纵信息的数据结构文档:与程序开发、维护和使用有关的图文材料2、软件危机定义:计算机软件的开发和维护过程所遇到的一系列严重问题。
表现:对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势3、软件工程方法学的目的是使软件生产规范化和工程化。
4、瀑布模型存在的问题:阶段间具有顺序性和依赖性。
各阶段的工作具有线性性,即前一阶段工作完成后才能开展后一阶段的工作。
前一阶段的输出文档就是后一阶段的输入文档(是文档驱动的),开发过程一般不可逆,否则代价太大。
推迟编码。
在编码之前先进行系统分析和系统设计。
瀑布模型很难适应需求改变、模糊不定的软件系统的开发,在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。
这种线性的开发过程,缺乏灵活性,不适应实际的开发过程。
5、螺旋模型的特点:螺旋模型(Spiral Model)是结合了瀑布模型和快速原型模型的迭代开发模型,强调了其他模型均忽略了的风险分析(风险识别、风险分析、风险控制),特别适合于大型复杂的系统。
第二章1、若设年利率为i,现已存入P元,则n年后可得到的钱数为:F=P*(1+i)n,F就是P元钱在n年后的价值。
反之,若n年后能收入F元,那么这些钱现在的价值为:P=F/(1+i)n。
2、网络图(可能会考)计算最早时间和最迟时间,选出关键路线最早时间:起始工作的最早开始时间,如无规定,定为0;其他工作的最早开始时间按“顺箭头相加,箭头相碰取最大值”计算。
最迟时间:终止事件的最早时间和最迟时间相等;其他工作的最迟完成时间按“逆箭头相减,箭尾相碰取最小值”计算。
关键事件:若两个事件的最早时间和最迟时间相等,则称其为关键事件。
关键路线:由关键事件连接的各个活动所组成的路线称其为关键路线。
关键路线的线路时间代表整个网络计划的计划总工期。
第三章需求分析的文档是软件需求规格说明书第四章1、总体设计的概念和原理总体设计的过程:设想供选择的方案,选取合理的方案,推荐最佳方案,功能分解,设计软件结构,设计数据库,制定测试计划,书写文档,审查和复审。
原理:模块化(Modularization)模块化是软件工程时代大型软件设计的基本策略,是软件设计的一条基本原理。
模块是程序中表现为数据说明、可执行语句等程序对象的集合,是单独命名和编址的元素。
模块化是把软件系统划分成可独立命名和访问的模块,这些模块集成起来完成整体功能需求的过程。
采用模块化原理来设计软件:可以使软件结构清晰易于设计,易于阅读、理解使软件易于测试有助于提高软件可靠性提高软件的可修改性有助于开发工作的组织管理抽象(Abstraction)——思维工具定义:抽象是人们把现实世界中的事物、状态、过程的相似性(共性)集中和概括起来,而暂时忽略它们之间的差异。
应用:一个复杂系统可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。
软件工程过程的每一步都是对软件解法的抽象层次的一次精化。
抽象与模块化的关系:软件结构顶层的模块,控制系统的主要功能并且影响全局;在软件结构底层的模块,完成对数据的一个具体处理,用自顶向下由抽象到具体的方式分配控制,简化软件的设计和实现,提高软件的可理解性和可测试性,并且使软件更容易维护。
信息隐藏与局部化——指导思想定义:划分模块时,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
即隐藏每个模块所包含的私有信息。
所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
局部化有助于实现信息隐藏。
应用:在模块中,隐藏的是模块的实现细节;模块之间的交互是为了完成系统功能而必须交换的信息。
优点:易修改。
模块独立(Module Independence)定义:是指每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
优点:容易设计和开发。
功能分割相对独立,可以简化接口,并且便于分工合作开发。
独立的模块比较容易测试和维护。
度量标准(Yourdon & Constantine,1978):耦合(Coupling):衡量不同模块彼此间互相依赖(连接)的紧密程度。
内聚(Cohesion) :衡量一个模块内部各个元素彼此结合的紧密程度。
耦合是模块之间的联系,是对一个软件结构内不同模块之间互连程度的度量。
模块间的耦合程度直接影响着系统的可理解性、可测试性、可靠性和可维护性。
耦合性按独立性由强到弱包括7种:内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合、非直接耦合内聚是模块内部各成分之间的联系(块内联系),是对一个模块内部各成分彼此结合的紧密程度的度量。
内聚性由低到高包括7种:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
事实上,对模块的内聚和耦合的级别没有必要去精确界定,重要的是能够辨认出低内聚、高耦合的模块,有能力通过修改设计提高模块的内聚程度和降低模块间耦合程度,做到高内聚、低耦合,从而提高模块的独立性。
2、变换流和事务流的特点变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。
数据进入系统,以顺序的方式经过输入->变换->输出事务流:基本系统模型意味着变换流,因此,原则上所有信息流都可以归结为变换流。
但是,当数据流图的数据是“以事务为中心的”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。
这类数据流应该划分为一类特殊的数据流,称为事务流。
数据进入系统,到达事务中心,根据数据计算结果从若干动作路径中选择一条路径离开事务中心第五章详细设计的基本任务:1、为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
2、对模块内的数据结构进行设计。
对需求分析、概要设计确定的概念性的数据结构进行确切的定义。
3、对数据库进行物理设计。
确定数据库的物理结构(数据库存储记录格式、存储记录的安排、存储方法等,这些取决于使用何种数据库系统)。
4、其它设计。
如代码设计、输入/输出格式设计、人机对话设计等。
5、模块测试用例设计。
6、编写详细设计说明书。
7、评审。
第六章编码原则:源程序文档化:1)符号名的命名,名字应精练且有意义。
2)程序的注释3)层次结构数据说明方法:原则:1)数据说明的次序应规范化,使得数据属性容易查找,并且有利于测试、排错和维护;2)当多个变量使用一个说明语句时,变量名表应按字母排序;3)对于复杂的数据结构,应当使用注释说明程序实现时数据结构的固有特点。
语句结构:语句构造应力求简单、直接,易于理解,不要为片面追求效率而使程序复杂化。
(1)一行内只写一条语句。
(2)程序的编写首先考虑清晰性,不要刻意追求技巧性。
(3)合理利用空行、空格隔离符体现语句结构。
(4)嵌套层次不要过深。
输入和输出由于输入输出信息和用户紧密相关,输入和输出的方法和格式应当尽量方便用户的使用,避免因设计不当给用户带来麻烦,使用户因输入和输出的风格不好而拒绝接受整个系统。
设计时需注意以下几点:(1)输入简单,并有简单明了的提示;(2)具有完备的出错检查和出错恢复功能,不能出现让用户摸不着头脑的问题,一切的问题都应由软件解决;(3)输入/输出格式的保持一致性。
第七章1、软件测试的目的:软件测试是为了发现错误而运行程序的过程。
一个好的测试用例能够发现至今尚未发现的错误。
一个成功的测试是发现了至今尚未发现的错误的测试。
2、根据程序流程图画出数据流程图,计算环形复杂度,写出基本路径环形复杂度=关键节点数+1或边数-节点数+2独立路径:是包括一组以前没有处理的语句或条件的一条路径。
从程序图来看,一条独立路径是至少包含一条在其他独立路径中未有过的边的路径。
3、白盒测试和黑盒测试的特点白盒测试:对程序的执行细节进行测试,通过设计测试数据,验证程序模块的每个路径的执行情况,执行路径包括所有的逻辑判定、循环的边界条件和界限内条件等,当程序的逻辑相对简单时,基本能够保证验证所有路径,但是,当遇到多重选择或多层循环嵌套时,不同的路径组合后数目是非常庞大的,无法实现完全的验证。
(课本)白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部结构为基础,设计测试用例。
(ppt)黑盒测试:“黑盒”测的是功能,它检查的内容只包括程序功能是否能按照规格说明书的内容正常使用,程序是否接收输入数据产生正确的输出信息4、边界值分析法的特点边界值分析也是一种黑盒测试法,是对等价类划分法的补充。
实践经验表明,程序往往在处理边界情况时发生错误。
边界情况指输入等价类、输出等价类边界上的情况。
检查边界情况的测试用例是比较高效的,可以查出更多的错误。
选取刚好等于、刚好大于、刚好小于边界的值作为测试用例5、集成测试的种类(1)一次性组装方式一次性组装方式的基本思想是首先分别测试每个模块,然后将所有模块全部组装起来进行测试,形成最终的软件系统。
缺点:①一次将所有模块组装后的程序会很庞大,各模块之间相互影响,情况十分复杂②在测试过程中会同时出现很多错误,对这些错误的定位难度增大,修改的过程中可能又会引发其它错误或激发其它潜在的错误③测试工作十分的漫长。
2)增殖式组装方式增殖式组装方式是采用循序渐进的方式,每次增加一个模块到已测试好的模块中1)自顶向下增殖方式具体的结合策略如下:①将低层模块组合成实现某个子功能的簇;②写一个驱动模块,用来提供该功能簇的执行入口和输入/输出界面;③对该功能簇进行测试;④在低层继续寻找模块,将该功能簇扩大,重新修改驱动程序,以适应对当前功能簇的测试。
⑤不断重复第3、4步,完成测试。
2)自底向上增殖方式具体的结合策略如下:①将低层模块组合成实现某个子功能的簇;②写一个驱动模块,用来提供该功能簇的执行入口和输入/输出界面;③对该功能簇进行测试;④在低层继续寻找模块,将该功能簇扩大,重新修改驱动程序,以适应对当前功能簇的测试。
⑤不断重复第3、4步,完成测试。
(3)混合增殖式测试自顶向下增殖方式和自底向上增殖方式各有优缺点,在实际的测试过程中,可根据具体情况将两种方法结合起来使用。
1)改进的自顶向下的增殖测试:它的基本思想是对涉及输入/输出模块和复杂算法的模块先采用自底向上的测试方法,将这些模块组装成为功能相对完整且相对独立的子系统,然后由主模块开始自顶向下进行增殖测试。