推荐 | 《Software Product Lines in Action》


 2014-10-23 11:14:32       753


大型企业在进行多应用多产品交付时,使用产品线模式,通过软件平台化不仅仅实现大量代码的复用,而是软件开发周期的所有资产(框架、业务模块、开发计划、需求等)的大规模复用,从而加强管控、减低风险、快速交付、提高质量。

《Software Product Lines in Action

作者:Linden,Frank J. van der, Schmid,Klaus, Rommes, Eelco

本书从软件工程角度提出了应对于成本、质量、交付响应以及效率提升等具体业务挑战的软件开发管理新思路。笔者结合学术研究与行业实际经验,为管理人员和技术专家指明了基于产品线模式的规模化软件产品开发方法。

书中指出,产品线模式与传统单项目开发的主要不同在于关注点的转移:从单独的产品到产品线的项目,即从特定的项目开发到特定业务领域的产品愿景。

同时,产品线模式对开发以复用(development for reuse)和使用复用来开发(development with reuse)有着明确区分,不再仅仅只是停留在代码级的复用,而是软件开发周期的所有资产(框架、业务模块、开发计划、需求等)的大规模复用。

四个主要原则:

可变性管理(Variability Management):每个产品都是核心资产的变体,必须系统化的管理产品可变性;

业务驱动(Business-Centric):以长期业务战略为目标,而非单一项目;

架构驱动(Architecture-Centric):依赖于一个通用的参考架构,特定项目架构都基于此,实现技术上最大化复用;

两阶段生命周期(Two-life-cycle approach):软件产品基于平台开发,产品和平台有各自的开发生命周期。

伴随企业发展,基于平台的建设与投资(包括核心资产的开发、组织的转变),产品线模式能够在特定阶段降低投资,扭转ROI下降趋势。

在产品线模式中,开发活动必须指定资源、协调和监督,管理和评估将是该模式成功与否的关键所在。欧洲工业界和学术界经过六年时间从众多项目整理出来的一个评估框架Family Evaluation Framework (FEF) 覆盖了软件工程的四个评估维度(商业Business、架构Architecture、流程Process和组织Organization,BAPO),有助于管理者逐步提升其产品线级别。

其中,对于架构层面明确指出:在第三阶段,即若要实线多产品线(多项目)的可管理,必须在架构角度引入软件平台(software platform),即下图标红色的部分。

相关阅读: