高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx

上传人:b****3 文档编号:13834023 上传时间:2022-10-13 格式:DOCX 页数:10 大小:132.60KB
下载 相关 举报
高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx_第1页
第1页 / 共10页
高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx_第2页
第2页 / 共10页
高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx_第3页
第3页 / 共10页
高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx_第4页
第4页 / 共10页
高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx

《高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

高级软件开发过程Rational统一过程敏捷过程与微软过程第一章Word格式文档下载.docx

软件过程不仅包括软件开发过程,还包括了支持性、管理性过程。

以上发展历程表明,通过实践、总结、再实践、再总结……人们对软件这门实践学科的理解正朝着更全面、更系统、更深刻的方向发展。

1.1现代软件产业的困境

1.1.1困境中的现代软件产业

当今,全球市场变幻莫测,用户需求日趋复杂,IT技术日新月异。

软件企业组织在不断变化的市场和技术环境中能否取得成功,关键在于企业组织是否能在市场许可的期限和有限资源条件下不断推出满足用户需求的产品。

然而,现代软件产业的总体情况并不理想。

下面先来看一个真实的案例[14]。

SquareCal3.0版本计划在2.0版本上市后的10个月内发布。

项目经理Mickey和上司Kim讨论后决定:

他们将为项目组成员提供私人办公室、最新型的计算机以及免费的碳酸饮料,并且要求开发者在前8个月按照预先设计好的接口各自开发,8个月之后进行可视化锁定,在最后2个月内完成系统集成。

这是一个完美的计划。

于是项目组成员各自做着自己的工作。

随着可视化锁定日期的来临,他们开始进行代码集成。

他们在可视化锁定最终截止日期前一天的下午两点开始工作,但很快发现程序不能编译通过,更不用说运行了。

代码在编译时有数十个错误,而似乎每处理一个错误就会产生十个以上的新错误。

他们一直干到午夜也没有结果,只好决定第二天再说。

但测试发现问题的速度远比开发人员解决问题的速度快,解决系统某一部分的错误经常会导致其他部分的新问题。

项目超期,项目组成员在巨大的压力下工作,士气逐渐低落。

最后整个软件开发过程用了15个月时间,即超过了项目计划时间的50%,公司错过了最佳的产品发布日期。

产品发布后,用户对SquareCal3.0版本反映冷淡,在几个月的时间内其市场份额从第二位下降到第四位。

再看一组统计数据。

图1-1[12]是根据最近一次项目调查得到的某公司所有软件项目的完成情况。

从图中可以看出,出现问题的项目和中途取消的项目所占比例远高于顺利完成的项目。

实际上,图1-1代表了整个现代软件产业的现状,很多软件项目最终不能交付,或者最终交付的软件项目进度发生延期、成本超出预算,而且运行经常不可靠。

因此,诸如“软件开发的滑铁卢”(SoftwareRunaways)[2]、“死亡之旅”(DeathMarch)[3]之类关于软件失败项目的报道不时见诸于媒体报端也就不足为奇。

图1-1项目完成情况图

1.1.2陷入困境的根源

众所周知,现代计算机和因特网的性能在逐年增强,用户对运行于计算机和因特网上的软件的功能和性能的渴望也随之不断增加,用户希望得到越来越复杂的软件系统以满足其需求;

及此同时,市场的激烈竞争迫使现代软件企业必须更快地生产出用户需要的复杂软件。

然而,现今大多数软件企业及其开发人员仍然沿用二三十年前的软件组织方式和开发方法来开发软件系统,这就是现代软件产业陷入困境的根源所在。

具体总结、归纳起来[2],[5],[12],大多数软件项目失败的根本原因主要有以下几个方面。

●不完整、不现实的项目需求描述:

需求分析过程中缺乏用户参及或及用户的交流过于模糊,常导致给出的需求描述不完整、不准确,需求项过多、需求项实现难度过高等。

●对需求的变更束手无策:

需求的变更往往是现实世界变化的反映,合理的需求变更在项目的某些阶段是允许的,这要求开发过程对需求变更具有应对能力。

●脆弱的架构:

表现为程序模块互不兼容,软件不易扩展、裁剪和移植。

●采用不成熟的技术:

表现为新技术不具有要求的功能、新技术存在局限性或者新技术是问题的错误解决方案。

●测试的不充分性:

未检测出需求、设计和实现三者之间的不一致。

●拙劣的进度计划和评估:

主要表现为对项目进度的评估过于乐观,正如霍夫斯塔特(Hofstadter)定律[2]所指出的那样,“开发软件的时间总比想象的时间长,即使注意了霍夫斯塔特定律也是如此”。

●缺乏资源:

产品开发项目需要一定的投入,包括在经费、人员、场地、时间等资源方面的投入,尤其是在资深人员方面的投入。

●不具备项目管理方法:

包括对风险的预估和驾驭、对软件质量的度量等项目管理方法。

●缺少管理层的支持:

在软件企业中从事产品开发工作,必须获得企业高层管理者的支持,项目和产品本身也必须符合企业总体的发展规划和经营目标,否则项目就会夭折。

1.2软件生命周期模型及其局限性

在具体探讨现代软件产业走出困境的解决方案时,有必要先回顾、总结一下现有软件工程领域的研究成果以及它们在解决现代软件产业面临的困境方面存在的局限性,以此作为提出走出困境的新的途径的思想基础。

1.2.1困境中的消极态度

软件开发工作对软件开发人员来说通常不是一件很有趣的事情[8]。

项目经常在开始一段时间后遇到障碍,这时消极的开发人员开始指责别人。

容易被指责的对象包括:

愚蠢、粗暴的老板——他们的能力勉强够给自己系鞋带;

在其他部门的纸堆里的呆子——他们总是要求过多的文档;

愚蠢的用户——他们经常不知道自己想要什么,而在他们能够确切说明自己想要什么的时候,这些要求又总是没有意义的。

当然,这些开发人员在指责别人的时候从不指责自己,他们相信自己是完美的。

指责完之后该做些什么呢?

有的倾尽全力,加班加点,为满足交给自己的、不切实际的要求做徒劳的努力,从而踏上一条死亡之旅;

有的则及项目完全脱离关系,做一些不相干的事,因为知道项目注定要失败,所以开始学习一些新的技术,至少可以用来充实自己的简历,以备项目组解散后被调换到另一个项目组或跳槽到另一家公司工作。

不幸的是,上一个项目的历史在新项目过程中再一次被重演,新项目开始遇到障碍,他们又开始了新一轮的从指责到颓废,如此周而复始,恶性循环。

1.2.2困境中的积极探索

正当消极的人在软件开发的泥潭中相互指责而越陷越深、难以自拔时,另一部分人开始了积极的反思及新的探求。

难道真的全是别人的过错吗?

自己有无责任?

如何使项目走出困境?

如何避免新的项目再次陷入泥潭?

回顾图1-1,尽管最终失败或出现问题的项目占84%,但毕竟还有16%的成功项目,一个最明显的例证即微软公司[13]。

微软公司在1975年只有3名员工,营业额仅16000美元;

到1989年已经有8000名员工,营业额达80亿美元;

而发展至2000年时员工已有35000名,营业额达240亿美元,获利更高达150亿美元,成为世界上最大的软件公司。

这一发展过程堪称世界软件业奇迹之首。

除微软公司外,也不乏其他优秀的软件企业,如嵌入式软件产品及服务的提供商——风河(WindRiver)公司就属于软件业中的后起之秀。

那么,这些优秀的软件企业是如何组织开展软件产品开发的?

通过深入挖掘这些企业软件开发项目成功的经验,同时深刻剖析不成功的软件开发项目失败的原因,人们总结出了很多软件开发实践经验,并决定将这些实践应用于新的软件开发项目中,以期以一种可预测的方式指导新的软件开发项目并获得成功,同过通过实践检验来不断完善这些经验。

最终,这些“软件开发实践经验总结”不断演变,其体系化的研究成果表现为“软件过程”概念的诞生和一些“软件生命周期模型”的相继推出。

1.2.3软件过程

1.定义

定义1-1软件过程是从软件项目需求定义开始直至软件使用后被废弃为止,跨越整个软件生存期内的系统开发、运行和维护等全部活动及相关项的总和。

2.内容[1]

软件过程包括5个主要过程、8个支持过程和4个组织过程。

●5个主要过程为获取过程、供应过程、开发过程、运行过程、维护过程。

●8个支持过程为文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程。

●4个组织过程为管理过程、基础设施过程、改进过程、培训过程。

3.软件过程能力评估标准和改进方案

以下为三种最具影响力的软件过程能力评估标准和改进方案。

●CMM(CarnegieMellonUniversity,能力成熟度模型):

1987年由美国卡内基梅隆大学(CarnegieMellonUniversity)提出,适用范围为国际贸易中的软件。

CMM将软件能力成熟度从低到高分为五级,分别为初始级、可重复级、已定义级、已定量管理级、优化级,软件企业可按这五级对其软件过程进行持续改进。

●ISO9000:

1987年由国际标准化组织(ISO)颁布,适用范围不仅包括国际贸易中的软件,同时也包括国际贸易中的硬件和服务。

●6:

六西格玛(SixSigma,6)起源于制造业,其本质是一种采用统计学技术的质量度量和管理方法。

在20世纪90年代中期,通用电气公司成功地将6从一种质量度量管理方法提升为一种高度有效的企业过程设计、改造和优化的方法体系,继而推广到各个行业;

其思想核心是将所有工作作为一种过程或流程,采用量化的方法分析过程中影响质量的因素,找出最关键的因素加以改进,从而达到更高的客户满意度。

1.2.4软件生命周期模型及其局限性

定义1-2软件生命周期模型是软件过程中全部活动的生命周期结构框架的一种形式化描述,也称为软件生存期模型[1]。

2.种类

迄今为止,已提出多种软件生命周期模型,最典型的包括瀑布模型、演化模型、螺旋模型、喷泉模型等。

(1)瀑布模型

如图1-2所示,瀑布模型规定了软件生命周期各阶段的不同活动,包括定义阶段的项目计划和需求分析,开发阶段的设计、编码和测试,维护阶段的运行维护。

这些活动自上而下,相互衔接,呈线性图状,如同瀑布流水,逐级下落。

软件开发的实践证明,瀑布模型可用于指导用户需求较明确、稳定的软件项目。

尽管瀑布模型的适用范围有很大的局限性,但其思想精髓“线性化”是多种软件生命周期模型(如演化模型、螺旋模型、喷泉模型等)的基本细粒度元素,对此应深刻领会并灵活运用。

(2)演化模型

如图1-3所示,演化模型包括两大步骤:

第一步进行试验开发,得出产品“原型”,其目标在于弄清软件需求并探索可行性;

第二步在原型基础上开发出较为满意的软件产品。

因此演化模型又称为原型模型。

图1-2瀑布模型

图1-3演化模型

显然,演化模型克服了瀑布模型的部分缺陷,减少了软件需求不明确给开发工作带来的风险。

(3)螺旋模型

如图1-4所示,螺旋模型沿螺线旋转,每旋转一圈都历经笛卡儿坐标系中四个象限的四个方面活动——制订计划、风险分析、实施工程及客户评估。

螺线自内向外每旋转一圈便开发出一个更为完善的新的软件版本。

该模型采用的是一种自上而下的工作方式。

图1-5给出了螺旋模型的另一种图示。

螺旋模型将瀑布模型和演化模型进行结合,同时加入了这两种模型中都忽略的风险分析。

更重要的是,它将软件工程的“迭代演化”思想进行了较充分的诠释,使得开发人员和客户对每个演化层出现的风险都有所了解,继而做出有效的应对,因此可应用于指导客户需求不太稳定的软件开

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1