系统架构设计基础

本博客地址:https://security.blog.csdn.net/article/details/136542641

一. 软件架构

1、软件架构或称软件体系结构,是指系统的一个或者多个结构,这些结构包括软件的构件(可能是程序模块、类或者是中间件)、构件的外部可见属性及其之间的相互关系。体系结构的设计包括数据库设计软件结构设计,后者主要关注软件构件的结构属性交互作用,并通过多种视图全面描述。

2、软件架构的生命周期:
需求分析阶段:有利于各阶段参与者的交流,也易于维护各阶段的可追踪性
设计阶段:关注的最早和最多的阶段
实现阶段:有效实现从软件架构设计向实现的转换
构件组装阶段:可复用构件组装的设计能够提高系统实现的效率
部署阶段:组织和展示部署阶段的软硬件架构、评估分析部署方案
后开发阶段:主要围绕维护、演化、复用进行

3、需求分析阶段。需求关注的是问题空间,架构关注的是解空间,需要保持二者的可追踪性和转换。从软件需求模型向软件架构模型的转换主要关注两个问题:如何根据需求模型构建软件架构模型如何保证模型转换的可追踪性

4、设计阶段。研究主要包括:软件架构模型的描述软件架构模型的设计与分析方法,以及对软件架构设计经验的总结与复用等。

5、实现阶段。研究的内容有:基于 SA 的开发过程支持寻求从 SA 向实现过渡的途径研究基于 SA 的测试技术。缩小软件架构设计与底层实现概念差距的手段:模型转换技术封装底层的实现细节在 SA模型中引入实现阶段的概念(如用程序设计语言描述)。

6、构件组装阶段。研究的内容包括:如何支持可复用构件的互联组装过程中,如何检测并消除体系结构失配问题

7、部署阶段。部署阶段的软件架构对软件部署的作用:一是提供高层的体系结构视图描述部署阶段的软硬件模型;二是基于软件架构模型可以分析部署方案的质量属性,从而选择合理的部署方案。

8、后开发阶段。部署安装后(后开发阶段)的系统架构研究方向包括:动态软件体系结构体系结构恢复与重建。体系结构重建的方法有:手工体系结构重建工具支持的手工重建通过查询语言来自动建立聚集使用其他技术(如数据挖掘)

9、软件架构设计是降低成本改进质量按时和按需交付产品的关键因素。

二. 基于架构的软件开发方法

1、基于体系结构(架构)的软件设计(ABSD)方法是体系结构驱动的。在基于体系结构的软件设计方法中,采用视角视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。ABSD 方法具有三个基础:功能的分解通过选择体系结构风格来实现质量和商业需求软件模板的使用

2、基于体系结构的开发模型(ABSDM 模型)把整个基于体系结构的软件开发过程划分为体系结构需求体系结构设计体系结构文档化体系结构复审体系结构实现体系结构演化六个子过程。

3、体系结构的需求工作包括:获取用户需求标识系统中拟用构件
● 需求获取。体系结构需求的获取一般来自三个方面:质量目标系统的商业目标系统开发人员的商业目标
● 标识构件。标识构件分三步完成:生成类图对类进行分组把类打包成构件
● 架构需求评审的审查重点包括需求是否真实反映了用户的要求类的分组是否合理构件合并是否合理等。

4、软件的体系设计过程:提出软件体系结构模型映射构件分析构件相互作用产生体系结构设计评审。设计评审必须邀请独立于系统开发的外部人员。

5、体系结构文档化过程的主要输出结果是体系结构规格说明测试体系结构需求的质量设计说明书

6、一个主版本的软件体系结构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。复审的目的是标识潜在的风险及早发现体系结构设计中的缺陷和错误

7、体系结构的实现过程是以复审后的文档化体系结构说明书为基础的,具体为:分析与设计构件实现构件组装系统测试。体系结构说明书中定义了系统中构件与构件之间的关系。测试包括单个构件的功能性测试被组装应用的整体功能和性能测试

8、体系结构演化史使用系统演化步骤去修改应用,以满足新的需求。系统演化步骤为:需求变化归类体系结构演化计划构件变动更新构件的相互作用构件组装与测试技术评审→演化后的体系结构

三. 软件架构风格

1、软件体系结构设计的核心目标是重复的体系结构模式(软件复用/重用)软件体系结构(架构)风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表一组约束。体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统
● 词汇表:包含构件和连接件。
● 约束:约束定义构件和连接件的组合方式。

2、数据流体系结构风格
批处理体系结构风格:每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,且数据必须是完整,以整体的方式传递。
管道和过滤器:把系统分为几个序贯地处理步骤,每个步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入,每个处理步骤都有输入和输出

