COCOMO模型对软件工程教学的影响

来源 :群文天地 | 被引量 : 0次 | 上传用户:zhehong220
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  COCOMO(构造性成本模型,Constructive Cost Model)出现在软件工程日趋成熟之际,它既是对该学科方法与技术等变化的反映,同时也是这些变化的指示器。COCOMO已经并将继续成为介绍、阐释软件工程方法与技术的不可或缺的工具。
  
   一、引言
  
  COCOMO由Barry Boehm在其1981年的论著《软件工程经济学》一书中所提出,被描述成为一种用于估计软件项目耗费、成本、时间表等的模型。正如他所指出的,“COCOMO适用于对当前软件工程的指导方针以及该方针在整个软件生命周期中的作用做出解释” 。事实上,基于COCOMO的估计已经成为当今最为流行的估计方法,并对工业生产和软件工程教学产生了深远的影响。
  本文简单介绍了COCOMO的最初模型,回溯了COCOMO的发展历程,并对以COCOMO 81及其后续者作为软件估计教学和软件项目管理基础的一些方法进行了阐述。
  
   二、COCOMO及其后续产品
  
  在《软件工程经济学》这一经典教材中,有关COCOMO的内容仅占全书33章中的13章,其他章节则是对成本效率分析,多目标决策分析,解决不确定性、风险、以及信息价值等的论述。然而,这并不妨碍COCOMO成为该书的灵魂,也正是由于包含了COCOMO,这本教科书式的论著才受到了长久的追捧。
  (一)COCOMO 81 - 一种构造性成本模型
  COCOMO 81具有典型的开放式、构造性特征,正如人们通常所认为的,它既是一个估算模型,同时又是一个演示如何建立估算模型的详细实例。COCOMO之所以被称为“构造性成本模型”,源于Barry Boehm最初利用它来说明如何构建一个成本估算模型。早期的“黑盒”估算工具所依赖的模型,其细节被卖家认为是私有的,尽管他们声称模型是建立在“数以千计的数据”基础之上,但是却没有公开发表的论文对此做出印证。而与此相反的,开发COCOMO 81及其后续产品的目的,就是意图建立一个完全开放式的、透明的模型。
  Barry Boehm于1981年担任TRW公司(Thompson Ramo Wooldrige Inc)的软件开发与技术总监,COCOMO 81即建立在对该公司63个项目相关数据的分析基础之上,采用当时流行的瀑布式软件开发模式。在月人工量(man-months)与基于交付源指令(DSI)的项目规模关系图中,COCOMO数据大致形成三个集群,Boehm将它们分别称为组织型的(Organic)、半分离型的(Semidetached)、以及嵌入式的(Embedded)模式,这三种模式下的软件开发复杂性与困难程度呈逐步增加的趋势。
  COCOMO由三个不断深入的层次组成,分别为“基本(Basic)COCOMO”、“中间(Intermediate)COCOMO”、以及“详细(Detailed)COCOMO”。基本COCOMO是一种静态的单值模型,它根据(由代码行数来度量的)程序规模来计算软件开发的工作量和成本。中间COCOMO 模型采用15个成本驱动改进基本模型,是对产品、硬件、工作人员、项目特性等因素的主观评估,其中,成本驱动的影响定为项目级。详细COCOMO 模型是三种模型中最精确的,具有中间 COCOMO 模型的所有特性;它将软件开发划分为四个阶段,并根据相应的阶段赋予成本因子不同的权重,此时的计算细化到子系统/模块,更加符合软件开发的真实情况。
  (二)COCOMO 81中的施教时刻
  施教时刻(Teachable moments)是指在就某一问题进行讨论或学习时,能够产生大量与该问题相关的认识、看法、理解等认知的那段时间。施教时刻可以事先进行安排和计划,也可能随机的、自发的产生。在施教时刻,人们把对某一问题的讨论设置在特定的情境或条件之下,从而在这些前提不断扩大和深入时,有助于获得对该问题更深层次、更广泛的理解。比如,对COCOMO有关等式的推导附带着线性回归、统计密度函数、方差分析等方面的知识,选择成本驱动及其参数则涉及了对工作效率、成本、时间表等的有关影响因子的分析;我们可以这样认为,施教时刻是将认知扩大到一个预先设定好的更广泛领域的过渡阶段。Richard E. (Dick) Fairley在其所教授的软件项目管理课程中列举的COCOMO中所包含的施教时刻如表1所示:
  
  (三)Ada COCOMO与Ada过程模型
  COCOMO 81是典型的基于瀑布式模型的批处理模式,它随着软件工程的日趋成熟而逐步发展起来,在第一时间反映并指示了了软件工程方法与技术领域的诸多变化。Ada COCOMO是COCOMO 81的“增强版”,是专门针对嵌入式系统的估算模型,这类系统大多采用Ada编程语言开发(Boehm & Royce,1987)。TRW公司所采用的Ada过程模型集增量开发、风险管理、结构骨架、渐增测试、统一软件度量等于一体(Royce,1990)。Ada COCOMO中增加了新的成本驱动,并对工作量乘数做出了相应的调整,其对COCOMO 81最突出的两点增强表现为,(a)整合了四个尺度因子以适应嵌入式系统中工作效率和时间估计方程的指数,(b)为软件产品或系统的增量开发提供了一个估计程序。在COCOMO 81及其扩展(包括Ada COCOMO)中,指数因子(> 1)都显示出成本费用因经营规模扩大而增加的一种趋势,这与大规模产品中沟通费用和整合工作量的非线性增加有关。乘数因子便是根据产品和项目的特性而非规模来调整对工作量的估计。
  Ada COCOMO在COCOMO 81的基础上进一步引入了软件安全性、复用性、基于新成本驱动的嵌入式系统等内容,同时也在更广泛的意义上对基于连续性数据采集与分析的模型参数改进、软件开发过程模型的特性、迭代式开发的软件修订等问题进行了探讨。Ada COCOMO中包含的施教时刻(表2)反映了对COCOMO 81的一种渐进性的累积过程,因此,COCOMO的教学可以称之为是对COCOMO、软件估计、软件工程方法与技术等发展历程的强化认识。
  
  (四)COCOMO II
  COCOMO II发布于1997年,随后在2000年进行了一些小的升级和改动。COCOMO II的最初使命是为自1981年以来不断改变着的软件工程方法、模型以及技术等提供一个开放式的、构建性的估计模型,同时,这个模型将力求完善,以满足一系列开发方法与相应的实际开发工作的需求。
  COCOMO II的主要特点表现在,分别用两个单独的指数方程来进行工作量和时间表的估计,取代了COCOMO 81的三个模式;用五个尺度因子来调整方程指数;增加了三个规模选项;对成本驱动进行了重新定义和补充;另外还包括一个非线性复用模型、两级成本驱动粒度、一个贝叶斯校正方法。它的主要目标是为产品、开发过程、质量、软件项目的成功模式之间的冲突提供调解的途径,从而辅助估计。采用MBASE方法通过对软件规模、成本模型粒度、开发过程等的预先选择,COCOMO II就能够根据设定与约束条件等来满足待估项目的需求。与之前的COCOMO 81和Ada COCOMO相比,COCOMO II包含了更多的施教时刻(表3),所涉及的内容更加宽泛。
  
  
   三、教学
  
  一般来说,教育是指在学校内完成一定的专业知识学习,通过考核,最终获得授予证书或文凭的资格。软件工程的双重教学目的在于,第一,帮助学生打下扎实的基础已以应付未来新知识的学习;第二,向学生传授技能,以适应当前和短期内的商业环境。合理的确定这两个目标在软件工程教学中的比例,也是对教师们的一项长期的考验。
  因此,基于COCOMO的教学大致表现为以下几种形式:介绍COCOMO工具及其使用方法;讲解各种COCOMO模型中所包含的理论内容;通过检验一个COCOMO模型来完成数据采集和分析的实验;通过团队项目来开发一个COCOMO估计工具;以使用COCOMO为基础的、介绍并讨论表1~3中相关话题的、相对详尽的软件工程课程。
  另一方面还要将技术传授给软件开发人员、维护人员、管理人员,从而提高其工作效率。然而,软件工程教学需要明确基于某一问题的假定和约束条件。比如,进行估计的人必须首先要了解估算过程中都包含哪些内容、不同环境下工作量乘子的有关影响、方程与乘子的精度局限性、根据所处条件进行校正模型时需要考虑的事项等等。那些审查并批准估算的人必须知道应该向进行估算的人员提出哪些问题以及如何去评定他们的回答。除此,
  开发人员与管理人员也需要了解软件工程工具的实用性、成本、特点、以及局限等问题。
  
   四、最新发展
  
  USC(The University of Southern California)软件工程中心目前对COCOMO理论方面的研究侧重于在COCOMO II的基础上进行扩展并开发出新的模型,同时,也尝试整合多个模型而建立一个单独的、功能齐备的估计工具。对COCOMO II的扩展主要是指模型利用COCOMO II的输出结果并通过各种途径来实现对结果的修正。新模型可以在COCOMO方法的基础上进行估计但要求有其独立的输入,如果有必要,新模型也可以与COCOMO II联合使用。图1简单描述了COCOMO的发展历程。每一个扩展模型和新模型都经由COCOMO这座大门而向学生们展示了软件工程领域的最新发展与动态。
  
   五、结束语
  
  COCOMO 81是一个开放式的、透明的、面向瀑布式的软件项目工作效率、成本、时间表等的估计模型。从表1~3及图1中不难看出,COCOMO的发展是紧密跟随软件工程的脚步的,很多时候它反映了该领域方法与技术的变革,在其发展的每一步,COCOMO都为激发并探讨未知领域提供了一种机制。COCOMO对软件工程教学的影响远远的超出了单纯的对估计方法和估计工具的学习,它将软件开发与维护中的许多问题具体化、深入化。正如《软件工程经济学》一书的序言中所指出的,COCOMO模型适用于“对当前软件工程的指导方针以及该方针在整个软件生命周期中的作用做出解释” 。
  
  参考文献:
  [1]Boehm, B. W., Royce, W., TRW IOC Ada COCOMO: definitions and refinements. In: Proceedings of the Third International COCOMO Users Group, Software Engineering Institute,1987.
  [2]Royce, W.,TRW’s Ada process model for incremental development of large software systems, In: Proceedings of the 12th International Conference on Software Engineering. IEEE Computer Society Press, 1990,pp: 2-11.
  [3]Richard E. (Dick) Fairley,The influence of COCOMO on software engineering education and training, The Journal of Systems and Software,80 (2007),pp: 1201-1208.
  [4]Boehm, B. et al., COCOMO suite methodology and evolution. Crosstalk 18 (4),2005,pp: 20-25.
  [5]赵昌木.美国教学方法改革的经验,1994.
  [6]郑人杰.实用软件工程.北京:清华大学出版社,1997.
  
   (作者简介:向峰(1982—),2007年硕士毕业于武汉大学国际软件学院;现任武汉大学东湖分校计算机科学学院教师,从事软件工程专业教学工作。)
