What is Systems Architecture ?
What is Systems Architecture ?
- Systems Architecture is a generic discipline to handle objects (existing or to be created) called "systems", in a way that supports reasoning about the structural properties of these objects.
- Systems Architecture is a response to the conceptual and practical difficulties of the description and the design of complex systems.
On this page, you will find three sections:
- a unified definition of Systems Architecture (outlining what are systems, their architecture and the justifications for Systems Architecture)
- fundamental principles underlying Systems Architecture (in all acceptions of the term)
- socio-cognitive aspects of Systems Architecture to take into account the reality of men (cognitive limitations) and teams (social behaviors).
>> A Unified Definition
- You have said "architecture" ?
Systems Architecture is a generic discipline to handle objects (existing or to be created) called "systems", in a way that supports reasoning about the structural properties of these objects.
Depending on the context, Systems Architecture can in fact refer to:
- the architecture of a system, i.e. a model to describe/analyze a system
- architecting a system, i.e. a method to build the architecture of a system
- a body of knowledge* for "architecting" systems while meeting business needs, i.e. a discipline to master systems design.
* consisting in: concepts, principles, frameworks, tools, methods, heuristics, practices
At this point, we can only say that the "architecture of a system" is (similarly to the one of a building) a global model of this system consisting of:
- a structure
- properties (of various elements involved)
- relationships (between various elements)
- behaviors & dynamics
- multiple views of the system (complementary and consistent).
- But what is a "complex system" ?
Systems are typically objects designed by men, involving heterogeneous components (e.g. hardware, software, humans) working together to perform a mission. The complexity of a system will mainly come from two aspects:
- integration of components: there are many interrelations between a possibly huge number of components, and there are recursive levels of integration
- heterogeneity of components: several specialized fields are involved in the design of a complex system, making it difficult to keep a unified vision of this system and to manage its design.
You can read further explanations on complex systems. We will not describe here the numerous issues raised (at every level of a company: corporate strategy, marketing, product definition, engineering, manufacturing, operations, support, maintenance, etc) by the design and management of such complex systems. But every experienced business leader, manager, consultant or engineer will perfectly know what we are talking about. These issues can be summarized as:
- going from local to global, i.e. mastering integration and emergence
- building an invariable architecture in a moving environment.
- And so, Systems Architecture is ... ?
In this context, Systems Architecture is a response to the conceptual and practical difficulties of the description and the design of complex systems. Systems Architecture helps to describe consistently and design efficiently complex systems such as:
- an industrial system (the original meaning of Systems Architecture)
- an IT infrastructure (Enterprise Architecture)
- an organization (Organizational Architecture)
- a business (Business Architecture)
- a project (Project Architecture?).
Systems Architecture will often rely on a tool called an architecture framework, i.e. a reference model to organize the various elements of the architecture of a system into complementary and consistent predefined views allowing to cover all the scope of Systems Architecture. Famous architecture frameworks are for example DoDAF, MoDAF or AGATE.
Finally, Systems Architecture will consider any system with a socio-technical approach (even when dealing with a "purely technical" system). In particular, during the design (or transformation) of a system, the systems in the scope of this design (or transformation) can be divided in two separated systems in interaction :
- the product, i.e. the system being designed or transformed
- the project, i.e. the socio-technical system* in charge of the design or transformation of the product.
* teams, tools, other resources and their organization following strategies & methods
>> Fundamental Principles
Whatever the type of system and the acception considered (model, method or discipline), Systems Architecture is based on 9 fundamental principles :
- "Thinking with a systemic approach"
- the objects of the reality are modelled as systems (i.e. a box performing a function and defined by its perimeter, inputs, outputs and an internal state)
Ex: a mobile phone is a system which takes in input a voice & keystrokes and outputs voices & displays. Moreover, it can be on, off or in standby. Overall, the phone allows to make phone calls (among other functions). - a system can be broken down into a set of smaller subsystems, which is less than the whole system (because of emergence)
Ex: a mobile phone is in fact a screen, a keyboard, a body, a microphone, a speaker, and electronics. But the phone is the integration of all those elements and cannot be understood completely from this set of elements. - a system must be considered in interaction with other systems, i.e. its environment
Ex: a mobile phone is in interaction with users, relays (to transmit the signal), reparators (when broken), the ground (when falling), etc. All these systems constitue its environment and shall be considered during its design. - a system must be considered through its whole lifecycle
Ex: a mobile phone will be designed, prototyped, tested, approved, manufactured, distributed, selled, used, repaired, and finally recycled. All these steps are important (and not only the moment when it is used).
- the objects of the reality are modelled as systems (i.e. a box performing a function and defined by its perimeter, inputs, outputs and an internal state)
- "Reasoning according to an architecture paradigm"
- a system can be linked to another through an interface, which will model the properties of the link
Ex: when phoning, our ear is in direct contact with the phone, and there is therefore a link between the two systems (the ear and the phone). However, there is a hidden interface : the air! The properties of the air may influence the link between the ear and the phone (imagine for example if there is a lot of noise). - a system can be considered at various abstraction levels, allowing to consider only relevant properties and behaviors
Ex: do you consider your phone as a device to make phonecalls (and other functions of modern phones), a set of material and electronics components manufactured together, or a huge set of atoms ? All these visions are realistic, but they are just at different abstraction levels, whose relevancy will depend on the context. - a system can be viewed according to several layers (usually three: its sense, its functions, and its composition)
Ex: a phone is an object whose sense is to accomplish several missions for its environment : making phone calls, being a fashionable object, offering various features of personal digital assistants, etc. But it is also a set of functions organized to accomplish these missions (displaying on the screen, transmitting signal, delivering power supply, looking for user inputs, making noise if necessary, etc). And finally, all these functions are implemented through physical components organized to perform these functions. - a system can be described through interrelated models with given semantics (properties, structure, states, behaviors, datas, etc)
Ex: from the point of view of properties, the phone is a device expected to meet requirements like "a phone must resist to falls from a height of one meter". But a phone will also change state : when a phone is off and that the power button is pressed, the phone shall turn on. Function dynamics of the phone are also relevant: when receiving a call, the screen will display the name and the speaker will buzz, but if the user presses no button the phone will stop after 30 secondes... This will typically be described with diagrams in SysML (an evolution of UML). - a system can be described through different viewpointscorresponding to various actors concerned by the system.
Ex: commercials, designers, engineers (in charge of software, electronics, acoustics, materials, etc) users, repairers... All these people will have different visions of the phone. When the designer will see the phone as an easy-to-use object centered on the user, the engineer will see it as a technological device which has to be efficient and robust. A commercial may rather see it as a product which must meet clients' needs and market trends to be sold. All these visions are important and define the system in multiple and complementary ways.
- a system can be linked to another through an interface, which will model the properties of the link
>> Socio-Cognitive Aspects
Systems Architecture involves multiple views (sometimes partial or conflictual) of the same system by multiple actors. These views can be understood as "projections" of the system in the spaces of those different actors:
- this is the set of all those views (themselves involving several interrelated models at different abstraction levels) which define the system. But it is in general impossible to define a system in an objective, unified and exhaustive way.
- each view is an analytical description of the system. However, complexity of systems and their architecture cannot be grasped by an analytical decomposition. Considering multiple viewpoints allows to compensate the weaknesses of analytical decomposition (which is the only one we can handle as humans), following the ideas of Edgard Morin and Jean-Louis Le Moigne.
Moreover, social and cognitive aspects of Systems Architecture are absolutely critical to carry out a successful design. Indeed, Systems Architecture is key to make individual and collective work more efficient in projects, in order to meet business needs (quality, delays, performances, costs, risk):
- for individuals, Systems Architecture is a powerful tool helping to overcome the complexity of systems and to keep a vision of their work. It allows to describe, model and design systems in a rich and diverse way, while keeping a good usability of the objects handled and improving decision making. For instance, cognitive rules as "7x7x7" (i.e. for one model, there must be at most 7 elements per level and at most 3 recursive levels) will allow people to work efficiently with their cognitive limitations.
- for teams, Systems Architecture proposes a common language to understand and be understood. It is also a strong tool & method to facilitate collaboration in projects and to create transversality between departments of a company, while allowing to make the right questions emerge in the discussion. In particular, it can help actors to create a shared vision of the system and to converge on various issues. For example, the rule "Every element of the architecture of a system must have an owner" will help teams to advance their work without losing traceability of responsabilities.
Finally, Systems Architecture is not only a model or a method to design complex systems. It is more of a discipline, allowing to consider at the same time the system and the project in charge of it, while overcoming the difficulties related to the complexities (technical, social and cognitive) of the system and its design.
As a discipline, Systems Architecture has its own practical rules & heuristics, as much as powerful best practices coming from various fields. These points have not been addressed in the scope of this introduction, and can be found for instance in this book.
Click here to learn more about my research on Systems Architecture.
For more information on Systems Architecture as a discipline, you can check this book chapter (in French). For a quality academic introduction to Systems Architecture (centered on industrial systems), you can read this paper from MIT.
***https://www.lix.polytechnique.fr/~golden/systems_architecture.html
What is Systems Architecture ?的更多相关文章
- 谈谈我理解的SA——Systems Architecture
什么是SA? SA即Systems Architecture,是系统体系结构. 系统体系结构是定义系统的结构.行为和系统视图的概念模型.架构师将其系统的形式化描述或表示出来,以支持结构和行为的推理的方 ...
- Architecture Patterns
This chapter provides guidelines for using architecture patterns. Introduction Patterns for system a ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- Streaming data from Oracle using Oracle GoldenGate and Kafka Connect
This is a guest blog from Robin Moffatt. Robin Moffatt is Head of R&D (Europe) at Rittman Mead, ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
- [Z]CS权威会议
CS Conference TOP 40 计算机会议TOP40 一.A 类 15 个 ASPLOS: Architecture Support for Programming Languages an ...
- CCF推荐国际学术期刊
中国计算机学会推荐国际学术期刊 (计算机系统与高性能计算) 一.A类 序号 刊物简称 刊物全称 出版社 网址 1 TOCS ACM Transactions on Computer Systems A ...
- 【转】为什么很多看起来不是很复杂的网站,比如 Facebook、淘宝,都需要大量顶尖高手来开发?
先说你看到的页面上,最重要的几个:[搜索商品]——这个功能,如果你有几千条商品,完全可以用select * from tableXX where title like %XX%这样的操作来搞定.但是— ...
- Docker基础技术:AUFS
AUFS是一种Union File System,所谓UnionFS就是把不同物理位置的目录合并mount到同一个目录中.UnionFS的一个最主要的应用是,把一张CD/DVD和一个硬盘目录给联合 m ...
随机推荐
- FZU2168——防守阵地 I——————【找规律或前缀和】
防守阵地 I Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- 44个 Javascript 变态题解析
原题来自: http://javascript-puzzlers.herokuapp.com/ 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44... 当初笔者做这套题的时候不仅怀疑智商, ...
- js生成6位随机码
js生成6位随机数字: let chars = '0123456789'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/ let maxPos = chars.len ...
- 【Hadoop系列】linux下 root用户免密码登录远程主机 ssh
SSH原理:[Hadoop系列]linux SSH原理解析 操作环境: CentOS 6.5 操作对象: 用户A主机和远程主机B 正文部分:斜体加粗代表linux指令. linux下 非root用户免 ...
- Java 基础(2)——编译运行 & 规范
上节学到 Java 的编译与运行,我们已经学会了怎么去执行一个写好(假装我们已经会写了)的代码,这篇当然要试试手啦 O(∩_∩)O 哈哈~ 小试一下 新建一个 HelloAhanWhite.java ...
- SQL语句整理(一) 数据库查询语言DQL
前言: 这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点. 我的教材是人大王珊老师的<数据库系统概论>. 因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试 ...
- 关于display:inline-block布局导致错位问题分析
移动端设计稿需求是这样的,如下图: 未知的几个头像从左至右并行居中排列. 一般可能直接使用float,但是设计图要求头像排列始终是居中的,于是想到要让它们成为行内元素,然后可使用的方法有flex bo ...
- BZOJ1898: [Zjoi2005]Swamp 沼泽鳄鱼(矩阵快速幂)
题意 题目链接 Sol 不难发现吃人鱼的运动每\(12s\)一个周期 所以暴力建12个矩阵,放在一起快速幂即可 最后余下的部分暴力乘 #include<bits/stdc++.h> usi ...
- 理解Canvas原理
Canvas原理 Canvas我们把它翻译成画布,从字面意思我们就可以知道,不就是可以在上面画东西的布吗.好像很简单,没什么好说的.先看图: 从这几幅图我们可以看到以下几点: 1.每个小方格我们可以看 ...
- 《一马当先 O2O创业真人秀》阿里云创客+项目提交报名中
传统行业与互联网的相互融合,线上与线下的互通,正在掀起一股“互联网+”新风潮和创业热潮.支付宝钱包.快的打车.淘点点……这些耳熟能详的应用早已成为人们生活的一部分.而越来越多的“互联网+”创新项目,将 ...