ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:296.39KB ,
资源ID:17870584      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17870584.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(cosmic方法及其准确性的研究与应用.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

cosmic方法及其准确性的研究与应用.docx

1、cosmic方法及其准确性的研究与应用分类号 TP000.0 学号 GS06062175 U D C 密级 公 开 工程硕士学位论文COSMIC方法及其准确性的研究与应用 硕士生姓名蒋 辉学科领域软件工程研究方向软件规模度量指导教师尹俊文 副教授何鸿军 副教授国防科学技术大学研究生院二八年十月COSMIC Method and Its Accurateness Research and Application Candidate:Jiang HuiAdvisor:Yin JunWenA thesisSubmitted in partial fulfillment of the requirem

2、entsfor the professional degree of Master of Engineeringin Computer EngineeringGraduate School of National University of Defense TechnologyChangsha,Hunan,P.R.China(October,2008)插入独创性声明页本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他已经发表或撰写过的研究成果;也不包含为获得国防科技大学或其它教育机构的学位或证书而使用

3、过的材料。与我一同学习的同学对本研究所做的任何贡献均已在论文中做了明确的说明并表示谢意。学位论文题目: 学位论文作者签名: 日期 年 月 日学位论文版权使用授权书本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允许论文查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用复印、缩印或扫描等复制手段保存、汇编学位论文。(保密学位论文在解密后适用本授权书)学位论文题目: 学位论文作者签名: 日期 年 月 日作者指导老师签名: 日期 年 月 日目 录摘 要 iABSTRACT ii第一章

4、绪 论 11.1 论文研究背景 11.2 国内外软件估算研究现状 21.2.1 国内研究现状 21.2.2 国外研究现状 21.3 准确估算的重要性 31.4 论文的主要工作 31.5 论文的组织结构 4第二章 软件规模度量基础理论 52.1 软件规模度量 52.1.1代码行方法 52.1.2 DELPHI法 62.1.3 类比方法 62.1.4 价格胜算法 72.1.5 功能点分析方法 72.2 软件需求与规模度量 102.2.1 软件需求 102.2.2 规模度量对软件需求的作用 112.3软件规模度量在软件项目估算中的重要性 12第三章 COSMIC方法 143.1 COSMIC方法的由

5、来 143.2 COSMIC方法的基本思想 143.3 COSMIC方法的两个模型 153.3.1软件上下文模型 153.3.2 COSMIC通用软件模型 163.4 COSMIC方法的基本概念 163.4.1 软件层次的定义 163.4.2 边界的定义 173.4.3 功能用户的定义 173.4.4 功能过程的定义 173.4.5 触发事件 173.4.6 数据组的定义 183.4.7 感兴趣对象的定义 183.4.8 数据属性的定义 183.4.9 数据移动的定义 183.5 COSMIC方法的基本过程 193.5.1 COSMIC方法的三个阶段 203.5.2 识别软件层次 213.5.

6、3 划分粒度级别 223.5.4 识别边界 233.5.5 识别功能过程(Function Process) 233.5.6 识别数据组 243.5.7 识别数据属性 243.5.8 识别数据移动 243.5.9 执行度量与汇总结果 253.6 COSMIC方法的优势和问题 25第四章 COSMIC方法的准确性研究 274.1 三种主流功能点方法的比较 274.1.1 联系 274.1.2 区别 284.2 COSMIC方法的优势与不足 284.2.1需求风险 294.2.2 COSMIC方法使用不正确 304.2.3度量人员对业务不熟悉 304.2.4应用的复杂性 304.2.5缺乏历史项目

7、数据和经验知识 304.2.6度量规模时遗漏某些功能 304.2.7来自客户和高层领导的压力 304.2.8功能点与代码行的不当转换 304.2.9没有重估 304.3 软件规模度量风险管理模型 30第五章 第五章题目 30结 束 语 31致 谢 32参考文献 33作者在学期间取得的学术成果 34附录A 附录A题目 35附录B 附录B题目 36表 目 录表1.1 表1.1名称 2表1.2 表1.2名称 3表2.1 表2.1名称 4表2.2 表2.2名称 5表3.1 表3.1名称 7表3.2 表3.2名称 8表3.3 表3.3名称 8表4.1 表4.1名称 10表4.2 表4.2名称 10图 目

8、 录图1.1 图1.1名称 1图1.2 图1.2名称 2图1.3 图1.3名称 3图2.1 图2.1名称 4图2.2 图2.2名称 5图4.1 图4.1名称 9图5.1 图5.1名称 11图5.2 图5.2名称 12摘 要(学位论文摘要)主题词:(主题词1) (主题词2) ABSTRACT(Abstract)Key Words:(Key Words 1) (Key Words 2) 第一章 绪 论1.1 论文研究背景软件规模度量是制定软件项目开发计划的基础和依据,度量是对软件项目进行量化分析和项目可行性分析的前提条件,是项目成本估算、进度安排、质量评估和资源规划的基础。在软件业,需求风险与估算

9、风险被认为是软件项目开发过程中最主要的两个风险1。软件规模度量不准确、不合理,会导致不合理的进度安排、资源和质量目标,最终导致软件项目预算超支、进度延期以及质量失控等后果,使项目面临无法挽救的灾难局面,犹如死亡行军。全世界每年大约有50万个项目执行着100万个左右的软件项目,产生了6000亿美元的软件产品。在这些项目中,有很多不能满足客户所期望的质量,或者不能在预算内按时交付软件,有分析认为:1/3左右的项目在成本和进度上超出了额定限度的125%以上。(R.L.Glass. Software Runaway: Lessons learned from Massive Software Proj

10、ect Failures. Prentice Hall PTR,1998 )在软件开发实践中,由于软件成本估算不足或者不准确,直接导致许多软件项目开发失败,根据Standish Group组织2003年公布的数据显示,有15%的软件项目在没有任何产出的情况下被终止,有66%的软件项目被认为是失败的,而且,该组织2004年第三季度的报告还指出,成功开发的软件项目只占29%,失败项目占到了18%,有89%的项目都有预算超支的情况发生。另外,据ISBSG数据组织统计,美国2002年软件项目损失高达380亿美元,这还不包括预算超支的170亿美元31。虽然这些数据有可能是被夸大了,但是有一点是可以肯定的

11、:由于早期对软件成本的估算不足,或者是由于需求不稳定,有大量的软件项目开发失败。来自官方网站。软件规模度量历来是比较复杂的,其范围大至软件项目管理活动,小则可为一个程序的设计,是一件困难度颇高的任务。因为软件本身的复杂性、历史经验知识和项目数据的缺乏、度量工具缺乏以及一些人为错误,导致软件项目的规模度量往往和实际情况相差甚远。而软件估算错误已经被公认为软件项目失败的四大原因之一。因此,在软件工程领域,不论工业界还是学术界,软件规模度量已经是一个重要的研究方法。软件成本估算是项极其复杂的工作。因为影响软件成本的因素很多,而这些因素又很难把握,但作为开发者却必须在软件开发之初就要向客户做出一定的承

12、诺,所以,开发者能否控制项目,保证项目能够按预期的方向、计划和要求进行至关重要1。而控制项目,制定合同的关键是顾客、开发者对软件“大小”的了解,也就是软件经过估算得到的软件的规模、工作量、成本和进度。在这之中,软件的成本、工作量及进度估算都是以软件的规模为输入的,规模估算的好坏直接影响着项目的后续工作,因此规模估算非常重要4。1.2 国内外软件估算研究现状1.2.1 国内研究现状国内软件项目开发的管理目前正逐步向规范化发展,但是在开发周期的估算上绝大部分还是处于手工作坊的状态。主要表现在以下两个方面:一方面,项目管理人员意识上没有是认识估算的重要性,认为估算就是一个大概的估计,通常凭借主观经验

13、“拍脑袋”得出的,很多还受限于商业行为,比如说为了签订合同而不惜压缩开发工作量;这样使得软件开发组织在项目开发后期可能会陷入成本、进度和质量的困境,甚至被客户拒绝接受产品。另一方面,由于没有专门的工具来辅助估算,或者说没有专门对估算进行研究。一个软件项目的规模究竟多大、开发费用究竟多少以及开发周期究竟多久,这些问题基本上是依靠估算人员的经验来判断,而这种经验带有很大的主观性和片面性。不同经验的人估算出的结果相差很大,而更糟糕的是这种判断由于完全凭借经验使得不同意见的人之间很难沟通,因为谁都没有确切的量化标准来支持自己的判断,最终的结果往往是以“专家”的估算为准。实际上,国内的软件项目开发需要的

14、正是这种定量估算,这样做不仅规范而且精确,十分有助于软件行业的健康发展以及与国际接轨。国内在软件估算领域,主要还停留在学术上的研究,还没有真正运用到软件开发公司的实际活动中。还没有形成基于国内开发环境的估算方法和技术。研究主要是在国外的估算方法基础上进行本地化研究和扩展研究。1.2.2 国外研究现状国外发达国家在软件估算上比国内要成熟得多,从20世纪50年代软件业诞生到20世纪70年代,软件项目估算都是手工进行的,使用简单的经验法则或经过反复摸索自己开发出的估算算法。从20世纪70年代早期到1987年,现代软件项目估算业的核心开始形成。至今,国外发达国家在软件估算领域比国内要成熟的多,不仅有很

15、多方法比如代码行估算法、功能点估算法、人力估算法,而且还形成了专业化的估算工具来辅助这项工作。比如微软公司开发的项目管理工具软件Project、加拿大Software Productivity Center Inc.公司开发的Estimate,都是比较成熟的估算辅助工具。采用辅助工具对软件开发周期进行估算具有明显优势。因为辅助工具是在大量不同类型项目数据研究的基础上总结开发出来的,采用的估算方法已经成熟,估算结果的准确性有保障。由于这种估算过程是可以量化的,而非依据个人经验直接得出结果,所以在结果的评断上有据可依,有理可推。而且长期依靠工具辅助估算可以将大量项目的数据和估算结果积累形成历史经验

16、库,从而对新项目的估算进行对比调整,从而提高估算的准确性。1.3 论文的主要工作软件项目开发必须经过估算来得到软件的工作量、成本和进度的大概情况,并且用这些估算结果来制定合同、项目计划、对客户作出承诺,控制项目,保证项目能够按预期的方向进行。但是软件的成本、工作量及进度估算都是以即将构建的软件的规模为输入的,规模度量的准确与否直接影响着项目的后续工作,因此,规模度量是非常重要的。本论文的主要工作及研究成果在于:1.4 论文的组织结构论文的组织结构共分为六章。第一章:绪论。阐述了论文研究的背景、国内外研究现状以及论文的主要工作。第二章:软件规模度量基础理论。主要阐述了目前几种常见的规模度量方法,

17、分析了软件需求与规模度量之间的紧密关系以及软件规模度量在软件项目估算中的重要地位。第三章:主要阐述COSMIC方法的基本原理和使用过程。第四章:通过长期对COSMIC方法的研究和实践,针对COSMIC方法在软件规模度量过程中存在的一些主要问题进行了分析和探讨,提出了软件规模度量风险管理模型。第五章:案例分析第六章:工作总结和未来展望。第二章 软件规模度量基础理论2.1 软件规模度量任何种类的软件在开发前期,都需要对软件的规模大小进行度量。软件的规模大小直接影响了软件开发项目的设置和管理,正确度量即将开发的目标软件规模,为其制定合体的开发计划,提高软件项目成功开发的概率。我们这里所研究的软件规模

18、度量是指软件的功能性规模进行度量,是对必须提交给用户的软件功能进行量化的过程。软件开发项目规模度量(size measurement)是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。规模度量是软件项目失败的重要原因之一。一个好的规模度量模型可以解决这一问题。有效的软件规模度量是成功项目的核心要素:基于有效的软件规模度量可以策划合理的项目计划,合理的项目计划有助于有效地管理项目。规模度量的要点在于:由开发现场的项目成员进行估算;灵活运用实际开发作业数据;杜绝盲目迎合顾客需求的“交期逆推法”。 软件规模度量有助于软件开发团队准确把握开发时间、费用分布以及缺陷密度等等。软件规模的度量方法

19、主要有以下几种:2.1.1代码行方法代码行(LOC)度量是对软件规模大小的直接度量,是软件开发者在软件规模度量中最早使用也是最直观的方法12,已形成很完整的模式13。在用代码行度量规模时,常会被描述为源代码行(source lines of code,简称SLOC)或者交付源指令(delivered source instruction,简称DSI),目前成本估算模型通常采用非注释的源代码行。虽然代码行仍是目前普遍采用的一种方式,但它也存在局限性: (1)对代码行没有公认的可接受的标准定义。例如,最常见的计算代码时的分歧有空代码行、注释代码行、数据声明、复用的代码,以及包含多条指令的代码行等。

20、在Jones的研究中发现,对同一个产品进行代码行计算,不同的计算方式可以带来5倍之大的差异14。 (2)代码行数量依赖于所用的编程语言和个人的编程风格15。因此,计算的差异也会影响用多种语言编写的程序规模,进而也很难对不同语言开发的项目的生产率进行直接比较。 (3)在项目早期,需求不稳定、设计不成熟、实现不确定的情况下很难准确地估算代码量,不适合用于项目早期度量。(4)代码行强调编码的工作量,只是项目实现阶段的一部分16。2.1.2 DELPHI法DELPHI方法是一种专家评估技术,在没有历史数据的情况下,这种方法是用于评定过去与将来,新技术与特定程序之间的差别,但专家“专”的程度及对项目的理

21、解程度是工作中的难点,但是这种方法对决决定其他模型的输入时特别有用。DELPHI法是60年代初美国兰德公司的专家们为避免集体讨论存在的屈从于权威或盲目服从多数的缺陷提出的一种定性预测的情报分析方法,在我国更习惯于将德尔菲法称为专家预测法。为了消除成员间相互影响,参加的专家可以互不了解,它运用匿名方式反复多次征询意见和进行背靠背的交流,以充分发挥专家们的智慧、知识和经验,最后汇总得出一个能比较反映群体意志的预测结果。该方法及其派生技术已被广泛应用于各个领域49。这种方法的优势在于不需要历史数据,适合新项目;局限性是主观,专家技术带来误判。基本步骤为:1)主持人事先发给每位专家一份有关委托评估软件

