版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程导论第一章 软件工程学概述1、软件完成特点功能的程序以及数据结构和文档2、软件的特点(1)软件开发更依赖于开发人员的业务素质、 智力、 人员的组织、 合作和管理。 软件开发、 设计几乎都是从头开始,成本和进度很难估计。(2)软件存在潜伏错误,硬件错误一般能排除。(3)软件开发成功后,只需对原版进行复制。(4)软件在使用过程中维护复杂:1)纠错性维护 改正运行期间发现的潜伏错误;2)完善性维护 提高或完善软件的性能;3)适应性维护 修改软件,以适应软硬件环境的变化;4)预防性维护 改进软件未来的可维护性和可靠性。(5)软件不会磨损和老化。3、软件危机及软件危机的表现 软件危机是指在计算机
2、软件开发、使用与维护过程中遇到的一系列严重问题和难题。 软件危机的表现1)对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、 实际进度比计划进度拖延几个月甚至几年的现象, 从而降低了开发商的信誉, 引起 用户不满。2)用户对已完成的软件不满意的现象时有发生。3)软件产品的质量往往是靠不住的。4)软件常常是不可维护的。5)软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作 带来许多难以想象的困难和难以解决的问题。6)软件成本在计算机系统总成本中所占比例逐年上升。特别是软件维护成本迅速增加, 已经占据软硬件总成本的 40%75% 。7)开发生
3、产率提高的速度远跟不上软件需求。4、软件工程及软件工程的特性软件工程是用工程、 科学和数学的原则与方法开发、 维护计算机软件的有关技术和管理 方法 。软件工程的特性:1)软件工程关注于大型程序的构造2)软件工程的中心课题是控制复杂性3)软件经常变化4)开发软件的效率非常重要5)和谐地合作是开发软件的关键6)软件必须有效地支持它的用户7)在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品5、软件工程的基本原理用分阶段的生存周期计划严格管理 坚持进行阶段评审 实行严格的产品控制 采用现代程序设计技术 结果应能清楚地审查 开发小组的人员应少而精 承认不断改进软件工程实践的必要性6、
4、软件生存周期 一个软件从得出开发要求开始直到该软件报废为止的时期。软件生命周期由软件定义、 软件开发和运行维护(也称为软件维护) 3 个时期组成,每个时期又进一步划分成若干个阶 段。7、瀑布模型 模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输 入,并强调每一阶段的严格性。 它规定了各阶段的任务和应提交的成果及文档, 每一阶段的 任务完成后,都必须对其阶段性产品 (主要是文档)进行评审,通过后才能开始下一阶段的 工作。因此,它是一种以文档作为驱动的模型。瀑布模型特点1)阶段间具有顺序性和依赖性2)推迟实现的观点3)质量保证的观点第二章 可行性研究1、可行性研究的任务
5、概括地讲,可行性研究包括两大部分的分析研究,分别是 分析建立系统的必要性 分析建立系统的可能 具体,主要任务1)进一步分析和澄清问题定义。2)导出系统的高层逻辑模型。从系统逻辑模型出发,探索若干种系统实现方案。对每种方案都至少要从下述几方面研究其可行性:a. 经济可行性b. 技术可行性c. 法律可行性d. 操作可行性3)对以后的行动提出建议选择一种最佳方案,并为系统制定一个初步的开发计划。2、可行性研究的步骤1)复查系统规模和目标。2)研究现有的系统。3)导出新系统高层逻辑模型。4)进一步定义问题5)导出和评价供选择的解法。6)推荐行动方针7)草拟开发计划8)书写文档提交审查。3、系统流程图(
6、不要求画图) 系统流程图是概括地描绘物理系统的传统工具。4、数据流图(要求画图)数据流图 (DFD) 是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所 经受的变换。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它, 因此是分析员与用户之间极好的通信工具。在数据流图中没有任何具体的物理部件, 它只是描绘数据在软件中流动和被处理的逻辑 过程。数据的源点/终点变换数据的处理数据存储数据A和B同时输人才僥变換成数据cSfffi A变换成0 ffl C数眼A或B”或A和B同吋输人变换成数撫A变换成B或G或BflK貝有数JB A或只仃数据B(但不能A . B 同时)
7、输入时变换成CS(#M塹换成B或C肌不能变换成B SIC(b)5、数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集 合。数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。6、成本效益分析1)货币的时间价值:指同样数量的货币随时间的不同具有不同的价值。 一般货币在不同时间的价值可用年利率来折算。设:i表示年利率,现在存入 P元,n年后的价值为F元,贝y有:F=P (1 + i ) n如果n年后能收入F元,这些钱折算成现在的价值称为折现值,折现公式为:P = F /( 1 + i )n2)纯收入。是指在整个生存周期系统的累计收入的折现值Pt与
8、总成本折现值 S 丁之差,以T表示,则有:T= Pt -St3) 投资回收率。P=F1心+j)+F2/(1+j)A2+ , +Fn (1+j)5P:现在的投资额 Fi:第i年底的效益(i=1 , 2, 3, , , n) n:系统使用寿命 j:投资回收率第三章 需求分析1、需求分析的任务确定对系统的综合要求1) 功能需求2) 性能需求3) 可靠性和可用性需求4) 出错处理需求5) 接口需求6) 约束7) 逆向需求8) 将来可能提出的要求 分析系统的数据要求 导出系统的逻辑模型 修正系统开发计划2、与用户沟通获取需求的方法访谈 :正式的,非正式的 面向数据流自顶向下求精 简易的应用规格说明技术
9、快速建立软件原型3、状态转换图状态转换图 (简称为状态图 )通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外, 状态图还指明了作为特定事件的结果系统将做哪些动作 (例如, 处理数据 )。1 )符号 初态用实心圆表示。 终态用一对同心圆 (内圆为实心圆 )表示。 中间状态用圆角矩形表示。 状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。2) 活动表的语法格式:事件名 (参数表 )/动作表达式3) 事件表达式的语法如下: 事件说明守卫条件动作表达式 其中, 事件说明的语法为:事件名 (参数表 )。状态2初始事件状态变量1活动表1丿事件表达式状态变量2结束事件活动
10、表24、层次方框图(在需求分析阶段使用)层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。5、Warnier图(在需求分析阶段使用)Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描 绘手段。用Warnier图可以表明信息的逻辑组织6、IPO图(在需求分析阶段使用)IPO图是输入、处理、输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。7、验证软件需求验证需求的一致性:所有需求必须是一致的 验证需求的实现性:指定需求式可以实现的。对现有硬件很好预测,但软件技术很难预 测,只能根据现有
11、技术水平出发判断需求的实现性验证需求的完整性和有效性: 完整性,规格说明书应该包括用户所需的每个功能的性能。 有效性,需求是正确有效的,确实能解决用户面对的问题。第五章总体设计(概要设计)1总体设计过程1)设想供选择的方案 2)选取合理的方案3)推荐最佳方案4 )功能分解5)设计软件结构6)设计数据库7)制定测试计划8 )书写文档9)审查和复审2、设计原理(模块化、抽象、逐步求精、信息隐藏与局部化)(小概念)模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能, 把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。抽象是控制复杂性的基本策略。“抽象”要求人们将
12、注意力集中在某一层次上考虑问题, 而忽略那些低层次的细节。软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。在上述由高级 抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,同时却忽略低层细节。事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。求精则帮助设计者在设计过程中逐步揭示出低层细节。这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信
13、息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。3、模块独立原理开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构, 使得每个模块完成一个相对独立的特定子功能,并 且和其他模块之间的关系很简单。4、耦合和内聚模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖 (连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。
14、尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内 容耦合。设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。5、启发规则1)改进软件结构提高模块的独立性2)模块规模应该适中3)深度、宽度、扇出和扇入都应适当4)模块的作用范围应在控制范围之内5)力争降低模块接口的复杂程度6)设计单入口单出口的模块7)模块功能应该可以预测6、 描绘软件结构的图形工具(层次图、HIPO图、结构图)层次图 用来描绘软件的层次结构。 虽然层次图与需求分析中介绍的描绘数据结构的层次方框图相同,但是表现的内容却完全不同。层次图中的一个矩形框代表一
15、个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。HIPO图是美国IBM公司发明的层次图加输入/处理/输出图的英文缩写。为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:Yourdon提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似, 也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进尾部是空a.选
16、择调用b.循环调用7、面向数据流的设计方法变换分析经过这些步骤把具有变换流特点的数据流图按预先变换分析是一系列设计步骤的总称, 确定的模式映射成软件结构。1)重画数据流图;确定其具有变换流特征。2)在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分3)进行一级分解,设计系统模块结构的顶层和第一层4)进行二级分解,设计输入、中心变换、输出部分的中、下层模块事务分析与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。主要区别由数据流图到软件结构的映射方法不同。在数据流具有明显的事务特点时,也就是一个明显的事务中心时,采用事务分析。第六章详细设计1结构程序设计结
17、构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。结构化程序设计的特点:1)整个程序模块化。2)每个模块只有一个入口和一个出口。3)每个模块都应能单独执行,且无死循环。4)采用自顶向下。逐步求精的方法。2、人机界面设计(设计问题、设计过程、人机界面设计指南)设计问题:1)系统响应时间;2 )用户帮助设施;3 )出错信息处理;4)命令交互。设计过程人机界面指南1)一般交互指南:涉及信息显示、数据输入和系统整体控制,这类指南是全局性 的。2)信息显示指南:信息显示的形式和方式的一些原则:a.仅显示与当前工作内容的有关的信息;b采用简单明了的表达方式,避免用
18、户置身于大量的数据中;c. 使用统一的标号、标准的缩写和预先定义好的颜色;d. 允许用户对可视环境进行维护,如放大、缩小图象;e. 只显示有意义的出错信息;f. 用大、小写,缩进和文本分组以帮助理解;g. 用窗口(在适合的情况下)分隔不同种类的信息;h. 用“模拟”显示方式表示信息,以使信息更容易被用户提取;i. 高效地使用显示屏。3)数据输入指南:数据输入的一般准则:尽量减少用户输入的动作;保持信息显示与数据输入之间的一致性;允许用户自定义输入;采用灵活多样的交互方式,允许用户自选输入方式; 隐藏当前状态下不可选用的命令; 让用户控制交互过程;为所有输入动作提供帮助信息;消除冗余的输入。去除
19、所有无实际意义的输入,尽量采用缺省值。3、详细设计工具(过程设计工具)(绘图要求)程序流程图程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法,能直观地描述过程的控制流程,便于初学者掌握。然而它也是用得最混乱的一种方法。(a)(f)(I)盒图选择(分支);(b)注释; 准备;(g)循环上界限; 处理;(m)输入输出;(N-S 图)盒图,又称为 N-S图。(10(c)预先定义的处理;(h)循环下界限;(d)多分支;(e)开始或停止(i)虚线;(j)省略符;(k)并行方式;(n)连接;(0)换页连接;(p)控制流每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,
20、在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制, 只要整张图可以在一张纸上容纳下就行第个任务第二个任务第三午任务归)卷件ELSE部分THEN部分(b)CASE条件/值丨值213 +CASE 1 部分CASE 2 部分CASE « 部分也)命环条件(e)(d)(a)顺序(b)IF_THEN_ELSE型分支(c)CASE型多分支(d)循环(e)调用子程序A PAD图将这种图翻译PAD是问题分析图(Problem Analysis Diagram )的英文缩写, 它是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流, 成程序代码比较容易。P1P2b.if-then-e
21、lse 选择c.case多分支选择a.顺序判定表判定表由4部分组成,左上部列出所有条件, 左下部是所有可能做的动作, 右上部 是表示各种条件组合的一个矩阵, 右下部是和每种条件组合相对应的动作。 判定表右半 部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应 关系。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因 此易于掌握和使用PDL过程设计语言(PDL)是一种用于描述功能模块的算法设计和加工细节的语言。它是 一种伪码。它是用正文形式表示数据和处理过程的设计工具。(例子如下)St
22、artBegin loopDo while L1IF A>0Then A2Else A1End if51IF B>0Then B2Begin loopDo while L2CEnd doEnd loopElse B1End if52End doEnd loopDstop4、程序复杂度的度量McCabe方法McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的 结果称为程序的环形复杂度。所谓流图实质上是 退化了的I程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。掌握将伪码一程序流图一环形复杂度计算一路径测试这类题型。可以
23、用环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,下述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详细设计完成之后,可以知道程序中
24、使用的不同运算符(包括关键字)的个数n1,以及不同操作数 (变量和常数 )的个数 n2 。 Halstead 给出预测程序长度的公式如下: H=n1*log 2n1+n2*log 2n2Halstead还给出了预测程序中包含错误的个数的公式如下:E=N*log 2(n1+n2)/3000第七章 实现1、编码中需要注意的地方A. 选择程序设计语言选择语言主要实用标准:1) 系统用户的要求2) 可以使用的编译程序3) 可以得到的软件工具4) 工程规模5) 程序员的知识6) 软件可移植性要求7) 软件的应用领域B. 编码风格源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,
25、应该遵循下述规则。1) 程序内部的文档2) 数据说明3) 语句构造4) 输入输出5) 效率2、软件测试基本知识 软件测试目标(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3) 成功的测试是发现了至今为止尚未发现的错误的测试。 软件测试准则(1) 所有测试都应该能追溯到用户需求。(2) 应该远在测试开始之前就制定出测试计划。(3) 把 Pareto 原理应用到软件测试中。应该从小规模 测试开始,并逐步进行大规模 测试。穷举测试是不可能的。(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。 软件测试方法测试任何产
26、品都有两种方法:(1) 黑盒测试(又称为功能测试)如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使 用;(2) 白盒测试(又称为结构测试)如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。软件测试步骤(1) 模块测试(2) 子系统测试(3) 系统测试(4) 验收测试(5) 平行运行3、测试阶段的信息流(1) 软件配置:包括需求说明书、设计说明书和源程序清单等;(2) 测试配置:包括测试计划和测试方案。4、单元测试单元测试集中检测软件设计的最小单元一一模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了
27、编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误 测试重点(1) 模块接口:对通过模块接口的数据流进行测试(2) 局部数据结构:局部数据结构是常见的错误来源。(3) 重要的执行通路:由于通常不可能进行穷尽测试,因此,在单元测试期间选择最有 代表性、最可能发现错误的执行通路进行测试就是十分关键的。(4) 出错处理通路边界条件:单元测试中最后的也可能是最重要的任务。5、集成测试:是测试和组装软件的系统化技术模块组装的两种方法:一种方法是先分别测试每个模块,再把所有模块按设计要求放在一起结合 成所要的程序,这种方法称为非渐增式测试方法;另一种方法是
28、把下一个要测试的模块同已经测试好的那些模块结合起来 进行测试, 测试完以后再把下一个应该测试的模块结合进来测试。 这种每次 增加一个模块的方法称为渐增式测试, 这种方法实际上同时完成单元测试和 集成测试。当使用渐增方式把模块结合到程序中去时, 有自顶向下和自底向上两种集 成策略。6、确认测试: 也称为验收测试,它的目标是验证软件的有效性。 验证:指的是保证软件正确地实现了某个特定要求的一系列活动; 确认:指的是为了保证软件确实满足了用户需求而进行的一系列活动7、白盒测试逻辑覆盖( 8 种逻辑覆盖)1. 语句覆盖 语句覆盖的含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次。2. 判
29、定覆盖判定覆盖又叫分支覆盖, 它的含义是, 不仅每个语句必须至少执行一次, 而且每个判定 的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。3. 条件覆盖条件覆盖的含义是, 不仅每个语句至少执行一次, 而且使判定表达式中的每个条件都取 到各种可能的结果。4. 判定 /条件覆盖 既然判定覆盖不一定包含条件覆盖, 条件覆盖也不一定包含判定覆盖, 自然会提出一种 能同时满足这两种覆盖标准的逻辑覆盖,这就是判定/条件覆盖。5. 条件组合覆盖条件组合覆盖是更强的逻辑覆盖标准, 它要求选取足够多的测试数据, 使得每个判定表 达式中条件的各种可能组合都至少出现一次。6. 点覆盖满足
30、点覆盖标准要求选取足够多的测试数据, 使得程序执行路径至少经过流图的每个结 点一次7. 边覆盖为了满足边覆盖的测试标准, 要求选取足够多测试数据, 使得程序执行路径至少经过流 图中每条边一次。通常边覆盖和判定覆盖是一致的。8. 路径覆盖 路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次 )控制结构测试(基本路径测试) 使用基本路径测试技术设计测试用例的步骤如下: 第一步:根据过程设计结果画出相应的流图。 第二步:计算流图的环形复杂度。环形复杂度定量度量程序的逻辑复杂性。 第三步:确定线性独立路径的基本集合。所谓独立路径是指至少
31、引入程序的一个新处理语句集合或一个新条件的路径, 用流 图术语描述,独立路径至少包含一条在定义该路径之前不曾用过的边。使用基本路径测试法设计测试用例时, 程序的环形复杂度决定了程序中独立路径的 数量,而且这个数是确保程序中所有语句至少被执行一次所需的测试数量的上界。通常在设计测试用例时,识别出判定结点是很有必要的。本例中结点2、3、5、6 和 10 是判定结点。第四步:设计可强制执行基本集合中每条路径的测试用例。 应该选取测试数据使得在测试每条路径时都适当地设置好了各个判定结点的条件。 在测试过程中, 执行每个测试用例并把实际输出结果与预期结果相比较。 一旦执行完所 有测试用例,就可以确保程序
32、中所有语句都至少被执行了一次,而且每个条件都分别取过 true 值和 false 值。8、黑盒测试 等价划分等价类划分的思想是将输入数据按有效的 (合理的)和无效的 (不合理的)划分成若干 个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。边界值分析边界值分析( boundary value analysis , BVA )是指设计测试用例,使程序在输入或输出 的边界值或者边界值左右的值执行。错误推测错误推测法的基本思想是: 程序测试员通过已经掌握的测试理论和实际测试中积累的经 验,推测程序在哪些情况下可能发生错误, 并将可能发生错误的情况列出, 然后为每一可能 发生错误的
33、情况各设计一个测试用例。组合数据9、调试调试则是在进行了一次成功的测试之后立即开始的。 调试的目的是确定错误的位置和引起错误的原因,并加以改正。 因此, 又称为排错或纠错。第八章 维护1、软件维护的定义 软件维护就是在软件已经交付使用之后, 为了改正错误或满足新的需要而修改软件的过 程。2、软件维护分类改正性维护 为改正软件系统中潜藏的错误而进行的活动。适应性维护 为适应软件运行环境的变化而修改软件的活动完善性维护 根据用户在软件使用过程中提出的建设性意见而进行的维护活动。 预防性维护 为了进一步改善软件系统的可维护性和可靠性, 并为以后的改进奠定基 础。第九章 面向对象分析1、面向对象的几个
34、概念A. 对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象 的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。 对象的特点(1) 以数据为中心。(2) 对象是主动的。(3) 实现了数据封装。(4) 本质上具有并行性。(5) 模块独立性好。B. 类。类表示某些对象在属性和操作方面的共同特征。 类是支持继承的抽象数据类型,而对象就是类的实例。C. 实例实例就是由某个特定的类所描述的一个具体的对象。D. 消息消息传递是对象与其外部世界相互关联的唯一途径。 对象可以向其它对象发送消息以请 求服务, 也可以响应其它对象传来的消息, 完成自身固
35、有的某些操作, 从而服务于其它对象。E. 方法方法就是对象所能执行的操作, 也就是类中所定义的服务。 方法描述了对象执行操作的 算法,响应消息的方法。F属性属性就是类中所定义的数据, 它是对客观世界实体所具有的性质的抽象。 类的每个实例 都有自己特有的属性值。G封装在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。H. 继承 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。I.多态性(polymorphism)在面向对象理论中, 多态性的定义是: 同一操作作用于不同的类的实例, 将产生不同的执行 结果,即不同类的对象收到相同的消息时, 得到不同的结果。 多态性
36、包含编译时的多态性 运 行时的多态性两大类。J重载(overloading)有两种重载: 函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函 数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。 重载进一步提高了面向对象系统的灵活性和可读性K. 聚集现实世界普遍存在部分 整体关系。部分整体关系在 OO 方法学中表示为类之间的聚集关系。 在聚集关系下, 部分类的对象是 整体类对象的一个组成部分。2、 UML 基础知识第十三章 软件项目管理1、软件规模的估算A. 代码行技术度量是以软件的代码行(LOC , Line of Code )数为基础的直接度量。设:L表示软
37、件的代码行数,单位为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 (即平均每千行代码的文档页数,以页/KLOC为单位)为:D = P
38、d / LB. 功能点技术 这是一种面向功能的间接度量方法,即从软件定义的基本功能出发,来估算软件系统的规模。因此,该方法可以在软件开发项目的初期,在软件定义过程中即可预测待开发软件的规模。功能点FP的度量公式如下:FP = UFP X TCF = CT 0.65 + 0.01 i E F (2-5)其中:UFP基本功能点。UFP值按表13-2来计算,它的值为5个参数加权值的总和。在FP度量公式中:TCF技术复杂性调节因子。0.65和0.01经验数据。Fi (i=1 , 2,,14)复杂性调节值。Fi所代表的因素如表13-3所示,每个Fi可根据实际情况取 0、1、2、3、4、5中的一个值。其中:0没有影响、1 偶然的、2适中、3普通、4重要、5极重要的影响。TCF 取值范围:0.65 1.35。i因素iK因素耳1需要可靠的备份和恢复吗?8需要联机更新主文件吗?2需要数据通信吗9输入、输岀、文件、查询3有分布式处理的功能吗?复杂吗?4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
 - 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
 - 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
 - 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
 - 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
 - 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
 - 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
 
最新文档
- 聊城施工方案
 - 函馆施工方案
 - 营销方案预算分配
 - 简约多彩活动策划方案
 - 车间设备巡检记录表样本
 - 供应链风险管理方法解析
 - 现代消防设施维护保养记录标准
 - 建筑改造工程施工方案全文范本
 - 审计学网络课堂学习资料及做题指导
 - 2025福建省南平人力资源服务有限公司建阳分公司招聘行政中心文员笔试历年参考题库附带答案详解
 - 《危险货物港口作业重大事故隐患判定指南》解读与培训
 - 歼20课件教学课件
 - 尿路上皮癌免疫治疗
 - 2025年上半年艺术创作意识形态工作报告范文
 - 电力公司新闻通讯工作培训
 - 移动互联网技术考题及答案
 - 高校食品安全主题班会
 - 2025年食堂工作计划和目标
 - 2025年徐州市专业技术人员公需课程 - 心理调适
 - 2025年阜新高等专科学校单招职业技能测试题库及答案一套
 - 求婚流程图制作
 
            
评论
0/150
提交评论