第12讲敏捷软件设计.pptVIP

  • 13
  • 0
  • 约7.91千字
  • 约 26页
  • 2018-05-04 发布于四川
  • 举报
第12讲 CMM与敏捷软件设计 张凯 博士 教授 计算机科学技术系 电话邮件:lifo@public.wh.hb.cn 一、软件危机与软件工程方法学 二、软件工程与软件危机 三、敏捷软件设计历史宣言 背景材料 一、软件危机与软件工程方法学 1. 软件发展的三个阶段 第一个阶段是1950年代到1960年代,是程序设计阶段,该阶段是个体手工劳动的生产方式。这个时期,一个程序是为一个特定的目的而编制的,软件的通用性很有限的。软件往往带有强烈的个人色彩。早期的软件开发没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档,因此这个时期尚无软件的概念,基本上只有程序、程序设计概念,不重视程序设计方法,主要是用于科学计算,规模很小、采用简单的工具(基本上采用低级语言),硬件的存储容量小、运行可靠性差。 第二阶段是1960年代到1970年代,是软件设计阶段,采用小组合作生产方式,出现了“软件作坊”。这个阶段,基本采用高级语言开发工具,开始提出结构化方法。硬件的速度、容量、工作可靠性有明显提高,而且硬件的价格降低。人们开始使用产品软件(可购买),从而建立了软件的概念。程序员数量猛增,但是开发技术没有新的突破,软件开发的方法基本上仍然沿用早期的个体化软件开发方式,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,开发人员的开发技术不适应规模大、结构复杂的软件开发,失败的项目越来越多。 第三个阶段是从1970年代止今,为软件工程时代,是工程化的生产方式。这个阶段的硬件向超高速、大容量、微型化以及网络化方向发展,第三、四代语言出现。数据库、开发工具、开发环境、网络、分布式、面向对象技术等工具方法都得到应用。软件开发技术有很大进步,但未能获得突破性进展。 2. 软件危机 第一个写软件的人是Ada(Augusta Ada Lovelace),在1860年代她尝试为 Babbage(Charles Babbage)的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。现在有人称她是“软件奶奶”。 早期的软件问题很多。上世纪60年代,北约(NATO)就提出了软件危机这一概念。在那个时代,很多软件的结局都很惨。很多的软件项目开发时间大大超出了规划的时间表。一些项目导致了财产的流失,甚至某些软件导致了人员伤亡。同时软件开发人员也发现软件开发的难度越来越大。 1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。 欧洲阿里亚娜火箭的爆炸就是一个最为惨痛的教训。美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。OS 360操作系统被认为是一个典型的案例。它使用了1000人左右的程序员,最后失败了。IBM大型电脑之父Fred Brooks在随后他的大作《人月神话》(The Mythical Man-Month)中曾经承认,在他管理这个项目的时候,他犯了一个价值数百万美元的错误。 在《人月神话》一书中,软件开发则被喻为让众多史前巨兽痛苦挣扎,却无力摆脱的焦油坑。随着需求和应用的日趋深入与复杂化,软件开发的难度和遇到的问题以几何级数形式增长,焦油坑也由此变得更深、更大。 复杂程度高,开发周期长,结果无保证,这是软件开发的通病。从软件危机被提出以来。人们一直在寻找解决它的方法。针对问题,人们创造了n种方法,比如结构化的程序设计,面向对象的开发,CMM,UML等等,也由此产生了软件工程方法学。 面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。 二、软件过程管理与CMM 1.CMM的起步阶段 软件管理工程引起广泛注意源于20世纪70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。到了20世纪90年代中期,软件管理工程不善的问题仍然存在,大约只有10%的项目能够在预定的费用和进度下交付。软件项目失败的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的

文档评论(0)

1亿VIP精品文档

相关文档