22、的说明书和一张测算表。 测算表中应包括:系统软件名称、填表日期、程序源代码估计值:乐观值(最少行数)、最可能值、最不利值(最多行数)以及简要理由;2)召开小组会议。会上,专家们可就不明白的问题向主持人询问,专家之间也可讨论。如有可能,主持人应向专家介绍与委托评估软件相类似系统软件的有关情况,供专家参考;3)专家们无记名填测算表;4)主持人对测算表进行汇总,计算出第i位专家的测算期望值及全部专家的测算期望值和均方差;5)召开小组会议,公布测算期望值和均方差,让专家们充分发表意见并加以讨论;6)按讨论后认识的一致性程度和均方差大小决定要否重复上述3-5步工作程序;7)按最后一轮无记名填表所得的侧算

23、期望值作为委托评估软件的软件规模 。本方法的优点在于,先匿名填表,每个专家均需经过独立思考,作出测算,因而在讨论时有利于提出自己的见解,并通过多次反复,使意见逐渐趋于一致。2.1.3 类比方法类比法(Analogy)适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类比法估计结果的精确度取决于历史项目数据的完整性和准确度。因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的50。其基本步骤是:1)整理出项目功能列表和实现每个功能的代码行;2)标识出每个功能列表与历史项目的相同点和不同点,特别要注意