3、调用/返回体系结构风格
调用-返回风格在系统中采用了调用与返回机制,主要思想是将一个复杂的大系统分解为若干个子系统,降低复杂度,增加可修改性。
主程序/子程序风格:采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序
面向对象体系结构风格:构件是对象,即抽象数据类型的实例
层次型体系结构风格:每一层为上层服务,并作为下层的接口。仅相邻层间具有层接口
客户端/服务器体系结构风格:主要分为二层C/S模式(数据库服务器、客户应用程序和网络)、三层C/S模式(瘦客户端模式。应用该功能分为表示层、功能层和数据层)
浏览器/服务器风格(B/S):三层结构分别为:浏览器;Web 服务器;数据库服务器

4、以数据为中心的体系结构风格
仓库体系结构风格:由中央数据结构(说明当前数据状态)和一组独立构件(对中央数据进行操作)组成
黑板体系结构风格:是一种问题求解模型,是组织推理步骤、控制状态数据和问题求解之领域知识的概念框架

5、虚拟机体系结构风格
解释器体系结构风格:通常被用来建立一种虚拟机以弥合程序语义与硬件语义之间的差异,缺点是执行效率较低
规则系统体系结构风格:包括知识库、规则解释器、规则/数据选择器及工作内存(程序运行存储区)

6、独立构件体系结构风格
独立构件体系结构风格强调系统中的每个构件都是相对独立的个体,它们之间不直接通信,以降低耦合度,提升灵活度。
进程通信体系结构风格:构件是独立的过程,连接件是消息传递。
事件系统体系结构风格:构件不直接调用一个过程,而是触发或广播一个或多个事件。

7、C2 风格
C2 风格通过连接件连接构件或某个构件组,构件与构件之间无连接

四、软件架构复用

1、软件复用是系统化的软件开发过程:开发一组基本的软件构件模块,以覆盖不同的需求/体系结构之间的相似性,提高系统开发的效率、质量和性能。

2、软件架构复用的类型包括机会复用系统复用。机会复用是在开发过程中,只要发现有可复用的资产就复用。系统复用是在开发前进行规划,决定哪些复用。

3、软件架构复用的原因:减少开发工作减少开发事件降低开发成本提高生产力提高产品质量更好的互操作性

4、软件架构复用的对象包括:需求架构设计元素建模分析测试项目规划过程+方法+工具人员样本系统缺陷消除

5、软件架构复用的一般形式包括:函数的复用库的复用面向对象开发中的类接口和包的复用

6、软件架构复用的基本过程:首先构建/获取可复用的软件资产(复用前提)管理可复用资产使用可复用资产

五、特定领域软件架构

1、特定领域软件架构(DSSA)是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构,即用于某一类特定应用领域的标准软件构件集合。DSSA 的特征:领域性普遍性抽象性可复用性

2、DSSA 的基本活动有领域分析领域设计领域实现

3、参与 DSSA 的人员有领域专家领域分析师领域设计人员领域实现人员

4、DSSA 的建立过程是并发的递归的反复的螺旋模型,分为五个阶段:
● 定义领域范围。
● 定义领域特定元素。
● 定义领域特定的设计和实现约束。
● 定义领域模型和体系结构。
● 产生、搜集可重用的单元。

5、DSSA 通常是一个具有三个层次的系统模型,包括领域开发环境领域特定应用开发环境应用执行环境,其中应用工程师主要在领域特定应用开发环境中工作

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

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

相关文章

谷粒商城【成神路】-【10】——缓存

目录 🧂1.引入缓存的优势 🥓2.哪些数据适合放入缓存 🌭3.使用redis作为缓存组件 🍿4.redis存在的问题 🧈5.添加本地锁 🥞6.添加分布式锁 🥚7.整合redisson作为分布式锁 &#x1f697…

学习大数据,所必需的java基础(完结篇)

文章目录 注解注解的介绍注解的定义以及属性的定义格式注解的使用注解解析的方法----AnnotatedElement接口(扩展) 元注解注解之在此注解 注解 注解的介绍 1.jdk1.5版本的新特性 — 一个引用数据类型 和类,接口,枚举是同一个层次…

【教程】使用小米换机来迁移数据

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 1、在新旧手机上都下载安装小米换机app:小米换机-小米应用商店 2、在新手机上,选择旧手机类型 3、授予权限 4、在旧手机上,授予权限 4、输入锁屏密码 5、选择发现的新手机 6、等…

EMC整改

EMC包括EMI和EMS,其中EMI由辐射干扰RE、传导干扰CE、谐波电流Harmonics、闪烁Flicker组成,EMS由静电抗扰度ESD、电快速瞬态脉冲群EFT、电压跌落DIP、传导抗扰度CS、辐射抗扰度RS、浪涌抗扰度surge、工频磁场抗扰度PMS。新产品生产出来但凡要做认证&#…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:NavDestination)

