8软件工程考试重点

合集下载

软件工程课程考试重点知识汇总

软件工程课程考试重点知识汇总

概论1.软件的定义软件是计算机系统中与硬件相互依存的一个部分,它是包括程序、数据及其相关文档的完整集合。

其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

2.软件工程的定义和三要素IEEE:软件工程是开发、运行、维护和修复软件的系统方法。

Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

三个要素:方法、工具和过程。

方法为软件开发提供了“如何做”的技术。

它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

工具为软件工程方法提供了自动的或半自动的软件支撑环境。

目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。

CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。

过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。

过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。

3.软件工程和软件危机的关系现有软件危机后有软件工程为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。

软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。

4.软件生命周期的概念,划分的三个时期和八个阶段概念:软件生命周期是软件的产生直到报废的生命周期三个时期:软件定义,软件开发,运行维护8个阶段:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃5.理解结构化软件开发方法和面向对象软件开发方法结构化开发方法:早期的程序开发,如C语言,都是用结构化开发方法。

《软件工程》经典考试例题题,重点的知识点(含答案)

《软件工程》经典考试例题题,重点的知识点(含答案)

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的值返回给调用程序。

2021最新版《软件工程》期末考试重点背诵内容

2021最新版《软件工程》期末考试重点背诵内容

1.什么是软件危机及其表现?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

表现:(1)对软件开发成本和进度的估计常常很不准确。

(2)用户对“已完成的”软件系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。

(4)软件常常是不可维护的。

(5)软件通常没有适当的文档资料。

(6)软件成本在计算机系统总成本中所占的比例逐年上升。