24、历史项目做得不够的地方;3)通过步骤1和2得出各个功能的估计值;4)产生规模估计。软件项目中用类比法,往往还要解决可重用代码的估算问题。估计可重用代码量的最好办法就是由程序员或系统分析员详细地考查己存在的代码,估算出新项目可重用的代码中需重新设计的代码百分比、需重新编码或修改的代码百分比以及需重新测试的代码百分比。根据这三个百分比,可用下面的计算公式计算等价新代码行1:等价代码行=(重新设计%+重新编码%+重新测试%)/3 *已有代码行比如:有2000行代码,假定30%需要重新设计,50%需要重新编码,70%需要重新测试,那么其等价的代码行可以计算为:( 30% + 50% + 70%)/3*

25、 2000 = 1000等价代码行。也就是说,重用这2000代码相当于编写1000代码行的工作量。2.1.4 价格胜算法价格胜算法(Price-to-Win Method)以争取项目合约为原则,因此以足够取得项目合约的价格为基础所做的规模估算。实际上价格胜算法师一种制定价格的策略而非规模度量方法。2.1.5 功能点分析方法功能点分析方法(Function Point Analysis)是在需求分析阶段基于系统功能的一种规模度量方法,是对软件规模大小的间接度量。一般是通过计算必须和用户交互的情况的数目来测算程序工作量的大小。功能点分析法是目前国际上软件行业普遍接受的软件项目规模度量模型10。功能

