欢迎来到天天文库
浏览记录
ID:33944389
大小:86.40 KB
页数:9页
时间:2019-03-01
《微软软件开发模式简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微软公司软件开发模式简介Smalllamb北京大学出版社96年底所出的《微软的秘密》一书是目前我所见到的对微软公司软件产品开发过程介绍的最专业、最深入的一本书。通过本书,我们可以看到微软公司是如何对科学地对软件产品开发进行有效地管理,我想这些经验对于中国的广大软件开发人员,尤其是关心中国软件产业发展的各位朋友是大有益处的。所以特将此书中涉及软件产品开发的部分内容摘录出来(第四章“产品定义与开发过程”),加上我在微软中国工作的实际经验总结出这篇文章,希望与大家共同分享。本文作为摘录,自然是挂一漏万,所以建议大家若有时间还
2、是找来原书一读。在微软的产品定义与开发过程中,微软软件开发遵循着一种可称之为“靠改进特性(Feature)与固定资源(Resource)来激发创造力”的战略。该战略可分为五个原则:1、将大项目分成若干里程碑式(Milestone)的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。2、运用想象描述和对特性的概要说明(ProgramSpecification)指导项目。3、根据用户行为(UserBehavior)和有关用户的资料确定产品特性及其优先顺序。4、建立模块化的和水平式的设计结构,并使项目结构反映产品结构的
3、特点。5、靠个人负责和固定项目资源实施控制。原则一:将大项目分成若干里程碑式的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。1、项目进度安排与里程碑微软通常采用“同步-稳定产品开发法”。典型项目的生命周期包括三个阶段:l计划阶段:完成功能的说明和进度表的最后制定l开发阶段:写出完整的的源代码l稳定化阶段:完成产品,使之能够批量生产(RollOut)这三个大阶段以及阶段间内在的循环方法与传统的“瀑布”(WaterFall)式开发方式很不相同,后者是由需求、详尽设计、模块化的代码设计与测试、集成测试以及系统测试组
4、成的。而微软的三个阶段更像是风险驱动的、渐进的“螺旋”式的生命周期模型。计划阶段的产品是想象性描述与说明文件,用来解释项目将做什么和怎么做。在管理人员拟定进度表、开发员写出代码之前,这些东西都促进了人们对设计问题的思考与讨论。开发阶段围绕三次主要的内部产品发布来进行;稳定化阶段集中于广泛的内部与外部测试。在整个产品生产周期中,微软都使用了缓冲时间的概念。缓冲时间使开发组能够对付意外的困难和影响到时间进度的变故,它也提供了一种手段,可以缓和及时发货与试图精确估计发货时间之间的矛盾。在开发和稳定化阶段的所有时间中,一个项目
5、通常会将2/3的时间用于开发,1/3的时间用于稳定化。(Office部门副总裁曾这样概述通常的进度:“一般说来,在总的进度表中,用一半的时间写出产品,留下另一半的时间调试或应付意外事故。这样,如果我有一个两年的项目,我会用一年来完成事先想好的东西……如果事情有点麻烦,我便去掉我认为不太重要的特性。”)。这种里程碑式的工作过程使微软的经理们可以清楚地了解产品开发过程进行到了哪一步,也使他们在开发阶段的后期有能力灵活地删去一些产品特性以满足发货时期的要求。l计划阶段计划阶段是在一个项目的生命周期中,所有于开发前进行的计划所
6、占用的时间。计划阶段产生出想象性描述、市场营销计划、设计目标、一份最初的产品说明、为集成其他组开发的构件而规定的接口标准、最初的测试计划、一个文档策划(印刷品和联机帮助形式的)以及一份可用性问题清单(UsabilityList)。计划阶段从想象性描述开始。想象性描述来自产品经理以及各产品单位的程序经理;它是对规划产品的市场营销设想,包括了对竞争对手产品的分析以及对未来版本的规划。想象性描述也可能讨论在前一次版本中发现面必须解决的问题以及应添加的主要功能。所有这些都基于对顾客和市场的分析以及从产品支持服务组处得到的资料。
7、说明文件从一个大纲开始,然后定义出新的或增加的产品特性,并对其赋以不同的优先级。说明文件只是产品特性的一个预备性概览;从开始开发到项目完成它要增加或变化20%-30%。虽然在生命周期的后期说明变化一般较小,但越到后期,开发员就越是必须具充分的理由来作改变。通常程序经理使用VB创建项目原型。他们也开展设计可行性研究以了解设计中的取舍情况,尽快做出涉及产品说明的决定。对于重要产品的说明需由公司高层领导进行复审。对于不太重要的产品,则由部分经理去完成。l开发阶段开发阶段的计划对三四个主要的里程碑版本都逐个分配一组特性,规定出
8、特性的细节和技术上的相关性,记录下单个开发员的任务以及对进度的估计。在开发阶段中,开发员在功能性说明的指导下写源代码,测试员写出测试项目组以检查产品的特性与工作范围是否正常,用户教育人员(UserEducation)则编写出文档草案。当测试员发现错误时,开发员并不是留待以后处理,而是马上改正,并在整个开发阶段内使测试不断地、自动地
此文档下载收益归作者所有