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

news2024/11/19 3:22:46
  • 软件架构复用

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

机会复用 和 系统复用。

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

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

复用的三个阶段:

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

  • 特定领域软件架构

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. 架构演化

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/919796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高阶数据结构并查集

目录: 并查集的概念代码实现 并查集的概念 将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中反复遇到查询某一个元素属于那个集合的运算,这…

储能运行约束的Matlab建模方法

最近一段时间有很多人问我最优潮流计算中储能系统的建模方法。部分朋友的问题我回复了,有些没有回消息的,我就不再一一回复了,在这里我写一篇博客统一介绍一下。 1.储能系统介绍 首先,让【GPT】简单介绍一下储能系统:…

【多天线传输技术】BPSK调制信号在AWGN信道下的理论误码率与仿真误码率

%% [0、预处理] clc; clear; close all;%% [1、配置参数] N1000000; %数据点数(个) SNR_dB0:10; %信噪比(dB形式) SNR10.^(SNR_dB/10); %信噪比(一般形式,Eb/N0)…

【业务功能篇78】微服务-前端后端校验- 统一异常处理-JSR-303-validation注解

5. 前端校验 我们在前端提交的表单数据,我们也是需要对提交的数据做相关的校验的 Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可 校验的页面效果 前端数据…

Android相机-HAL子系统

引言 应用框架要通过拍照预览摄像获得照片或者视频,就需要向相机子系统发出请求, 一个请求对应一组结果 一次可发起多个请求,并且提交请求是非阻塞的,始终按照接收的顺序以队列的形式先进先出地进行顺序处理 一个请求包含了拍摄和拍照配置的所有信息&…

企业数字化转型中,VR数字展厅能有哪些体验?

在数字化转型的浪潮下,企业纷纷开始注重数字展厅的开展,VR虚拟展厅结合VR全景技术,可以创造出许多有趣的玩法和体验,无论是虚拟参观、互动体验还是VR云会议对接,都为企业客户带来了全新的感知方式。 同传统展厅相比&am…

【LeetCode-中等题】560. 和为 K 的子数组

题目 题解一&#xff1a;逆序枚举数组 //方法一:枚举数组&#xff08;顺序&#xff09;int count 0;// 记录最终符合条件的数组个数int n nums.length;for(int end 0; end<n ; end){int sum 0;//记录每一次经过的元素总和for(int start end; start>0;start--){sum n…

漏洞挖掘和漏洞利用技术:讨论漏洞发现、利用和修复,深入研究不同类型漏洞的技术细节

章节一&#xff1a;引言 在当今数字化时代&#xff0c;计算机技术的迅猛发展为我们的生活带来了无数便利&#xff0c;然而也伴随着各种安全威胁。恶意黑客利用漏洞进行攻击已成为一种常见现象。本文将深入探讨漏洞挖掘和漏洞利用技术&#xff0c;以及如何修复这些漏洞&#xf…

微信小程序路由以及跳转页面传递参数

路由 在app.json的pages里面写 "pages/页面/页面" 直接保存pages直接生成非常方便 跳转页面 wx.navigateTo() 保留当前页面&#xff0c;跳转到应用内的某个非tabBar页面。 <text bindtap"daka">点击</text> daka:function () {wx.navigateTo…

第3篇:vscode搭建esp32 arduino开发环境

第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 1.下载vscode并安装 https://code.visualstudio.com/ 运行VSCodeUserSetup-x64-1.80.1.exe 2.点击扩展&#xff0c;搜索arduino,并点击安装 3.点击扩展设置&#xff0c;配置arduino…

java+springboot+mysql村务档案管理系统

项目介绍&#xff1a; 使用javaspringbootmysql开发的村务档案管理系统&#xff0c;系统包含超级管理员、工作人员角色&#xff0c;功能如下&#xff1a; 超级管理员&#xff1a;系统用户管理&#xff08;工作人员管理&#xff09;&#xff1b;公开资料&#xff1b;会议记录&…

PDF校对:追求文档的精准与完美

随着数字化时代的到来&#xff0c;PDF已经成为了多数机构和个人首选的文件格式&#xff0c;原因在于它的稳定性、跨平台特性以及统一的显示效果。但是&#xff0c;对于任何需要公开或正式发布的文档&#xff0c;确保其内容的准确性是至关重要的&#xff0c;这就是PDF校对显得尤…

IDEA创建Spring,Maven项目没有resources文件夹

有时新建Spring或Maven项目时&#xff0c;会出现目录中main下无resources文件夹的情况&#xff0c;来一起解决一下&#xff1a; FIles|Project Structure 在Modules模块找到对应路径&#xff0c;在main下创建resources&#xff0c;右键main&#xff0c;选择新文件夹 输入文件…

瞎扯之synchronized

我是胡说八道君&#xff0c;鉴别一个人基础打得牢不牢&#xff0c;有没有这个举一反三、将学过的知识串联起来的能力&#xff0c;教你一个简单的方法&#xff1a;关键词联想法 有兴趣的童鞋也可以跟着我的思路去画一张思维导图哦!加入你自己联想道德的部分更重要 eg: 给你一个…

金桥跨越相伴岁月 桂冠加冕爱意时光 GP芝柏表演绎浪漫七夕

两个多世纪以前&#xff0c;康士坦特芝勒德 (Constant Girard) 与玛莉亚柏雷戈 (Marie Perregaux) 喜结连理&#xff0c;两颗心灵在爱意中交织&#xff0c;二人将姓氏结合&#xff0c;创立“Girard-Perregaux”芝柏表&#xff0c;成为数百年来瑞士高级制表中仅有的以夫妻双人姓…

VoxWeekly|The Sandbox 生态周报|20230821

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…

idea 对JavaScript进行debug调试

文章目录 1.新增 JavaScript Debug 配置2.配置访问地址3.访问url. 打断点测试 前言 : 工作中接手别人的前端代码没有注释&#xff0c;看浏览器的network或者console切来切去&#xff0c;很麻烦&#xff0c;可以试试idea自带的javscript debug功能。 1.新增 JavaScript Debug 配…

基于水循环算法优化的BP神经网络(预测应用) - 附代码

基于水循环算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于水循环算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.水循环优化BP神经网络2.1 BP神经网络参数设置2.2 水循环算法应用 4.测试结果&#xff1a;5.Matlab代…

3d max插件CG MAGIC中的蜂窝材质功能可提升效率吗?

工作中能提升效率也都是大家所想的&#xff0c;对于设计师的一个设计过程中&#xff0c;可能想怎么样可以更快呀&#xff0c;是哪个步骤慢了呢&#xff1f; 这样的结果只能说会很多&#xff0c;但是建模这个步骤&#xff0c;肯定是有多无少的。 为了让模型更加逼真&#xff0c…

Flask狼书笔记 | 04_表单

文章目录 4 表单4.1 HTML表单4.2 使用Flask-WTF4.3 处理表单数据4.4 表单进阶实践小记 4 表单 表单是和用户交互最常见的方式之一&#xff0c;本章涉及的Python包由WTForms、Flask-WTF、Flask-CKEditor。&#xff08;p104&#xff09; 4.1 HTML表单 通过<form>标签创建…