第7章软件产品线详解
核心资源促进了应用系统的快速创建,核心资源 随着新应用系统的开发而不断地被更新
通过跟踪核心资源的使用情况,其结果将被 反馈到核心资源的开发活动中,以创建更多 有利于复用的基础设施 核心资源开发和软件项目开发都需要人力、 物力和财力的投入,因此需要持久的、强有 力的和卓有远见的组织管理 管理必须促进企业文化的交流,将新项目的 开发放到可用资源环境下进行考虑
核心资源开发、软件项目开发和技术协调、 组织管理三大活动不断迭代循环,促进产品 线的基础设施不断完善 迭代是软件产品线活动所固有的特性,循环 存在于核心开发中,循环存在于软件项目开 发中,同时,循环也存在于两者的技术协调 和组织管理中 核心资源开发活动的输出包括:
产品线范围:是关于产品线所能包含的产品描述, 列举出所有产品的共性和彼此之间存在的个性差 异 核心资源:是产品线中应用系统创建的基础设施 开发计划:描述了如何利用产品线中的核心资源 去开发软件项目
7.2软件产品线的基本活动
软件产品线包括核心资源开发、利用核心资 源的项目开发以及在这两部分中所需要的技 术协调和组织管理
核心资源开发被称之为领域工程,利用核心 资源的软件项目开发也被称为应用工程 软件产品线总是针对某一特定领域而创建的, 在创建之后,又要为该领域的应用开发服务 在核心资源开发和软件项目开发之间,存在 着反馈循环
大部分组织都只关注某一具体应用领域,他们不 断地重复开发该领域已有的软件变体 这些变体之间通常存在着大量的相似性,而这又 为系统化和大规模软件复用奠定了基础
在软件开发过程中,不能采用统计数据进行 定量化的度量,而只能通过文字描述和图表 显示来进行定性化的度量 定性化度量要求:在分析和评判过程中,需 要对有意义和可观察的模式或主题进行对比 和解释
在一个特定领域中,基础架构是支持一组具 有相似应用需求的领域模型和参考架构,这 一基础架构经常被称为产品线体系结构 (Product Line Architecture,PLA) 描述产品线体系结构的最好手段就是框架, 框架是一个可复用的和已经部分实现的软件 制品,框架能够被扩展实例化,以生成特定 的应用系统
产品线范围,指出当前所要开发的软件项目是否 可由产品线来实现,指明该项目可由产品线实现 的模块,同时,还应该说明应用系统开发依赖于 产品线的程度 用于创建该项目的核心资源 开发计划,详细描述了如何利用核心资源来设计 实现该软件项目
软件产品线就是一组相关的应用系统,但是 它们如何存在却取决于具体的核心资源、开 发计划、作用范围和组织环境
Kruege提出“软件产品线是一种工程技术, 利用通用的产品构建方法和一组共享的软件 资源来开发功能相似的应用系统”。这个定 义强调了软件产品线的工业化生产模式。 Pohl给出的定义是“软件产品线工程是使用 公用平台、大规模定制技术来开发功能密集 型系统和软件产品的范型”。该定义关注公 用平台的搭建和产品个性化信息的定制。 卡耐基梅隆大学的软件工程研究所给出了软 件产品线的经典定义。
软件产品线就是一组相关的应用系统,但是 它们如何存在却取决于具体的核心资源、开 发计划、作用范围和组织环境 技术协调和组织管理对于软件产品线的成功 是至关重要的 产品线工程是在核心资源的基础上,遵循用 户的实际需求所开展的一种监督和协调工作 软件产品线是一种正在成熟的软件工程范型, 用于开发同一领域中具有相似需求的产品线由一个产品 线体系结构,一组可复用构件和由共享的核 心资源派生的产品集合构成”。这个观点是 从产品线构成的角度来给出的。 Bass、Clements和Kazman认为“软件 产品线是在一个公共的软件资源集合基础上 建立起来的,共享同一个特性集合的应用系 统集”。
项目 产品线范围 核心资源 开发计划
软件项目开发
项目 1 项目 2 …… 项目 n
管理
软件项目开发活动依赖于核心资源开发活动 的输出结果,即产品线范围、核心资源和开 发计划 软件项目开发活动的输人包括:
项目实际需求,被表示为领域中一些通用产品描 述的变化或增量,也可表示为产品线需求集合的 一个增量,通过比较应用需求与产品线需求模型 来获得
软件产品线定义
软件产品线(Software Product Line, SPL)是指一组可管理的,具有公共特性的 软件应用系统的集合 在利用软件产品线方法构建一个应用系统时, 主要的工作是组装和繁衍,而不是创造,其 重要的活动是集成而不是编程 核心资源是软件产品线的实现基础,通常包 括:
第七章 软件产品线
本章内容
7.1软件产品线概述 7.2软件产品线的基本活动 7.3软件产品线的开发过程 7.4软件产品线应用实例
7.1软件产品线概述
软件开发可以象制造业一样,在产品线上采 用标准的软件构件来进行组装生产 软件产品线的起源可以追溯到1976年 Parnas对程序族的研究 软件产品线是软件复用的一种重要方法,是 一种预先规划的和系统化的软件复用技术 软件产品线的基本思想是:大部分的软件需 求并不是全新的,而是已有系统需求的变体
软件产品线工程与其它复用技术相比,主要 存在以下两方面的差异:
产品线体系结构、可复用软件构件、领域模 型、需求陈述、文档技术资料、规格说明书、 性能模型、进度表、预算、测试计划、测试 用例、工作计划和过程描述等 其中产品线体系结构是核心资源中的最关键 部分 关于软件产品线的定义主要包括以下几种:
Parnas提出了程序家族的概念,认为“软 件产品线是具有广泛公共属性的一组程序, 在分析单个程序属性前,值得先研究这些公 共属性”。这应该是软件产品线的最原始定 义。 Weiss和Lai提出“从项目之间的公共方面 出发,预期考虑可变性等因素所设计的程序 族就是软件产品线”。