当前位置:网站首页>[system architecture] - five styles of software architecture
[system architecture] - five styles of software architecture
2022-06-23 12:28:00 【Hua Weiyun】

The concept of software architecture
Software architecture = Software architecture , Architecture design is the allocation of requirements , Assign responsibility for meeting requirements to components .
The nature of Architecture
1、 Software architecture provides a platform for software systems structure 、 High level abstraction of behaviors and properties
2、 The software architecture style is specific to the application field idiomatic paradigm , Architecture definition A vocabulary and a set of constraints .
The role of Architecture
1、 Software architecture is Means of communication between project stakeholders
2、 Software architecture is Transitive and reusable models , By studying software architecture, it is possible to predict the quality of software
3、 Software architecture makes it easier to change reasoning and control , Contribute to step-by-step prototype design , It can be used as the basis of training
Architecture development history

framework 4+1 View

Software architecture style
- Architecture style reflects the common structure and semantic features of many systems in the field , And guide how to effectively organize each component into a complete system
- The architectural style defines a glossary of terms used to describe the system and a set of rules that guide building the system
| Five architectural styles | Substyle |
|---|---|
| Data flow style | The batch 、 The Conduit - filter |
| call / Return to style | The main program / Subroutines 、 object-oriented 、 hierarchy |
| Independent component style | Process of communication 、 Event driven systems ( Implicit call ) |
| Virtual machine style | Interpreter 、 The rules system |
| Warehouse style | Database system 、 Blackboard system 、 Hypertext system |
Data flow style

The first step The result of the treatment is The next step Input content of 【 Data driven 】
| advantage | shortcoming | example |
|---|---|---|
| 1、 loose coupling 【 High cohesion - Low coupling 】 2、 Good reusability 、 Maintainability 3、 Extensibility 【 Standard interface adaptation 】 4、 Good concealment 5、 Support parallel | 1、 Poor interactivity 2、 High complexity 3、 Poor performance ( Each filter needs to parse and synthesize data ) | Traditional compilers Network message processing |
call / Return to style

It should be well understood , The program uses the most .
Substyle :
The sub style and layered architecture style are specially explained :
Independent component style
Architecture decoupling 
| advantage | shortcoming | characteristic |
|---|---|---|
| 1、 loose coupling 2、 Good reusability 、 Modifiability and extensibility | 1、 Components relinquish control over system calculations . When a component triggers an event , It is uncertain whether other components will respond . Even if you know which components the event registers , There is no guarantee of the order in which these procedures are called 2、 The problem of data exchange 3、 The semantics of the process must depend on the context constraints of the triggered event | The system consists of several subsystems and becomes a whole ; The system consists of a unified goal ; There are master and slave subsystems ; Each subsystem has its own event collection and processing mechanism |
Virtual machine style


Warehouse style
Like databases 、 Data center, etc 
other
Closed loop control style

- Suitable for embedded systems , Used to solve simple closed-loop control problems
- Classic application : Air conditioning temperature control 、 Cruise control
C2 style

C2 Architectural ground rules :
- Members and connections have a top and a bottom
- The top of the component is connected to the bottom of the connector , The bottom of the component is connected to the top of the connector , Direct connection between components is not allowed
- A connector can be connected with any number of other components and connectors
- When two connectors are connected directly , Must go from the bottom of one to the top of the other
The above is the software architecture 5 Big style , Pay attention to me , To share more knowledge with you .
边栏推荐
- AssetBundle资源管理
- 测试时间不够怎么办?
- QT knowledge: QT widgets widget function [02]
- 华为云GaussDB重磅发布HTAP商用,定义云原生数据库2.0新范式
- [basic knowledge] - data bit width converter
- Runtime application self-protection (rasp): self-cultivation of application security
- 网络基础和框架
- The median annual salary exceeds 300000, and the salary of the first AI major graduate of Nanjing University is exposed
- 记录
- ROS知识:librviz库的调用实践
猜你喜欢

群晖万兆网络配置与测试

【UVM入门 ===> Episode_7 】~ sequence、sequence item、sequencer、driver

QT5知识:字符串列表QStringListModel

项目测试一半,需求要变更,测试人员怎么办?

QT5知识:信号和槽的一些要点

Qt5 knowledge: some key points of signals and slots

Oracle database's dominant position is gradually eroded by cloud competitors

Explain the relationship between pyqt5 signal and slot in detail
![Halcon principle: one dimensional function_ 1D type [2]](/img/54/570c6e739be1ab9caa9df805965b57.png)
Halcon principle: one dimensional function_ 1D type [2]

国产化信息 | 爱可生与中科方德完成产品兼容互认证
随机推荐
09 -- 回文对
QT knowledge: QT widgets widget class [01]
ROS知识:rviz库librviz的结构
Slam Laser 2D (en utilisant Laser Scan matcher)
ROS知识:读取点云数据文件
@Dark horse fans, haven't you received this "high temperature subsidy"?
How to uninstall and reinstall gazebo
QT knowledge: detailed explanation of view frame qgraphicswidget
QT knowledge: using the qgraphicspixmapitem class
ROS察微【51】:如何将里程计和 IMU 与 robots_localization 融合
DuPont analysis: what is the investment value of Anyang Iron and Steel Co., Ltd?
一个 BUG 开发表示用户不会这样操作,无需修复,测试人员如何应对?
语音模块:pyttsx变声项目
Oracle database's dominant position is gradually eroded by cloud competitors
小众浏览器出现问题,需不需要做兼容性测试?
如何卸载Gazebo与重装
2D laser Slam (using laser scan matcher)
[basic knowledge] - data bit width converter
记录
解决:Argument type ‘String‘ expected to be an instance of a class or class-constrained type