软件工程导论第五版复习资料_第1页
软件工程导论第五版复习资料_第2页
软件工程导论第五版复习资料_第3页
软件工程导论第五版复习资料_第4页
软件工程导论第五版复习资料_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...wd......wd......wd...软件工程导论第一章软件工程学概述1、软件完成特点功能的程序以及数据构造和文档2、软件的特点〔1〕软件开发更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。软件开发、设计几乎都是从头开场,本钱和进度很难估计。〔2〕软件存在潜伏错误,硬件错误一般能排除。〔3〕软件开发成功后,只需对原版进展复制。〔4〕软件在使用过程中维护复杂:1〕纠错性维护—改正运行期间发现的潜伏错误;2〕完善性维护—提高或完善软件的性能;3〕适应性维护—修改软件,以适应软硬件环境的变化;4〕预防性维护—改良软件未来的可维护性和可靠性。〔5〕软件不会磨损和老化。3、软件危机及软件危机的表现软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。软件危机的表现1〕对软件开发本钱和进度的估计常常很不准确。常常出现实际本钱比估算本钱高出一个数量级、实际进度比方案进度拖延几个月甚至几年的现象,从而降低了开发商的信誉,引起用户不满。2〕用户对已完成的软件不满意的现象时有发生。3〕软件产品的质量往往是靠不住的。4〕软件常常是不可维护的。5〕软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。6〕软件本钱在计算机系统总本钱中所占比例逐年上升。特别是软件维护本钱迅速增加,已经占据软硬件总本钱的40%~75%。7〕开发生产率提高的速度远跟不上软件需求。4、软件工程及软件工程的特性 软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。软件工程的特性:1〕软件工程关注于大型程序的构造2〕软件工程的中心课题是控制复杂性 3〕软件经常变化 4〕开发软件的效率非常重要5〕和谐地合作是开发软件的关键6〕软件必须有效地支持它的用户7〕在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品5、软件工程的根本原理用分阶段的生存周期方案严格管理 坚持进展阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应少而精 成认不断改良软件工程实践的必要性6、软件生存周期一个软件从得出开发要求开场直到该软件报废为止的时期。软件生命周期由软件定义、软件开发和运行维护〔也称为软件维护〕3个时期组成,每个时期又进一步划分成假设干个阶段。7、瀑布模型模型严格按照软件生存周期各个阶段来进展开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品〔主要是文档〕进展评审,通过后才能开场下一阶段的工作。因此,它是一种以文档作为驱动的模型。瀑布模型特点1〕阶段间具有顺序性和依赖性2〕推迟实现的观点3〕质量保证的观点第二章可行性研究1、可行性研究的任务概括地讲,可行性研究包括两大局部的分析研究,分别是分析建设系统的必要性分析建设系统的可能具体,主要任务1〕进一步分析和澄清问题定义。2〕导出系统的高层逻辑模型。从系统逻辑模型出发,探索假设干种系统实现方案。对每种方案都至少要从下述几方面研究其可行性:经济可行性技术可行性法律可行性操作可行性3〕对以后的行动提出建议选择一种最正确方案,并为系统制定一个初步的开发方案。2、可行性研究的步骤1〕复查系统规模和目标。2〕研究现有的系统。3〕导出新系统高层逻辑模型。4〕进一步定义问题5〕导出和评价供选择的解法。6〕推荐行动方针7〕草拟开发方案 8〕书写文档提交审查。3、系统流程图〔不要求画图〕系统流程图是概括地描绘物理系统的传统工具。4、数据流图〔要求画图〕数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。5、数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。6、本钱效益分析1〕货币的时间价值:指同样数量的货币随时间的不同具有不同的价值。一般货币在不同时间的价值可用年利率来折算。设:i表示年利率,现在存入P元,n年后的价值为F元,则有:F=P〔1+i〕n如果n年后能收入F元,这些钱折算成现在的价值称为折现值,折现公式为:P=F/〔1+i〕n2〕纯收入。是指在整个生存周期系统的累计收入的折现值PT与总本钱折现值ST之差,以T表示,则有:T=PT–ST3〕投资回收率。P=F1/(1+j)+F2/(1+j)^2+…+Fn(1+j)^nP:现在的投资额Fi:第i年底的效益〔i=1,2,3,…,n〕n:系统使用寿命j:投资回收率第三章需求分析1、需求分析的任务确定对系统的综合要求功能需求性能需求可靠性和可用性需求出错处理需求接口需求约束逆向需求将来可能提出的要求分析系统的数据要求导出系统的逻辑模型修正系统开发方案2、与用户沟通获取需求的方法访谈:正式的,非正式的面向数据流自顶向下求精简易的应用规格说明技术快速建设软件原型3、状态转换图状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。1〕符号 初态用实心圆表示。 终态用一对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表示。状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。 2〕活动表的语法格式:事件名(参数表)/动作表达式 3〕事件表达式的语法如下: 事件说明[守卫条件]/动作表达式 其中, 事件说明的语法为:事件名(参数表)。4、层次方框图〔在需求分析阶段使用〕层次方框图用树形构造的一系列多层次的矩形框描绘数据的层次构造。5、Warnier图〔在需求分析阶段使用〕Warnier图也用树形构造描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。 用Warnier图可以说明信息的逻辑组织6、IPO图〔在需求分析阶段使用〕IPO图是输入、处理、输出图的简称,它是美国IBM公司开展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。7、验证软件需求验证需求的一致性:所有需求必须是一致的验证需求的实现性:指定需求式可以实现的。对现有硬件很好预测,但软件技术很难预测,只能根据现有技术水平出发判断需求的实现性验证需求的完整性和有效性:完整性,规格说明书应该包括用户所需的每个功能的性能。有效性,需求是正确有效的,确实能解决用户面对的问题。第五章总体设计〔概要设计〕1、总体设计过程1〕设想供选择的方案2〕选取合理的方案3〕推荐最正确方案4〕功能分解5〕设计软件构造6〕设计数据库7〕制定测试方案8〕书写文档9〕审查和复审2、设计原理〔模块化、抽象、逐步求精、信息隐藏与局部化〕〔小概念〕模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。抽象是控制复杂性的根本策略。“抽象〞要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。在上述由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,同时却忽略低层细节。事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。求精则帮助设计者在设计过程中逐步提醒出低层细节。这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。3、模块独立原理开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件构造,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。4、耦合和内聚模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖(连接)的严密程度; 内聚衡量一个模块内部各个元素彼此结合的严密程度。以下分别详细阐述。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。设计软件时,应该能够识别内聚度的上下,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。5、启发规则1〕改良软件构造提高模块的独立性 2〕模块规模应该适中 3〕深度、宽度、扇出和扇入都应适当 4〕模块的作用范围应在控制范围之内 5〕力争降低模块接口的复杂程度 6〕设计单入口单出口的模块 7〕模块功能应该可以预测6、描绘软件构造的图形工具〔层次图、HIPO图、构造图〕 层次图用来描绘软件的层次构造。虽然层次图与需求分析中介绍的描绘数据构造的层次方框图一样,但是表现的内容却完全不同。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。HIPO图是美国IBM公司创造的“层次图加输入/处理/输出图〞的英文缩写。为了能使HIPO图具有可追踪性,在H图〔层次图〕里除了最顶层的方框之外,每个方框都加了编号。Yourdon提出的构造图是进展软件构造设计的另一个有力工具。构造图和层次图类似,也是描绘软件构造的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头〔或直线〕表示模块的调用关系。在构造图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。7、面向数据流的设计方法变换分析变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件构造。1〕重画数据流图;确定其具有变换流特征。2〕在数据流图上区分系统的逻辑输入、逻辑输出和中心变换局部3〕进展一级分解,设计系统模块构造的顶层和第一层4〕进展二级分解,设计输入、中心变换、输出局部的中、下层模块事务分析与变换分析一样,事务分析也是从分析数据流图开场,自顶向下,逐步分解,建设系统的构造图。主要区别由数据流图到软件构造的映射方法不同。在数据流具有明显的事务特点时,也就是一个明显的事务中心时,采用事务分析。第六章详细设计1、构造程序设计构造化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制构造。构造化程序设计的特点:1)整个程序模块化。2)每个模块只有一个入口和一个出口。3)每个模块都应能单独执行,且无死循环。4)采用自顶向下。逐步求精的方法。2、人机界面设计〔设计问题、设计过程、人机界面设计指南〕设计问题: 1〕系统响应时间;2〕用户帮助设施;3〕出错信息处理;4〕命令交互。设计过程用户界面设计是一个迭代过程,直至与用户模型和系统假想一致为止。界面设计完毕界面设计完毕修改设计创立新界面原型用户评审界面创立界面原型1设计人员分析用户评审意见 人机界面指南1〕一般交互指南:涉及信息显示、数据输入和系统整体控制,这类指南是全局性的。 2〕信息显示指南:信息显示的形式和方式的一些原则:a.仅显示与当前工作内容的有关的信息;b.采用简单明了的表达方式,防止用户置身于大量的数据中;c.使用统一的标号、标准的缩写和预先定义好的颜色;d.允许用户对可视环境进展维护,如放大、缩小图象;e.只显示有意义的出错信息;f.用大、小写,缩进和文本分组以帮助理解;g.用窗口〔在适合的情况下〕分隔不同种类的信息;h.用“模拟〞显示方式表示信息,以使信息更容易被用户提取;i.高效地使用显示屏。 3〕数据输入指南:数据输入的一般准则:尽量减少用户输入的动作;保持信息显示与数据输入之间的一致性;允许用户自定义输入;采用灵活多样的交互方式,允许用户自选输入方式;隐藏当前状态下不可选用的命令;让用户控制交互过程;为所有输入动作提供帮助信息;消除冗余的输入。去除所有无实际意义的输入,尽量采用缺省值。3、详细设计工具〔过程设计工具〕〔绘图要求〕程序流程图程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法,能直观地描述过程的控制流程,便于初学者掌握。然而它也是用得最混乱的一种方法。〔a〕选择〔分支〕;〔b〕注释;〔c〕预先定义的处理;〔d〕多分支;〔e〕开场或停顿〔f〕准备;〔g〕循环上界限;〔h〕循环下界限;〔i〕虚线;〔j〕省略符;〔k〕并行方式;〔l〕处理;〔m〕输入输出;〔n〕连接;〔0〕换页连接;〔p〕控制流盒图〔N-S图〕盒图,又称为N-S图。每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图可以在一张纸上容纳下就行(a)顺序(b)IF_THEN_ELSE型分支(c)CASE型多分支(d)循环(e)调用子程序APAD图PAD是问题分析图〔ProblemAnalysisDiagram〕的英文缩写,它是由程序流程图演化而来,用二维树形构造的图来表示程序的控制流,将这种图翻译成程序代码比拟容易。判定表判定表由4局部组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用PDL过程设计语言(PDL)是一种用于描述功能模块的算法设计和加工细节的语言。它是一种伪码。 它是用正文形式表示数据和处理过程的设计工具。〔例子如下〕4、程序复杂度的度量McCabe方法McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。所谓流图实质上是“退化了的〞程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。掌握将伪码—程序流图—环形复杂度计算—路径测试这类题型。环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。Halstead方法Halstead方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的复杂程度。 令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2 详细设计完成之后,可以知道程序中使用的不同运算符(包括关键字)的个数n1,以及不同操作数(变量和常数)的个数n2。Halstead给出预测程序长度的公式如下:H=n1*log2n1+n2*log2n2 Halstead还给出了预测程序中包含错误的个数的公式如下:E=N*log2(n1+n2)/3000第七章实现1、编码中需要注意的地方 A.选择程序设计语言选择语言主要实用标准:1〕系统用户的要求2〕可以使用的编译程序3〕可以得到的软件工具4〕工程规模5〕程序员的知识6〕软件可移植性要求7〕软件的应用领域 B.编码风格源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则。1〕程序内部的文档2〕数据说明 3〕语句构造4〕输入输出 5〕效率2、软件测试根本知识软件测试目标(1)测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3)成功的测试是发现了至今为止尚未发现的错误的测试。软件测试准则(1)所有测试都应该能追溯到用户需求。 (2)应该远在测试开场之前就制定出测试方案。 (3)把Pareto原理应用到软件测试中。(4)应该从“小规模〞测试开场,并逐步进展“大规模〞测试。 (5)穷举测试是不可能的。(6)为了到达最正确的测试效果,应该由独立的第三方从事测试工作。软件测试方法测试任何产品都有两种方法: (1)黑盒测试(又称为功能测试) 如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用; (2)白盒测试(又称为构造测试) 如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进展。软件测试步骤(1)模块测试 (2)子系统测试 (3)系统测试 (4)验收测试 (5)平行运行3、测试阶段的信息流 (1)软件配置:包括需求说明书、设计说明书和源程序清单等; (2)测试配置:包括测试方案和测试方案。4、单元测试 单元测试集中检测软件设计的最小单元——模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进展测试,以便发现模块内部的错误测试重点 (1)模块接口:对通过模块接口的数据流进展测试(2)局部数据构造:局部数据构造是常见的错误来源。(3)重要的执行通路:由于通常不可能进展穷尽测试,因此,在单元测试期间选择最有代表性、最可能发现错误的执行通路进展测试就是十分关键的。(4)出错处理通路 (5)边界条件:单元测试中最后的也可能是最重要的任务。5、集成测试:是测试和组装软件的系统化技术模块组装的两种方法: 一种方法是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法; 另一种方法是把下一个要测试的模块同已经测试好的那些模块结合起来进展测试,测试完以后再把下一个应该测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增式测试,这种方法实际上同时完成单元测试和集成测试。当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。6、确认测试:也称为验收测试,它的目标是验证软件的有效性。验证:指的是保证软件正确地实现了某个特定要求的一系列活动;确认:指的是为了保证软件确实满足了用户需求而进展的一系列活动7、白盒测试逻辑覆盖〔8种逻辑覆盖〕1.语句覆盖 语句覆盖的含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次。2.判定覆盖 判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。3.条件覆盖 条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。4.判定/条件覆盖 既然判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,自然会提出一种能同时满足这两种覆盖标准的逻辑覆盖,这就是判定/条件覆盖。5.条件组合覆盖 条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。6.点覆盖 满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过流图的每个结点一次7.边覆盖为了满足边覆盖的测试标准,要求选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。通常边覆盖和判定覆盖是一致的。8.路径覆盖 路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)控制构造测试〔根本路径测试〕使用根本路径测试技术设计测试用例的步骤如下: 第一步:根据过程设计结果画出相应的流图。第二步:计算流图的环形复杂度。环形复杂度定量度量程序的逻辑复杂性。 第三步:确定线性独立路径的根本集合。所谓独立路径是指至少引入程序的一个新处理语句集合或一个新条件的路径,用流图术语描述,独立路径至少包含一条在定义该路径之前不曾用过的边。使用根本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数是确保程序中所有语句至少被执行一次所需的测试数量的上界。通常在设计测试用例时,识别出判定结点是很有必要的。本例中结点2、3、5、6和10是判定结点。 第四步:设计可强制执行根本集合中每条路径的测试用例。 应该选取测试数据使得在测试每条路径时都适当地设置好了各个判定结点的条件。 在测试过程中,执行每个测试用例并把实际输出结果与预期结果相比拟。一旦执行完所有测试用例,就可以确保程序中所有语句都至少被执行了一次,而且每个条件都分别取过true值和false值。8、黑盒测试等价划分等价类划分的思想是将输入数据按有效的〔合理的〕和无效的〔不合理的〕划分成假设干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。边界值分析边界值分析〔boundaryvalueanalysis,BVA〕是指设计测试用例,使程序在输入或输出的边界值或者边界值左右的值执行。错误推测错误推测法的根本思想是:程序测试员通过已经掌握的测试理论和实际测试中积累的经历,推测程序在哪些情况下可能发生错误,并将可能发生错误的情况列出,然后为每一可能发生错误的情况各设计一个测试用例。组合数据9、调试调试则是在进展了一次成功的测试之后立即开场的。 调试的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。第八章维护1、软件维护的定义软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。2、软件维护分类改正性维护——为改正软件系统中潜藏的错误而进展的活动。 适应性维护——为适应软件运行环境的变化而修改软件的活动 完善性维护——根据用户在软件使用过程中提出的建设性意见而进展的维护活动。 预防性维护——为了进一步改善软件系统的可维护性和可靠性,并为以后的改良奠定根基。第九章面向对象分析1、面向对象的几个概念A.对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。对象的特点 (1)以数据为中心。 (2)对象是主动的。 (3)实现了数据封装。 (4)本质上具有并行性。 (5)模块独立性好。 B.类。类表示某些对象在属性和操作方面的共同特征。类是支持继承的抽象数据类型,而对象就是类的实例。 C.实例实例就是由某个特定的类所描述的一个具体的对象。 D.消息消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其它对象发送消息以请求服务,也可以响应其它对象传来的消息,完成自身固有的某些操作,从而服务于其它对象。E.方法方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。 F.属性属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。 G.封装在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。 H.继承广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。 I.多态性(polymorphism)在面向对象理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到一样的消息时,得到不同的结果。多态性包含编译时的多态性运行时的多态性两大类。 J.重载(overloading)有两种重载:函数重载是指在同一作用域内的假设干个参数特征不同的函数可以使用一样的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。重载进一步提高了面向对象系统的灵活性和可读性K.聚集现实世界普遍存在局部—整体关系。局部—整体关系在OO方法学中表示为类之间的聚集关系。在聚集关系下,局部类的对象是整体类对象的一个组成局部。2、UML根基知识第十三章软件工程管理1、软件规模的估算A.代码行技术度量是以软件的代码行〔LOC,LineofCode〕数为根基的直接度量。设:L表示软件的代码行数,单位为KLOC〔千行代码〕或LOC;E表示开发软件所需工作量,单位为人月〔PM〕或人年〔PY〕;S表示软件本钱,单位为美元或元;N表示错误个数;Pd表示软件文档页数;M表示开发所用的人数。则有: 1)软件开发的生产率P〔即平均每人月开发的代码行数,以LOC/PM为单位〕为:P=L/E2〕开发每行代码的平均本钱C〔以美元/LOC或元/LOC为单位〕为:C=S/L3〕代码出错率EQR〔即每千行代码的平均错误数,以个/KLOC为单位〕为:EQR=N/L4〕软件的文档率D〔即平均每千行代码的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论