(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

2.什么是软件工程?答:软件工程是指导计算机软件开发和维护的一门工程学科,由需求分析、总体设计、详细设计、编码、测试、维护和演化等一系列分工明确的活动组成。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

3.什么是瀑布模型方法?(有利于大型软件开发过程中人员的组织及管理)答:按照时间顺序依次进行可行性分析、项目计划、需求分析、概要设计、详细设计、编码与单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发。

图1 瀑布模型(软件生命周期模型)4.瀑布模型方法的优缺点:其优点体现在:(1)促进软件开发的工程化。

(2)提高了软件的成功率和质量。

(3)加强了软件开发的管理过程。

(4)强调了文档的作用,保护了软件开发商的利益。

其缺点体现在:(1)瀑布模型僵化的划分阶段、缺乏灵活性,对于软件需求不明确或不准确的问题,由于其开发模型是线性的,所以瀑布模型的风险控制能力较弱。

一方面用户只有等到整个过程的后期才能见到开发成果,中间提出的变更要求很难响应。

另一方面体现在早期的错误可能要等到开发后期的测试阶段才能发现,这样会带来严重的后果。

(2)增加了软件开发的工作量,由于开发过程各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

《软件工程》-重点考试知识点,简答

《软件工程》-重点考试知识点,简答

第一章1、软件概念:由计算机程序,数据,软件文档组成软件的特点:无法直接观察它的物理形态,只能通过观察他的是实际运行情况来了解他的功能特性和质量等;人们在分析设计开发测试过程以及软件开发项目的管理过程中渗透了大量的人类的脑力劳动;不存在磨损和老化但存在缺陷维护和技术更新的问题;开发运行依赖一定的计算机系统环境;具有可复用性软件的分类:按功能分:系统支撑应用软件;按服务对象:通用定制软件;按规模:大中小型软件;按工作方式:实时分时交互式批处理2、软件危机:是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件的开发与维护过程中出现一系列严重问题的现象。

主要表现:●开发人员开发的软件产品不能完全满足用户的需求;●软件产品的质量难以得到保障;●开发周期开发经费和维护费用很难被准确估计从而给项目的管理带来很多麻烦;●随着技术的更新,用户的扩大,已有的软件产品不能灵活地适应环境的改变;●软件文档不完备并且存在文档内容与软件产品不符的情况。

原因:①软件开发是一项复杂的工程,需要用科学的工程化思想来组织和指导软件开发的各个阶段②没有完善的质量保证体系③软件文档的重要性没有得到软件开发人员和用户的足够重视④从事软件开发的专业人员对这个产业认识不够充分缺乏经验⑤软件独有的特点也给软件的开发和维护带来困难3、软件工程是指应用计算机科学与技术,数学和管理学的原理,运用工程学理论方法和技术,研究和指导软件开发和演化的一门交叉学科。

软件工程的目标:●使软件开发的成本控制在预计的合理范围内;●使软件产品的各项功能和性能能够满足用户需求;●提高软件产品的可靠性;●使生产出来的软件产品易于移植维护升级和使用;●使软件产品的开发周期能够控制在预计的合理时间范围内。

软件工程学科内容:●软件工程原理过程方法模型管理度量环境应用。

软件工程的基本原则:●将软件的生命周期划分为多个阶段,对各个阶段实施严格的项目管理;●坚持阶段评审制度已确保软件产品的质量;●实施严格的产品控制以适应软件规格的变更;●采用现代程序设计技术;开发出来的产品应该能够清楚地被审查;●合理地安排软件开发小组人员并且开发小组的人员要少而精;●不断改进软件工程的实践。

软件工程必背考点

软件工程必背考点

软件工程必背考点软件工程是以工程法为基础的一门学科,涉及到软件开发的各个方面,包括需求分析、设计、编码、测试、维护等。

在软件工程的学习和实践中,有一些重要的考点需要我们掌握和理解。

本文将介绍一些软件工程的必背考点,以帮助读者更好地复习和准备软件工程的考试。

一、软件生命周期模型软件生命周期模型是指软件开发过程中不同阶段的组织、管理和控制方法。

常见的软件生命周期模型有瀑布模型、迭代模型、螺旋模型等。

熟悉和理解不同的软件生命周期模型对于项目管理和开发具有重要的意义。

二、需求工程需求工程是软件工程的重要组成部分,其目标是明确软件系统需要满足用户和利益相关者的需求。

需求工程包括需求获取、需求分析、需求规格说明等过程,需要掌握需求工程中的各种技术和方法。

三、软件设计软件设计是将需求转化为具体的设计方案和结构的过程。

软件设计包括结构设计、模块化设计、接口设计等,需要掌握设计的原则和方法,以及常用的设计模式和设计工具。

四、软件测试软件测试是确保软件系统质量的重要手段。

软件测试包括单元测试、集成测试、系统测试、用户验收测试等,需要掌握各种测试方法、策略和工具,以及缺陷管理和跟踪的技巧。

五、软件维护软件维护是软件工程的一个重要阶段,用于确保软件系统的可靠性和稳定性。

软件维护包括纠错性维护、适应性维护、完善性维护等,需要掌握维护的方法和技巧,以及版本管理和配置管理的工具和流程。

六、软件过程改进软件过程改进是为了提高软件开发过程的质量和效率而进行的系统性改进。

软件过程改进包括CMMI模型、SPICE模型等,需要了解软件过程改进的原理和方法,以及评估和度量的指标体系。

七、软件项目管理软件项目管理是为了成功地完成软件项目而进行的计划、组织、协调和控制的过程。

软件项目管理包括项目计划、资源管理、风险管理等,需要掌握项目管理的理论和实践,以及项目管理工具和技术。

八、软件工程伦理和专业责任软件工程伦理和专业责任是软件工程师必备的素养。

(附答案)软件工程重点大题

(附答案)软件工程重点大题
4.结构化程序设计的特点是什么?为什么要采用结构化程序设计?
答:结构程序设计的概念最早是由E. W. Dijkstra提出来的,他指出:“可以从高级语言中取消GOTO语句,程序质量与程序中所包含的GOTO语句的数量成反比”。并指出结构程序设计并非简单的取消GOTO语句,而是创立一种新的程序设计思想、方法和风格,以显著提高软件生产率和质量。
●需求分析与规格说明(明确系统的规格和要求);
●设计(包括概要设计和详细设计,将系统分解为模块);
●编程(用程序语言实现每个模块,简单容易);
●测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);
●运行维护(扩充功能、纠错等)。
5.如何画分层数据流图?有哪些基本原则?
答:总的原则是:至顶而下,逐层分解(画分层数据流图)。逐层分解的画法可以控制每一层的复杂度。
答:以集中式的仓库模型为例。其主要优点:
(1)数据由某个子系统产生,并且被存储到仓库中,以便为另外一些子系统共享;
(2)由于中央集中控制的缘故,共享数据能得到有效的管理,各子系统之间不需要通过复杂的机制来传递共享数据;
(3)一个子系统不必关心其他的子系统是怎么使用它产生的数据;
(4)所有的子系统都拥有一致的基于中央数据仓库的数据视图。如果新子系统也采用相同的规范,则将它集成于系统中是容易的。
模块是由边界元素限定的相邻的程序元素的序列,而且有一个总体标志符来代表它。
所谓模块化,即是将一个大任务分成若干个较小的任务,较小的任务又细分为更小的任务,直到更小的任务只能解决功能单一的任务为止,一个小任务称为一个模块。各个模块可以分别由不同的人编写和调试。把大任务逐步分解成小任务的过程可以称为是“自顶向下,逐步细化”的过程。
数据结构的复杂性。要根据不同语言构造数据结构类型的能力选取合适的语言。C++、Java这样的高级语言显然比汇编语言的表达能力要强。

(完整word版)860软件工程学科基础综合

