在学习软件构架之前,先弄懂什么是架构。
先提软件系统的构架有两个要素:
·它是一个软件系统从整体到部分的最高层次的划分。
·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。
对于软件系统构架的解释,书面语言实在生涩难懂,且难以说清其中具体缘由。
举个样例解释:
想象一下,在最早期,每个人都完全独立生活,衣食住行全部由自己来搞定,整个人类都是独立的个体,不相往来。(状态:单人——解决自己的衣食住行)
一旦多人配合作为生存的整体,力量就显得强大多了,自然也形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花,自然就形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。
整个人群的生产力和抵抗环境的能力都得到了增强。为什么呢?因为每个人的能力和时间都是有限的,并且因为人的结构的限制,人同时只能专心做好一件事件,这样就导致了分工的产生。
既然分工发生了,原来由一个人干生存所必须的所有事情,就变成了很多不同分工的角色合作完成这些事情,这些人必须要通过某些机制合在一起,让每个人完成生存所必须的事情,这实际上页导致了交易的发生。
关于人的样例总结:
在每个人都必须完成自己所有必需品的生产的时候,是没有架构的。
一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个体都拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情,并具备一定的交易能力即可。这就形成了社会的架构。
把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同的角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。
我们从中也可以归纳出这个架构产生的动力,或者说对这个人群社会形势做出的最高层次的决定
(为什么产生这个架构,这个架构有什么好处和优势,对这个架构的限制等等)
1.必须由人执行的工作(限制)
2.每个人的能力有限(限制)
3.每个人的时间有限(限制)
4.人对生活状况有更高的要求(需求)
5.提高社会效率(好处)
回顾:
回过头来看前面的两句话(软件系统的架构有两个要素):
先提软件系统的架构有两个要素:
·它是一个软件系统从整体到部分的最高层次的划分。
·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。
是否对其的理解要清晰一些了。
软件构架就是对软件系统各个元素的集合。
软件构架也涉及了软件系统的现实活动(商业用途、技术需求、硬件要求、涉众利益)
总结:什么是架构,就是:
1.根据要解决的问题,对目标系统的边界进行界定。
2.并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。
3.这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案。
软件构架——是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。