软件架构的本质:html
控制混乱:使用结构和秩序控制混乱架构
简化复杂:使用分解、分离、分类简化复杂。框架
监督生长:监督软件的生长方式,防止畸形发展;spa
参考文献: 架构设计
任何系统,天然状况下,都是从有序到无序,这是有科学依据的, 按照热力学第二定律,天然界的一切自发过程都有方向性,一个孤立系统会由有序变为无序,即它的熵会不断增长,最终寂灭。但生物能够经过和外界交互,主动进行新陈代谢,制造 “负熵” 来保证自身有序,继续生存。设计
一样,一个软件系统随着功能愈来愈多,调用量急剧增加,整个系统逐渐碎片化,愈来愈无序,最终没法维护和扩展,因此系统在一段时间的野蛮生长后,也须要及时干预,避免愈来愈无序。htm
架构的本质就是对系统进行有序化重构,不断减小系统的 “熵”,使系统不断进化。blog
那架构是如何实现无序到有序的呢? 基本的手段就是分和合,先把系统打散,而后从新组合。接口
架构师只作分和合的事情,但综合能力要求很高,要求内外兼修。开发
https://kb.cnblogs.com/page/540632/
什么是软件架构
若是指望有一个权威统一的标准定义,那答案是没有,目前存在多种软件架构的定义,能够说百花齐放,百家争鸣。其中 IEEE1471-2000 的定义是这样的:系统的架构是系统组件的基本组织形式,它们之间的关系以及和环境之间的关系,以及指导其设计和演化的原则。该定义中的系统组件能够理解为架构元素,根据涉及到的系统范围和层次,架构元素能够是子系统、模块、类等等。从架构设计的动态角度出发,咱们能够这样来定义软件架构:经过一系列架构决策,将系统分解为一些架构元素,并定义这些元素之间的接口和交互关系、集成机制。架构决策就是在架构设计过程当中作出的一系列全局的决定和权衡取舍,例如将系统拆分红几个子系统、子系统的职责是什么、子系统之间的接口是什么、采用什么通信方式和集成机制、采用的开发语言和技术框架等。
https://www.ibm.com/developerworks/cn/rational/1312_wanggb_arch/index.html