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

本文详细探讨了软件架构复用的概念,包括软件产品线的定义,复用的原因(如提高生产力和降低成本),复用的对象(如内容和粒度,以及各种可复用的资产类型)。文章还阐述了复用的基本过程,涉及构建和管理可复用资产,以及使用这些资产进行定制和集成。
摘要由CSDN通过智能技术生成

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

1.1 软件产品线

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

1.2 软件复用

  • 软件复用:
    • 指系统化的软件开发过程
    • 即:通过对软件实体的识别、开发、分类、获取、修改,开发一组基本的软件构造模块, 以覆盖不同的需求/体系结构之间的相似性。以便在不同的软件开发过程中重复的使用它们。

2 复用的原因

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

3. 复用的对象

3.1 内容和粒度

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

3.2 复用的资产

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

  1. 需求

许多需求与早期开发的系统相同或部分相同,如网上银行交易与银行柜面交易。

  1. 架构设计
  2. 元素

元素复用不只是简单的代码复用,它旨在捕获并复用设计中的可取之处,避免(不要重复)设计失败的地方。

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

企业可以建立产品线级的工作流程、规范、标准、方法\工具环境,供产品线中所有产品复用

  1. 人员

以产品线来培训的人员,适应于整个系列的各个产品的开发。

  1. 样本系统

将已部署的产品作为高质量的演示原型和工程设计原型

  1. 缺陷消除

4. 复用的基本过程

在这里插入图片描述

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

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

这些资产必须是可靠的可被广泛使用的易于理解和修改的

4.2 管理可复用资产

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

4.3 使用可复用资产

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

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值