1. 软件架构复用定义及分类

1.1 软件产品线

  • 概念:
    • 指一组软件密集型系统
      • 它们共享一个公共的、可管理的特性集
      • 满足特定市场或任务的具体需要
    • 是以规定的方式,用公共的核心资产 集成开发出来的
    • 围绕核心资产库进行管理、复用、集成新的系统
      • 核心资产库包括:
        • 软件架构
        • 可剪裁的元素
        • 其它包括:设计方案、文档、用户手册、项目管理的历史记录(如预算和进度)、软件测试计划、测试用例
  • 复用核心资产,采用产品线的作用:提高生产效率、降低生产成本、缩短上市时间
  • 本质:在生产产品家族时,以一种规范的、策略性的方法复用资产

1.2 软件复用

  • 软件复用:指系统化的软件开发过程
    • 开发过程:
      • 通过识别、开发、分类、获取和修改软件实体
      • 开发一组基本的软件构造模块
      • 以覆盖不同的需求/体系结构之间的相似性
      • 以便在不同的软件开发过程中重复的使用它们
  • 机会复用:开发过程中,只要发现有可复用的资产,就对其进行复用

2 复用的原因

  • 提高生产力
    • 减少开发工作
    • 减少开发时间
    • 降低开发成本
  • 提高产品质量
  • 维护更加简单

3. 复用的对象

3.1 的内容和粒度

  • 复用的内容
    • 函数的复用
    • 库的复用
    • 类、接口、包的复用
  • 方向发展:复用体由小粒度向大粒度发展

3.2 复用的资产

可复用的资产非常广,包括以下几个方面。

  1. 需求
  1. 架构设计
  2. 元素
  1. 建模与分析
    • 各类分析方法:如,性能分析
    • 各类方案模型:如,容错方案、负载均衡方案
  2. 测试
    • 采用产品线可积累大量的测试资源
    • 测试以产品线为单位(而不是项目)
    • 复用如:测试用例、测试数据、测试工具、甚至测试计划、过程、沟通渠道
  3. 项目规划
    • 不必建立工作分解结构
      • 利用经验对项目的成本、预算、进度、开发小组的安排等进行预测
  4. 过程、方法和工具
  1. 人员
  1. 样本系统
  1. 缺陷消除

4. 复用的基本过程

《系统架构设计师教程(第2版)》第7章-系统架构设计基础知识-04-软件架构复用-LMLPHP

4.1 构造/获取可复用的软件资产

  • 概述:构造恰当的、可复用的资产
  • 作用:复用的前提

4.2 管理可复用资产

  • 构件库 (Component Library):
    • 主要功能:构件的存储、管理、检索、库的浏览与维护等
  • 关键问题
    • 构件分类:指将数量众多的构件按照某种特定方式组织起来
    • 构件检索:指给定查询需求,能够快速准确地找到相关构件

4.3 使用可复用资产

  • 通过获取需求,检索复用资产库,获取可复用资产
  • 定制这些可复用资产:修改、扩展、配置
  • 将它们组装与集成,形成最终系统

《系统架构设计师教程(第2版)》第7章-系统架构设计基础知识-04-软件架构复用-LMLPHP

03-27 13:45