软件架构是 有关软件整体结构与组件的抽象描述,它用于指导大型软件系统各个方面的设计。软件架构与建筑师设计建筑架构起到相同的作用,即将软件的所有层次组合在一起,便于开发人员和客户理解。软件架构的内容包括软件系统的组成、子系统及其接口元素的选择,以及元素间的协作行为。此外,软件架构还涉及元素如何不断增长成为更大的子系统,以及架构风格、功能性、兼容性、可用性、系统弹性、性能、适应性、重用性,以及经济和技术的限制和折中等方面。
软件架构不仅关注结构和行为,还关注功能性、兼容性、可用性、系统弹性、性能、适应性、重用性,以及经济和技术的限制和折中。它为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用、指导构件集成的模式以及这些模式的约束组成。软件架构显示了软件需求和软件结构之间的对应关系,并指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。
从设计层次的角度来看,软件架构是软件系统从整体到部分的最高层次的划分。它包括架构元件、联结器和任务流。架构元件是组成系统的核心“砖瓦”,而联结通讯的预期结果和任务流描述系统如何使用这些元件和联结器完成某一项需求。在实现阶段,这些抽象组件被细化为实际的组件,比如具体的类或对象。在面向对象领域中,组件之间的连接通常用接口来实现。
总结来说,软件架构是软件系统的核心设计概念,它为开发过程提供了结构化的框架和指导原则,确保软件系统的可理解性、可维护性和可扩展性。