26、点分析是把应用系统按组件进行分解,并对每类组件以IFPUG定义的功能点为度量单位进行计算,从而得到反映整个应用系统规模的功能点数。功能点分析从用户对应用系统功能性需求出发,对应用系统两类功能性需求进行分析:一类是数据功能性需求,另一类为事务功能性需求。数据功能性需求又分为:内部逻辑文件(ILF:Internal Logical Files)和外部接口文件(EIF:External Interface Files)两类;事务功能性需求则分为:外部输入(EI:External Inputs),外部输出(EO:External Outputs),外部查询(EQ:External Inquiry)三类

27、。所以,应用系统一共可以按五类组件进行分解。所谓内部逻辑文件(ILF)是指用户可确认的、在应用程序内部进行维护的、逻辑上相关的数据块或控制信息(通常是实体类型中的第二范式或第三范式表示的数据模式);外部接口文件(EIF)是指:用户可确认的、由被度量的应用程序引用,但由其他应用程序内部进行维护的、逻辑上相关的数据块或控制信息(通常是实体类型中的第二范式或第三范式表示的数据模式) 5。通常的MIS系统的开发者和用户,对这类组件并不陌生。外部输入(EI)是指应用程序对来自应用程序边界以外的数据或控制信息的基本处理;外部输出(EO)是指应用程序向其边界之外提供数据或控制信息的基本处理,这种处理逻辑中可

