您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 第-6-章-基本COCOMO模型-—-开发模式
基本COCOMO模型:开发模式引言基本工作量和进度公式软件开发的三种COCOMO模式对基本COCOMO工作量和进度公式的讨论工作量与进度的阶段分布现代软件工程实践中,软件开发团队对于所面向的软件问题是否有着深入地了解、是否有着相关软件产品的开发经验严重地影响着软件开发的劳动效率。从软件工程经济学的观念来看,这影响到软件成本和进度估算的准确性。为了系统化考虑其(以及一些相关因素)对于软件工程的影响,在软件工程经济学中,相应地引入了“开发模式”的概念。本章将要讨论“开发模式”的影响。为此,本章内容包含以下几个主题:基本COCOMO模型:开发模式引言前一章介绍的基本COCOMO模型给出了最常见的软件开发的基本工作量和进度估算:在一个内部的、熟悉的、组织模式的软件开发环境中开发中小规模的软件产品软件工程经济学的研究和数据分析表明:存在着多种软件开发模式,不同的软件开发模式具有形式上相似的成本估算关系式,但对同等规模的软件产品却有着明显不同的进行成本估算的具体公式在这一章里,给出了其他两个主要软件开发模式下的成本估算关系式:志向远大却又限制严格的嵌入模式和一种被称为半独立模式的中间模式6.2节介绍了每种模式的基本工作量和进度公式;6.3节描述了每种模式的特征级项目活动差异;6.4节介绍了63个项目的COCOMO数据库,并说明了项目数据是如何证实基本COCOMO工作量和进度估算公式的;6.5节介绍和讨论了三种开发模式的工作量和进度的阶段分布估算表基本COCOMO模型:开发模式基本工作量和进度公式表6–1中给出了组织型模式、半独立模式和嵌入型模式的软件开发的基本COCOMO工作量与进度估算公式按照这些公式得出的估算实例见表6-2,它总结了每种开发模式和下列标准规模的软件产品中所估算的项目工作量、生产率、开发进度和平均开发人员标准:小型:2KDSI中小型:8KDSI中型:32KDSI大型:128KDSI超大型:512KDSI模型工作量进度组织型MM=2.4(KDSI)1.05TDEV=2.5(MM)0.38半独立型MM=3.0(KDSI)1.12TDEV=2.5(MM)0.35嵌入型MM=3.6(KDSI)1.20TDEV=2.5(MM)0.32表6–1基本COCOMO工作量和进度公式工作量(MM)小型2KDSI中小型8KDSI中型32KDSI大型128KDSI超大型512KDSI组织型5.021.391392半独立型6.5311466873250嵌入型8.34423012166420生产率(DSI/MM)小型2KDSI中小型8KDSI中型32KDSI大型128KDSI超大型512KDSI组织型400376352327半独立型308258219186158嵌入型2411821310580进度(月)小型2KDSI中小型8KDSI中型32KDSI大型128KDSI超大型512KDSI组织型4.681424半独立型4.88.3142442嵌入型4.98.4142441平均人员(FSP)小型2KDSI中小型8KDSI中型32KDSI大型128KDSI超大型512KDSI组织型1.12.76.516半独立型1.43.7102977嵌入型1.75.21651157表6–2标准规模产品的基本COCOMO估算基本COCOMO模型:开发模式基本工作量和进度公式图6-1和图6–2描述了三种模式下作为软件产品规模的函数的工作量和进度图形(图略,P58–P59)。图6-3(图略,P59)描述了估算进度于开发工作量的关系曲线在表6–2和图6–1至图6–3中,可以看出,从组织型模式到嵌入型模式,发展的主要趋势是:对于相同规模的软件产品,嵌入型模式的估算工作量相当大,并且估算的生产率相当低对于大型软件产品,嵌入型模式的生产率下降较大(规模不经济性)对于所有三种模式,作为产品规模的函数估算的进度大致相同对于需要相同开发时间的软件项目,嵌入型模式的项目将需要耗费更多的工作量基本COCOMO模型:开发模式软件开发的三种COCOMO模式从表6–2中可清楚地看出,软件工程师能够区分软件开发的不同模式是很重要的。例如,要求在嵌入型环境里开发一个中型32KDSI的软件产品,若不正确地按组织型模式的活动来进行估算和人员安排,是必将严重低估项目所需的工作量数(91人月而不是230人月)。安排项目人员进度的方式也决定了人们一旦发现项目在本质上有差异时,也很难顺利地校正。(这种情况曾经在大量的软件项目中发生过)组织型模式—组织型模式是相对较小的软件团队在非常熟悉的内部环境中开发软件,与项目有关的大多数人在机构中有着相关系统的广泛开发经验,并且十分了解所开发的系统汇兑机构的目标产生怎样的影响这就意味着,大多数项目人员能够在早期就对项目做出有益的贡献,在了解项目整体上是关于什么的、其他每个人在做什么等问题时,并不会产生大量的项目通信费用基本COCOMO模型:开发模式软件开发的三种COCOMO模式这说明了前面所描述的组织型模式开发的项目有着相对平坦的劳动力分布。同时也就意味着,较大项目由于通信开销而损失的生产率变少了组织型模式的项目对软件满足其需求和接口规格说明书的要求是相对比较宽松的。如果出现这样一种情况:要求软件产品于初始需求或接口说明书严格一致将会引起大量返工的话,这项目团队通常可以通过协商来适当修改说明书,从而使开发更容易一些,且对该说明书的修改用户也比较容易接受。这是组织型模式项目的生产率较高、而且规模不经济效应较小的另一个原因组织型模式软件项目的其他因素特征是:一个总的来说还算稳定的开发环境,很少需要相关新硬件和操作系统程序的同时开发对创新的数据处理体系与算法的需要最小基本COCOMO模型:开发模式软件开发的三种COCOMO模式对项目提前完成的额外费用相对较低相对较小的规模。几乎不存在组织型模式的项目开发出50KDSI的新软件产品(较大的规模的软件产品通常是通过多个相关的、但分布实施的项目来完成的)这些因素还趋向于与较高的项目生产率和较小的项目规模不经济效应相关量半独立型模式—软件开发的半独立型模式代表了组织模式和嵌入模式之间的一个中间阶段。“中间”意味着如下两者之一:项目特性的中间水平组织型模式和嵌入型模式特性的结合因此,按照“有在相关软件系统工作的经验”这一特征,以下均是半独立型模式项目的特点基本COCOMO模型:开发模式软件开发的三种COCOMO模式小组成员对相关系统都有中等级别的经验小组充分混合了有经验人员和无经验人员小组成员对所开发系统的一些方面具有相关经验,但对其他方面没有经验对于其与功能说明和接口说明的一致性,一个典型的半独立型模式项目可能是这样一个事务处理系统:具有一些非常严格的接口(例如,具有终端硬件或政府审计需求),同时又具有一些非常灵活的接口(例如,操作员显示信息和销售趋势报告的特点和格式)。这种部分的灵活性(形成了与组织型模式和嵌入模式的明显不同)解释了“半独立”术语的由来,半独立型模式产品的规模范围通常能高达300KDSI嵌入型模式—嵌入型模式的软件项目的主要不同点是要求软件产品在严格约束的条件下运行基本COCOMO模型:开发模式软件开发的三种COCOMO模式在这种模式下,软件产品必须运行在(嵌入在)一个强耦合的硬件、软件、规则和操作过程的复合体中,例如电子资金转账系统或交通管制系统一般来说,变更这个复合体中软件之外的其他部分的成本是如此之高,以致它们的特性基本上被认为是不能改变的。软件产品的特性不仅需要完全符合需求规格说明的限定,人们还期望它能应付复合体其他部分中遇到的任何意外困难或所需的改变(这也就是说,当这个复合体的特性需要改变时,人们不仅不能试图通过调整软件需求来减少软件修改带来的成本—如组织型模式项目那样—甚至还要考虑改变软件的需求以适应复合体中其他部分变更所带来的整体影响)这样一来,嵌入型模式的项目通常无权选择通过修改需求和接口说明书来协商更为简单的软件变更与修改办法(必须使软件严格满足需求和接口说明书)基本COCOMO模型:开发模式软件开发的三种COCOMO模式因此,项目必须花费更多的工作量来适应变更和修改。它还必须花费更多的工作量来保证软件产品确实满足了需求规格说明书中的要求(更高的V&V成本),并保证做出了正确的变更(更高的配置管理成本),这些因素不仅造成了大型项目(这种开发模式下的大型项目)较低的生产率,也导致了较大的规模不经济效应比起组织型模式的项目,嵌入型模式的项目通常能在更大程度上、在未知领域里制定出更为细致的行动计划。这时的项目在早期阶段只需一个很小的团队来进行分析,因为涉及大量的人员可能会陷入通信开销的困境中嵌入型项目一旦完成产品设计,其后的最佳策略就是投入一个庞大的程序员小组,并行地进行详细设计、编码和单元测试。否则,项目要花很长的时间才能完成,这是一种不可取的开发策略基本COCOMO模型:开发模式软件开发的三种COCOMO模式一个项目的时间周期过长通常是非常有害的,因为:产品可能承受更多的变更交付时,产品造就过时了(一般说来,提前完成嵌入型模式项目的额外费用要高得多,这往往是因为需要尽可能早的使整个硬件–软件复合体发挥效用)这一策略导致了和适用于相同总开发进度的组织型模式项目相比,嵌入型模式项目的人员曲线存在更大的峰值,嵌入型模式的项目也消耗更多的工作量开发模式总结—表6–3小结了软件开发的组织模式、半独立模式的特征和嵌入模式的特征相比较的情况,并给出了每种模式软件项目特征的典型实例表6–4给出了另一种形式的小结,它描述了由于软件开发模式的不同而导致的项目活动的主要差异,它是开发阶段的函数模式组织型半独立型嵌入型特征产品目标的组织理解彻底相当一般相关软件系统的工作经验广泛相当中等软件与已确定的需求之间的一致性要求基本相当完全软件与外部接口之间的一致性要求基本相当完全相关新硬件与操作系统程序的协同开发一些中等广泛创新性数据处理体系结构或算法的需要最少一些相当提前完成的额外费用低中等高产品规模范围<50KDSI<300KDSI所有规模示例批数据减少大部分事务处理大型、复杂的事科学计算系统务处理系统业务模型新的OS、DBMS宏大的、非常大熟悉的OS、宏大的存货、生规模的OS编译程序产控制航空控制系统简单存货、生简单的命令控制宏大的命令控制产控制系统系统表6–3软件开发模式的不同特征基本COCOMO模型:开发模式表6–4软件开发模式的不同导致项目活动的差异阶段需求与产品设计详细设计编码与单元测试集成与测试嵌入型模式模式广泛的返工以适应说明书的变更对需求与接口的彻底说明、确认对高风险元素的广泛分析、原型模拟非常正式的配置管理、接口控制广泛的返工以适应代码的变更广泛的需求、接口测试半独立型模式上述影响的中等级别适应说明书变更的相对较少的返工很不正式的配置管理、接口控制中等程度的返工以适应代码变更中等程度的需求、接口测试组织型模式相当概括的说明书、需求与接口的确认对高风险元素的偶尔分析和原型开发基本COCOMO模型:开发模式软件开发的三种COCOMO模式对于嵌入型模式软件项目的规模不经济效应为何较大,表6–4提供一个很好的解释:成比例地,较大的项目有更多的内部和外部接口需要控制和返工总结这些差别的另一种方法是举例说明三种模式分别是如何提供一个功能上相似的软件例行程序:根据各种传感器数据来预测飞机位置的程序组织型模式(飞机飞行后数据处理)—“从过去十年的算法设计中,我们认识到这些算法在预测飞机位置时所能起的作用。如果意外事件发生,有错误或计算时间比平时多出很多,那么数据分析人员就不得不去应付以下”。从这里的陈述不难看出,“组织型模式”的相关项目人员对软件问题(包括软件产品的作用机理、软件产品运行中可能出现的问题及其出资方式等在内)有着深刻的理解与把握,他们也有着相关软件开发的长期经验,这使其有别于其他两种模式的软件开发项目基本COCOMO模型:开发模式软件开发的三种COCOMO模式半独立型模式(飞机
本文标题:第-6-章-基本COCOMO模型-—-开发模式
链接地址:https://www.777doc.com/doc-4300823 .html