随着软件系统的规模越来越复杂,系统的结构设计和规格说明也越来越重要,对软件体系结构深入的系统的研究将会成为提高软件生产效率和解决软件维护问题的新的最有希望的途径。
什么是软件体系结构?
软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等。
软件体系结构是一定形式的结构化元素,即构件的集合,包括处理构件,数据构件和连接构件。
- 处理构件负责对数据进行加工
- 数据构件是被加工的信息
- 连接构件是把体系结构的不同部分组合连接诶起来。
软件体系结构是软件设计过程中的一个更高的层次,超越算法设计和数据结构设计的层次。包括总体组织和全局控制,通信协议,同步,数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。
软件体系结构有4个角度,从不同的方面对系统进行描述:
- 概念角度描述系统的主要构件及它们之间的关系
- 模块角度包含功能分解和层次结构
- 运行角度描述了一个系统的动态结构
- 代码角度描述了各种代码和库函数在开发环境中的组织
软件体系结构是一个抽象的系统规范,主要包括其行为来描述的功能构件和构件之间的相互连接,接口和关系。
软件体系结构为软件系统提供了一个结构,行为和属性的高级抽象,由构成系统的元素的描述,这些元素的相互作用,指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构,和拓扑结构,并且显示了系统的需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的意义?
以现代建筑为例,不管多高的楼房,都是先用钢筋和水泥搭起框架,在此结构中再用各种砖砌墙。这样的楼房盖好之后,业主可以随时拆掉任何一堵非承重墙,也可以在任何地方加一堵新墙,都不会影响正栋楼的质量。
软件系统看做一栋楼,那么软件体系结构就是这栋楼的框架结构。
- 体系结构是风险承担者进行交流的手段,体系结构提供了一种共同语言来表达各种关注和协商,进而对大型复杂系统能进行理智的管理,对项目最终的质量和使用有极大的影响。
- 体系结构是早期决策的体现。
- 明确了系统的约束条件
- 决定了开发和维护的组织结构
- 制约着系统的质量属性
- 使得推理和控制更改更简单
- 体系结构是可传递和可重用的模型
软件体系结构发展史?
1 无体系结构设计阶段,汇编语言进行小规模应用程序开发为特征
2 萌芽阶段,出现了程序结构设计的主题,以控制流图和数据流图构成软件结构为特征
3 初期阶段,出现了从不同侧面描述系统的结构模型。 以UML为典型代表
4 高级阶段,以描述系统的高级抽象结构为中心,不关心具体的建模实现,以4+1模型为标志。逻辑视图。进程视图,开发视图,物理视图和场景视图。
软件体系结构研究?
描述语言:ADL(architecture description language),系统设计师可以利用它的特性进行软件系统概念体系结构建模。
描述构造与表示:4+1模型。 其它还有从UML角度(设计视图,过程视图,实现视图,部署视图)
分析设计与验证:体系结构风格,以及相关的参考模型。
ABSD方法,基于架构的软件设计
DSSA(特定领域的体系结构框架)
...
最后
补充一下软件设计相关的理论概念,试下从码农到架构师方面去进步..
其他:
EJB、CORBA、DCOM:https://www.cnblogs.com/norny/p/3379199.html