28、能包含数学计算或导出数据等,并且要对内部逻辑文件进行维护。外部查询(EQ)是指应用程序向其边界之外提供数据或控制信息查询的基本处理,与EO不同的是,处理逻辑中既不包含数学计算公式也不产生导出数据,处理过程中也不维护ILF29。在IEPUG的功能点计算实践手册中,按照组件的复杂程度分别对某个组件按若干个功能点进行计算。复杂度分成三等,即低、中、高。对数据功能性的组件来说,复杂度决定于两个因素:一是看ILF或EIF所包含的数据元素个数(DET:Data Element Types),另一个则是看ILF和EIF中用户可以识别的记录元素类型的个数(RET:Record Element Types)。而

29、对事务功能性组件,复杂度则取决于事务所引用的所有内部文件或外部文件的个数(FTR:File Type Referenced),以及事务处理过程中输入或输出文件中涉及的动态数据元素个数(DET)5。按照IFPUG功能点计算实践手册4.1版本中的规定:ILF和EIF的低、中、高三个级别的确定方法如表3.l所示。表3.1 ILF和EIF数据组件的复杂度级别记录元素类型(RET)数据元素类型(DET)1192050511低低中25低中高5中高高EI事务组件的低、中、高三个级别的确定方法如表3.2所示5。表3.2 EI事务组件的复杂度级别引用的文件类型个数(FTR)数据元素类型(DET)14515160

30、1低低中2低中高3中高高EO和EQ事务组件的低、中、高三个级别的确定方法如表3.3所示5。表3.3 EO和EQ事务组件的复杂度级别引用的文件类型个数(FTR)数据元素类型(DET)156192001低低中23低中高3中高高每个组件按不同的复杂度等级与功能点数的对应关系如表3.4所示5。表3.4 五类组件按复杂度等级与功能点值的对应关系组件组件复杂度级别低中高ILF_7_10_15EIF_5_7_10EI_3_4_6EO_4_5_7EQ_3_4_6这样,如果将一个应用系统按组件分解后,确定每个组件的复杂度等级,然后,按照IFPUG功能点计算实践手册给出的计算方法,就可以用IFPUG定义的功能点作为度量单位计算出该系统的规模。但是,对同一个组件(例如对一个输入组件)若考虑到该组件要有较好的可操作性,或具有更高的执行效率等要求,则它应当具有更大的规模。因此,单纯地考虑组件个数以及组件本身的复杂度来计算功能点,仍然不能较客观地反映出系统的规模。为此,IFPUG还考虑了l4个称为系统基本特征的属性(GSC:General System

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2