已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 软件度量已经成为当前国内外的研究热点。随着信息技术的飞速发展,软件产品 的规模也越来越庞大,作坊式开发方式已经越来越不适应发展的需要。各软件企业都 在积极将软件项目管理引入开发活动中,对开发实行有效的管理。软件项目管理是为 了使软件项目能够按照预定的成本、进度、质量顺利完成而对成本、人员、进度、质 量、风险等进行分析和管理的活动。软件是纯知识产品,其开发进度和质量很难估计 和度量,生产效率也难以预测和保证。 研究和分析了国内外软件项目管理的技术和方法,在此基础上结合具体软件项目 管理的实例,给出了一套估算软件项目规模、估算工作量和开发进度管理的具体方案。 在项目规模度量方面分析了以外部输入数、外部查询数、外部输出数、内部逻辑文件 和外部接口文件为基础的功能点方法,以类的属性、方法的数量和复杂度为基础的面 向对象的功能点方法和以软件的功能、对象间交流的信息和通过继承的重用为基础的 预测对象点技术p o p s ,在此基础上,通过一个实例给出了一个切实可行的、可操作 性强的估算规模的具体步骤。在工作量估算方面分析了c o c 0 m o 模型、p u t n a m 模型 和u s ec a s ep o i n t 方法,给出了以角色、实例的数量和复杂度为基础估算工作量的具 体方案。 关键词:项目管理软件度量规模工作量进度 华中科技大学硕士学位论文 = = 自= ;= = = ;目= = ;= = = = = = # = = = = = = = = = = ;= = = 一 a b s t r a c t t o d a y , s o f t w a r em e a s u r e m e n th a sb e c o m et h eh o ta r e ai nr ri n d u s t r ya r o u n dt h e w o r l d w i t ht h ed e v e l o p m e n ta tf u l ls p e e do ft h ei n f o r m a t i o nt e c h n o l o g y t h es i z eo ft h e s o f t w a r ep r o d u c ti sh u g e ra n dh u g e r d e v e l o pw a ym e e tn e e do fd e v e l o p m e n tm o r ea n d m o r ea l r e a d yw h i l eb e i n gw o r k s h o p b a s e d ,e v e r ys o f t w a r ee n t e r p r i s ei n , e d u c e s t h ep r o j e c t m a n a g e m e n to ft h es o f t w a r ei nt h ea c t i v i t yo fd e v e l o p i n ga c t i v e l y a n dc a r r b so ne f f e c t i v e m a n a g e m e n tt os o f t w a r ed e v e l o p m e n t p r o j e c tm a n a g e m e n to ft h es o f t w a r ei sa na c t i v i t y c a r r y i n g o na n a l y s i sa n dm a n n g e m e n tt o c o s t ,p e r s o n n e l , p r o g r e s s ,q u a l i t ya n dr i s kf o r m a k i n gt h es o f t w a r ep r o j e c tc a nb ef i n i s h e ds m o o t h l ya c c o r d i n gt ot h ec o s t ,p r o g r e s s ,q u a l i t y b o o k e d s o f t w a r ei st h ep u r ek n o w l e d g e p r o d u c t t h ed e v e l o p m e n tp r o g r e s sa n dt h eq u a l i t y i sv e r yd i f f i c u l tt oe s t i m a t e ,t h ep r o d u c t i o ne f f i c i e n c ya l s ow i t hd i f f i c u l t y f o r e c a s t sa n d g u a r a n t e e s t 1 l em e t h o da n dt h e t e c h n o l o g yo fd o m e s t i ca n di n t e r n a t i o n a ls o f t w a r ep r o j e c t m a n a g e m e n ta r es t u d i e da n da n a l y s e d as e to fc o n c r e t ep r o j e c tm a n a g e m e n ts c h e m e si n s i z ee s t i m a t i o n ,e f f o r te s t i m a t i o na n ds c h e d u l em a n a g e m e n ta r ep r o v i d e dt h r o u g hae x a m p l e t h a tc o m b i n e ss p e c i f i cs o f t w a r ep 叫e c tm a n a g e m e n to nt h i sf o u n d a t i o n i nt h ea s p e c to ft h e m e a s u r e m e n to fp r o j e c ts c a l e ,t h ef u n c t i o np o i n tm e t h o dw i t he x t e m a li n p u t ,e x t e m a l i n q u i r y ,e x t e r n a lo u t p u t ,i n t e r n a ll o g i cf i l ea n de x t e r n a li n t e r f a c ef i l ea sf o u n d a t i o n t h e f u n c t i o np o i n tm e t h o do fo b j e c to r i e n t e ds o f t w a r ew i t hn u m b e ra n dc o m p l e x i t yo fa t t r i b u t e a n dm e t h o do fc l a s sa sf o u n d a t i o n ,a n dp r e d i t i v eo b j e c tp o i n t sm e t r i ct e c h n o l o g yw i t h s o f t w a r ef u n e t i o n ,i n f o r m a t i o no fe l a s sa n dr e u s eo fc l a s sb e c a u s eo fi n h e r i t a n c ea s f o u n d a t i o na r ea n a l y s e d o nt h i sb a s i s ap r a c t i c a lc o n c r e t es t e po fe s t i m a t i o nw i t hs t r o n g e f f e c t i v e n e s si sp r o v i d e dt h r o u g hai n s t a n c e i nt h ea s p e c to fe f f o r te s t i m a t i o n c o c o m o m o d e l ,p u t n a mm o d e la n du s ec a s ep o h a tm e t h o da r ea n a l y s e d ,o nt h i sb a s i s ,t h ec o n c r e t e s c h e m eo fe s t i m a t i n gm e t h o do fe f f o r tb a s e do nq u a n t i t ya n dc o m p l e x i t yo ft h ea c t o ra n d u s ec a s ei sa l s op r o v i d e d k e y w o r d s :p r o j e c tm a n a g e m e n t s o f t w a r em e a s u r e m e n ts i z ee f f o r ts c h e d u l e 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集 体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 学位论文作者签名:弓考斫五 日期:现r d r 年,r 月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密口。 ( 请在以上方框内打“”) 学位论文作者签名:红粥之 日期: 年 月,口日 指删币躲勿4 咖) 日期:沙嫜l 月l 勺曰 华中科技大学硕士学位论文 l 绪论 1 1 课题背景 软件度量已经成为当前国内外的研究热点i ”。在软件开发中,软件度量的根本目 的是为了管理的需要。利用度量来改进软件过程。人们是无法管理不能度量的事物。 在软件开发的历史中,我们可以意识到,在6 0 年代末期的大型软件所面临的软件危 机反映了软件开发中管理的重要性。而对于管理层人员来说:没有对软件过程的可见 度就无法管理:而没有对见到的事物有适当的度量或适当的准则去判断、评估和决策, 也无法进行优秀的管理。我们说软件工程的方法论主要在提供可见度方面下工夫。但 仅仅是方法论的提高并不能使其成为工程学科。这就需要使用度量。度量是一种可用 于决策的可比较的对象。度量已知的事物是为了进行跟踪和评估。对于未知的事物, 度量则用于预测。到目前认识到软件度量的成果是非常初步的,还需要大量工作才可 能真正地做到实用化,但它的实用化成就将对软件的高质量和商速发展有不可估量的 影响。 本人在日本软件公司工作过5 年,在国内对日软件外包的项目中,做过项目管理 工作。在项目管理过程中,深深地感到我们的项目管理水平特别是在定量管理方面和 日方( 日立集团) 有很大的差距。只本软件企业非常重视并努力追求项目管理的定量 化,强调以项目度量、产品度量、过程度量等软件度量方式,通过数据说话,对软件 开发进行理解、预测、评估、控制和改善。这主要源于日本人在项目管理中的根据意 识:凡事需要根据。要通过有限的资源实现成本、交期、质量等且标,必须避免浪费, 在满足顾客需求、实现项目预期的各种方案和方法中,之所以这样而不那样,就得有 之所以然的根据,即必须说明理由和依据。在项目规模估算、日程控制、质量评估等 方面采用定量化方法进行判断、分析和评估,以数据、图表、模型等形式对项目事项 加以描绘。软件项目管理中,不仅仅需要定性的判断,还需要定量的把握、分析和决 策,以排除主观臆断可能带来的负面影响。 华中科技大学硕士学位论文 1 2 软件及其特殊性 通常所说的软件是相对于硬件而言的,包括计算机运行时所需要的各种程序,一 般分为系统软件和应用软件。随着软件需求量的快速增长,软件应用中出现的问题也 越来越多。下面从三个方面进行描述。 1 软件开发进度难于控制 软件是一种逻辑系统,为了完成一个复杂的软件系统,人们常常要考虑建立一个 庞大的逻辑体系。此外,同样的软件算法在程序实现上的差别非常大,加上管理人员 的经验合开发人员的能力参差不齐,在软件开发过程中可能会遇到各种意想不到的问 题,所以给项目计划和评审工作带来很大的困难,而且使软件开发过程很难保证按预 定计划实现。特别是对于w e b 系统开发,由于工期普遍都比较短,免费的工具软件层 出不穷,大部分项目都难以按期完成。如果制定的开发进度不合理,将会严重的影响 软件的质量。 2 估算规模和工作量很困难 软件开发实际上时逻辑思维过程,在写出程序并拿到计算机上运行之前,软件开 发的进展情况难于衡量,质量也难于评价。由于各个项目之间实现的功能不一样,使 用的工具和环境也在不断地变化,项目之间的可比性也比较差。另一方面,软件规模 和复杂性呈指数巨增,开发一个大型软件系统,往往需要成百上千人分工协作。由于 软件系统的结构很复杂,各部分联系密切,大量的通讯、后勤工作增大了工作量。因 此增加人员,往往不仅不能缩短开发时间,反而会延缓进度,影响软件质量,这是与 生产一般工业产品的不同之处。考虑到估算规模和工作量的难度,目前对估算的误差 只要求在5 0 以内就可以。 3 软件质量难以保证 软件的质量问题与其他商品的质量问题有很大的不同,软件设计人员与用户对计 算机的了解和想法有很大的距离,程序员通常以自己的想法去理解用户对软件的需 求,而计算机用户对所想使用的软件功能和性能在事前也难以说清楚,即使本人时技 术人员也不例外,这样在需求分析上难免存在差距。此外,在软件开发过程中,即使 有多种文档,大量的素材仍在程序员的脑子中,软件也只有程序清单,这就使得不了 2 华中科技大学硕士学位论文 解情况的人很难插上手,最终导致软件的修改和维护十分困难。 1 3 软件度量的涵义 软件开发是非常专业的,而且是讲究分工的。需求分析、总体设计、概要和详细 设计、编码、测试、安装及维护等,每一个过程都有自己的精深之处,涉及的专业面 广、业务瓤技术性强、可见性差、风险大、可预见性小 2 11 3 1 。即使应用软件承建方按 规范开发模式的要求一步步进行,也会遇到许多不可预见的问题,更不用说承建方可 能有不规范行为的情况。息化系统的核心是软件,由于难以对软件工程的质量和进度 等进行有效的监控,因此,若承建方不按规范进行设计、实施、测试,也不易察觉。 凡此种种,造成许多信息化系统工程项目不成功,不完善,长期收不了口,“豆 腐渣”工程层出不穷,严重地影响了信息化系统工程的质量和进度,不仅损害了合同 双方的利益,还给国家和社会造成了许多不应有的损失。因此,在软件开发管理过程 中,引入定量的方法、手段对应用软件开发过程的某些方面进行定量计算、分析和验 证,或通过定量的方法对可能出现的故障、风险进行分析判断,或为执行者提供数据 进行核实,从而降低工程建设的风险,使投资的信息化系统发挥应有的作用是非常必 要的5 1 。 1 4 软件度量的内容 软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续 性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。没有软件度量, 就不能从软件开发的暗箱中跳将出来。通过软件度量可以改进软件开发过程,促进项 目成功,开发高质量的软件产品。度量取向是软件开发诸多事项的横断面,包括顾客 满意度度量、质量度量、项目度量、以及品牌资产度量、知识产权价值度量,等等。 度量取向要依靠事实、数据、原理、法则;其方法是测试、审核、调查;其工具是统 计、图表、数字、模型;其标准是量化的指标【6 】。 ( 1 ) 软件度量的项目 关于软件度量的项目,业界说法不- - 7 】。根据软件工程研究所s e i 开发的核心度 量项目( s e ic o r em e t r i c s ) ,软件度量的核心项目包括:规模、作业量、进度和缺陷。 华中科技大学硕士学位论文 = = = = = = ;= = = = = = 4 = = = = = = = = = = = = ;= = = = = = = = ;= = = = j = 自= = = = = = = = = = = - e = = = = = = = = = = 一l i = = = = = = = = - = ( 2 ) 软件度量的要素 a 数据:数据是现状的最佳表达者 数据是关于事物或事项的记录,是科学研究最重要的基础。由于数据的客观性, 它被用于许多场合。研究数据就是对数据进行采集、分类、录入、储存、统计分析、 统计检验等一系列活动的统称。数据分析是在大量试验数据的基础上,也可在正交试 验设计的基础上,通过数学处理和计算,揭示产品质量和性能指标与众多影响因素之 间的内在关系。拥有阅读数据的能力以及在决策中尊重数据,这是经营管理者的必备 素质。当然也有数据难以表现的部分,特别是“人”的部分。但是,我们应该认识到, 数据是现状的最佳表达者,是项目控制的中心,是理性导向的载体。用数据思考,可 见规律;用数据思考,易于存活。 b 图表:善用图表则易于沟通 仅仅拥有数据还不能直观地进行表现和沟通,而图表可以清晰地反映出复杂的逻 辑关系,具有直观清晰的特点。能用图表进行思考,就能有效地工作。图解的作用在 于:( 1 ) 图解有助于培养思考的习惯,项目管理者首先是善于思考的人。日常生活主 要通过口语沟通,而辅助于文字以弥补口语在理解上可能存在的误解;而商务领域, 非常注重文件沟通,比如合同、式样、提案、记录等等,而图表可以直观地弥补文字 解释可能存在的差异。( 2 ) 图解有助于沟通交流,项目管理者应该是沟通高手。沟通 的层次为:能理解对方的意思,但属于零散的信息:能把握对方的内容,拥有系统和 整体的理解:能正确地重复对方的观点,没有遗漏和错误;能有条不紊地r 甸j s u 人阐述 这些观点,并获得别人的理解。项i i 管理者需要和顾客、企业和项目组成员沟通,需 要阐述项目的目标、资源、限制、要求、作用、日程、问题点等,在这种沟通过程中, 如果能娴熟地使用图表,将降低沟通成本,提升沟通绩效。( 3 ) 图解有助于明确清晰 地说明和阐述内容。图解在消除误解、把握概要方面具有独特的功效。软件开发过程 中的需求式样、作业流程、概要设计等大多以图解的方式加以说明和阐述,原因就在 于图解能一目了然,消除误解。 c 模型:预测未来,模型拥有天然优势 模型是为了某种特定的目的而对研究对象和认识对象所作的一种简化的描述或 4 华中科技大学博士学位论文 模拟,表示对现实的一种假设,说明相关变量之间的关系,可作为分析、评估和预测 的工具。数据模型通过高度抽象与概括,建立起稳定的、高档次的数据环境。相对于 活生生的现实,“模型都是错误的,但有些模型却是有用的”。“模型可以澄清相互间 的关系,识别出关键元素,有意识地减少可能引起的混淆。”模型的作用就是使复杂 的信息变得简单易懂,使我们容易洞察复杂的原始数据背后的规律,并能有效地将系 统需求映射到软件结构上去。这种描述或模拟既可定性,也可定量。模型可以借助于 具体的实物( 称为实物模型) ,也可以通过抽象的形式来表述( 称为抽象模型) ,既可以 是对研究客体的简化或纯化( 称为理想模型) ,也可以是用来解释研究客体的某些行 为和特征( 称为理论模型) 。模型分析方法有3 种表示形式:文字叙述、几何图形和数 学公式。 软件开发过程中的改善活动可以以模型为指导,基于模型的改善具有如下优势: 建立一种共同语言,或者构建共享愿景:提供一个具有优先级的行动框架;提供一个 执行可靠而持续的评估框架;支持工业范围的比较。但是,模型毕竟是道具之一,只 可参考,不可神化。 1 5 软件度量的效用 可度量性是学科是否高度成熟的一大标志,度量使软件开发逐渐趋向专业、标准 和科学。尽管人们觉得软件度量比较难操作,且不愿意在度量上花费时间和精力,甚 至对其持怀疑态度,但是这无法否认软件度量的作用删。美国卡内基梅隆大学软件 工程研究所在软件度量指南( s o f t w a r em e a s u r e m e n t6 a i d e b o o k ) 中认为,软件度 量在软件工程中的作用有三:( 1 ) 通过软件度量增加理解;( 2 ) 通过软件度量管理软件 项耳,主要是计划和估算、跟踪和确认;( 3 ) 通过软件度量指导软件过程改善,主要 是理解、评估和包装。软件度量对于不同的实施对象,具有不同的效用: ( 1 ) 对于经营者( 开发组织) a 分析产品的错误和缺陷 b 改善产品交付 c 提高生产能力 5 华中科技大学硕士学位论文 d 降低生产成本 e 建立项目估算的基线 f 了解使用新的软件工程方法和工具的的效果和效率 g 提高顾客满意度 h 创造更多利润 i ,构筑员工自豪感 ( 2 ) 对于管理者( 项目组) a 分析产品的错误和缺陷 b 评估现状 c 建立估算的基础 d 确定产品的复杂度 e 建立基线 f 从实际上确定最佳实践 ( 3 ) 对于作业者( 软件开发人员) a 可建立更加明确的作业目标 b 可作为具体作业中的判断标准 c 有效把握自身的软件开发项目 d 在具体作业中实施渐进性软件开发改善活动 华中科技大学硕士学位论文 2 规模的度量 在项目规划,规模是指软件项目可量化的结果。如果采用直接的方法,规模可以 用代码行( l 0 c ) 来度量。如果选择间接的方法,规模可以用功能点( f p ) 来表示。 l o c 和f p 是两个不同的估算技术9 1 。两者的共性在于项目计划人员: 1 一个有界的软件范围的叙述 2 叙述尝试把软件分解成一些小的可分别独立进行估算的子功能 3 一个子功能估算其l o c 或f p 4 线生产率度量( 如l o c p m ( 人月) 或f p p m ) 用做特定的估算变量,导出 子功能的成本或工作量 5 功能的估算进行综合后就能得到整个项目的总估算。 对于面向对象的软件可以采用面向对象功能点方法( o o f p 方法) 和预测对象点方 法( p o p s ) 。 2 1 代码行技术 代码行技术就是根据以往开发类似产品的经验和历史数据,估算实现一个功能需 要的源程序的行数。把实现每个功能需要的源程序行数累加起来,就得到实现整个软 件需要的源程序行数。这是一种比较简单的定量估算软件规模的方法。 一般有多名有经验的软件工程师分别作出估计。每个人都估计程序的最小规模 ( m i n ) 、最大规模( m a x ) 和最可能的规模( p ) ,分别算出这三种规模的平均值m i n ( a ) 、 m a x ( a ) 、p ( a ) ,在根据公式:l = ( m i n ( a ) + 4p ( a ) + m a x ( a ) ) 6 计算规模的估计值。用 代码行技术度量软件规模时,当程序较小时常用的单位是代码行数( l o c ) ,当程序较 大时,通常采用千代码行数( k l o c ) 。l o c 的计算方法和编程风格、测定基准有着密切 的关系。 作为l o c 估算技术的实例,考察一个为计算机辅助设计( c a d ) 应用而开发的软 件包。需要根据复杂性程度的不同,对各功能使用不同的生产率度量值,在表2 - 1 中 成本= l o c 的期望值e 与元行相乘,工作量= 用l o c 的期望值e 与行蹦相除。 7 华中科技大学硕士学位论文 因此可得,该项目总成本的估算值为6 5 7 ,0 0 0 元,总工作量的估算值为1 4 5 人月( p m ) 。 表2 - 1 估算表 2 2 功能点技术 2 2 1 传统的功能点技术 功能点技术简称f p 技术,是由美国i b m 公司a j a l b r e c h t 在1 9 7 8 年开发的软件 规模估算方法。以美国为中心,在国际上比较流行。1 9 8 6 年成立了i n t e r n a t i o n a l f u n c t i o n p o i n tu s e r sg r o u p ( i f p u g ) ,并实施了估算技术人员的认定资格考试。在日本,1 9 9 0 年通过i p a 试验项目介绍f p 技术,由于当时在日本开发放发主要是以过程语言 ( c o b o l 、c 等) 为主,用l o c 技术基本上已经够了,没有必要采用f p 技术。后来 随着c s 开发逐渐增多,f p 技术逐渐得到引用。1 9 9 4 年成立了日本功能点技术用户 会( j f p u g ) 。 f p 技术与统计代码行数的直接度量方式不同,是设计多种因数的间接度量方式。 它是根据事务信息处理程序的基本功能定义的,因此在软件系统设计初期就能够估算 出软件项目的规模。f p 技术能够客观地估算出系统规模,与开发技术和环境无关【1 0 】【1 1 】 【12 1 华中科技大学硕士学位论文 ( 1 ) 画出应用程序图 从f p 技术角度看到的应用程序如图2 1 所示。 用户测定对象应用程序外部应用程率 外部输入e i ( e z t e r n a li n p u t ) 内部逻辑文件i l f ( i n c e r n a ll o g i cf i l e ) 外部查询一e q ( e x t e r n a li n q u i r y )外部接口文件:e i f ( e i t e r n a li n t e r f a c ef i l e ) 外部输出ie o ( e * t e r r m lo u t p u t ) 图2 - 1 应用程序图 ( 2 ) 计算未调整的f p a 明确测定对象软件的范围( a p 边界) 。 b 确定数据之间的关系如图2 2 所示。 c 抽出软件的功能。 图2 - 2 数据流程图 ( 3 ) 计算数据功能数 a 内部逻辑文件数( 1 1 。f :i n t e r n a ll o g i c a lf i l e ) 华中科技大学硕士学位论文 在要测量的应用程序中,管理维护的数据文件( c :创建、r :参照、u :更新、d : 删除) 数。 b 外部接口文件数( e l f :e x t e r n a li n t e r f a c ef i l e ) 在别的应用程序中管理维护的数据文件。在要测量的应用程序中只是参照。 ( 4 ) 计算事务处理功能数 表2 2 给出了e i e o e o 的区别。 a 外部输入功能数( e i :e x t e r n a li n p u t ) 更新内部逻辑文件的数据输入功能数。 b 外部输出功能数( e 0 :e x t e r n a lo u t p u t ) 向应用程序外部输出数据的功能数。 c 外部查询功能数( e q :e x t e r n a lq u e r y ) 既有输入又有输出的功能数。 表2 - 2e u e o e q 的区别 主功能副功能 数据加工 i l f 的追加修改删除改变系统的动作 ( 5 ) 计算每个数据功能的复杂度 根据文件内部的字段数和登录模式算出d e t ( d a t ae l e m e n tt y p e ) 和r e t ( r e c o r d e 1 e m e n tt y p e ) 。 d e t :在i l f 和e i f 中不包含重复的用户可以识别的字段。在正规化的情况下, d e t 即是实体的属性数。 r e t :在特定的条件下要区分是否必须输入或者在特定的条件下各种不同输入项 目的组合数。 i l f e i f 数据功能对应表如2 - 3 所示。 ( 6 ) 计算每个事务处理的复杂度( 根据参照文件数( f t r ) 和数据项目的个数( d e t ) 计 算) 。 1 0 华中科技大学硕士学位论文 e i e o e q 数据功能对应表如表2 4 所示。 ( 7 ) 计算调整前的功能点 表2 - 5 给出了未调整功能点算出表。 ( 8 ) 计算调整后的f p 未调整功能点只是着眼于“数据汇总”和“数据的输入和输出”,没有考虑到系 统的性能、可靠性和用户接口。在这里为了把系统特性反映到功能点上去,用下表所 示的h 个系统特性来进行评价,每一个系统特性f ,取值为0 ,l ,5 ,表示f t 在f p 中起作用的程度。当f ;= o 时,表示否定或f 。不起作用,f j = 5 时t 表示肯定或f t 作 用最大。然后,根据这些系统特性值( 如表2 6 所示) 的和来计算调整系数。调整系数 是在计算功能点时对末调整功能点进行修正。 软件系统的f p = 未调整f p 调整系数 表2 - 3i l f e i f 数据功能对应表 i l f :低( 7 ) 、中( 1 0 ) 、高( 1 5 ) r e t :r e c o r de l e m e n t l y p e e i f :低( 5 ) 、中( 7 ) 、高( 1 0 ) d e t :d a t ae l e m e n tt y p e 2 2 20 0 f p 方法 功能点方法用来度量软件系统的功能量,但是传统的f p 方法的度量对象不是面 向对象的软件系统,而是面向过程的软件系统。为了满足面向对象软件的需要,必须 对传统的f p 方法加以改进。在面向对象的软件系统中根据开发要求或者用u m l 设 计【1 3 】的试样书能够度量的方法称作o o f p 方法( o b j e c t o r i e n t e ds o f t w a r ef u n c t i o n p o i n t ) 1 1 4 11 1 5 1 1 1 6 1 。 在传统的f p 方法中,主要概念是逻辑文件和处理这些文件的事务。而o o f p 方 法和文件或者数据库没有直接关系,以对象为中心i 。在即方法中逻辑文件分为 华中科技大学硕士学位论文 表2 - 4e i e o e q 数据功能对应表 1 4低 低中 字段数 5 1 5低 中高 ( d e t ) 1 6 以上中 商高 e i :低( 3 ) 、中( 4 ) 、高( 6 ) f r t :f i l et y p er e f e r e n c e d e o :低( 4 ) 、中( 5 ) 、高( 7 )o e t :d a t a e l e m e n t t 虹 e q :低( 3 ) 、中( 4 ) 、高( 6 ) 表2 - 5 未调整功能点算出表 内部逻辑文件( t t a o 和外部接口文件( e i f ) 。在o o f p 中与i l f 对应的是应用程序内部 的类,与e i f 对应的应用程序外部的类。对于i l f 和e i f 还必须计算文件的字段数 ( d e t ) 和记录的种类数【1 8 】 1 9 l 。把类中整型、字符型等简单的属性看成是d e t c l a s s 型、指向c l a s s 的指针等复杂的类型看成是r e t 。i l f 、e i f 的复杂度计算方法 见表2 7 。 f p 方法中的事务分3 类:外部输入、外部输出和外部查询,在o o f p 中把这些 事务都简单地作为一般的服务请求( s r :s e r v i c er e q u e s 0 来处理。系统内部的方法作 华中科技大学硕士学位论文 表2 - 6 系统特性表 表2 - 7i l f 、e i f 的复杂度对应表 为s r 来计算,但抽象的方法不包括在内。将调用方法时用到的参数分两类:简单类 型和复杂类型,这两类参数的个数分别计为d e t 和f i 玎。s r 的复杂度计算方法见表 2 8 。 最后,根据1 l f 、e l f 和s r 的复杂度由下式计算o o f p 。 o o f p = o o f p i l f + o o f p e i f + o o f p s r 2 3p o p s 方法 近年来,面向对象技术已经作为一种有优势的软件工程方法出现。和其他许多新 技术一样,面向对象方法的出现使得软件开发人员和他们的经理们必须重新考虑估计 他们开发项目的方法。传统的软件度量技术即使进行改善也无法满足度量生产力和预 测工作的需要。源代码行和功能点方法都是程序序要将数据和过程分开的时代特有产 华中科技大学硕士学位论文 表2 - 8s r 的复杂度对应表 物。这和面向对象范畴有冲突。传统的设计技术将数据; 过程分离丽面向对象技术将 他们联合在一起。如果要提供准确的工作预测或生产力跟踪,面向对象度量方法必须 有多个尺度( 度量维) 1 2 0 i 1 2 1 1 2 2 1 。w h i m 1 d r e 提出了3 - d 功能点,这是一种扩展的功能 点方法,度量软件项目的数据、控制和功能。计算交付给客户的软件具有功能数非常 重要,但对象间交流的信息和通过继承的重用对规模度量也非常重要。p r i c e s y s t e m s 公司开发了一种新的度量方法一预测性对象点( p r e d i c t i v eo b j e c tp o i n t s p o p s ) ,一种包含前面提到的面向对象3 个尺度的度量方法。不象传统的度量方法基 于结构分析的数据和过程模型,p o p s 是基于对象和它们的特征。p o p s 综合了几种流 行的度量方法,建立一种适合预测工作量和跟踪生产力的方法。p o p s 方法的核心是每 类加权方法数( w e i g h t e dm e t h o d sp e rc l a s sw m c ) 。这种方法测量每个顶层类 ( 或者说,每个在用户的视野中清楚的对象) 并且根据类的行为( 方法) 类型不同进 行加权a 一旦得到w m c 的值,p o p s 方法将把它和有关按类分对象组的信息和对象类之 间的关系进行联合计算。 ( 1 ) 计算顶层类数、平均继承树深度、平均每基类的子类数 顶层类数( n u m b e ro ft o pl e v e lc l a s s e st l c ) 这个度量是计算类图中根部的类的多少,其他所有的类都是继承他们。因为p o p s 计算带有预测目的,所以能分析系统的顶层信息非常重要。 平均继承树深度( a v e r a g ed e p t ho fi n h e r i t a n c et r e ed i t ) 每个类要不被称为根类要不被称为派生类。那些不像根类那样,没有地方继承的 类都是派生类。d i t 对于一个类来说意味着它在继承树中的深度,也就是从根类到这 个类的长度( 层的数字) 。 1 4 华中科技大学硕士学位论文 平均每基类的子类数( a v e r a g en u m b e ro fc h i ld r e np e rb a s ec 1 a s s n o c ) 每个类有0 个或者更多的直接子孙( 派生类) 。n o c 是对派生类的计算。 例如:a 是根类,b 、c 、d 是a 的子类,d 、f 是c 的子类,g 是f 的子类。b 、 c 、d 、e 没有子类。那么: a v g d i t = f 1 0 + 3 1 + 2 2 + l 3 ) 7 = 1 6 h v g n o c = ( 1 3 + 1 2 + l 1 ) 3 5 2 t l c = 1 ( 2 ) 计算每类的加权平均方法数( a v e r a g en u m b e ro fw e i g h t e dm e t h o d sp e rc l a s s w m c ) 这是每类的方法平均数,每个方法要通过根据方法的类别,方法影晌的属性数和 方法提供给系统的服务数确定的复杂性不同进行加权。这是p o p s 计算的核心。调查 显示在决定面向对象度量方法对规模估计适合性方面有两个冲突的思想学派( 记住, 这个规模要联系工作量和生产力) 一个是不同的对象总数( t h et o t a ln u m b e ro f d i s t i n c to b j e c t s ) 计算11 2 4 1 2 5 1 。另外一个用每对象类平均加权的方法数( w m c ) 【2 6 】1 2 7 l 圳。这里主要介绍w m c 方法。 删c 方法首先将方法分成5 类: ( 1 ) 构造器( c o n s t r u c t o r s )一实例化一个对象的方法。 ( 2 ) 析构器( d e s t r u c t o r s ) 一消灭个对象的方法。 ( 3 ) 修正器( m o d i f i e r s ) 一改变对象状态的方法。修正器内包含自己和其他 的一个或多个属性。 ( 4 ) 阅读器( s e l e c t o r s ) 一访问对象状态但不改变状态。这种方法提供给公 众读取加载在对象身上数据。 ( 5 ) 迭代器( i t e r a t o r s )一以定义好的顺序访问对象的所有部分。他们可以 用来遍历一个对象集合中的每个成员,对每个成员执行同样的操作。 给每个方法按花在它上面的工作量总和分配了一个系数。由于工作量是在类的层 面跟踪的而不是在方法层次跟踪,我们根据提供者给的信息确定一个百分比,确定一 华中科技大学硕士学位论文 个类的工作量能分配多少到一个特定的方法。如果缺少提供者给的可靠信息,我们用 代码行来确定分配给方法的工作量。利用代码行并没有违反最初的设想,因为我们用 代码行只是为了确定特定方法类别的加权系数。我们计算了每种类别方法的平均数, 且将他们用作最初的加权系数。在分析过程中,我们确定构造器和析构器在复杂性方 面没有明显的区别,所以我们将这两种方法类别合起来了。以这点为基础,我们确定 了每种方法类别的平均加权系数。各种方法的加权系数根据方法的复杂程度低、中、 高分别为构造器,析构器:l 、4 、7 ,修正器;1 、5 、1 0 ,阅读器:1 2 、1 6 、2 0 ,迭代 器:3 、9 、1 5 。这些加权系数主要是基于功能。 下一步是怎么样辨别哪些方法高于平均值哪些低于平均值。通过回顾上面的数 据,发现系统的响应数( 方法预期响应的消息数) 和被方法作用的属性数越高,方法 就有高于平均数值的加权系数,相反地,这两个数据低,方法的加权系统也会低于平 均值。表2 - 9 显示了基于响应消息( r 嗍和影响属性( 盯r ) 数的计算规则,它来确定方 法所属类别。 表2 - 9 方法复杂性分配表 一旦确定了常量的值,我们可以用这些数值计算每类的加权平均方法数( w m c ) 。 加权平均方法数( w m c ) 将会联合t l c 、n o c 、d i t 进行计算。我们对这些不同形态 的数据进行了归约,综合形成下面形式一个方程式。 p o p s ( w m c ,n o c , d r r , t i _ c ) = w m c * f l ( t 丽l c , n o c , d i t ) + f 2 ( n o c ,d r r ) ( 2 - 1 ) 在方程式中,f l 计算整个系统的规模,f 2 计算通过重用的影响。 2 4 代码行度量与功能点度量的比较 代码行度量依赖于程序设计语言,而功能点度量不依赖于程序设计语言。a l b r e c h t 华中科技大学硕士学位论文 和j o n e s 等人对若干软件采用后处理的方式分别统计出不同程序设计语言每个功能点 与代码行数的关系,用l o c f p 的平均值表示。它们之间的关系与表2 1 0 所示。 表2 - 1 0 各种语言的l o c f p ( 平均值) 程序设计语言l o c f p ( 平均值) 汇编语言 c o b o l 语言 f o r t r a n 语言 p a s c a l 语言 a d a 面向对象的语言 四代语言( 4 g l ) 代码生成器 2 5 规模度量应用实例 以数据模型和业务规则为基础,用f p 技术估算项目的规模。用数据模型( e r 图) 计算数据功能,用业务规则( d f d ) 计算出事务处理功能。 2 5 1 业务概要 以下列需求为基础,估算系统规模。 ( 1 ) 对象是一个网上书店系统,该系统不是卖书,而是下载电子文档。能够下载 的文件格式e h - - 十:t e x t 文件、h t m l 文件、p d f 文件。为了使系统简单化,下载全部 免费。下载时可以不登录,如果登录的话可以看到下载履历和下载推荐。 ( 2 ) 能够根据输入的文字进行检索。检索对象是书名和作者。 ( 3 ) 能够根据分类检索。例如:“计算机基础”、“恋爱小说”等等。 ( 4 ) 向用户提供下载排名。有昨天的下载排名、上周的下载排名、上月的下载排 名、去年的下载排名4 种。 ( 5 ) 系统维护人员能够执行下列操作: a 作者的登录、修改、删除。 1 7 姒 蛾 姒 伯 加 垢 华中科技大学硕士学位论文 b ,图书的登录、修改、删除。 c 文件的登录、修改、删除。 d 分类的追加、修改、删除。 ( 6 ) 对于文件和分类可以指定公开开始曰和终了日。只有在开始日和终了日至之 间才可以阅览、下载。 ( 7 ) 下列数据自动删除。删除对象的期间存放在设置文件中。 a ,在指定期间内,没有下载过的登录用户。 b 超过指定期间的下载排名数据。 c 超过指定期间的下载履历。 2 5 2 设计数据模型 以业务概要中的需求为基础,设计出数据模型( e r 图) 。首先抽出实体。 文件:下载的对象。格式是文本文件、h t m l 文件和p d f 文件。 用户:用用户i d 和密码登录的人。具有下载履历。 下载履历:用户下载过的文件的纪录。 推荐下载:以下载履历为基础,推测用户感兴趣的图书。 作者:图书的作者。一个作者
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低空经济的市场趋势与前景
- 本田汽车消费研究报告
- 本地饭堂承包方案
- 2024至2030年金属表面热喷涂产品项目投资价值分析报告
- 城市广场LED显示屏安全管理措施
- 小微企业运营融资合同
- 木质电梯装饰方案
- 木房防腐防虫措施方案
- 水资源调度安全管理制度
- 2024年公园景观照明路灯施工合同
- 上海科技教育出版社六年级综合实践教案(上册)
- 《春》《济南的冬天》《雨的四季》群文阅读教学设计 统编版语文七年级上册
- 企业内训师培训师理论知识考试题库500题(含各题型)
- 水系统规划方案及非传统水源利用率计算书
- 儿科小儿肱骨髁上骨折诊疗规范
- 介绍班级优化大师
- (完整)双溪课程评量表
- 烟花爆竹经营单位主要负责人与安全管理人员培训课件
- 煤气柜设计安全要求
- 广东省卫生正高评审答辩
- 公共关系学课件
评论
0/150
提交评论