软件架构的概念(1)

来源:互联网 发布:win10 ssd优化设置 编辑:程序博客网 时间:2024/05/17 08:21

软件架构的概念:

目前未有明确定义的软件架构,但是大致可分为两个流派:组成派和决策派。


组成派:

组成派认为的软件架构是:将系统描述为计算组件及组件之间的交互。

其中“组件”是广泛意义的元素的意思,“组件”可以指子系统、框架、模块、类不同粒度的软件单元,负担不同的计算职责。

其特点是:

(1)关注架构实践的“客体”——软件本身,以软件本身为描述对象。

(2)分析了软件组成及组件之间的交互。


决策派:

决策派认为软件架构是:在一些重要方面做出的决策的集合。

包含以下问题的决策:

a)软件系统的组织。

b)选择组成系统的结构元素和他们之间的接口,还包括元素相互协作体现的行为。

c)如何组织这些元素,使之合成为更庞大的系统。

d)指导这个系统组织的架构风格。

e)其他特性:使用、功能性、性能、弹性、重用、可理解、经济、美学以及技术限制与权衡等等。

对架构的理解:

例如MVC架构,包含3种组件:Model、View和Controller;View创建Controller,Controller根据用户交互调用Model的相应服务,Model会将自身的改变通知View,View则读取Model的信息更新自身。典型的“组件+交互”的方式。

在例如设计一个调试系统,需要作出一系列的决策:理解需求(确定目标)->首轮决策(高层切分)->继续切分为更小的单元,切分下去的同时还得思考哪些目标未达成。

组成派对架构设计方案忠实的概括,决策派归纳架构的决策类型、包含软件系统组织、元素、子系统、架构风格等几类决策,还包括众多非功能需求。两种观点所处视角不同,设计思路和方式有所区别。