微软解决方案框架MSF(Microsoft Solution Framework)是微软公司,以及微软的产品开发者、IT组织、咨询专家、客户和全球范围合作伙伴的软件开发的经验的总结。MSF是一种实用的软件工程方法。本书介绍了MSF的3个基础模型:风险管理模型、小组模型及过程模型;详述了MSF的4种软件开发范型:企业体系结构原理、应用开发原理、构件设计原理及基础设施部署原理;讨论了如何采用MSF来提高软件过程成熟度,分析了MSF与CMM的关系,介绍了瑞理统一过程RUP和极限编程XP,比较了RUP,XP和MSF;附录中给出了微软推荐的MSF文档模板。本书适用于软件开发的从业人员、软件专业的高年级本科生和研究生,亦可作为软件学院研究生的教材。
第0章 绪论
第1部分 MSF综述
第1章 微软解决方案框架MSF
第2章 MSF的基础模型
第3章 MSF的应用
第2部分 MSF企业体系结构原理
第4章 企业体系结构综述
第5章 MSF企业体系结构项目开发概述
第6章 EA项目构思阶段与计划阶段
第7章 EA项目开发阶段与稳定阶段
第3部分 MSF应用开发原理
第8章 应用开发综述
第9章 AD项目构思阶段与计划阶段
第10章 AD项目开发阶段与稳定阶段
第4部分 MSF构件设计原理
第11章 构件设计概述
第12章 MSF构件设计基础
第13章 概念设计
第14章 逻辑设计
第15章 构件物理设计
第5部分 MSF基础设施
第16章 基础设施部署概述
第17章 ID项目构思阶段与计划阶段
第18章 ID项目开发阶段与部署阶段
第6部分 MSF与前沿软件工程技术
第19章 MSF与CMM
第20章 瑞理统一过程RUP
第21章 极限编程
第22章 MSF与RUP和XP的比较
附录 MSF文档模板
应用软件开发一直是人们关注的问题,谁都知道软件开发是用某种编程语言编写程序。学过软件工程的人都知道,编程仅仅是实现软件开发的一个阶段。它前有分析、设计,后有测试、交付和维护。软件开发过程是整个软件生命周期全过程的一部分。创建、使用、维护及退役是它的全过程,简称软件过程(sOhware process)。当然,从无到有创建软件的开发过程是核心过程。
由于软件越来越大,越来越复杂,创建它所消耗的资金动辄几万元、几十万元,甚至几百万元,并且开发完成的软件也不一定可以使用;所以,必须以工程的方法才能按时、保质、按客户的需求完成它,且不超过预算。当今正式软件的开发过程也是软件工程过程。
工程的单位是项目(project)。项目是人们按照合同要求完成的各项活动(工作),以得到工程产物(可以是商品,如一架飞机;可以是服务,如电话系统;也可以是完整产品的一部分,如一座楼基)。合同的甲方,即出钱做此工程的业主,也叫客户(customer)。客户只负责验收工程产品,并为该项目付款,不一定是该工程产物的最终用户(end user)。例如,航空公司是业主,驾驶员和地勤人员才是飞机的使用者。显然,该产品的使用价值和工作性能只有最终用户最清楚。合同的乙方也叫承包商(contractor),即该项目的实施者。承包商从项目立项、签定合同、项目实施到项目交付,组织人力和物力,保质、按期交付承制的产物;还要做好交付后的服务,培训最终用户的操作和维护;有了问题,还要返工、返修,甚至赔偿因本产品故障对客户方业务过程造成的损失(按合同定义的赔偿条款)。
工程项目是在市场环境下人们的社会生产活动。每一项活动都要精心核算成本,计算投入所带来的经济效益;为此,项目必须有周密的计划,并在执行过程中及时调整,因为无论
多么周密的计划,也无法预料计划执行期间出现的偶发事件,如主要干将生病、停电导致通信中断等。工程项目按期完是第一位的,否则要受到违反合同的处罚。然而计划的拖3乏是工程项目的通病,直到交付期临近,才不惜工本抢进度,做高价互易(请高手,买成熟部件),这种现象时有发生。
软件产品的开发过程和一般工程产品的工程过程完全一样,只是软件产品是意识产品,投入的原材料少,投入的人力较多。每个人配备机器和必要的环境工具软件(甚至开发者可自备),就可投入生产,而开发出的产品就是源代码和文档。软件从某种意义上讲,交付、传输及更改极其容易,不像物质产品,一旦交付,缺陷陪伴终生,很难更改。
作为意识产品的软件,其开发与交付是一个复杂的过程,一些困难始终困扰着软件开发组织。虽然企业在软件开发方面投入了大量的资金和人力,然而仍然无法获得预期的系统。无论是过去,还是现在,都有许多这样失败的例子:软件无法按时交付,系统太昂贵,系统经常出故障,或者根本不满足客户的业务需求。
虽然软件开发仍然面临着诸多挑战,但是为了提高软件开发效率,降低成本,保证质量,软件开发组织仍然在不懈地努力。有的申请IS09001认证,有的做CMM(CapabilityMatu—ritv MOdel)评估,有的提倡极限编程XP(eXtreme Program—ming),有的推行RUP(RationalUnifiedProcess),众说纷纭,莫衷一是。当然各种做法自有它的道理,那么有没有一种简单易行、富有成效的做法呢?有!这里我们推荐微软的MSF(Microso{t S01utiOn Framework)。
本书试图从软件方法学和开发技术的角度介绍微软公司是如何进行软件开发的,并且与其它的软件开发方法和理论作比较,希望能对国内软件企业有所启发和借鉴。
本书付梓,时值北京非典流行,本书出版稍有后延。在此期间,编者又从网上获得MSF 3.1版的信息。决定在中文版的第2版中增加MSF 3.1版的内容。
MSF 3.1版是对原MSF 3.0版的进一步细化,增加了丰富的文档模板。其基本思想和过程没有改变,只是将稳定化阶段细化为稳定化和部署2个阶段;对相应角色做了少量的调整。一本书在编写过程中得到微软(中国)公司的帮助。微软公司向我们提供了MSF的相关材料,微软中国公司的王静茹女士和李东方先生为我们提供了咨询。这里向微软公司以及王静茹女士和李东方先生表示感谢。
编著者
于北京航空航天大学
2003年8月