(完整word版)860软件工程学科基础综合
1)项目管理四要素:人员、产品、项目、过程(概念)
2)软件度量有哪些方法:生产率估计(基于规模(KLOC)、基于功能点掌握直接测量(基于规模)方法。
3)项目计划与风险管理的概念
《网络技术》考试内容如下:
1、计算机网络和因特网
(1)网络协议的概念
(2)802。11无线局域网:802.11的体系结构、MAC协议,以及在同一个IP子网中的移动过程
(3)无线个域网的基本概念:蓝牙和Zigbee技术
(4)蜂窝因特网的体系结构:3G
(5)移动管理的原理:寻址和路由选择到移动结点
7、多媒体网络
(1)多媒体网络的应用
(2)内容分发网络(CDN)的基本原理:CDN在YouTuBe、Netflix中的应用
1)软件生命周期概念、软件过程概念、能力成熟度模型CMM概念
2)常见的几种软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺点
3.需求分析
重点是需求分析的一般步骤、数据流图、用例图、活动图、需求规格说明文档的编制。掌握结构化分析模型的导出、数据流图/用例图/活动图的基本画法和需求规格说明文档的编制;理解需求分析的过程、主要步骤.主要知识点:
考试科目
860软件工程学科基础综合
考试形式
笔试(闭卷)
考试时间
180分钟
考试总分
150分
一、总体要求
《软件工程学科基础综合》包括《软件工程》和《网络技术》两门课程,其中《软件工程》要求考生了解软件工程的基本知识和方法,熟悉软件工程的主要环节,掌握最基础的软件工程理论方法,并能应用到实际的软件项目开发中。《网络技术》要求学生掌握计算机网络的基本概念、基本原理和基本方法;掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理;能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统的分析、设计和应用。两门课程各占总分的50%。

软件工程期末考试重点

软件工程期末考试重点

《软件工程》期末复习重点第一章软件工程1.什么是软件工程。

A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。

2. 软件工程的三要素:方法、工具和过程。

第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。

概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。

c.运行维护:修正错误,使软件持久地满足用户需要。

改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。

如:瀑布模型的不足是不能适应需求的动态变更。

A.瀑布模型特点:可强迫开发人员采用规范化的方法。

严格地规定了每个阶段必须提交的文档。

要求每个阶段交出的所有产品都必须是经过验证(评审)的。

缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

如果需求规格与用户需求之间有差异,就会发生这种情况。

只适用于项目开始时需求已确定的情况。

B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。

降低了规格说明文档变化的可能性。

减少了后续阶段错误的可能性。

c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。

当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。

增量能够有计划地管理技术风险。

缺点:要求构件具备开放式的体系结构。

易退化为边做边改模型,从而使软件过程的控制失去整体性。

软件工程考试重点

软件工程考试重点

1.简答题(1)软件危机的具体表现:软件开发成本和进度的估算常常不准确用户对完成的软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统成本中所占的比例因软件开发需要大量人力,软件的规模和数量的不断扩大而持续上升软件开发生产率提高的速度远远跟不上计算机应用迅速普及及深入的程度。

(2)原型模型的分类、开发步骤、特点分类:探索型原型。

用于需求分析阶段实验型原型。

用于设计阶段演化型原型。

软件开发全过程,及早向用户提交一个原型系统开发步骤:快速分析,构造原型,运行原型,评价原型,修改特点:能及早发现问题,随时纠正错误,减少了技术、应用风险。

促使用户主动参与开发活动,促进各类人员的协调,减少误解,适应需求的变化,能有效提高系统质量。

(3)可行性研究的步骤确定项目规模和目标研究正在运行的系统建立新系统的高层逻辑模型复查和重新定义系统导出和评价若干个系统的实现方案确定可行的方案编写可行性报告(4)耦合,内聚无直接耦合:数据耦合:标记耦合:控制耦合:公共耦合:内容耦合:偶然内聚:逻辑内聚:时间内聚:通信内聚:顺序内聚:功能内聚:应尽量做到高内聚低耦合,提高模块的独立性,当内聚性和耦合性发生矛盾时,建议给予耦合性更高的重视。

(5)软件测试原则:在设计测试用例时,要给出测试的预期结果,便于对照在设计测试用例时,不仅要设计合理的输入条件,还要设计不合理的输入条件除了检查程序是否做了应该做的工作,还要检查程序是否做了不应该做的工作应制定测试计划并严格执行长期保存测试用例充分注意测试中的群集现象(6)软件维护有哪些内容?如何避免软件维护的副作用?内容:改正性维护、适应性维护、完善性维护、预防性维护软件维护的副作用:很容易出现打补丁现象,最后补丁越打越多,隐含的问题也越来越多由于考虑不周,或对软件消化不透,可能在维护中出现连锁反应软件维护的无形代价。

如占用资源以致延误其他开发;修改不及时引起用户不满等。

软件工程考试重点

软件工程考试重点

第一章1. 软件危机的概念: 软件危机就是软件在开辟过程中存在的一系列严重问题的总称。

(★★★★) 2. 软件危机的典型表现: ○1.对软件开辟成本和进度的估计不许确。

○2 .用户对“已完成”的软件不满意。

○3.软件质量不稳定 ○4.软件不可维护。

○5.没有适当的文档资料。

○6. 软件成本在计算机系统总成本所占的比例逐年上升。

○7 .软件开辟生产率提高的速度既 跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。

