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