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

  • 软件架构复用

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

机会复用 和 系统复用。

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

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

复用的三个阶段:

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

  • 特定领域软件架构

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.mzph.cn/news/55902.shtml

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

相关文章

Compressor For Mac强大视频编辑工具 v4.6.5中文版

Compressor for Mac是苹果公司推出的一款视频压缩工具,可以将高清视频、4K视频、甚至是8K视频压缩成适合网络传输或存储的小文件。Compressor支持多种视频格式,包括H.264、HEVC、ProRes和AVC-Intra等,用户可以根据需要选择不同的压缩格式。 …

CSS笔记

介绍 CSS导入方式 三种方法都将文字设置成了红色 CSS选择器 元素选择器 id选择器 图中div将颜色控制为红色,#name将颜色控制为蓝色,谁控制的范围最小,谁就生效,所以第二个div是蓝色的。id属性值要唯一,否则报错。 clas…

Failed to load ApplicationContext解决办法,spring版本问题

有如下报错: "D:\Program Files\Java\jdk-13.0.1\bin\java.exe" -agentlib:jdwptransportdt_socket,address127.0.0.1:7325,suspendy,servern -ea -Didea.test.cyclic.buffer.size1048576 -Dfile.encodingUTF-8 -classpath "D:\Program Files\JetBr…

【Linux】深入理解文件操作

文章目录 初次谈论文件重温C语言文件操作系统文件操作接口openwriteread 再次谈论文件文件描述符文件描述符的分配规则 重定向什么是重定向重定向的本质系统调用接口实现重定向<、>、>> 初次谈论文件 开始之前先谈论一下关于文件的一些共识性问题。 一个文件可以…

wxpython + cef 是优秀的 WebView 组件

CEF 即 (Chromium Embedded Framework)&#xff1b;cef 是优秀的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl …

C++学习记录——이십팔 C++11(4)

文章目录 包装器1、functional2、绑定 这一篇比较简短&#xff0c;只是因为后要写异常和智能指针&#xff0c;所以就把它单独放在了一篇博客&#xff0c;后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板&#xff0c;对可调用对象类型进行再封装…

江西抚州新能源汽车3d扫描零部件逆向抄数测量改装-CASAIM中科广电

汽车改装除了在外观方面越来越受到消费者的青睐&#xff0c;在性能和实用性提升上面的需求也是日趋增多&#xff0c;能快速有效地对客户指定汽车零部件进行一个改装&#xff0c;是每一个汽车改装企业和工程师的追求&#xff0c;也是未来消费者个性化差异化的要求。下面CASAIM中…

Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】

目录 P1 2D Detection and Segmentation​编辑 P2 Video 2D time series P3 Focus on Two Problems P4 Many more topics in 3D Vision P5-10 Multi-View CNN P11 Experiments – Classification & Retrieval P12 3D Shape Representations P13--17 3D Shape Rep…

好用的可视化大屏适配方案

1、scale方案 优点&#xff1a;使用scale适配是最快且有效的&#xff08;等比缩放&#xff09; 缺点&#xff1a; 等比缩放时&#xff0c;项目的上下或者左右是肯定会有留白的 实现步骤 <div className"screen-wrapper"><div className"screen"…

同源策略以及SpringBoot的常见跨域配置

先说明一个坑。在跨域的情况下&#xff0c;浏览器针对复杂请求&#xff0c;会发起预检OPTIONS请求。如果服务端对OPTIONS进行拦截&#xff0c;并返回非200的http状态码。浏览器一律提示为cors error。 一、了解跨域 1.1 同源策略 浏览器的同源策略&#xff08;Same-Origin Po…

06.sqlite3学习——DQL(数据查询)(全)

目录 SQLite——DQL&#xff08;数据查询&#xff09; 数据集 select语句 条件查询 比较 确定范围 确定集合 like 查询记录 查询不重复的记录 排序和限制 排序 限制 聚合 聚合函数 语法 SQLite Group By详解 语法 实例 SQLite Having 子句 语法 实例 多…

[JavaWeb]【十一】web后端开发-SpringBootWeb案例(登录)

目录 一、登录功能 1.1 思路 1.2 LoginController 1.3 EmpService 1.4 EmpServiceImpl 1.5 EmpMapper 1.6 启动服务-测试 1.7 前后端联调 二、登录校验&#xff08;重点&#xff09; 2.1 问题 2.2 问题分析 2.3 登录校验​编辑 2.4 会话技术 2.4.1 会话技术 2.4.2 …

SpringBoot权限认证

SpringBoot的安全 常用框架&#xff1a;Shrio,SpringSecurity 两个功能&#xff1a; Authentication 认证Authorization 授权 权限&#xff1a; 功能权限访问权限菜单权限 原来用拦截器、过滤器来做&#xff0c;代码较多。现在用框架。 SpringSecurity 只要引入就可以使…

2023年6月GESP C++ 三级试卷解析

2023年6月GESP C 三级试卷解析 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 1.高级语言编写的程序需要经过以下&#xff08; &#xff09;操作&#xff0c;可以生成在计算机上运行的可执行代码。 A.编辑 B.保存 C.调试 D.编译 【答案】D 【考纲知识点…

FPGA GTX全网最细讲解,aurora 8b/10b协议,OV5640板对板视频传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据对…

最新域名和子域名信息收集技术

域名信息收集 1&#xff0e;WHOIS查询 WHOIS是一个标准的互联网协议&#xff0c;可用于收集网络注册信息、注册域名﹑IP地址等信息。简单来说&#xff0c;WHOIS就是一个用于查询域名是否已被注册及注册域名详细信息的数据库&#xff08;如域名所有人、域名注册商&#xff09;…

pytorch下的scatter、sparse安装

知道自己下载的torch配置 import torch print(torch.__version__) print(torch.version.cuda)进入网站&#xff0c;选择自己配置 https://pytorch-geometric.com/whl/下载相应的包 安装 pip install ******.whl

【音视频】 视频的播放和暂停,当播放到末尾时触发 ended 事件,循环播放,播放速度

video 也可以 播放 MP3 音频&#xff0c;当不想让 视频显示出来的话&#xff0c;可以 给 video 设置宽和高 1rpx &#xff0c;不可以隐藏 <template><view class"form2box"><u-navbar leftClick"leftClick"><view slot"left&q…

Qt 查找文件夹下指定类型的文件及删除特定文件

一 查找文件 bool MyXML::findFolderFileNames() {//指定文件夹名QDir dir("xml");if(!dir.exists()){qDebug()<<"folder does not exist!";return false;}//指定文件后缀名&#xff0c;可指定多种类型QStringList filter("*.xml");//指定…

Uniapp笔记(八)初识微信小程序

一、微信小程序基本介绍 1、什么是微信小程序 微信小程序简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种不需要下载安装即可使用的应用&#xff0c;它实现了应用“触手可及”的梦想&#xff0c;用户扫一扫或搜一下即可打开应用 小程序是一种新的开放能力&#…