2016武汉大学软件工程重点
软件工程重点总结(5篇)
软件工程重点总结(5篇)第一篇:软件工程重点总结软件的定义:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序、数据及其相关文档的完整集合。
在结构化程序设计时代,程序的最小单位是向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。
软件的特性:形态特性、智能特性、开发特特性、维护特性、废弃特性、应用特性。
软件的分类:系统软件、应用软件、支撑软软件危机的表现:软件开发周期长、成本高、软件危机发生的原因:(1)缺乏软件开发的工作的计划很难制定。
(2)软件人员与用户的交流存在障碍。
(3)软件开发过程不规范,缺少方法论和规范的指导,开发人员各自为战,缺少整体的规划和配合,不重视文字资料工作,软件难以维护。
(4)随着软件规模的增大,其复杂性往往会呈指数级升高。
(5)缺少有效的软件测评手段,提高用户的软件质量差,在运行中暴露出大量的问题,轻者影响系统的正常使用,重者发生事故,甚至造成生命财产的重大损失。
首次提出“软件工程”的概念的时间是1968年。
按工程化的原则和方法组织软件开发工作是软件工程的定义:软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。
软件工程的目标是运用先进的软件开发技术衡量软件的质量的六个特性:功能性、可靠软件生存期的三个时期:软件定义、软件开定义时期的主要任务是解决“做什么”的问地满足用户的需要。
开发过程中的典型文档包括:软件需求规格计说明书、用户手册。
各个阶段所要完成的基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试、软件运行和维护。
典型的软件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型等(喷泉模型)。
瀑布模型的特点:1)阶段间具有顺序性和依赖性。
软件工程复习提纲(20160615)
软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。
2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。
4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。
3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。
3.简述对软件工作产品规模进行量化估计的方法。
4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。
6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。
《软件工程》-经典考试例题复习题,重点知识点(含答案)
1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
软件工程基础知识点总结
1 是计算机系统中与硬件相互依存的另一部份,是包括程序、数据以及相关文档的完整集合。
1) 程序是软件开辟人员根据用户需求开辟的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2) 数据是使程序能够正常操作信息的数据结构.3)文档是与程序开辟、维护和使用有关的图文资料。
国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。
21)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部份;2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开辟、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开辟涉及诸多的社会因素3按照功能可以分为:应用软件、系统软件、支撑软件(或者工具软件) 1)应用软件是为解决特定领域的应用而开辟的软件.2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
3)支撑软件是介于系统软件和应用软件之间,协助用户开辟软件的工具软件。
4问题。
软件危机主要体现在以下几个方面:① 软件开辟的实际成本和进度估计不许确② 开辟出来的软件往往不能使用户满意③ 软件产品的质量不高,存在漏洞,需要时常打补丁④ 大量已有的软件难以维护⑤ 软件缺少有关的文档资料⑥ 开辟和维护成本不断提高,直接威胁计算机应用的扩大⑦ 软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长5 .软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开辟与维护软件的学科.1)研究软件工程的主要目的就是在规定的时间、规定的开辟费用内开辟出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。
2)软件工程的三个要素:方法、工具和过程。
①方法:完成软件工程项目的技术手段;②工具:支持软件的开辟、管理、文档生成;③过程:支持软件开辟的各个环节的控制、管理。
软件工程重点
第一章软件工程概述1软件的概念软件由两部分组成:计算机程序及其相关文档8 软件三层含义:一、个体含义,软件是指计算机系统中的某个程序及其文档,二、整体含义,软件指在特定计算机系统中所有个体含义的软件的总体,三,科学含义,软件指在开发、使用和维护前述含义下的软件按所涉及的理论、原则、方法、技术所构成的学科,在这种含义下,软件也可称为软件科学。
2特点:1)软件是一种逻辑实体,而不是具体的物理实体2)软件是开发出来的,而不是发明出来的3)软件也许被废弃,但不会被用坏4)以往的软件大多是定制的,而不是装配的5)软件的开发和运营经常受到计算机系统的限制,对计算机系统有着不同限度的依赖。
3软件的分类:1)系统软件:操作系统,编译软件,设备驱动2)应用软件:3)支撑软件:工具软件,需求分析工具,设计工具,测试工具,配置管理工具。
4)可复用软件:标准函数库,数据结构。
4软件工程的定义:指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念,原理,技术和方法进行软件的开发和维护,把通过时间考验而证明是对的的管理技术和当前可以得到的最佳技术方法结合起来,以较少的代价获得高质量的软件并维护它。
5软件生存周期 P121)问题定义与可行性研究:到底要解决什么问题,能否解决问题。
是否值得做。
2)需求分析:目的系统应当做什么3)软件设计:目的系统如何做。
4)程序编码与单元测试:编写对的的,可维护的程序代码5)综合测试6)软件维护6瀑布模型 p141)需求分析与定义:通过会商建立起系统功能,限制,目的,然后具体的定义他们,编制系统规格说明。
2)系统与软件设计:系统设计将需求分派给系统硬件和软件,软件设计标记和描述基本的系统构件以及他们之间的关系。
3)实现和单元测试:实现是将软件设计转化为一组程序或程序单元;单元测试检查每个程序单元是否满足设计规定。
4)集成和系统测试5)运营和维护7 Ratinal统一开发过程:用例驱动的,以体系结构为核心的,迭代的增量过程。
软件工程导论复习重点总结很全(第六版)
软件工程导论复习重点总结很全(第六版)第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什么是计算机软件计算机软件指计算机系统中的程序及其文档3软件的特点(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算(2)软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大(3)软件的使用没有硬件那样的机械磨损和老化问题4软件的分类(1)系统软件(如操作系统、编译程序等)、(2)支持软件(如数据库管理系统、网络软件、软件开发环境等)、(3)应用软件(如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等)6软件工程定义软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程7生存周期软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
这个过程即为计算机软件的生存周期软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护12能力成熟度模型CMM (了解一下)初始级、可重复级、已泄义级、已管理级、优化级18瀑布模型(重》系统工程、需求分析与规约、设计与规约、编码与单元测试、集成测试系统测试、运行与维护第二章系统工程41系统工程的任务(1)识别用户的要求,确泄待开发软件的总体要求和范围,(2)系统建模和模拟(3)进行成本估算,做出进度安排(4)进行可行性分析,即从经济、技术、法律等方而分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。
(5)生成系统规格说明书42可行性分析(1)经济可行性(成本、效益、货币的时间价值、投资回收期、纯收入)(2)技术可行性(风险分析、资源分析、技术分析)(3)法律可行性第三章需求工程48软件需求指用户对目标软件系统在功能、行为、性能、设计约朿等方而的期望。
包括:功能需求、性能需求、用户或人的需求、环境需求、界而需求、文档需求、数据需求、资源使用需求、安全保密要求、可靠性需求、软件成本消耗与开发进度需求、其他非功能需求50需求获取方法与策略(重)建立顺畅的通信途径、访谈与调查、观察用户操作流程、组成联合小组、用况51 图3.253创建用况模型的主要步骤(1)确左谁会直接使用该系统,即参与者(Actor)(2)选取其中一个参与者(3)泄义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况(4)对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程(5)描述该用况的基本过程54需求分析原则(重)1.必须能够表示和理解问题的信息域2.必须能够定义软件将完成的功能3.必须能够表示软件的行为(作为外部事件的结果)4.必须划分描述数据、功能和行为的模型,从而可以分层次地揭示细巧5.分析过程应该从要素信息移向细节信息第四章结构化分析与设汁62第三段第一句概念(重)软件设汁是把软件需求变换成软件表示的过程,主要包含两个阶段:软件体系结构设计阶段和部件级设计阶段64软件设计的过程(重)制左规范、体系结构和接口设讣、数据/类设计、部件级(过程)设计、编写设计文档、设计评审65设计的原则抽象与逐步求精、模块化、信息隐藏、模块独立(高内聚低耦介)68内聚耦合内聚是一个模块内部各个元素彼此结合的紧密程度的度量耦合是模块之间的相对独立性(互相连接的紧密程度)的度量76图形表示法(重)程序流程图、N-S图、PAD81PDL的例子(重重重重重,有编程大题,可用中文写)PROCEDURE spellcheck IS 查找错拼的单词BEGINsplit document into single words把整个文档分离成单词lood up words in dictionary在字典中查这些单词display words which are not in dictionary显示字典中查不到的单词create a new dictionary 造一新字典END spellcheck外语法(关键字)、内语法(自然语言)第五章结构化分析与设计(重点章)86抽象和分解抽象:从作为整体的软件系统开始(第一层),每一抽象层次上只关注于系统的输入输岀分解:将系统不断分解为子系统、模块……随着分解层次的增加,抽象的级别越来越低,也越接近问题的解(算法和数据结构)自顶向下逐层分解充分体现了分解与抽象的原则87 图5.2实体•关系图数据流图数据字典状态转换图粗制规幼88数据流图(DFD)(重重)数摇流(data flow),由一组固定成分的数据组成,代表数摇的流动方向C 加工(process):描述了綸入数据溢到输出数据溢的变换,即将输入数据流加工成输出数据流—文件(file):使用文件、数据库等保存某些数据结果供以—后使用I I源或宿(source or sink)*由Tfl固定成分的数拯组成,1~'代表数摇的滾动方向91数据流图画法1画出系统的输入和输岀(顶层图)2画岀系统内部(0层图)3画出加工内部(l~n层图)4重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)97分层DFD的一致性和完整性一致性:父图与子图平衡、数据守恒.局部文件完整性:1每一个加工至少有一个输入数据流和一个输出数据流2在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件3分层DFD中的每个数据流和文件都必须命名(除了流入或流出文件的数据), 并保持与数据字典一致4分层DFD中的每个基本加工都应该有一个加工规约115结构图名词解释:SA结构化分析SD结构化设计SP结构化程序设计结构图的基本成分有:模块、调用和数拯模块是指具有一左功能的可以用模块爼调用的一组程序语句,如函数、子程序等它们是组成程序的基本单元一个模块具有其外部特征和内部特征在SD中,我们只关注模块的外部特征,而忽略其内部特征调用(call):用从一个模块指向另一个模块的箭头来表示,其含义是前者调用了后者为了方便,有时常用直线替代箭头,此时,表示位于上方的模块调用位于下方的模块数据(data):模块调用时需传递的参数可通过在调用箭头旁附加一个小箭头和数据名来表示深度:程序结构图中控制的层数,例如图中所示的结构图的深度是5宽度:程序结构图中同一层次上模块总数的最大值,例如图中所示的结构图的宽度为7 扇出(fan out):该模块直接调用的模块数目。
《软件工程》要掌握的重点
《软件工程》要掌握的重点是:1、结构化分析(SA方法)的基本概念和基本方法,特别是系统流程图、数据流图、数据字典、ER模型的掌握和应用。
2、结构化设计(SD方法)的基本概念和基本方法,包括总体设计与详细设计的各种工具和方法,如软件结构图、NS图、PAD图、判定表、判定树、PDL语言的掌握和应用。
3、软件测试的基本概念和方法,包括黑盒测试(等价类划分、错误推测、边界值分析)和白盒测试(逻辑覆盖、基本路径)各种方法的掌握和应用。
4、软件维护的基本概念。
5、面向对象方法的基本概念。
第一章1.软件的定义2.什么是软件危机?典型表现及产生原因3.软件工程定义。
软件工程的基本原理4.软件工程方法学3要素5.什么是软件的生命周期?各阶段的基本任务是什么?6.瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型各自的特点第二章1.可行性研究的目的与任务2.系统流程图的基本思想3.数据流图的基本思想;数据流图的四个要素4.数据流图的画法5.什么是数据字典。
数据字典的编写方法6。
投资回收期、纯收入第三章1.需求分析的任务2.获取需求的方法。
简易的应用规格说明技术。
3.需求分析过程建立的三种模型4.从哪些方面验证软件需求的正确性。
第五章1.总体设计的任务2.设计原理3.什么是内聚、耦合,与模块独立性的关系。
内聚类型、耦合类型4.结构图的深度、宽度、扇出和扇入5.模块的作用域与控制域的关系6.面向数据流的设计方法基本思想。
变换分析过程第六章1.人机界面设计应考虑的问题。
2.系统响应时间的两个属性3.程序流程图、盒图、PAD图、判定表和判定树的画法4.流图的画法、环形复杂度的计算第七章1。
软件测试的目标、测试原则、测试步骤2。
什么是白盒法?什么是黑盒法?3.单元测试的方法、测试重点,需要编写的辅助程序4.渐增式测试与非渐增式测试的比较5.确认测试的目标、依据、测试方法6.用逻辑覆盖法、基本路径测试法、黑盒测试法设计测试用例第八章1.软件维护的定义、维护的类型2、结构化维护与非结构化维护3.决定软件可维护性的因素。
软件工程复习资料(武汉大学)
《软件工程》期末复习第一章软件工程概述一、一、重点掌握的内容:软件和软件工程的基本概念二、二、一般掌握内容:软件生存周期及软件开发的各种模型。
三、三、主要知识点:软件:软件定义由以下三部分组成:(1)(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)(2)使程序能够正确运行的数据结构;(3)(3)描述程序研制过程、方法所用的文挡。
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
⑤软件的开发至今尚未完全摆脱手工的开发方式。
⑥软件的开发费用越来越高,成本相当昂贵。
软件的分类:软件依据不同的标准,可划分为不同的分类。
软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。
软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。
软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
软件生存期也可以分为三个大的阶段:计划阶段。
开发阶段和维护阶段。
软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。
软件工程复习重点
第1章1. 重要1.软件的定义2.软件危机的6个表现3.软件工程定义4.软件工程3要素5.软件开发方法2. 次重要1.软件的特点2.软件的分类3.产生软件危机的原因4.如何解决软件危机5.软件工程目标6.软件工程原则7.软件工程原理第2章1. 重要1.什么是软件生产周期2.软件生命周期的阶段划分3.什么是软件过程模型4.瀑布模型5.原型模型2. 次重要1.螺旋模型2.喷泉模型3.增量模型4.构件组装模型5.RUP模型第3章1. 重要1.可行性研究的目的2.可行性研究的内容3.效益估算技术的几种计算公式4.绘制系统流程图2. 次重要1.问题定义的目的2.可行性研究的步骤3.成本估计技术有哪些4.软件计划任务书包含的内容第4章1. 重要1.需求的定义(IEEE)2.需求的分类(FURPS+模型)3.需求工程的定义4.需求工程的内容5.两种常见的建模与分析方法6.需求规格说明书的作用7.需求规格说明书的内容2. 次重要1.造成需求问题的根本原因2.需求的层次3.需求工程的分类4.需求过程的两种模型5.需求工程的方法6.需求开发过程7.需求获取技术第5章1. 重要1.结构化系统软件开发方法主要包括的3个重要部分2.结构化分析的核心思想3.Data Flow Diagram的作用4.数据流图的主要图形结构5.绘制分层数据流图6.绘制数据流图的注意事项7.什么是数据字典8.数据字典的定义符号和编写格式9.绘制判定表2. 次重要1.结构化分析过程2.结构化分析常用的描述工具3.数据流的方向的要求4.数据流的表示的约定5.数据流与加工之间的关系6.数据字典中的五类条目7.判定树第6章1. 重要1.面向对象的软件开发过程2.统一建模语言UML的作用3.UML的构成2. 次重要1.面向对象的基本概念2.几种典型的面向对象方法第7章1. 重要1.用例驱动的面向对象分析一般过程2.绘制用例图3.三种分析类4.建立对象模型5.绘制顺序图2. 次重要3.第8章1. 重要1.软件设计的目标2.软件设计的任务3.结构化软件设计内容4.什么是模块和模块化5.什么是模块的独立性6.衡量模块独立性的两个准则2. 次重要1.结构化设计过程2.内聚的种类3.耦合的种类4.几种典型的软件体系结构风格第9章1. 重要1.概要设计的关键点是什么2.什么是变换型数据流3.什么是事务型数据流4.系统结构图的主要成分5.由数据流图推导系统结构图6.详细设计阶段的主要工作7.绘制盒图2. 次重要1.结构化设计过程2.优化系统结构图的启发式规则3.什么是PAD 图4.什么是PDL5.什么是HIPO 图第10章1. 重要1.面向对象设计原则2.单一职责原则含义3.开放−封闭原则含义4.Liskov 替换原则含义5.接口隔离原则含义6.依赖倒置原则含义7.分析类与设计类之间的映射关系8.关系数据库与面向对象概念的对应关系9.对持久类的存储设计10.对关系的存储设计——关联关系的映射11.对关系的存储设计——继承关系的映射12.对关系的存储设计——组合聚合关系的映射2. 次重要1.3方面的具体工作2.设计糟糕的系统的症状3.典型的三层结构设计4.软件系统体系结构模型的作用5.硬件系统体系结构模型的作用6.设计模式的作用和研究意义7.抽象工厂(Abstract Factory)模式8.适配器(Adapter)模式9.策略(Strategy)模式10.外观(Facade pattern)模式第11章1. 重要1.用户界面设计原则2.系统响应时间的两个属性2. 次重要1.交互模型和框架2.人类工程学3.用户界面风格第12章1. 重要1.2. 次重要1.第13章1. 重要1.软件缺陷的定义2.软件测试的定义(IEEE)3.黑盒测试含义4.白盒测试含义5.等价类或等价划分的含义6.划分等价类关键原则7.根据等价类设计测试用例8.代码覆盖的含义9.语句覆盖的要求10.分支覆盖的要求11.条件覆盖的要求12.判定/条件覆盖的要求13.条件组合覆盖的要求14.路径覆盖的要求15.集成测试的策略16.面向对象测试包含哪些测试17.软件调试含义2. 次重要1.软件测试的基本认识2.软件测试基本原则3.静态测试含义4.动态测试含义5.失效性测试含义6.通过性测试含义7.单元测试含义8.集成测试含义9.确认测试含义10.Alpha测试含义11.Beta测试含义12.系统测试含义13.面向对象测试策略14.调试方法第14章1. 重要1.软件维护定义2.软件维护的分类3.软件可维护性定义4.软件可维护性的7种度量5.再工程定义2. 次重要1.软件维护的实施过程2.软件维护的副作用3.逆向工程定义第15章1. 重要1.软件项目管理的主要职能2.软件项目组织分类3.软件开发成本估计方法4.成本估算模型5.软件配置管理的定义6.2. 次重要1.甘特图法2.箭线图3.顺序图第16章1. 重要1.2. 次重要1.XP 技术含义2.净室软件工程方法含义3.AOP 编程含义4.软件复用技术含义。
《软件工程》重点考试知识点,简答
第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观察它的物理形态,只能通过观察他的是实际运行情况来了解他的功能特性和质量等;人们在分析设计开发测试过程以及软件开发项目的管理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更新的问题;开发运行依赖一定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件;按服务对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件的开发与维护过程中出现一系列严重问题的现象。
主要表现:●开发人员开发的软件产品不能完全满足用户的需求;●软件产品的质量难以得到保障;●开发周期开发经费和维护费用很难被准确估计从而给项目的管理带来很多麻烦;●随着技术的更新,用户的扩大,已有的软件产品不能灵活地适应环境的改变;●软件文档不完备并且存在文档内容与软件产品不符的情况。
原因:①软件开发是一项复杂的工程,需要用科学的工程化思想来组织和指导软件开发的各个阶段②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业认识不够充分缺乏经验⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和管理学的原理,运用工程学理论方法和技术,研究和指导软件开发和演化的一门交叉学科。
软件工程的目标:●使软件开发的成本控制在预计的合理范围内;●使软件产品的各项功能和性能能够满足用户需求;●提高软件产品的可靠性;●使生产出来的软件产品易于移植维护升级和使用;●使软件产品的开发周期能够控制在预计的合理时间范围内。
软件工程学科内容:●软件工程原理过程方法模型管理度量环境应用。
软件工程的基本原则:●将软件的生命周期划分为多个阶段,对各个阶段实施严格的项目管理;●坚持阶段评审制度已确保软件产品的质量;●实施严格的产品控制以适应软件规格的变更;●采用现代程序设计技术;开发出来的产品应该能够清楚地被审查;●合理地安排软件开发小组人员并且开发小组的人员要少而精;●不断改进软件工程的实践。
软件工程重点总结
软件工程重点总结说明:▲部分为必考内容,了解内容多读几遍有印象即可Chapter 1:软件工程学概述1.软件的定义答案:1.运行时,能提供所要求功能和性能的指令(Instruction)或计算机程序(Program)集合。
2.程序能满意地处理信息的数据逻辑(data structure)。
3.程序能满意地按照预定的商业逻辑进行处理。
4.描述程序功能需求以及程序如何操作和使用所要求的文档(Documents).2.软件危机的定义、产生原因及解决途径答案:软件危机真正的含义:在计算机软件开发和维护过程中所遇到的一系列严重问题。
概括地讲:软件危机包括两个方面①怎样满足对软件日益增长的需求(即如何开发软件)②如何维护数量不断膨胀的已有软件。
产生软件危机的原因:一方面与软件本身的特点有关;一方面与软件开发与维护的方法不正确有关。
解决软件危机的途径:·一个软件必须由一个完整的配置组成,事实上,软件是程序、数据及相关文档的完整集合。
·软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
·应该推广使用实践中总结出来的成功技术和方法,并研究探索更好更有效的技术和方法。
·应该开发和使用更好的软件工具。
3.软件工程的定义及基本原理、方法学答案:定义:软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
基本原理:1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术 5. 结果应能清楚地审查6.开发小组人员应少而精7.承认不断改进软件工程实践的必要性软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。
2016软件工程重点
一、基础知识1、两种聚集关系:共享聚集、组合。
P1592、数据流图(DFD)数据流分类:事务型、变换型。
P423、软件测试四步骤:单元测试、集成测试、确认测试(验收测试)、系统测试。
P124单元测试:代码审查、测试软件。
集成测试:合并策略:一种方法是先分别测试每个模块,再将所有的模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式方法;另一种方法是将下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完后将下一个应测试的模块结合起来进行测试,这种每次增加一个模块的方法称为渐增式方法。
系统测试:1)功能测试;2)压力测试;3)性能测试;4)恢复性测试;5)安全性测试。
确认测试:α测试与β测试。
4、UML(统一建模语言)类图关系:关联关系、泛化(继承)关系。
P1585、测试方法:黑盒测试、白盒测试。
P110黑盒测试:等价划分、边界值分析、错误推测。
P121-P1246、过程设计(详细设计)的工具:程序流程图(PFD)、盒图(N-S图)、PAD图(问题分析图)、判定表、判定树、过程设计语言(伪码)。
P92-P977、白盒测试:逻辑覆盖(分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖P112)、控制结构测试(分为:基本路径测试、条件测试、数据流测试、循环测试P115)。
黑盒测试与白盒测试区别:对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性,黑盒测试又称为功能测试;与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
软件工程重点总结
图 6.10 A 由 B 出现 N 次(N≥0)组成
图 6.11 改进的 Jackson 图
三、程序复杂度的定量度量
三、软件再工程过程:这意味着作为该范型的组成部分的每个活动都可能被重复,而且
对于任意一个特定的循环来说,过程可以在完成任意一个活动之后终止。
第十三章 软件项目管理(楼主意吐血,请各位看官自行看 ppt)
一、估算软件规模 二、工作量估算 三、进度计划
1、Gantt 图:Gantt(甘特)图是历史悠久、应用广泛的制定进度计划的工具
图 5.4 带编号的层次图(H 图) 2、软件结构图 答:
结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框 内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。
图 5.5 结构图的例子——产生最佳解的一般结构
图 5.6 判定为真时调用 A,为假时调用 B
第二章 可行性研究
一、系统流程图
答: 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形
式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。
二、数据流程图
答: 数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所
经受的变换。
三、数据字典
答: 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集
图 13.1 旧木板房刷漆工程的 Gantt 图 2、工程网络:工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解 情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关 系。因此,工程网络是系统分析和系统设计的强有力的工具。
《软件工程》复习提纲
《软件工程》复习提纲第一篇:《软件工程》复习提纲《软件工程》课程要点λ每章教学课件中的“本章小结”列出了需要掌握的内容λ教学过程中的例题和习题也是课程重点一、软件工程与软件过程概述1.概念:(1)软件的概念(组成成分、作用);答:计算机软件是程序、数据和相关文档的集合;用于实现计算机系统所需要的逻辑方法和控制过程(2)软件危机的含义、表现、产生原因(客观、主观)答:计算机软件开发和维护过程中遇到的一系列严重问题。
软件危机的表现:①对软件开发成本和进度的估计很不准确②已完成的软件不能满足用户需求③软件质量差④软件不可维护⑤软件没有开发文档⑥软件成本在计算机系统总成本中所占的比例逐年上升⑦软件生产率跟不上硬件的发展和计算机迅速普及的趋势与软件的特点有关(客观原因):①软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难②软件在使用期间不存在机械磨损和老化问题,一旦发现错误,通常意味着修改原来的设计,因此软件难维护③软件规模庞大,程序复杂性增加,需多人分工合作(不能保证每个人完成的工作合在一起构成一个高质量的大型软件系统)与软件开发和维护的方法不正确有关(主观原因):① 开发无计划② 忽视软件需求分析的重要性③ 轻视软件维护④ 无过硬评测手段⑤ 缺乏有力的开发方法和工具⑥ 不重视开发文档等软件配置(3)软件工程学科包括的内容(三要素)、解决的主要问题答:(1)软件工程定义:1)软件工程是指导计算机软件开发和维护的工程学科2)采用工程化的概念、原理、技术和方法来开发和维护软件3)将经过时间考验而证明正确的管理技术和开发技术结合起来,以较经济的手段开发出高质量的软件并有效维护它2)软件工程方法学的三要素:①方法:完成软件开发各项任务的技术方法1 ②工具:为方法的高效运用,而提供的自动或半自动的软件支撑环境③过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤(4)软件生命周期的含义、组成阶段及各阶段主要任务答:软件生命周期:一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。
武大软件工程课程第2章
Figure 3.1
Requirements Workflow
Determine the clients needs Requires understanding of application domain Business model
Development stops if not cost effective
2.3
快速原型模型
快速原型的本质是“快速”。开发人 员应该尽可能快地建造出原型系统,以加 速软件开发过程,节约软件开发成本。原 型的用途是获知用户的真正需求,一旦需 求确定了,原型将被抛弃。
2.4 增量模型
增量模型也称为渐增模型,如图2.4所 示。使用增量模型开发软件时,把软件产 品作为一系列的增量构件来设计、编码、 集成和测试。
Business Model (requirements workflow)
Many ways to achieve understanding More than one helpful Normally necessary to combat client’s lack of organizational awareness 通常需要与客户的缺乏系统认识交战 Interviews
Difficult; must be precise and technical (精确和技术的) Sometimes two end artifacts—one for dev, one for lient (两种描述:对开发人员和对用户)
Output is a specification that forms a contract(输出的规格说明是合同的一 部分)
2.2 瀑布模型
在20世纪80年代之前,瀑布模型一直 是唯一被广泛采用的生命周期模型,现在 它仍然是软件工程中应用得最广泛的过程 模型。图2.1所示为传统的瀑布模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ch11.文档分类:开发文档、维护文档、用户文档、管理文档作用:记录软件开发过程的标准描述,解决不可视性;通信和交流;管理和维护;用户服务文档是影响软件可维护性的决定性因素,所以维护期间文档比程序代码重要用户文档描述系统功能和使用方法,不关心具体如何实现系统文档描述系统设计、实现和测试等各方面的内容。
2.软件特点更依赖人;开发成本、进度难估计;正确性难保证;维护困难;不磨损不老化3.软件定义软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。
4.软件生产过程模型:瀑布模型优点:规范管理开发过程;文档驱动缺点:初期系统的需求难以完全确定;文档驱动;周期长特点:需求固定;周期长;文档驱动适用范围:需求固定,技术成熟原型模型、快速原型法针对:软件开发初期需求难以确定优点:用户参与;快速缺点:快速;对开发环境要求高适用范围:已有产品;简单而熟悉的领域;有快速原型开发工具;进行产品移植或升级螺旋模型降低风险优点:风险驱动;质量保证;利于维护缺点:对开发人员要求高;用户接受“演化”方法难适用范围:庞大、复杂、高风险的系统;内部开发的大规模软件项目增量模型特点:开放式(利于维护),对开发人员水平要求高优点:任务或功能模块驱动,可以分阶段提交产品缺点:条件比较苛刻(精心的设计)适用范围:需求可能发生变化,分阶段交付给用户;分析设计人员对应用领域不熟悉;中高等风险项目;用户可参与到整个软件开发过程中;使用面向对象或第四代编程语言;软件公司有较好的类库、构件库喷泉模型面向对象生命周期模型特点:迭代、无缝组合模型5.软件生产仍面临三大问题。
是哪三大问题造成问题的根本原因有哪些解决问题的方法三大问题:软件质量、成本与开发进度典型表现:软件开发成本和质量难以准确估计、用户常常不满意“已完成的软件”、软件质量不可靠、软件维护困难、软件缺乏文档、软件成本上升产生原因:软件本身的特点(缺乏可见性、规模庞大等)、软件开发和维护的方法不正确解决途径:正确认识(软件=程序+数据+文档)、工程化方法和技术、开发和使用好的工具软件CH21.可行性研究包括:经济可行性(成本效益分析)、技术可行性(风险、资源的有效性、技术方案)、操作可行性(用户组织内的管理制度、人员素质、操作方式)、法律及社会可行性主要步骤:复查系统规模和目标的描述;研究正在使用的系统的系统流程;导出新系统的高层逻辑模型,数据流图+数据字典;重新定义问题;导出解法;推荐方针;草拟开发计划2.数据流图用途建立新系统逻辑模型的工具;作为与用户与开发人员交流信息的工具;作为分析、设计乃至维护的依据3.数据字典组成名字、别名、描述、定义、位置4.痛苦曲线差的项目计划最终会付出进度拖延、质量低劣、不能满足期望的的代价。
制定项目计划的确是痛苦的,但会减少在项目后期的痛苦,不做计划则将痛苦留在了项目开始以后。
5.工作分解结构将整个项目划分为子元素的程序,逐层对项目进行分解。
作用:项目的认知、协同环境层次、控制层次。
6.项目进度安排成本和工作量估算代码行:(a+4m+b)/6 甘特图CH31.需求分析作用充分理解现实中的业务问题,作为软件设计的基础;为软件项目的成本、时间、风险估计提供准确的依据;减少开发工作量,避免将时间与资源浪费在设计与实现错误的需求上;通过提供需求文档有效的管理系统演化与变更;作为合同的一部分;为最终的验收测试提供标准和依据。
2.需求的分类业务需求(客户对系统高层次目标要求,项目的远景和范畴)、用户需求(用户角度描述系统功能需求与非功能需求,只涉及系统的外部行为)、系统需求(系统应该提供的功能和服务,涉及交互)3.系统性需求功能性需求(完整性、一致性、准确性);非功能性需求(可用性、可靠性、性能、可支持性)采用可度量的特性进行描述4.需求获取技术用户访谈、用户调查、现场调查、文档分析、原型、模型驱动的方法、头脑风暴5.结构化分析 SA核心思想:面向数据流的分解和抽象;模块化;自顶向下逐步求精 DFD(数据流图)、DD (数据字典,描述数据的具体格式)、STD(状态转换图)、E-R图数据模型:实体关系图(描述数据之间的关系)功能模型:数据流图(数据在功能模块之间的流动)行为模型:状态转换图(描述了数据的状态以及状态的转换)6.面对对象分析方法 OOACH4 总体设计1.总体设计必须将用户需求转化为对计算机系统的逻辑定义。
分为系统设计阶段(系统的具体实现方案)、结构设计阶段(软件结构、确定每个程序由哪些模块组成,以及模块之间的相互关系)2.软件质量评价标准有效可靠;结构清晰,具有层次性,无回路调用,模块独立性好(良结构、易测试、易维护、可移植;达到需求、界面友好、简单易学);文档齐全;重用性、开放性;尽量简单3.模块三个基本属性:功能,逻辑(内部怎么做),状态(使用时的环境和条件)特征:抽象 what抽出事物的本质特征和各类问题的共性,找出联系和相似性,加以概括和提取;处理复杂系统的方法是用层次的方法构造和分析它;分层理解问题,自顶向下层层细化。
信息隐藏数据隐藏,细节隐藏。
增加可理解性,修改副作用小,错误副作用小。
局部化把关系密切的模块物理地放的彼此靠近模块化将系统分成若干模块容易设计,使软件结构清晰,易于理解;使软件易于测试和调试,提高可靠性;提高可修改性;有助于软件开发工程的组织管理;可重用;易维护接口成本与块成本模块独立性耦合软件结构内不同模块之间互连程度的度量:零耦合;数据耦合;特征耦合;控制耦合;公共环境耦合;内容耦合(goto)内聚一个模块内各个元素彼此结合的紧密程度(比耦合重要):偶然内聚;逻辑内聚;时间内聚;过程内聚(与DFD有关);通信内聚;顺序内聚;功能内聚4.软件设计的启发规则改进软件结构,提高模块独立性;模块规模适中;深度、宽度、扇入、扇出适当梭形;作用域在控制域内;降低接口的复杂程度模块独立性强、可理解性好;单出单入避免内容耦合;模块功能可预测5.基于数据流结构化设计 SD利用映射把数据流图变换成软件结构层次图表示模块调用关系6.SA\SD方法的特点优点:自顶向下逐步精华;各模块可单独设计、编码、测试、修改缺点:纸上设计,长时间偏离软件实体;开发周期长;剥离了数据与功能之间的关系CH5 详细设计1.结构程序设计程序代码仅使用顺序、选择、循环这三种基本的控制结构进行连接,且每个代码块只有一个入口和出口,只在检测错误和退出循环使用非基本结构技术。
2.详细设计工具程序流程图优点能直观和清晰地描绘过程的控制流程;历史悠久,使用广泛,易学,普遍缺点不是逐步求精的工具,过早考虑控制流程;随意转移控制,容易造成非结构化的程序结构;不易表示数据结构。
盒图特点控制结构作用域明确;不能任意转移控制;易表示嵌套关系、模块的层次结构缺点:负责逻辑情况下难以布局。
PAD图优点结构化程序;结构清晰;表现程序逻辑,易读、易懂、易记;描绘数据结构;支持自顶向下逐步求精缺点不适合初学者,算法未考虑清楚时使用。
判定表多个逻辑条件优点简洁、无歧义缺点无法表示顺序、循环;不能作为通用设计工具。
判定树优点更直观,便于掌握和使用缺点不如判定表简洁,分枝次序决定简洁程度。
过程设计语言(PDL) 伪码优点可作注释;编辑简单;可以转换为代码缺点不如图直观;复杂条件不清晰简单3.面向数据结构的设计方法数据结构->程序处理过程Jackson图优点便于表示层次结构,结构的自顶向下分解;直观,可读性好;既能表示数据结构,也能表示程序结构缺点没有表示条件;不易直接把图翻译成程序;斜线不易打印Jackson (JSD)方法步骤画数据结构的Jackson图;找输入-输出数据结构的对应关系;以输出数据结构为基础,导出程序结构的的Jackson图(有关系的数据单元合画一个处理框、余下的数据单元各画一个);列出所有操作、条件;伪码表示程序优点结构清晰、易理解;不会过多依赖于设计者的经验;对于以数据为主,计算较简单的事务型处理系统,尤其是I/O数据结构之间相对应时容易导出;简化数据处理部分的设计缺点没有给予模块与独立性原则应有的重视,SD与JSD结合;未提供对复杂系统设计过程的支持;不适合大型实时系统,非数据处理系统的开发4.用户界面应具有的特性可使用性;灵活性;界面的复杂性与可靠性5.程序复杂程度度量McCabe 流图仅描绘控制流程Halstead 不同描述符的个数不同操作数的个数CH6 编码与测试1.程序语言的选择模块化机制;语言特点;开发工具;独立编译机制;标准化程度高2.无条件转移语句goto改变程序流向缺点破坏程序动态结构与静态结构的一致性;难阅读、难理解;易出错、难查错优点:灵活、使程序简单;提高执行效率只在出错处理和跳出循环时使用同一函数内用;从一个小功能的结尾跳到另一个小功能的开头;避免向两个方向跳3.测试的目标测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。
4.黑盒测试作用:功能是否正常使用、输入能否得到正确输出、保持外部信息的完整性;测试后期集成测试和确认测试A)等价划分:有效等价类和无效等价类;输出等价类可以滤掉同类数据提升效率测试用例:尽可能多覆盖尚未被覆盖的有效等价类;仅覆盖一个无效等价类(避免无效测试)优点:考虑了单个输入域的各类情况,避免了盲目或随机选取输入数据的不完整性和覆盖的不稳定性。
缺点:只考虑了单个输入域的情况,没有考虑输入的组合情况B)边界值分析:优点简单易用,非常有效缺点没有考虑输入条件之间的组合情况和相互制约关系。
C)错误推测法5.白盒测试关注软件内部逻辑结构;测试每条逻辑通路;检查断点状态;测试方案对程序逻辑的覆盖程度决定测试的完全性程度测试早期单元测试成本高对结构比较复杂的模块进行白盒测试A)逻辑覆盖技术:语句覆盖;条件覆盖;判定覆盖;判定-条件覆盖;条件组合覆盖B)控制路径测试:流图基于程序的内部实现结构和逻辑寻找软件中的缺陷7.集成测试自顶向下:自底向上:混合法8.回归测试重新执行已经做过的测试的某个子集,已保证上述这些变化没有带来非预期的副作用。
测试用例:检测软件全部功能的代表性测试用例;针对可能受修改影响的软件功能的附加测试;针对被修改过的软件成分的测试9.确认测试有效性测试,验证软件的有效性,以用户为主或用户积极参与;黑盒法;Alpha和Beta10.系统测试软件与硬件、外设等其他系统结合起来,对计算机系统进行一系列的集成测试和确认测试11.性能测试软件完成功能时展示出来的及时性、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性。