软件工程期末复习一

以下成果是我和晓玉姐姐共同翻课本一个一个整理的,是我们两个人共同的成果,希望能好好学习,取得好成绩!

名词解释

软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件:

文档:是影响软件可维护性的决定因素。可以分为用户文档和系统文档两类。

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

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

软件生命周期:有软件定义、软件开发和运行维护三个时期组成。

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

软件生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也称为过程模型。

瀑布模型:唯一被广泛采用的生命周期模型,现在仍然是软件工程中应用最广泛的过程模型。

快速原型模型:快速建立起来的可以在计算机上运行的程序。它所能完成的功能往往是最终产品能完成的功能的一个子集。

增量模型:也称为渐增模型。为一系列的增量构件来设计编码,集成和测试,每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

极限编程:是敏捷过程中最富盛名的一个,把好的开发实践运用到极致。一种典型的开发方法,广泛应用于需求模糊且经常改变的场合。

结对编程:有两名开发人员在同一台计算机上共同编写解决同一个问题的程序代码,通常一个人编码,另一个人对代码进行审查与测试,以保证代码的正确性和可读性。是加强开发人员相互沟通和评审的一种方式。

代码重构在不改变系统行为的前提下,重新调整和优化系统的内部结构,以降低复杂性,消除冗余,增加灵活性和提高性能

可行性研究:进行一次大大压缩简化了系统的分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

技术可行性:使用现有的技术能否实现这个系统?

经济可行性:这个系统的经济效益能超过它的开发成本吗?

操作可行性:系统的操作方式在这个用户组织内行得通吗?

系统流程图:概括地描绘物理系统的传统工具。

DFD数据流图。是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据字典:关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

货币时间价值:用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入p元,则n年后可以得到的钱数为:F=P(1+i)n次方。

投资回收期:衡量一项开发工程的价值。使累计的经济效益等于最初投资所需要的时间。

纯收入:在整个生命周期之内系统的累计经济效益与投资之差。

需求分析:是软件定义时期的最后一个阶段,它的基本任务是准确的回答系统必须做什么这个问题。

SA:结构化分析方法

状态:是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

状态图:状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

软件设计:划分出组成系统的物理元素--程序,文件,数据库,人工过程和文档等。设计软件的结构。由系统设计阶段和结构设计阶段两个阶段组成。

模块化:把系统划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

信息隐蔽:设计和确定模块使得一个模块内包含的信息,对于不需要这些信息的模块来说是不能访问的。

逐步求精:是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。

模块独立性:模块化,抽象,信息隐藏和局部化概念的直接结果。

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

数据耦合:是低耦合,系统中至少必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有价值的功能。

内聚:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

功能内聚:根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的连接往往比较简单。如果模块内所有处理元素属于一个整体,完成一个单一的功能则称为功能内聚。

扇出:是一个模块直接控制的模块数目。

扇入:表明有多少个上级模块直接调用他。

模块的控制域:是这个模块本身及所有直接或间接从属于它的模块的集合。

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

层次图:描绘软件的层次结构。

结构图:软件结构设计的另一个有力工具。也是描绘软件结构的图形工具。

SD方法:面向数据流的设计方法。目标是给出设计软件结构的一个系统化的途径。

结构程序设计:如果一个程序的代码块仅仅通过顺序选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

系统响应时间:指从用户完成某个控制动作到软件给出预期的响应之间的这段时间。

PAD:问题分析图。 用二维树形结构的图来表示程序的控制流。

PDL:过程设计语言。也称为伪码。是用正文形式表示数据和处理过程的设计工具。

Jackson方法:著名的面向数据结构的设计方法。

流图:实质上是退化了的程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。

环形复杂度:定量度量程序的逻辑复杂度。

编码:把软件设计结果翻译成用某种程序设计语言书写的程序。

软件测试:为了发现程序中的错误而执行程序的过程。

穷举测试:把程序所有可能的执行路径都检查一遍的测试。

黑盒测试:如果已经知道了产品应该具有的功能,可以通过黑盒测试来检验是否每个功能都能正常使用。

