5软件工程名词解释整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件生存期:一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
2. 什么是软件危机?为什么会产生软件危机?软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题,主要包含二方面的问题,一是如何开发利用软件,二是如何维护数量不断膨胀的已有软件。产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
3.快速原型模型:所谓快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
瀑布模型:是将软件生命周期的各项活动规定为依线性顺序连接的若干阶段的模型,适合于软件需求很明确的软件项目。
增量模型(渐增模型):瀑布模型的顺序特征和快速原型模型的迭代特征相结合的产物。
螺旋模型:对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。
喷泉模型:以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型。
4.结构化分析方法(SA)是E.Yourdon提出,是使用数据流图DFD与数据字典DD,用来描述面向数据流问题的需求分析,适合于数据处理型的软件的需求描述。
核心思想是分解化简问题,将物理表示与逻辑表示分开,对系统进行数据与结构的抽象。
优点是表达方式比文字清晰、简明,易于交流与掌握。
缺点是不能表达复合逻辑的需求分析问题,不能详细描述加工。
5.结构化设计(SD)是使用最广泛的一种设计方法,该方法适合于软件系统的总体设计和详细设计,特别是将一个复杂的系统转换成模块化结构系统,该方法具有它优势。(相对独立,功能单一的模块结构;块内联系大,块间联系小的模块性能标准;采用模块结构图的描述方式)以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块。面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称结构化设计(sd)。
6.数据流图(ppt第二章18)数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
7.数据字典(ppt第二章39)是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。四类条目:数据流、数据项、数据存储、数据加工。
数据流图和数据字典共同构成系统的逻辑模型
数据字典内容:(1)数据流(2)数据流分量(数据元素)(3)数据存储(4)处理
8.什么是黑盒测试法?什么是白盒测试法?黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据,产生正确地输出信息。白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
黑盒测试和白盒测试的区别:前者基于功能,后者基于结构;
黑盒测试常用方法有:等价划分、边界值分析、错误推测、因果图等。
9.软件系统的测试基本步骤:
(1)模块测试(单元测试)
把每个模块作为一个单独的实体来测试。模块测试的目的是保证每个模块作为一个单元能正确运行。2)子系统测试(集成测试)
子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,着重测试模块的接口。
3)系统测试(集成测试)
系统测试是把经过测试的子系统装配成一个完整的系统来测试。不仅能发现设计和编码的错误,还应能验证系统确实能提供需要说明书中指定的功能,系统的动态特性也符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也能发现需求说明中的错误。
(4) 验收测试(确认测试)
验收测试把软件系统作为单一的实体进行测试。主要使用实际数据进行测试。验收测试的目的是验证系统确实能够满足用户的需要。
单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。
单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。
模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。
驱动模块(driver)
桩模块(stub) ──存根模块
10.驱动模块:接收测试数据,把这些数据传送给被测试的模块,并印出有关的结果。
11.桩模块:代替被测试的模块所调用的模块。
12.用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。
动态模型(ppt第九章28)动态模型表示瞬时的﹑行为化的系统的“控制”性质,它规定了对象模
型中的对象的合法变化序列。各对象之间相互触发(即作用),就形成了一系列的状态变化。通常,
用状态图来描绘对象的状态﹑触发状态转换的事件﹑以及对象的行为(对事件的响应)。是与时间和
变化有关的系统性质。该模型描述了系统的控制结构,他表示了瞬时的、行为化的系统控制性质。他
关心的是系统的控制,操作的执行顺序。他从对象的事件和状态的角度出发,表现了对象的相互关系。对象模型对象模型表示静态的、结构化的系统的“数据”性质。是对模拟客观实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
功能模型功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么“,因此更直接地反映了用户对目标系统的需求。
13.各种耦合(ppt第五章25)模块的独立程度由两个定性标准度量:内聚性和耦合性。
耦合:是对一个软件结构内不同模块之间互连程度的度量。
耦合性是对软件模块间互连程度的度量。耦合性强,标志互连的强,模块独立性差;耦合性弱,标志互连的弱,模块独立性强;耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。
模块间的耦合
前两个为低等耦
合中间两个为中
等耦合剩下三个为高等耦合
非直接耦合(Nondirect Coupling)两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。非直接耦合的模块独立性最强。
数据耦合(Data Coupling)一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。数据耦合是最弱的耦合。