其他文献
中欧关系进入调整期,双方开始以更现实的态度评估共同利益,采取务实的外交政策,但同时,一些在“蜜月”期间被回避的问题也开始成为影响双方关系的重要因素。    一、对世界格局的认识和全球战略:多极化与有效的多边主义(effectivemultilateralism)    中国对世界格局走向的基本判断是美国的霸权主义将被多极化取代,世界正朝向多极化方向发展,中国和欧盟也将成为推动这一趋势的重要力量。中
期刊
近年来各种各样的政策执行偏差现象受到了广泛的关注。政策执行偏差产生的一个重要原因是地方政府的自利性。而自利性这个根本性质是在一定的因素激发下通过政策执行偏差来得以满足的。政策执行偏差造成了影响政府权威、损害公众利益等各种严重后果,要避免政策执行偏差就要分析激发地方政府自利性的因素,才能规避地方政府的自利性,促进政策执行的有效进行。    一、地方政府自利性造成的政策执行偏差    当前的中国正处于
期刊
随着城市化进程的加快,全国大部分城市已基本完成了社区的改造工作。如何实现对现代社区的有效管理是一项新的课题。我们在管理社区的过程中,传统信息管理制度的弊端日渐暴露,表现为信息在社区改造过程中不能及时的进行更新,又不能准确的反映现代城市人口快速流动的变化。虚拟化信息技术作为一种新的社区信息管理模式,值得我们参考和应用。    一、虚拟化信息技术的相关特征    (一)传统信息管理模式跟不上现代信息的
期刊
北京理工大学文学院教授杨东平在其个人博客上发表文章,称要“打倒万恶的奥数教育”,并称奥数教育对青少年的毒害比“黄赌毒”还厉害。无独有偶,青少年问题研究专家孙云晓先生的一句“狠”话这么说:“奥数是一个让大部分孩子一次次证明自己是傻瓜的课程。”一石激起千层浪,这段时间,众多教育界人士和媒体等又一次重新审视了当下中小学盛行的奥数学习。当前,中小学“奥数班”过于火热,并且日趋功利化和低龄化,已对全面提升素
期刊
一、引言  2008年以来中国的经济社会发展经历了多方面严峻考验,中国政府审时度势灵敏果断地扭转宏观调控风向,央行连续两次下调金融机构人民币存款准备金率,三次下调存贷款基准利率,取消了对商业银行信贷规划的约束,并引导商业银行扩大贷款总量。此前我国维持了10年的“稳健”货币政策,于2008年第三季度转为“适度宽松”。就存贷款基本利率而言,从2008年9月中旬至年底,央行密集下调存贷款基本利率。  一
期刊
作为语文教师如何运用广博的知识来服务于语文教学针对这个课题我在教学实践中作了一些尝试。语文教师学识的广与博,归根结底是为了语文知识的专与精,为了学习语文的兴趣和能力的提高。这不仅是教材本身涉及的知识面广的问题,更重要的是教学方法的问题,教师应当采取生动活泼又为学生喜闻乐见的教学方法来上好每一节课,但这里的关键是教师学识的渊博。所谓“博”,就是要掌握语文科学所涉及的各门知识。如字、词、句、篇、修、逻
期刊
中科院李大潜院士指出:“长期存在的矛盾现象:一方面数学很有用,另一方面学生学了数学以后却不会用。”这不能不说是高校数学教学中的一个不足,任何知识都来源于实践,也应该应用,服务于实践,而数学知识应用于实践的一个最好桥梁就是数学建模。数学建模与现实生活息息相关,数学建模的开展是每一个学校必须思考的问题。    一、以数学建模教学促进数学课程建设在深度上求发展    数学建模是通过对现实问题的抽象、简化
期刊
在全球化背景下,也带来了新闻传播的全球化。但全球化传播并不意味着人类已经进入了一个人人平等的地球村时代,这是一个不平等的地球村。传播和媒体的全球化既不平等,也不民主,它是单向的,不是双向的,它带来的是文化帝国主义和新闻霸权。  在全球传播中,由于其庞大的技术,人员和财政支持,美国拥有并控制了几乎所有的全球性媒体,美国在利用媒体作为其政策放大器,操纵国际舆论等方面,拥有世界上任何国家无法想象的优势。
期刊
随着经济的发展和城市化进程的加快,城市规模扩大,车辆拥有量急剧增加,交通拥挤和阻塞问题变得更加突出,给城市管理和发展带来了严峻的挑战。南京作为一个特大城市和历史文化古城,近十年来不断加大对城市交通基础设施的投入,兴建、改建、扩建了多条城市道路,城市交通基础设施有了较大改善。但由于历史欠帐太多,交通基础设施存量仍显不足,供需矛盾仍很突出,还不能满足城市经济和人民生产、生活需要,城市交通已成为南京市经
期刊
在国家所发布的国家旅游景区评定标准中,总共有3大项,其中第一项的总分为1000分,又细分为8大项;第二项的总分为100分,分为2大项,第三项的总分为100分,即顾客满意度调查,为方便分类,现只考虑前两大项评估指标。现从全国诸多景区中随机抽取9个景区,分别为故宫博物院、苏州市寒山寺、洛阳市龙门石窟景区、新乡八里沟、天门山旅游区、方城大寺森林公园、南京市钟山风景名胜区、宁波梁祝文化公园、河北嶂石岩,分
期刊