1、 本科毕业论文 题 目: 基于功能点的软件规模估算 查询模块规模估算模型的设计与实现 姓 名: 学 院: 软件学院 系 别:软件工程 专 业:软件工程 年 级: 学 号: 指导教师: 职称: 年 月 摘 要 有效的估算是软件开发项目管理中最具挑战性也是最重要的活动。只有使用科学的方法对软件项目的规模、工作量、进度与成本做出合理可靠的估算,才能良好地进行项目管理。然而 软件项目的规模估算历来是比较复杂的事,软件项目的规模估算往往和实际情况相差甚远。 因此,估算错误已被列入软件项目失败的四大原因之一,软件规模估算一直是软件工程界研究的重点课题之一。 自 70 年代出现功能点估算方法以来,目前己经形
2、成了以 IFPUG-FPA方法 (The International Function Point Users Group) 和 COSMIC-FFP(Common Software Measurement International Consortium)方法为代表的多种标准。 COSMIC-FFP 方法是新一代的功能点规模估算法。 COSMIC-FFP 方法将软件系统的处理划分为数据移动与数据运算两大类,并将数据移动再细分为输入、输出、读、写四种子类型,通过计算系统中四种子类型的数据移动的个数来度量软件的规模。通过参加期货交易结算系统中查询模块的开发和了解并 学习 COSMIC-FFP 方
3、法。本课题详细介绍了期货交易结算系统的查询模的功能需求和开发运行环境等内容。 本文根据软件工程的思想,详细介绍了在软件项目管理过程的前期用COSMIC-FFP 方法实际软件项目的规模的评估。本文建立了适合期货交易结算系统查询模块程序的估算模型。在今后的程序开发前,可以根据其功能需求估算出软件规模。 关键词: 规模 估算;功能点;数据移动; COSMIC-FFP Estimating Model of Software Size based on Function Point Method Abstract Effective estimation of software project man
4、agement is the most challenging and most important activities. In order to manage the project effectively, the scientific method which can estimate the scale, workload, cost and progress of software projects must be used. However, the size of software project estimates have always been a complicated
5、 matter, the scale of software projects often falls far short of the actual situation. Therefore, the estimation error has been one of the four major reasons which can lead to the failure of software projects. Software size estimation has been the focus of the research of software engineering. Since
6、 1970 there has been the functional point estimation methods, formed a variety of standards. COSMIC-FFP is a new generation of functional point estimation of the scale. COSMIC-FFP method of software systems for data processing and data mobile computing two categories, and further broken down into mo
7、bile data input and output, read and write four seed types, through the computing systems in the four seed types of mobile data Number of software to measure the scale. Through participation in futures clearing system in the maintenance of modules and modules for the development and understanding an
8、d learn a COSMIC-FFP method. This thesis is based on the idea of software engineering, it describes in detail how to use COSMIC-FFP method to assess the scale of a software project in the early stage of the software project management process. We have established an estimation model for the query mo
9、dule of the Exchange Clearing System. In future, the established model can help to measure the size of a software project. Key words: Estimation of Software Size; Function Point; Data Movement; COSMIC-FFP 目 录 - I - 目 录 第 一章 绪论 . 1 1.1 项目 背景 . 1 1.2 软件规模估算的现状 . 2 1.3 项目 主要工作 内容 . 5 1.4 论文组织结构 . 6 第二章
10、 软件规模估算方法 . 7 2.1 功能点估算方法的研究与发展 . 7 2.1.1 功能点估算方法的标准 . 7 2.1.2 功能点估算方法的发展 . 8 2.2 传统的功能点估算方法 IFPUG-FPA . 9 2.2.1 IFPUG-FPA 方法的估算流程 . 10 2.2.2 IFPUG-FPA 方法的计算 . 10 2.2.3 IFPUG-FPA 方法存在的主要问题 .11 2.3 新一代功能点规模估算方法 COSMIC-FFP . 12 2.3.1 COSMIC-FFP 方法的基本原理 . 12 2.3.2 COSMIC-FFP 方法的基本 过程 . 13 2.3.3 COSMIC-
11、FFP 方法的特点 . 17 2.4 小结 . 17 第三章 COSMIC-FFP 方法的实例分析 . 18 3.1 OM 平台 . 18 3.2 开发工具 . 20 3.3 期货交易结算系统 . 22 3.3.1 查询模块的功能需求 . 24 3.3.2 查询模块的实现 . 24 3.4 小结 . 27 第四章 COSMIC-FFP 方法的应用 . 28 目 录 - II - 4.1 制定适 应于程序的测量策略 . 28 4.1.1 明确测量目的 . 29 4.1.2 明确测量范围 . 29 4.1.3 辨别功能使用者 . 30 4.1.4 明确测量粒度 . 30 4.2 映射阶段 . 31
12、 4.2.1 辨别功能处理 . 31 4.2.2 辨别数据集 . 33 4.2.3 辨别数据属性 . 34 4.2.4 生成一般软件模型矩阵 . 34 4.3 度量阶段 . 35 4.3.1 权值调整 . 35 4.3.2 汇总度量结果 . 36 4.4 小结 . 37 第五章 总结与展望 . 38 5.1 工作总结 . 38 5.2 工作展望 . 39 参考文献 . 40 攻读学士 学位 期间 参加的 项目 . 42 致 谢 . 43 Contents - III - Contents Chapter 1 Introduction . 1 1.1 Project Background . 1
13、 1.2 Research Status . 2 1.3 Major Work . 5 1.4 Outline of Thesis. 6 Chapter 2 The Estimation of Software Scale . 7 2.1 Research and Development of FPA . 7 2.1.1 Standard of FPA . 7 2.1.2 Development of FPA. 8 2.2 Traditional Method IFPUG-FPA . 9 2.2.1 Process of IFPUG-FPA . 10 2.2.2 Using of IFPUG-
14、FPA. 10 2.2.3 Problems of IFPUG-FPA .11 2.3 New Method-COSMIC-FFP. 12 2.3.1 Principle of COSMIC-FFP . 12 2.3.2 Process of COSMIC-FFP . 13 2.3.3 Features of COSMIC-FFP . 17 2.4 Summary . 17 Chapter 3 Example of COSMIC-FFP . 18 3.1 OM Platform . 18 3.2 Tools for Programming . 20 3.3 Exchange clearing
15、System . 22 3.3.1 FUR of Query Module . 24 3.3.2 Implementation of Query Module . 24 3.4 Summary . 27 Chapter 4 Application of COSMIC-FFP . 28 4.1 Measurement Strategy Phase . 28 Contents - IV - 4.1.1 Confirm Measure Purposes. 29 4.1.2 Confirm Measure Range . 29 4.1.3 Confirm User . 30 4.1.4 Confirm
16、 Measure particle size . 30 4.2 Mapping Phase. 31 4.2.1 Identify FUR . 31 4.2.2 Identify Data Groups . 33 4.2.3 Identify Data Attribute . 34 4.2.4 Generate General model . 34 4.3 Metric Phase . 35 4.3.1 Adjustment of Weight . 35 4.3.2 Summary Results of Measure . 36 4.4 Summary . 37 Chapter 5 Conclu
17、sions and Future Work . 38 5.1 Conclutions . 38 5.2 Future Work . 39 References. 40 Joined Projects . 42 Acknowledgements. 43 第一章 绪论 - 1 - 第一章 绪论 随着 IT 产业的发展,有效的估算成为了软件开发项目管理中最具挑战性也是最重要的活动之一。只有实用科学的方法对软件项目的规模、工作量、进度与成本做出合理可靠的估算,才能实施良好的项目计划与控制。然 而软件项目的规模估算历来是比较复杂的事,软件项目的规模估算往往和实际情况相差甚远。 因此,估算错误已被列入软件
18、项目失败的四大原因之一 1,软件规模估算一直是软件工程界研究的重点课题之一。 1.1 项目 背景 软件项目的规模估算历来是比较复杂的事,因为软件本身的复杂性、历史经验的缺乏、估算工具缺乏以及一些人为错误,导致软件项目的规模估算往往和实际情况相差甚远。 因此,估算错误已被列入软件项目失败的四大原因之一。软件工程师经常会被问到,编一个什么什么样的软件需要多长时间、多少钱。面对这个问题,有不少人很犯难 ,因为,第一用户的需求太不具体,第二,自己缺乏一个科学的估计方法 2。 需求风险与估算风险被认为是软件开发过程最主要的两个风险 2,3。估算不合理,会导致不合理的进度、资源与质量目标,最终导致项目的延
19、期、超预算及质量失控等后果。软件规模估算是软件项目策划的基础,可以根据规模估计工作量与成本,度量项目的开发效率、缺陷密度、项目的进展等,在估计规模的过程中,还可以给加深对需求的理解,起到对需求进行验证的作用,因此软件规模估算一直是软件工程界研究的重点课题之一。 本学期参加了台湾精诚公司的实训项目期货交易结算系 统,系统开发的过程中,我参与编写了大量的维护模块和查询模块的程序,搜集的大量的关于程序代码行 (LOC, Line Of Code)的有效数据 4。我想通过对软件规模估算方法的学习,把做过的项目作为案例,分析其软件规模,然后把已有数据和软件规模联系起来,建立一个适用于期货交易结算系统查询
20、和维护模块的估计模型。希望在接到新的任务时,可以根据 需求文档 要求,通过已建立模型相对准确的估算出项目的规模。 基于动能点的软件规模估算模型的设计与实现 - 2 - 为什么要软件项目管理过程中要求进行软件规模的估算?软件规模估算,就是为了在开发初期大致了解软件项目的规模,并用功能 点或者代码行量化软件规模。在了解了软件的规模的前提下,我们可以合理的配置开发的资源,让开发的成本降至最低。软件规模估算是软件项目策划的基础 5,可以根据规模估计工作量与成本,度量项目的开发效率、缺陷密度、项目的进展等,在估计规模的过程中,还可以给加深对需求的理解,起到对需求进行验证的作用,因此软件规模估算一直是软件
21、工程界研究的重点课题之一 6。 基于功能点的估算能够在软件项目进行的早期就对项目的规模进行预测、度量,从而将得到的数据用于风险分析、资源安排等影响项目成败的关键性决策,以便达到降低开发风险、控制 软件成本、规范开发进度的目的。 1.2 软件规模估算的现状 软件规模估算没有一个通用的方法,也就是不存在一种方法可以估算所有的软件项目。下面介绍几种常用 软件项目规模的估计方法。 1. Delphi 法 Delphi 法是最流行的专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别,但专家 “专 “的程度及对项目的理解程度是工作中的难点,尽管 Delphi 技
22、术可以减轻这种偏差,专家评估技术在评定一个新软件实际成本时通常用得不多,但是,这种方式对决定其它模型的输入时 特别有用 7,8。 Delphi 法鼓励参加者就问题相互讨论。这个技术,要求有多种软件相关经验人的参与,互相说服对方。 Delphi法的步骤是: (1) 协调人向各专家提供项目规格和估计表格; (2) 协调人召集小组会各专家讨论与规模相关的因素; (3) 各专家匿名填写迭代表格; (4) 协调人整理出一个估计总结,以迭代 的形式返回专家; (5) 协调人召集小组会,讨论较大的估计差异; (6) 专家复查估计总结并在迭代表上提交另一个匿名估计; 第一章 绪论 - 3 - (7) 重复 (4)-(6), 直到达到一个最低和最高估计的一致。 2. 类比法 类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。 使用 类比法估计 出的 结果 精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的 9。 其基本步骤是: (1) 整理出项目功能列表和实现每个功能的代码行; (2) 标识出每个功能列表与历史项目的相同点和不同点; (3) 通过步骤 1 和 2 得出各个功能