软年架构复用-架构师之路(十一)

  • 软件架构复用

软件产品线是 一组产业密集型系统,规定用公用的 核心资产集成 开发而来。

机会复用 和 系统复用。

机会复用:临时发现有可服用资产立马复用。

系统复用:开发之前进行规划好哪些需要复用。

复用的三个阶段:

获取到复用的资产、管理这些资产、针对需求从资产中选择复用部分,开发出满足需求的系统。

  • 特定领域软件架构

DSSA(Domain specific Software Architectrue)

专门用于一类特定类型的任务 (领域)的、在整个领域中能有效的使用,构成标准软件集合

就是一个 特定的问题领域 中支持一组应用的 参考模型、参考需求参考架构等开发基础,器目标 支持在一个特定领域中多个应用生成。

垂直域:在一特定领域通用的完整架构。

水平域:在不同多个领域之间相同部分的小工具。(比如教育和购物都要有的收付系统)

DSSA有三个基本的活动

  1. 领域分析

获取领域模型(需求)。建立领域模型。

  1. 领域设计

目的获取DSSA(特定领域软件架构),在领域模型中表示需要解决的方案,他不是单个系统表示,而是能够适应领域中多个系统需求的高层次设计。

  1. 领域实现

阶段主要目标依据领域DSSA 开发和组织可重用信息。这些可重用是可能在现系统中提取的,也可以是新发现。

参与DSSA有四种角色人员 领域专家、领域分析人员、领域设计和领域实现。

领域专家:系统有经验的用户,从事该系统中系统需求分析、设计和实现以及项目管理有经验的工程师。

领域分析人员:知识背景的有经验的系统分析师来担任。

领域设计人员:设计人员。

领域实现人员:程序员。

建立DSSA的过程:

定义领域范围:领域中的应用要满足用户一系列需求。

定义领域特定元素:领域字典等。

定义领域特定的设计和实现需求的约束。

定义领域模型和架构。

产生、搜集可复用的产品单元。

以上过程是 并发的、递归的、反复的、螺旋型的。

三层次模型:

领域开发环境:领域架构师决定核心架构,产出参考结构、参考需求、架构、领域模型、开发工具。

领域特定应用开发环境:工程师根据具体环境将核心架构实例化。

(前面开发环境就是领域里通用架构,后面在应用开发环境里则根据实际环境特殊处理)

应用执行环境:操作员直接操作实例化后的架构。

  • 基于架构的软件开发

ABSD(Architectrue base Software Design):业务、质量和功能需求(重点)

方法是 架构驱动,强调由业务、质量和功能需求 的组合驱动架构设计。它强调采用 视角和视图来描述软件架构 ,采用用例场景 来描述需求。

用例是功能需求,更抽象化,场景是实例化场景。

使用ABSD方法,设计活动可以从项目总体功能框架确定就开始。(意味着需求获取和分析还没完成,就开始软件设计)

使用ABSD方法有三个基础:

  1. 功能的分解,使用已有的基于模块内聚耦合技术。
  2. 通过选择架构风格实现质量和业务需求。
  3. 软件模板的使用。

ABSD方法是递归的,不是一次性操作。

Architecture(体系结构、架构)

基于架构的软件开发过程,六个过程。

体系结构需求、体系结构设计、体系结构文档化、体系结构复审、体系结构实现、体系结构的演化

复审的时候如果yes正常走,no的话则重新设计。

每次架构的重新演化,都需要重新走整个流程。

  1. 体系结构需求

获取到需求后,三步 生层类图、对类进行分组、把类打包成构件。(这三步属于标识构件)

  1. 架构设计

将上面的标识构件 映射成 构件。设计出 领域架构。

  1. 架构文档化

产出两种文档 架构规格说明 ,和测试架构需求的质量设计说明

  1. 架构复审

由 外部人员(独立于开发组织之外的人,如用户代表和领域专家)参加复审。

通过则正常实行,不通过则重新设计,回到2。

  1. 架构实现

实体来显示架构。实现构件,构件组装成系统。

  1. 架构演化

对架构进行改变,按需求增删构件,使架构可复用。(一般提出新需求,这时候则需要演化,是否新增构件,删除构件)

相关推荐
JohnYan7 分钟前
模板+数据的文档生成技术方案设计和实现
javascript·后端·架构
Da_秀21 分钟前
软件工程中耦合度
开发语言·后端·架构·软件工程
xufwind40 分钟前
spark standlone 集群离线安装
大数据·分布式·spark
AI数据皮皮侠1 小时前
中国区域10m空间分辨率楼高数据集(全国/分省/分市/免费数据)
大数据·人工智能·机器学习·分类·业界资讯
用户21960094442852 小时前
利用布隆过滤器设计亿级用户视频浏览历史过滤系统:方案详解与内存预估
架构
Kookoos2 小时前
ABP VNext + Tye:本地微服务编排与调试
微服务·云原生·架构·tye
DeepSeek大模型官方教程3 小时前
NLP之文本纠错开源大模型:兼看语音大模型总结
大数据·人工智能·ai·自然语言处理·大模型·产品经理·大模型学习
秋千码途3 小时前
小架构step系列06:编译配置
架构
大数据CLUB4 小时前
基于spark的奥运会奖牌变化数据分析
大数据·hadoop·数据分析·spark
Edingbrugh.南空4 小时前
Hadoop高可用集群搭建
大数据·hadoop·分布式