(★★★★) 3. 软件工程的概念:采用工程的概念、原理、技术和方法来开辟与维护软件,把经过时间 考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开辟出高 质量的软件并有效地维护它(★★★★)4. 软件工程的基本原理:○1.用分段的生命周期计划严格管理。

○2.坚持进行阶段评审。

○3. 实行严格的产品控制。

○4.采用现代程序设计技术。

○5.结果能清晰地审查。

○6.开辟小组的 人员应尽量少而精。

○7.承认不断改进软件工程实践的必要性。

(★) 5. 软件工程方法学的三要素是:方法、工具、过程。

(★★★★★)6. 软件过程的定义:软件过程也称为软件生存过程或者软件过程组,是指软件生存周期中一系列相关过程, 是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项 任务的工作步骤。

软件过程是软件工程方法学的一部份, 软件过程是软件工程方法学的一个要素。

(★★★ ★★)7. 软件工程方法雪中常用的两种方法学位: ○1.传统方法学(结构化方法学或者结构化泛○2.面向对象方法学。

(★★★★★)8. 面向对象方法学的四要点是:对象、类、继承、消息。

(★★★★★)9. 软件生命周期的子阶段: ○1.问题分析阶段。

特点:是软件生命周期中最简短的阶段,普通至于要一天或者更少的时间。

明白“要解决的问题是什么” ○2.可行性研究阶段。

特点: 可行性研究的结果是: 是使用部门负责人作出是否继续进行这项工程的决定的重 要依据。

软件工程考试重点(灰常重要)

软件工程考试重点(灰常重要)

软件工程考试重点(灰常重要)软件工程考试重点(灰常重要)软件工程考试是每个软件工程专业学生所必须面对的一项重要考试。

它是评估学生在软件开发、项目管理、质量保证和软件工程实践等方面的理论知识和实践能力的重要指标。

在这篇文章中,我们将重点介绍软件工程考试的几个重要内容,帮助学生们更好地备考和应对考试。

一、需求工程需求工程是软件工程的基石,它涉及到对软件系统需求的分析、建模和管理。

在软件工程考试中,需求工程占据了重要的比重。

学生们需要掌握需求获取和分析的方法,了解不同类型的需求模型(如用户需求、系统需求、功能需求和非功能需求等),并能够运用适当的需求工程工具和技术来解决实际问题。

二、软件设计软件设计是指将需求转化为可执行代码或软件系统的架构和模块设计。

在考试中,学生们需要熟悉软件设计的原则和方法,包括模块化设计、面向对象设计、设计模式等。

同时,学生们还需要具备使用设计工具和建模语言进行软件设计的实际操作能力。

三、软件开发方法和过程软件工程中的软件开发方法和过程对于考试来说也是非常重要的内容。

学生们需要了解不同的软件开发方法,例如瀑布模型、敏捷开发、迭代开发等,并了解每种方法的特点、适用场景和优缺点。

此外,对于软件开发过程的理解和掌握同样至关重要,学生们需要熟悉软件工程中的需求分析、设计、编码、测试、部署等各个阶段,并了解每个阶段的任务和关键活动。

四、软件测试和质量管理软件测试和质量管理是确保软件开发过程中质量和可靠性的关键环节。

学生们需要了解各种软件测试方法和技术,包括单元测试、集成测试、系统测试、性能测试等,以及软件质量管理的原则和实践。

同时,学生们还需要具备编写测试用例、执行测试计划和分析测试结果的能力。

五、软件项目管理软件项目管理是对软件开发过程进行规划和组织的过程。

在考试中,学生们需要了解软件项目管理的基本概念和方法,包括项目计划、进度管理、风险管理、团队管理等。

此外,学生们还需要了解不同的项目管理工具和技术,如甘特图、敏捷项目管理等。

软件工程 考试重点

软件工程 考试重点

第一章软件工程导论1.软件:与计算机系统操作有关的程序(可执行)、数据以及相关文档(不可执行)的完整集合。

程序:由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列。

面向机器、对象、过程、问题;数据:使程序能正常操纵信息的数据结构;文档:与程序开发、维护和使用有关的图文材料。

记录软件开发活动和阶段性成果,为理解软件所必需的阐述性资料。

目的-促进对软件的开发、管理和维护;-便于各种人员的交流2.软件特点:逻辑实体、智力产品;制造即拷贝;无磨损和老化,不遵循“浴盆曲线”,有退化问题;尚未摆脱手工方式;软件移植的需要;问题程序结构复杂;软件开发的性质难以估计控制;维护困难,可复用性3.软件分类:功能系统软件支撑软件应用软件/工作方式实时处理分时交互批处理/服务对象项目产品/失效影响关键软件非关键软件4.软件发展:程序设计、程序系统、软件工程、OO软件工程5.软件危机:形成于程序系统阶段:(60至70年代);表现:软件开发成本和进度失控,维护代价高;用户不满意;软件质量不可靠;软件不可维护;无文档资料;计算机系统中软件成本比重加大;软件开发生产率提高不能满足要求。

原因:软件的规模和复杂性;人类智力的局限性;协同工作的困难性;缺乏方法学和工具;用户描述不精确、二义、遗漏,双方理解有偏差。

缓解:组织管理、协同配合的工程;软件工程的理论模型、技术方法;软件工具。

6.软件工程:用工程的、科学的概念、原理、技术和方法,进行软件的开发、管理和维护;(三要素:过程方法工具)总体目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需要的软件产品;原则:抽象:关注事物基本、重要的部分,忽略不相关成分;模块化:将复杂的系统分解为由多个相对独立的模块加以实现;信息隐藏:将软件实现信息封装,外部只知道其功能、接口,而不知道其内部细节;局部化:在物理模块内集中逻辑上相互关联的计算资源;一致性:整个软件系统和开发过程均使用统一的符号、概念和术语;完备性:系统不丢失任何重要成分,完全实现系统所需的功能/行为/性能;可验证性:软件系统应易于检查、测试和评审7.软件生命周期:可行性研究--需求分析/--概要设计(自顶向下逐步求精)--详细设计--实现--集成测试--确认测试/--使用与维护--退役8.软件工程模型:瀑布:开发过程与生命周期一致\相邻二阶段有因果关系\每一阶段结束点作为里程碑\需对阶段性产品进行评审,不合格需返工。

软件工程考试重点

软件工程考试重点

2.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

6.模块化:是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性8.逐步求精:将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题9.信息隐藏:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的10.局部化:所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。

11.模块独立性:是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。

14.模块的作用域:为受该模块内一个判定影响的所有模块的集合。

15.模块的控制域:模块本身以及所有直接或间接从属于它的模块的集合。

16.结构化程序设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则17.改正性维护:诊断和改正错误的过程.18.适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,是即必要又经常的维护活动。

19.完善性维护:是指增加新功能或修改已有的功能。

通常占软件维护工作的大部分。

20.预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改,这项维护活动相对比较小。

21.可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度.22.可重用性:是指同一事物不做修改或稍加改动就不同环境中多次重复使用。

23.继承:子类自动地共享基类中定义的数据和方法的机制。

25.验收测试:把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据进行测试。

26.集成测试:是测试和组装然件的系统化技术.单元测试集中检测软件设计的最小单元是模块27.多态:指子类对象可以像父类对象那样使用21.简述数据流图的绘制步骤。

首先画系统的输入输出,即先画顶层数据流图。

软件工程复习重点

软件工程复习重点

第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.软件复用技术含义。

软件工程考试重点内容

软件工程考试重点内容
作为一个大型软件产品公司的项目负责人,我认为软件项目始于项目计划,而第一项计划活动就是估算,要预测软件规模、估算完成该项目所需的工作量。
在完成开发任务时,必须进行一些开发活动,即软件过程。根据所承担项目的特点来划分阶段,明确需求分析。对这个项目的一个重要要求是公司规定了严格的完成期限,因此,选择生命周期模型应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时,可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛使用的字处理软件的新版本,从上述事实可以得出三点结论:第一,旧版本相当于一个原型,通过搜集用户对旧版本的反应,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求。第二,该公司的软件工程师对字处理软件很熟悉,有开发的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平。第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本。因此,应该把该软件的体系结构设计成开放式的,以便于今后的改进和补充。
在项目组织方面,该项目软件的规模很大,单个开发人员无法在规定期限完成开发工作,因此应选择现代程序员项目组结构,因为小组成员都能对发现程序错误持积极主动的态度,能更好的适应竞争。高素质的开发人员和合理的项目组组织结构是软件项目取得成功的关键。
同时,在进度计划方面,可联合使用Gantt图和工程网络来制定进度计划并监督项目进展情况。首先制定一个宏观的进度安排表,表示出主要的软件工程活动和其影响到的产品功能,随着项目的进展,再把每个条目精化成一个详细进度表,并安排好实现这些任务的进度。
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
2.软件生命周期包括几个时期,各时期的主要任务及阶段划分。(p11)
软件定义时期:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资料和成本,并且制定工程进度表;又划分成三个阶段,即问题定义、可行性研究和需求分析。

软件工程考试重点

软件工程考试重点

1.什么是软件工程概括地说,软件工程是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

2.软件工程的基本原理 123 45673.软件生命周期由软件定义、软件开发和运行维护三个时期组成4. 软件生命周期的基本任务软件定义:1.问题定义:要解决什么问题、2.可行性研究:上一阶段所确定的问题是否有行的通的解决办法、3.需求分析 :目标系统必须做什么 开发周期:4.概要设计: 怎样实现目标系统?、5.详细设计:应该怎样具体地实现这个系统、6.编码和单元测试:写出正确的容易理解、容易维护的程序模块、7.综合测试 :通过各种类型的测试、调试使软件达到预定要求 运行维护,通过各种必要的维护活动使系统持久地满足用户的需求。

5.瀑布模型的缺点、特点缺点:只有在项目生命周期的后期才能看到结果。

6.快速原型模型正是为了克服瀑布模型的缺点而提出来的。

它通过快速构建起一个可运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。

快速模型适用于用户不明确的模型7.可行性分析的三个方面:1.技术可行性:使用现有的技术能实现这个系统吗?、2.经济可行性:这个系统的经济效益能超过它的开发成本吗?、3.操作可行性:系统的操作方式在这个用户组织内行得通吗?8.数据流图有四种成分:源点或终点(数据的来源与去向)、处理(数据所进行的加工或变换)、数据存储(文件即数据暂存的处所)和数据流9.总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,作用:设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

10.耦合是对一个软件结构内不同模块之间互连程度的度量。

分为:内容耦合、公共耦合、特征耦合、控制耦合、数据耦合11.内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

软件工程 期末考试复习总结知识点 必考题型

软件工程 期末考试复习总结知识点 必考题型

软件工程复习资料1.软件危机产生的原因(1) 软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。

在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。

很难检验开发的正确性且软件开发的质量也较难评价。

因此控制软件开发过程相当困难。

此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。

这样维护的费用十分惊人,客观上使得软件较难维护。

(2) 软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。

但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。

在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。

这是造成软件危机的主要原因。

(3) 开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。

对用户的要求没有完整准确的认识就急于编写程序。

这是许多软件开发失败的另一主要原因。

事实上,许多用户在开始时并不能准确具体地叙述他们的需要。

软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。

(4) 软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。

首先是文档缺乏一致性和完整性,从而失去管理的依据。

因为程序只是完整软件产品的一个组成部分。

一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。

其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。

(5) 在软件的开发和维护关系问题上存在错误的观念。

软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。

所以做好软件的定义工作是降低软件成本,提高软件质量的关键。

如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。

软件工程考试必备知识点

软件工程考试必备知识点

软件工程考试必备知识点软件工程是一门涉及软件开发、测试、维护和管理的学科,对于软件工程师来说,掌握必备知识点是非常重要的。

本文将介绍一些软件工程考试中必备的知识点,以帮助考生更全面地准备。

一、软件开发过程1. 瀑布模型瀑布模型是软件开发中最早被提出的模型之一,它包括需求分析、系统设计、编码、测试和维护等阶段。

考生需了解各个阶段的目标、特点和实施过程。

2. 敏捷开发敏捷开发是一种迭代、协作和增量的开发方法,能够快速响应需求变化。

了解敏捷开发的原则、价值观和实施方式对软件工程考试非常有帮助。

3. DevOpsDevOps是一种软件开发流程和文化的理念,旨在实现开发和运维部门之间的协作和整合。

了解DevOps的核心概念、原则和实践对软件工程考试也是必备的知识点。

二、软件开发方法1. 结构化程序设计结构化程序设计是一种以模块化和分层思想为基础的软件开发方法。

了解结构化程序设计的基本原则、流程和常用的控制结构对于软件工程考试至关重要。

2. 面向对象程序设计面向对象程序设计是一种以数据和操作封装为基础的软件开发方法。

了解面向对象的基本概念、特点和常用的面向对象语言对于软件工程考试非常重要。

3. 声明式编程声明式编程是一种以声明关系为基础的软件开发方法。

了解声明式编程的原理、特点和常用的声明式语言对软件工程考试也是必备知识点。

三、软件需求工程1. 需求获取和分析需求获取和分析是软件需求工程的基础环节,包括需求获取方法、需求分析技术和需求表示等内容。

了解这些知识点对于软件工程考试至关重要。

2. 需求验证和确认需求验证和确认是确保软件需求的正确性和完整性的过程,包括需求验证方法、需求确认技术和需求管理等内容。

掌握这些知识点对软件工程考试也是必要的。

四、软件测试1. 测试基础软件测试基础包括测试目标、测试方法、测试层次和测试文档等内容。

了解测试基础知识对软件工程考试非常重要。

2. 黑盒测试与白盒测试黑盒测试和白盒测试是软件测试中常用的两种测试方法,分别关注软件的功能和内部结构。

软件工程考试重点

软件工程考试重点

软件⼯程考试重点软件⼯程1.1软件危机1、软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。

(熟记)2、了解软件危机主要的⼀些典型表现。

(P2)3、出现软件危机的原因:4、消除软件危机的途径:⾸先,我们要对计算机软件有⼀个正确的认识;更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,⽽应该是⼀种组织良好、管理严格、各类⼈员协同配合、共同完成的⼯程项⽬;最后,应该开发和使⽤更好的软件⼯具。

总之,为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。

1.2软件⼯程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软件⽣命周期1、概括地说,软件⽣命周期由软件定义、软件开发和运⾏维护(也称为软件维护)3个时期组成,每个时期⼜进⼀步划分成若⼲个阶段。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.What is Software?(1)指令的集合(计算机程序),通过执行这些指令来满足预期的特征、功能和性能需求;(2)数据结构,使得程序可以合理的利用信息;(3)文档描述,用来描述程序操作和使用。

2.Software Engineering软件工程是)建立和使用一套合理的工程原则,以便经济地获得可靠的、可以在实际机器上高效运行的软件。