功能测试:即黑盒测试

白盒测试:如果知道产品的内部工作过程,可以通过白盒测试来检验产品内部动作是否按照规格说明书的规定正常进行。

结构测试:即白盒测试

模块测试:把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案,目的是保证每个模块作为一个单元能正确运行。

单元测试:即模块测试

系统测试:把经过测试的子系统装配成一个完整的系统来测试。

集成测试:不论是子系统测试还是系统测试都兼有检测和组装两重含义,通常称为集成测试。

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

确认测试:即验收测试

渐增式测试:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完后再把下一个应测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增式测试

非渐增式测试:先分别测试每个模块,再把所有模块按设计要求放在一起,结合成所要的程序。

已管理级:软件机构对软件过程(过程模型和过程实例)规定了软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的(定量)

CMM:能力成熟度模型,是用于评价软件机构的软件过程能力成熟度的模型

变化控制:变化控制把人的规程和自动工具结合起来,以提供一个控制变化的机制

版本控制:版本控制联合使用规程和工具,以管理在软件工程过程中所创造的配置对象的不同版本

基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化

软件配置项:软件过程的输出信息可以分为三类,1.计算机程序(源代码和可执行程序)2.描述计算机程序的文档(供技术人员或用户使用)3.数据(程序内包含的或在程序外的)上述这些项组成了在软件过程中产生的全部信息,人们把它们统称为软件配置,而这些象就是软件配置项

软件配置管理:是在软件的整个生命期内管理变化的一组活动

走查:正式技术复审是软件质量保证的一种,包括走查和审查等具体方法,走查主要有下述两种方式,一参与驱动法二文档驱动法

软件质量:就是软件语言明确的和隐含的定义的需求相一致的程度

主程序员组:经验多,技术好,能力强的程序员作为主程序员,特性一,专业化二,层次化

机动时间:一个作业可以有的,全部机动时间等于它的结束时间的最迟时刻减去他开始事件的最早时刻再减去这个作业的持续时间

关键路径:有几个事件的最早时刻和最迟时刻相同,这些事件定义了关键路径

工程网络图:工程网络是制定进度计划时,另一种常用的图形工具,他同样能描绘任务分界情况,以及每项任务的开始时间和结束时间,此外,她还显示描述各个作业,彼此间的依赖关系,因此,工程网络是系统分析和系统设计的强有力的工具

COCOMO估算:COCOMO,是构造性成本模型的英文缩写

软件项目计划:

基于故障的测试:与传统的错误推测法类似,也是首先推测软件中可能有的错误,然后设计出最可能发现这些错误的测试用例,为了推测出软件中可能有的错误,应该仔细研究分析模型和设计模型,而且在很大程度上要依靠测试人员的经验和直觉

随机测试:用一些随机产生的测试用例测试

测试策略:测试软件的经典策略是从小型测试开始,逐步过渡到大型测试

单向关联:使用关联有两种可能的方式:单向遍历和双向遍历,某些关联只需要单向遍历,称为单向关联

窄菱形模式:一种多重继承的模式,出现属性及服务命名冲突可能性较大

软件重用:重用也叫再用后复用试纸同一事物不作修改或稍加变动就多次重复使用软件重用可分为三个层次,一知识重用二方法和标准的重用三软件成分的重用

类构件:

事件跟踪图:事件跟踪图实质上是扩充的脚本,可以认为事件跟踪图是简化的UML顺序图

事件:

功能模型:表示变化的系统的功能性质,它指明了系统应该做什么?因此更直接地反映了用户对目标系统的需求,由一组数据流图组成

动态模型:表示瞬时的行为化的系统的控制性质,它规定了对象模型中的对象的合法变化序列

对象模型:表示静态的结构化的系统的数据性质

限定关联:通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一

多态性:在类等级的不同层次中,可以共享一个行为的名字,然而,不同层次中的每个类,却各自按照自己的需要来实现这个行为,C++语言中多态性是通过虚函数来实现的

多重继承:指的是一个子类,可以同时多次继承同一个上层基类

