文章目录
1. 软件架构复用定义及分类
1.1 软件产品线
- 概念:
- 指一组软件密集型系统
- 它们共享一个公共的、可管理的特性集
- 满足特定市场或任务的具体需要
- 是以规定的方式,用公共的核心资产 集成开发出来的
- 围绕核心资产库进行管理、复用、集成新的系统
- 核心资产库包括:
- 软件架构
- 可剪裁的元素
- 其它包括:设计方案、文档、用户手册、项目管理的历史记录(如预算和进度)、软件测试计划、测试用例
- 核心资产库包括:
- 指一组软件密集型系统
- 复用核心资产,采用产品线的作用:提高生产效率、降低生产成本、缩短上市时间
- 本质:在生产产品家族时,以一种规范的、策略性的方法复用资产
1.2 软件复用
- 软件复用:指系统化的软件开发过程
- 开发过程:
- 通过识别、开发、分类、获取和修改软件实体
- 开发一组基本的软件构造模块
- 以覆盖不同的需求/体系结构之间的相似性
- 以便在不同的软件开发过程中重复的使用它们
- 开发过程:
- 机会复用:开发过程中,只要发现有可复用的资产,就对其进行复用
2 复用的原因
- 提高生产力
- 减少开发工作
- 减少开发时间
- 降低开发成本
- 提高产品质量
- 维护更加简单
3. 复用的对象
3.1 的内容和粒度
- 复用的内容
- 函数的复用
- 库的复用
- 类、接口、包的复用
- 方向发展:复用体由小粒度向大粒度发展
3.2 复用的资产
可复用的资产非常广,包括以下几个方面。
- 需求
- 架构设计
- 元素
- 建模与分析
- 各类分析方法:如,性能分析
- 各类方案模型:如,容错方案、负载均衡方案
- 测试
- 采用产品线可积累大量的测试资源
- 测试以产品线为单位(而不是项目)
- 复用如:测试用例、测试数据、测试工具、甚至测试计划、过程、沟通渠道
- 项目规划
- 不必建立工作分解结构
- 利用经验对项目的成本、预算、进度、开发小组的安排等进行预测
- 不必建立工作分解结构
- 过程、方法和工具
- 人员
- 样本系统
- 缺陷消除
4. 复用的基本过程
4.1 构造/获取可复用的软件资产
- 概述:构造恰当的、可复用的资产
- 作用:复用的前提
4.2 管理可复用资产
- 构件库 (Component Library):
- 主要功能:构件的存储、管理、检索、库的浏览与维护等
- 关键问题
- 构件分类:指将数量众多的构件按照某种特定方式组织起来
- 构件检索:指给定查询需求,能够快速准确地找到相关构件
4.3 使用可复用资产
- 通过获取需求,检索复用资产库,获取可复用资产
- 定制这些可复用资产:修改、扩展、配置
- 将它们组装与集成,形成最终系统