软件架构,框架以及子系统之间的关系

软件架构


定义

面向模式的软件体系架构中列出了一些软件架构方法并将其归纳为模式

体系结构模式 表示软件系统的基本结构化组织视图。它提供一套预定义的子系统,规定他们的职责,并包含于组织他们之间关系的规则和指南(架构的一种定义)

软件架构设计中:软件架构是一组决策以及组件与组件之间的关系,或者一些列的决策

子系统,架构的关系

子系统是软件架构时按照职责,关注点,通用性等来划分的不同粒度的模块
框架有助于分离通用关注点和专用关注点
子系统也存在架构,就是说架构存在与系统的每个模块,当然应该采取重点关注的原则
不同子系统存在不同的架构

框架,架构的关系

框架是软件,而且是半成品,但是架构不是软件
框架是通过预留一些接口,对不同的软件项目提供支持,能够快速开发spring 等
对于这些预留接口,可以通过配置文件,面向对象的接口,函数指针,约定格式等来确定。
其实,按照个人来理解,框架是对不同的关注点的分离,属于软件的系统模块,并让它能够达到复用的目的,从另一方面来说 是分离不变的和可变的部分

框架和类库是有区别的,类库是可以单独与框架组件而存在,用与组合,而不是聚合,这些类库多为static 的方法组成的类,虽然组成的最小单元都是类,但是概念还是不一样。

框架分为两大类 ,技术框架(水平框架),业务框架(垂直框架)
水平框架不关注业务,与具体的领域相关,而业务框架是涉及到领域的框架


软件其实是由组件递归组合而成 就像一个树状的结构,有组件,和复合组件,复合组件又是其它复合组件和组件的结合

软件架构位置