作为子页面的根容器,用于显示Navigation的内容区。 说明: 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件从API Version 11开始默认支持安全区避让特性(默认值为:expandSaf…

嘿!AI 编码新玩法上线!

随着 AI 智能浪潮到来,AI 编码助手成为越来越多开发者的必备工具,将开发者从繁重的编码工作中解放出来,极大地提高了编程效率,帮助开发者实现更快、更好的代码编写。 通义灵码正是这样一款基于阿里云通义代码大模型打造的智能编码…

Java学习笔记------拼图游戏

图形化界面GUI GUI:Graphical User Interface(图像用户接口),指采用图形化的方式显示操作界面 两套体系:AWT包中和Swing包中 组件 JFrame:最外层的窗体 JMenuBar:最上层菜单 JLaber&#…

【蓝桥杯】节省时间

一、对于string类型变量的连接,可以直接用“”或者“”来进行字符串的直接连接 string a"1"; string b"2"; string c; cab"12"; string操作符两边既可以都是string类型,也可是string与char类型 注意: (1)“”…

rj45网络变压器作用

WE-MIDC网络变压器是Wrth Elektronik公司生产的一种专业级别的网络变压器,也称为Wrth Elektronik网络变压器。它通常用于工业自动化、医疗保健、军事和航空航天等领域的网络通信应用。 WE-MIDC网络变压器具有以下特点: 电气隔离:WE-MIDC网络变…

一次压测经验过程的经验记录

开篇说明 如果在这里获得过启发和思考,希望点赞支持!对于内容有不同的看法欢迎来信交流。 技术栈 >> java 邮箱 >> 15673219519163.com 描述 通常对于QPS较高的web应用程序在开发完成后,除了功能测试之外还需要做一轮压力测试…

工厂模式~

1. 简单工厂 它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。在简单工厂模式中,增加新的产品需要修改工厂类,这违反了开闭原则(对扩展开放,对修改封闭&#…

计算机网络-H3C 交换机FTP与TFTP

一、FTP与TFTP概述 FTP,全称为File Transfer Protocol,即文件传输协议,是一种用于在Internet上进行文件传输的应用层协议。FTP是基于客户端-服务器架构设计的,并使用TCP作为其传输层协议。TFTP (Trivial File Transfer Protocol) …

java继承,接口,抽象类

目录 目录 1 继承的含义 2 继承的好处 3使类与类之间产生了关系。 看这里继承-------我的理解 代码部分 接口 代码 抽象类 代码 各位友友们大家好呀😊! 今天让我们继续回顾java,看看java中的抽象类以及接口继承是什么&#x1f914…

如何精确计算 π ?

如何精确计算 π ? 01 原本是要回顾一下第六章内容,也就是“间隔性重复”。但我已经迫不及待,想要知道如何精确计算 π ,因此,我们快走一步,来探讨一下 π 的计算。 对于 π 的计算,我从学校时…

Python基础学习(5)流程控制

文章目录 一. 程序三大执行流程二. 分支结构1.单分支结构(if)2.双分支结构(if..else)3.多分支结构(if..elif..else) 二,缩进(tab键)三,循环结构1.while循环2.for循环①遍历字典 五.break,continue和pass语句1.break,continue2.pass Python基础学习(1)基本…

蓝桥杯(日期问题纯暴力)

纯纯暴力&#xff0c;写的想吐&#xff0c;玛德服了。 但是复习了vector去重方法&#xff0c;日期的合法性判断。 #include <iostream> #include <vector> #include <cstring> #include <algorithm>using namespace std; vector<int> res; st…

浪潮信息数据中心管理平台InManage升级发布 新增三大场景功能

在AIGC应用日益广泛的当下&#xff0c;浪潮信息聚焦AIGC在数据中心运维管理中面临的难题&#xff0c;进一步通过技术创新升级功能及体验&#xff0c;为AIGC的高效应用创造了良好的基础。近日&#xff0c;浪潮信息数据中心管理平台InManage升级发布&#xff0c;新增资产数字化管…

强化学习(一)

#! https://zhuanlan.zhihu.com/p/686235471 深度强化学习&#xff08;一&#xff09;&#xff08;基础概念&#xff09; 一.马尔可夫决策过程 Agent:智能体&#xff0c;动作或决策对象 Environment: 与智能体交互的对象&#xff0c;可随时间变化 State&#xff1a;对某一…

智慧城市的未来:利用数字孪生技术推动智慧城市的智能化升级

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、城市规划与建设 2、城市管理与运营 3、公共服务与民生改善 4、应急管理与灾害防控 四、数字孪生技术推动智慧城市的智能化升级的价值 1、提高城市管理的智能化水平 2、优化城市资源配置 …

Allegro许可与其他软件的兼容性优势

解锁企业软件管理新篇章&#xff0c;Allegro许可与其他软件的兼容性优势 在数字化经济的时代&#xff0c;企业越来越依赖于各种软件应用来提升运营效率和管理水平。然而&#xff0c;企业在选择和使用软件时&#xff0c;经常会遇到与其他软件不兼容的问题&#xff0c;导致数据无…