单重继承:

继承:广义的说继承是指能够直接获得已有的性质和特性,而不必重复定义它们

UML:统一建模语言,模块彼此间作为机遇,面向对象技术的标准建模语言,使用,提供的类图来建立对象模型

模型:就是为了理解事物,而对事物做出的一种抽象,是对事物的一种无歧义的书面描述

重载:两种重载1.函数重载2.运算符重载,函数重载是指在同一作用域内的若干个参数特征不同的函数,可以使用相同的函数名字,运算符重载是指同一个运算符可以施加于不同类型的操作数上面

属性:就是类所定义的数据,它是对客观世界实体所具有的性质的抽象

方法:就是对象所能执行的操作也是类中所定义的服务方法,描述了对象执行操作的算法响应消息的方法,c++成员函数

类:就是对具有相同数据和相同操作的一组相似对象的定义,也就是说类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中,也包括对怎样创建该类的心对象的说明

软件可移植性:把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度

正向工程:也成为革新或改造这项活动,不仅从现有程序中恢复设计信息,而且使用该信息去改变或重构现有系统,以提高整体质量

逆向工程:是分析程序已变在比源代码更高的抽象层次上,创造出程序的某种表示的过程,也就是说,逆向工程是一个恢复设计结果的过程,逆向工程工具从现存的程序代码中抽取有关数据,体系结构和处理过程的设计信息

文档重构:

系统文档:只从问题定义需求说明到验收测试计划,这样一系列和系统实现有关的文档

用户文档:用户了解系统的第一步,他应该能使用户获得对系统的准确的初步印象

软件维护的副作用:

软件可维护性:

结构化维护:

预防性维护:当为了改进未来的口维护性或可靠性,或为了给未来的改进奠定更好的基础,而修改软件时的维护

完善性维护:在使用软件的过程中,用户往往提出增加新功能或修改已有功能的建议,还可以提出一般新的改进意见,这个时候进行的维护

适应性维护:为了和变化了的环境,适当的配合而进行的修改软件的活动是既必要又经常的维护活动

校正性维护:把诊断和改正错误的过程成为改正性维护

软件维护:软件已经交付使用,之后为了改正错误或满足新的需要而修改软件的过程

MTTF:软件的平均无故障时间,是系统按规格说明书规定成功的运行的,平均时间主要取决于系统中潜伏的错误的数目,一个重要的质量指标

MTTR:平均维修时间是修复一个故障平均需要用的时间,取决于维护人员的技术水平和对系统的熟悉程度,也和系统的可维护性有重要关系

软件的可用性:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率

软件可靠性:是程序在给定的时间间隔内按照规格说明书的规定成功的运行的概率

调试:也称为纠错,作为成功测试的后果出现,也就是说调试在测试发现错误之后排除错误的过程

等价划分:等价划分是一种黑盒测试技术,这种技术把程序的输入页划分成若干个数据类,据此导出测试用例

循环测试:是一种白盒测试技术,他专注于测试循环结构的有效性

条件测试:用条件测试技术设计出的测试用例,能够检查程序模块中包含的逻辑条件,目的不仅是检测程序条件中的错误,而且是检测程序中的其他错误

基本路径测试:一种白盒测试技术,使用这种技术设计测试用例时,首先,计算程序的环形复杂度,并用该复杂度为指南定义执行路径的基本集合,从该基本结合导出的测试用例,可以保证程序中的每条语句至少执行一次,而且每个条件在执行时都分别取真假两种值

路径覆盖:选取足够多测试用列式程序的,每条可能路径都至少执行一次,如果程序图中有环,则要求每个环至少经过一次

条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到可能的结果

语句覆盖:为了暴露程序中的错误,至少每个语句应该执行一次语句覆盖的含义是选择足够多的测试数据,使被测程序中,每个语句至少执行一次

Bata测试:有软件的最终用户们在一个或多个客户场所进行

Alpha测试:有用户在开发者的场所进行,并且在开发者对用户的指导下进行的测试

回归测试:就是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clark-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值