软件工程导论题型大总结名词解释总结
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程导论题型大总结名词解释总结相关的知识,希望对你有一定的参考价值。
文章目录
一:传统软件工程部分
非常重要
-
软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合称之为方法学,也称为范型
-
软件危机:在计算机软件开发和维护过程中所遇到的一系列严重问题。主要包含两个方面:如何开发软件,以满足日益增长的软件需求;如何维护数量不断膨胀的已有软件
-
软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并维护它
-
软件过程:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤。通常用软件生命周期模型来描述软件过程
-
软件生命周期模型(软件开发模型):是跨越整个生存期的系统开发、运行和维护过程所实施的全部过程、活动和任务的结构框架
-
RUP:是指Rational统一过程。是由Rational软件公司推出的一种完整而且完美的软件过程。它可以作为软件开发的良好开端。RUP最重要的它有三大特点:①软件开发是一个迭代过程;②软件开发是由Use Case驱动的;③软件开发是以架构设计(Architectural Design)为中心的
-
软件原型:是软件的一个早期可运行版本,反映了最终系统的重要特征
-
瀑布模型:将软件生命周期的各项活动规定为依照固定顺序连接的若干阶段工作,最终得到软件产品
-
快速原型模型:快速建立可运行的程序,它完成的功能往往是最终产品功能的一个子集
-
增量模型:增量模型是指在项目开发周期内,以一定的时间间隔开发部分工作软件
-
结构化程序设计:结构化程序设计是一种典型的面向数据流的软件总体设计方法。它采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和重复三种结构
-
可行性研究:用最小的代价在最小的时间内确定问题是否可以被解决
-
数据流:数据流是数据流图边界上的图的输入/输出流,用来将对象的输出与处理、处理与对象的输入、处理联系起来。在一个计算中,用数据流来表示一中间数据值,这些数据流可以与对象相关,也可以不相关
-
数据流图(DFD):描述信息流和数据从输入到输出所经受的变换。没有任何具体物理部件,只是描绘数据在软件中流动和被处理的逻辑过程
-
数字字典(DD):是关于数据的信息集合,即对数据流图中包含的所有元素定义的集合,在软件分析和设计的过程中给人提供关于数据的描述信息
-
状态:状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态,又做动作
-
状态图:状态图是有限自动机的图形表示,反映了状态与事件的关系
-
事件:事件就是引起系统做动作或(和)转换状态的控制信息
-
需求分析:需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,目标系统提出完整、准确、清晰、具体的要求。在需求分析阶段结束之前,系统分析员应该写出软件需求规明书,以书面形式准确地描述软件需求
-
总体设计:总体设计的基本目的就是回答“系统应该如何实现”这个问题,又称为概要设计或初步设计
-
模块:模块是由边界元素限定的相邻程序元素所组成的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件
-
模块化:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求
-
模块独立性:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立
-
抽象:抽出事物的本质特性而暂时不考虑它们的细节
-
信息隐藏:指一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的,主要是指模块的实现细节
-
局部化:指把一些关系密切的软件元素物理地放得彼此接近,有助于实现信息隐藏
-
耦合:是对一个软件结构内不同模块间互连程序的度量。耦合强度取决于模块接口的复杂程度、通过接口的数据等。耦合度越高,模块独立性越弱
-
完全独立:如果两个模块中的每一个都能独立地工作而不需要另一个模块的存在,则称它们彼此完全独立,耦合程度最低。但是,在一个软件系统中不可能所有模块之间都没有任何连接
-
数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,则称它们是数据耦合。数据耦合是低耦合,系统中至少必须存在这种耦合
-
特征耦合: 如果整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素,则称它们是特征耦合
-
控制耦合:如果两个模块彼此间通过参数交换信息,并且传递的信息中包含控制信息(这种控制信息可以以数据的形式出现)
-
外部耦合: 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为外部耦合
-
公共耦合:如果两个或多个模块通过一个公共数据环境相互作用,则称它们是公共环境耦合
-
内部耦合:内容耦合是最高程度的耦合,一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。
-
内聚:是用来度量一个模块内部各个元素彼此结合的紧密程度。内聚度越高,紧密程度越高
-
偶然内聚: 如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚。有时在写完一个程序之后,发现一组语句在两处或多处出现,于是把这些语句作为一个模块以节省内存,这样就出现了偶然内聚的模块
-
逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类, 则称为逻辑内聚
-
时间内聚:如果一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。时间关系在一定程度上反映了程序的某些实质,所以时间内聚比逻辑内聚好一些
-
过程内聚 :如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。使用程序流程图作为工具设计软件时,往往得到的是过程内聚的模块。
-
通信内聚:如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚
-
顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。根据数据流图划分模块时,通常得到顺序内聚的模块
-
功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。功能内聚是最高程度的内聚。
-
深度:表示软件结构中控制的层数,能粗略地标志一个系统的大小和复杂程度
-
宽度:是软件结构内同一个层次上的模块总数的最大值
-
扇出:是一个模块直接控制的模块数目
-
扇入:表明有多少个上级模块直接调用它。扇入越大则共享该模块的上级模块数目越多。但是,不能违背模块独立原理单纯追求高扇入
-
详细设计:详细设计主要确定每个模块的具体执行过程,也称过程设计
-
PDL:过程设计语言(简称PDL),也称程序描述语言,又称伪码,它是一种用于描述模块算法设计和处理细节的语言
-
编码:编码是把软件设计结果翻译成用程序设计语言书写的程序,是对设计的进一步具体化,因此程序的质量主要取决于软件设计的质量
-
程序设计风格:指一个人编制程序时所表现出来的特点,习惯逻辑思路等。 在程序设计中要使程序结构合理、清晰,形成良好的编程习惯,对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂
-
测试用例:为寻找程序中的错误而精心设计的一组测试数据
-
单元测试:是把每个模块作为一个单独的实体来测试,检验其正确性。目的在于保证每个模块作为一个单元能够正确运行,所发现的是编译和详细设计的错误
-
子系统测试:子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试,子系统测试着重测试模块的接口
-
系统测试:是把经过测试的子系统装配成一个完整的系统来测试,在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能够提供需求说明书中指定的功能,而且系统动态特性也符合预定要求
-
验收测试(确认测试):验收测试是把软件系统作为单一的实体进行测试,它是在用户积极参与下进行的,而且主要使用实际数据进行测试,验收测试的目的是验证系统确实能够满足用户的需要 ,验收测试发现的是系统需求说明书中的错误
-
平行运行:平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果
-
黑盒测试:把软件看成一个黑盒子,不考虑其内部结构和处理过程,只按照规格说明书的规定,测试软件是否能够正确接收输入数据,并产生正确的输出数据。也即测试程序是否正确实现了其功能
-
白盒测试:把软件看作一个透明的盒子,完全知道程序内部结构和处理算法,根据程序内部的逻辑结构,测试程序内部的主要执行通路是否能够按照预定的要求正确工作
-
非渐增式测试:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序进行测试
-
渐增式测试:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,每次增加一个模块。渐增式测试同时完成单元测试和集成测试
-
自顶向下集成:从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于主控制模块的模块组装到程序结构中时,使用深度优先的策略或宽度优先的策略
-
自底向上集成:自底向上测试从软件结构最低层的模块开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要存根程序
-
回归测试:回归测试是指重新执行已经做过的测试的某个子集,以保证测试过程中的变化没有带来非预期的副作用
-
逻辑覆盖:逻辑覆盖是对一系列测试过程的总称, 这组测试过程逐渐进行越来越完整的通路测试
-
语句覆盖:选择足够多的测试数据,被测试程序中的每条语句至少执行一次
-
判定覆盖:不仅每个语句至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次
-
条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果
-
判定/条件覆盖:选择足够多的测试数据,使判定表达式中的每个条件都取到各种可能的结果,而且每个判定表达式也都取到各种可能的结果。它同时满足判断覆盖和条件覆盖
-
条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。满足条件组合覆盖,也一定满足判定覆盖、条件覆盖和判断/条件覆盖
-
点覆盖:连通图G的子图G’是连通的,而且包含G的所有结点,则称G’是G的点覆盖。满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过流图的每个结点一次,也即点覆盖标准和语句覆盖标准是相同的
-
边覆盖:连通图G的子图G’’是连通的,而且包含G的所有边,则称G’’是G的边覆盖。为满足边覆盖的测试标准,要求选取足够多的测试数据,使程序执行路径至少经过流图每条边一次,也即边覆盖与判定覆盖是相同的
-
路径覆盖:选取足够多的测试数据,使程序的每条可能路径都至少执行一次,如果程序图中有环,则要求每个环至少经过一次
-
调试:调试是在测试发现错误之后排除错误的过程
-
软件维护:软件维护是在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程,是软件生命周期的最后一个阶段,其基本任务是保证软件在一个相当长的时期能够正常运行
-
(anki)
-
改正性维护:诊断和改正错误的过程
-
适应性维护:为了和变化了环境适当配合而进行修改的软件活动
-
完整性维护:为了满足用户提出的增加新功能或修改已有功能的要求和一般性改进要求
-
预防性维护:为了给未来的改进奠定更好基础而修改软件
-
软件可维护性:可维护性指的是维护人员理解、改正、改动或改进这个软件的难易程度。提高可维护性是支配软件工程方法学所有步骤的关键目标
-
软件可靠性:是指一个程序按照用户的要求和设计目标,执行其功能的正确程度。一个可靠的程序应该是正确的,完整的,健壮的和一致的
-
可重用性:是指同一事物不经过修改或稍加修改就能多次重复使用的性质
-
可移植性:是指把一个软件或程序从一个计算机环境移植到另外一个环境的难易程度
-
可训练性:是指软件使新用户使用该系统的辅助程度
-
完备性:是指所需功能实现的程度
-
软件项目管理:管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。软件项目管理过程从一组项目计划活动开始,而制定计划的基础是工作量估算和完成期限估算
-
代码行技术:代码行技术依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。是一种比较简单的定量估算软件估摸的方法
-
功能点技术:功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。用 功能点(FP) 为单位度量软件规模。是为了克服代码行技术的缺点,提出来的新技术
-
构造性成本模型(COCOMO):是一种软件成本的估算方法,这种模型使用一种基本的回归分析公式,使用从项目历史和现状中的某些特征作为参数来进行计算。从本质上说是一种参数化的项目估算方法。分为应用组合模型、早期设计模型、后体系结构模型
-
软件质量:软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度
-
软件配置管理:软件配置管理是在软件的整个生命期内管理变化的一组活动。其主要任务是控制变化,同时也负责各个软件配置项和软件各种版本的标识、软件配置审计以及对软件配置发生的任何变化的报告
-
软件配置项(SCI):是软件工程中产生的信息项,是配置管理的基本单位,对已成为基线的SCI,虽然可以修改,但必须按照一个特殊的正确的过程进行评估,确认每一处修改
-
Gantt图:常用水平线段来描述,把任务分解为子任务,以及每个子任务的进度安排
-
基线:基线就是通过了正式复审的软件配置项,有助于人们在不严重妨碍合理变化的前提下来控制变化
-
一致性:是指在整个软件开发项目中使用同一的设计和文档编制技术的程度
-
CMM:CMM是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述
- JSP方法:JSP方法是面向数据结构的设计方法,它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射软件的过程藐视,也即程序结构
- 类推估算法:自顶向下方法中,它是将估算项目的总体参数与类似项目进行直接比较得到的结果。自底向上方法中,类推是在两个具有相似条件的工作单元中进行
- CASE:CASE是一组工具和方法的集合,可以辅助软件开发生存周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术,因而,CASE领域是一个应用、集成和综合的领域
- 过程集成:是指CASE系统中嵌入了关于过程活动、阶段、约束和支持这些活动所需工具的知识
可以了解
-
软件:是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合
-
文档:是指某种数据媒体和其中所记录的数据。在软件工程中,文档用来表示对需求、工程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令
-
结构化设计方法(SD方法):面向数据流的设计是以需求分析阶段产生的数据流图为基础,把信息流映射成软件结构(信息流的类型决定了映射的方法)
-
结构化分析方法(SA方法):是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下、逐步分解的方法分析整个系统,有效地控制系统开发的复杂性
-
PSL(问题陈述语言):是用来描述系统的形式语言
-
PSA(问题陈述分析程序):是处理PSL描述的分析程序
-
逐步求精:逐步求精是软件工程技术的基础,为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
-
Alpha测试:Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,且开发者负责记录发现的错误和遇到的问题。即Alpha测试是在受控的环境中进行的
-
Beta测试:Beta测试由软件的最终用户们在一个或多个客户场所进行。开发者通常不在Beta测试的现场,即Beta测试是软件在开发者不能控制的环境中的“真实”应用
-
进度安排:软件项目的进度安排通过把工作量分配给特定的软件工程任务并规定完成各项任务的起止日期,从而将估算出的项目工作量分布于计划好的项目持续期内。进度计划将随着时间的流逝而不断演化
-
版本控制:版本控制使用规程和工具,以管理在软件工程过程中所创建的配置对象的不同版本,借助于版本控制技术,用户能通过选择适当的版本来指定软件系统的配置
-
探索型原型模型:探索型原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求
-
演化型原型模型:将原型思想扩展到软件开发全过程,就是及早向用户提交一个原型系统,得到用户许可后,将原型系统不断扩充演化为最终的软件系统
-
原型运用的抛弃策略:原型运用的拋弃策略是将原型用于开发过程的某一阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型快速原型就是采用此策略
-
增量构造模型:是指在需求分析和设计阶段按照瀑布模型的整体方式开展,但是在编码阶段按照增量方式展开。在这种模型下,用户可以及早的看到部分软件功能,及早的发现全面问题, 同时解决问题
-
投资回收期:累积的经济效益等于最初投资费用所需要的时间
-
工程特性:工程特性指根据软件开发项目的需要,总体上考虑的软件特性。其表现形式有可移植性、开发工具的可利用性、软件的可重用性、可维护性
-
信息冗余:信息冗余是指为检察或纠正信息在运算或传输中的错误需外加的一部分信息
-
程序设计环境:是指用于解决如何将规范说明转换为可工作的程序问题的一组软件工具的集合
-
系统合成环境:是指用于解决把多子系统集成为一个大系统的问题的软件工具的集合
-
文档副作用:指对可执行文件的修改没有反映到文档中产生的错误
-
数据集成:是指不同软件工程能相互交换数据
-
心理特性:是指影响程序员心理的语言特性。包括歧义性,简洁性,顺序性,局部性和传统性
-
专家估算方法:依靠一个或多个专家对要求的项目作出估算,其精确性取决于对专业估算项目的定性参数的了解和他们的经验
二:面向对象设计部分
- 一般-具体关系:一般-具体结构关系称为分类结构,也可以说是“或”关系,或者是“is a”关系。类的这种层次结构可用来描述现实世界中的一般化的抽象关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体、越细化
- 整体-部分关系:整体-部分结构关系称为组装结构,也可以说是“与”关系,或者是“hasa”关系。类的这种层次结构可用来描述现实世界中的类的组成的抽象关系,通常越在上层的类越具有整体性,越在下层的类越具有成员性
以上是关于软件工程导论题型大总结名词解释总结的主要内容,如果未能解决你的问题,请参考以下文章