IEEE定义(1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。

(2)在(1)中所述方法的研究。

3.Process framework过程框架沟通communication、策划planning、建模modeling、构建construction、部署deployment4.Prescriptive Models惯用过程模型瀑布模型(系统的、顺序的、V模型是变体)增量过程模型(每个阶段运用线性序列、每个增量提交产品)演化过程模型(原型开发、螺旋模型)协同开发模型。

5.统一过程unified process UML统一建模语言一种用例驱动,以架构为核心,迭代并且增量的软件过程与统一建模语言的紧密结合。

6.Requirements Engineering需求工程起始、导出、精化、协商、规格说明、确认、需求管理。

7.Class-responsibility-collaborator(CRC)modeling CRC建模CRC模型实际上是表示类的标准索引卡的集合。

这些卡片分为三部分,顶部写类名,卡片主体左侧部分列出类的职责,右侧部分列出类的协作者。

职责:系统智能应用分布在所有类中以求最佳地满足问题的需求。

每个职责的说明应尽可能具有普遍性。

信息和与之相关的行为应放在同一个类中。

某个事物的信息应局限于一个类中而不要分布在多个类中。

适合时,职责应由相关类共享。

简单地说:职责就是类所知道或能做的任何事、协作者是提供完成某个职责所需要信息的类、通常,协作意味着信息请求或某个动作请求。

8.Architecture体系结构软件的整体结构和这种结构为系统提供概念完整性的方式属性:结构特性、外部功能特性、相关系统族。

rmation Hiding信息隐蔽模块中包含的信息(算法和数据)不被不需要这些信息的其他模块访问。

Why减少“负效应”的可能性.限制全局影响局部的设计决策.强调通过控制接口通信.不提倡使用全局数据.导致封装——高质量设计的属性.导致高质量软件10.Functional Independence功能独立可以通过两条定性的标准进行评估:内聚性和耦合性。

内聚性显示了某个模块相关功能的强度。

耦合性显示了模块间的相互依赖性。

11.refactoring重构重构是使用这样一种方式改变软件系统的过程:不改变代码[设计的外部行为而是改进其内部结构。

当重构软件时,检查现有设计:冗余性没有使用的设计元素低效的或不必要的算法拙劣的或不恰当的数据结构其他设计不足,修改这些不足以获取更好的设计。

12.Design Classes设计类高内聚性cohesion和低耦合性coupling一个内聚的设计类具有小的、集中的职责集合,并且专注于使用属性和方法来实现那些职责。

协作保持在一个可以接受的小范围内。

13.设计模型的元素design model elements1.数据设计元素:数据结构、数据库体系结构 2.体系结构设计元素:来源:应用领域、特定的需求模型元素(数据流图、分析类、现有问题中的关系和协作)、风格和模式 3.接口设计元素interface4.构件级设计元素 5.部署级设计元素14.软件体系结构architecture什么是软件体系结构?程序或计算机系统的软件体系结构是指系统的一个或多个结构,它包括软件构件、构件的外部可见属性以及他们之间的相互关系。

软件体系结构为什么重要?软件体系结构的表示有助于对计算机系统开发感兴趣的各方(利益相关者)开展交流。

体系结构突出了早期的设计决策,这些决策对随后所有的软件工程工作有深远影响,同时对系统作为一个可运行实体的最后成功有重要作用。

体系结构“构建了一个相对小的、容易理解的模型,该模型描述了系统如何构成以及其构件如何一起工作”。

15.Architectural style体系结构风格以数据为中心的体系结构、数据流体系结构、调用和返回体系结构、面向对象体系结构、层次体系结构。

16.What is a Component?什么是构件?系统模块化的、可部署的和可替换的部件,该部件封装了实现并暴露一组接口。

OO观点:构件包含一组协作的类传统观点:一个构件包含处理逻辑,实现处理逻辑所需的内部数据结构以及能保证构件被调用和实现数据传递的接口。

17.Cohesion内聚性:传统观点:构件的专一性、面性对象观点:内聚性意味着构件或者类只封装那些相互关联密切,以及与构件或类自身有密切关系的属性和操作。

分类:功能内聚、分层内聚、通信内聚。

18.coupling耦合性传统观点:构件之间彼此联系、构件和外部世界联系程度的一种度量、OO观点:类之间彼此联系程度的一种定性度量。

分类:内容、共用、控制、标记、数据、历程调用、类型使用、包含或者导入、外部。

19.software quality软件质量:在一定程度上应用有效的软件过程,创造有用的产品,为生产者和使用者提供明显的价值。

20.quality dimension质量维度:性能质量、特性质量、可靠性、符合性、耐久性、适用性、审美、感知。

21.Software Quality Assurance软件质量保证:标准、评审和审核、测试、错误/缺陷的收集和分析、变更管理、教育、供应商管理、安全管理、安全、风险管理。

22.软件质量保证目标:需求质量。

需求模型的正确性、完整性和一致性将对所有后续工作产品的质量有很大的影响。

、设计质量。

软件团队应该评估设计模型的每个元素,以确保设计模型显示出高质量,并且设计本身符合需求。

、代码质量。

源代码和相关的工作产品(例如,其他说明信息)必须符合本地的编码标准,并显示出易于维护的特点。

、质量控制有效性。

软件团队应使用有限的资源,在某种程度上最有可能得到高品质的结果。

23.measure reliability and availability可靠性和可用性测量:可靠性的简单测量是“平均失效间隔时间”(MTBF),其中MTBF=MTTF+MTTR首字母缩略词MTTF和MTTR分别是“平均失效时间”和“平均维修时间”。

软件可靠性是指在某个给定时间点上程序能够按照需求执行的概率。

其定义为:可用性=[MTTF/(MTTF+MTTR)]x100%24.software testing软件测试:测试是在交付产品给最终用户之前,带着特定的目的在运行程序的过程中发现错误。

25.验证与确认verification and validation:验证是指确保软件正确地实现某一特定功能的一系列活动。

确认指的是确保开发的软件可追溯到客户需求的另外一系列活动。

25.testing strategy测试策略:系统测试(整体)、确认测试(需求)、集成测试(体系结构的设计和构造):(主要自底向上、自顶向下、三明治次要回归测试、冒烟测试)、单元测试(源代码形式实现的每个单元)。

26.单元测试:通常被认为是编码阶段的附属工作。

由于构件并不是独立的程序,因此,必须为每个测试单元开发驱动程序和桩程序。

驱动程序只是一个主程序,接受数据并传递给构件,并打印结果。

桩程序的作用是替换那些从属于被测构件的模块。

桩程序使用从属模块的接口,可能做少量的数据操作,提供入口的验证,并将控制返回到被测模块。

27.regression testing回归测试回归测试重新执行已测试过的某些子集,以确保变更没有传播不期望的副作用。

无论什么时候修正软件,软件配置的某些方面(程序、文档或支持数据)也发生变更。

回归测试有助于保证变更(由于测试或其他原因)不引入无意识行为或额外的错误。

回归测试可以手工进行,方法是重新执行所有测试用例的子集,或者利用捕捉/回放工具自动进行。

28.smoke testing冒烟测试步骤:将已经转换为代码的软件构件集成到“构建”中去。

(一个构建包括所有的数据文件、库、可复用的模块以及实现一个或多个产品功能所需的工程化构件。

)设计一系列测试以暴露影响构建正确地完成其功能的错误。

(其目的是为了发现极有可能造成项目延迟的“业务阻塞”错误)。

每天将该构建与其他构建及整个软件产品(以其当前的形式)集成起来进行冒烟测试。

(这种集成方法可以是自顶向下,也可以自底向上。

)29.system testing系统测试:恢复测试、安全测试、压力测试、性能测试、部署测试。

30.debugging techniques调试方法:蛮干、回溯、归纳、原因排除。

31.Internal and External Views内部视角和外部视角任何工程化的产品(以及大多数其他东西)都可以采用以下两种方式之一进行测试:(黑盒测试)了解已设计的产品要完成的指定功能,可以执行测试以显示每个功能是可操作的,同时,查找在每个功能中的错误;(白盒测试)了解产品的内部工作情况,可以执行测试以确保“所有的齿轮吻合”——即内部操作依据规格说明执行,而且对所有的内部结构已进行了充分测试。

32.white box method白盒测试(1)保证一个模块中的所有独立路径至少被执行一次(2)对所有的逻辑判定均需测试取真和取假两个方面(3)在上下边界及可操作的范围内执行所有的循环(4)检验内部数据结构以确保其有效性。

33.Deriving Test Cases导出测试用例(1)以设计或源码为基础,画出相应的流图。

(2)确定所得流图的环复杂性。

(3)确定线性独立路径的基本集合。

(4)准备测试用例,强制执行基本集合中的每条路径。

34.简单循环Simple Loops(1)跳过整个循环(2)只有一次通过循环(3)两次通过循环(4)m次通过循环,m<n(5)n-1,n,n+1次通过循环。

(n是允许通过循环的最大次数)35.等价类划分equivalence partitioning等价类划分是一种黑盒测试方法,它将程序的输入划分为若干个数据类,从中生成测试用例。

36.SCM元素配置管理系统元素(1)构件元素——是一组具有文件管理系统(如,数据库)功能的工具,使我们能够访问和管理每个软件配置项。

(2)过程元素——是一个动作和任务的集合,它为所有参与管理、开发和使用计算机软件的人员定义了变更管理(以及相关活动)的有效方法。

(3)构造元素——是一组自动软件构造工具,用以确保装配了正确的有效构件(即,正确的版本)集。

(4)人员元素——为有效实施SCM,软件团队使用的一组工具和过程特性(包括其他CM元素)。

相关文档
最新文档