现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.
点击进入系列文章目录
系统架构设计高级技能 · 软件产品线
- 一、产品线概述
- 二、产品线的过程模型
- 2.1 双生命周期模型
- 2.2 三生命周期模型
- 2.3 SEI模型
- 三、产品线的组织结构
- 四、产品线的建立方式
一、产品线概述
软件产品线 主要由两部分组成,分别是 核心资源 和 产品集合。
核心资源 是领域工程的所有结果的集合,是产品线中产品构造的基础。核心资源必定包含产品线中所有产集共享的产品线架构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个品线中系统化重用的软件构件。与软件构件相关的测试计划、测试实例以及所有设计文档, 需求说明书、领域模型、领域范围的定义, 以及采用COTS的构件也属于核心资源。
产品线架构 和 构件 是用于软件产品线中的产品构建的最重要的 核心资源 。
软件产品线开发 有4个基本技术特点,即 过程驱动、特定领域、技术支持和架构为中心。
与其它软件开发方法相比,组织选择软件产品线的宏观上的原因 有:
- 对产品线及其实现所需的专家知识领域的清楚界定;
- 对产品线的长期远景进行了战略性规划。
二、产品线的过程模型
软件产品线的过程模型主要有双生命周期模型、SEI模型和三生命周期模型。
2.1 双生命周期模型
双生命周期模型 分成两个重叠的生命周期:领域工程和应用工程。
领域工程使用DSSA,主要任务有领域分析,领域设计,领域实现。
领域工程主要任务:
- 领域分析,利用现有系统的设计、架构和需求建立领域模型。
- 领域设计,用领域模型确定领域/产品线的共性和可变性,为产品线设计架构。
- 领域实现,基于领域架构开发领域可重用资源(构件、文档、代码生成器)。
- 应用工程领域:需求分析,系统设计,系统实现。
应用工程在领域工程结果基础上构造新产品:
- 需求分析,划分领域公共需求和独特需求,得出系统说明书。
- 系统设计,在领域架构基础上,结合系统独特需求设计应用的软件架构。
- 系统实现,按应用架构,用领域可重用资源实现领域公共需求,用定制开发的构件满足系统独特需求,构件新的系统。
2.2 三生命周期模型
三生命周期模型为有多个产品线的大型企业增加企业工程流程,以便在企业范围内对所有资源的创建、设计和重用提供合理规划。
2.3 SEI模型
SEI模型基本活动分为三部分,分别是核心资源开发(即领域工程)、产品开发(即应用工程)和管理。
SEI模型的主要特点:
- 循环重复是产品开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征。
- 核心资源开发和产品开发没有先后之分。
- 管理活动协调整个产品线开发过程的各个活动、对产品线的成败负责。
- 核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。
核心资源开发活动的目标是建立产品线的生产能力。根据输入端的产品约束、框架、生产约束、生产策略和遗留资产清单,核心资产开发活动产出三项输出:
- 产品线范围:产品线范围是关于构成产品线的产品或产品线所能包括的产品的描述,该描述列举了所有产品的共性和他们之间彼此的差异,包括产品所提供的特征或操作、产品所表现出的性能和其他产品属性等。
- 核心资产:是产品线中产品生产的基础。这些资产包括产品共享的架构,以及为贯穿产品线进行系统化重用所开发的产品组件。提供了将纳入资产库的组件接口规范。
- 生产计划:描述了如何从核心资产中生产产品。
三、产品线的组织结构
软件产品线 开发过程分为领域工程和应用工程,相应的软件开发组织结构也应该有两个基本组成部分,即负责核心资源的小组和负责产品的小组。这也是产品线开发与独立系统开发的主要区别。
组织模型 :开发部门、商务部门、领域工程部门和层次领域工程部门。
动态的组织结构 ,根据产品线的建立方式和发展阶段、成熟程度的变化,有一种组织结构向另一种组织结构演变。
组织结构类型:
- 设立独立的核心资源小组
- 不设立独立的核心资源小组
- 动态的组织结构
要成功实施产品线,主要取决于以下因素:
- 对该领域具备长期和深厚的经验
- 一个用于构建产品的好的核心资源库
- 好的产品线架构
- 好的管理(软件资源、人员组织、过程)支持
四、产品线的建立方式
划分依据 :用演化方式和革命方式引入产品线开发过程,基于现有产品还是开发全新的产品线。
四种方式 的基本特征如下:
- 将现有的产品演化为产品线
- 用软件产品线替代现有产品集
- 全新软件的产品的演化
- 全新软件产品线的开发
演化方式 | 革命方式 | |
---|---|---|
基于现有产品 | 基于现有产品架构设计产品线的架构,经演化现有构件,开发产品线构件 | 核心资源的开发基于现有产品集的需求和可预测的、将来需求的超集 |
全新产品线 | 产品线核心资源随产品新成员的需求而演化 | 开发满足所有预期产品线成员的需求的核心资源 |