打字猴:1.704257856e+09
1704257856 半面创新:实践者的创新制胜之道 [:1704253511]
1704257857 半面创新:实践者的创新制胜之道 行业主力流程
1704257858
1704257859 以软件业为例,图灵奖得主Fred Brooks认为,“软件系统是人类所创造的最复杂的系统。”最初的软件开发带有强烈的个人色彩,没有系统方法,没有需求规格,没有团队概念,开发人员把头脑中的代码写好交给客户,客户不满意再改,如此反复。
1704257860
1704257861 1968年软件危机后,软件工程的概念和方法被提出,即将系统化的、规范化的、数量化的工程原则及方法应用于软件的开发运维,最初是四大基础模型:
1704257862
1704257863 瀑布模型:历经系统需求、软件需求、分析、设计、编码、测试,最后上线运行。主要问题是最终发布的可运行产品在开发过程中很迟才能看到,很可能产品做好之日就是客户不满爆发之时。
1704257864
1704257865 增量模型:为了提早获得可运行版本,可以先实现一些功能,发布一个版本;再实现一些功能,再发表一个版本……每个增量包括分析、设计、编码、测试等阶段并交付一个可运行版本。
1704257866
1704257867 快速原型模型:核心是用交互的、快速建立起来的原型取代了形式的、不易修改的规格说明,用户可实际运行和试用原型而提供反馈。优点是使得用户在设计阶段就能参与,减少了风险。
1704257868
1704257869 螺旋模型:瀑布模型+快速原型模型+周期迭代。每个阶段使用瀑布模型,包括需求定义、风险分析、工程实现和评审四个阶段,再由这四个阶段进行迭代。优势是设计上可在项目的各个阶段进行变更。以小的分段来构建大型系统,使成本计算变得容易。客户始终参与每个阶段的开发,保证了可控性。
1704257870
1704257871 基于基础模型的行业四大主力流程是RUP、MSF、XP和CMMi,只做理念概述:
1704257872
1704257873 统一过程RUP。中心思想是用例驱动、架构为中心、迭代和增量,适用于大中型产品。它是二维开发模型,如图17-1所示。横轴把开发周期分为多个循环,每个循环生成产品的一个新版本,每个循环由四个连续阶段组成:先启阶段定义最终产品视图和业务模型,确定系统范围;精化阶段设计、确定系统的体系结构,制定工作计划即资源要求;构建阶段构造产品并继续演进需求、体系结构、计划直至产品提交;产品化移交阶段把产品提交给用户使用。
1704257874
1704257875 纵轴为九大工作流,一是业务建模,理解待开发系统所在的机构及其商业运作,确保所有人员对它有共同的认识,评估待开发系统对结构的影响;二是需求,定义系统功能及用户界面,为项目预算及计划提供基础;三是分析设计,把需求分析结果转换为分析与设计模型;四是实施,把设计模型转换为实现结果,并做单元测试,集成为可执行系统;五是测试,验证所有需求是否已经被正确实现,对软件质量提出改进意见;六是部署,打包、分发、安装软件,培训用户及销售人员;七是配置与变更管理,跟踪并维护系统开发过程中产生的所有制品的完整性和一致性;八是项目管理,为软件开发项目提供计划、人员分配、执行、监控等方面指导,为风险管理提供框架;九是环境,为软件开发机构提供软件开发环境。
1704257876
1704257877
1704257878
1704257879
1704257880 图 17-1 统一过程RUP模型
1704257881
1704257882 微软方案框架MSF。里程碑驱动的瀑布模型和迭代的螺旋模型的混种,适用于大中型产品,如图17-2所示。微软认为,开发需要流程但流程应该灵活。MSF包含三大原则:一是活的文档,即设立一个结构化的变更控制流程。二是版本化发布,产品周期性出货,让客户快速感知,当不再增加商业价值时发布终止;版控中的“日/周构建”被称为产品的“心跳”,实质是增量开发,每天/周一个可运行版本。三是在质量、进度和资源三个维度权衡决策。
1704257883
1704257884 敏捷过程与极限编程XP。敏捷适合于小型团队、互联网产品开发等,或者在MSF和RUP的局部或细节上采用敏捷的一些做法。就是把一个大项目分为多个相互联系,但也可独立运行的小项目并分别完成,在此过程中软件一直处于可使用状态。它是一种以人为核心,快速迭代、循序渐进的开发方法。其价值观是个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划。
1704257885
1704257886
1704257887
1704257888
1704257889 图 17-2 微软MSF模型
1704257890
1704257891 XP是敏捷的代表,是一种轻量级的、近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。其价值观是加强交流、从简单做起、寻求反馈、勇于实事求是。
1704257892
1704257893 能力成熟度模型CMM/CMMi。与针对特定技术(如RUP)、特定企业(如MSF)、特定阶段(XP)发展起来的流程不同,CMMi创造的是一个过程不断走向成熟的框架路线。它提供了软件组织达到一定能力成熟度所需要的一系列流程改进的准则和改进标准,但不是实现方法,可看做是元模型,不讲如何做,只讲做什么。具体分类如表17-1所示。
1704257894
1704257895
1704257896
1704257897
1704257898
1704257899
1704257900
1704257901 最后,以51CTO总结为蓝本,补充我在东软讲课时的学员更正,做对比如表17-2所示。
1704257902
1704257903
1704257904
1704257905
[ 上一页 ]  [ :1.704257856e+09 ]  [ 下一页 ]