软件架构涉及软件系统抽象的高级架构,通过使用分解和组合,具有架构风格和质量属性。软件体系架构设计必须符合系统的主要功能和性能要求,并满足可靠性、可伸缩性、可移植性和可用性等非功能性要求。
软件体系架构必须描述其组件组、它们的连接、它们之间的交互以及所有组件的部署配置。
软件架构可以通过多种方式定义 -
UML
UML 代表 统一建模语言。它是一种用于制作软件蓝图的图形语言。UML 由对象管理组 (OMG) 创建。UML 1.0规范草案于1997年<>月提交给OMG。它作为软件需求分析和设计文档的标准,这些文档是开发软件的基础。
UML 可以被描述为一种通用的可视化建模语言,用于可视化、指定、构建和记录软件系统。虽然UML通常用于对软件系统进行建模,但它并不局限于这个边界。它还用于对非软件系统进行建模,例如制造单元中的工艺流程。
这些元素就像组件,可以以不同的方式关联以制作完整的UML图片,这称为 图 。因此,了解不同的图表以在现实生活中实施知识非常重要。我们有两大类图表,它们进一步分为子类别,即 架构 图和 行为图 。
架构图
架构图表示系统的静态方面。这些静态方面表示图中形成主要架构并因此稳定的部分。
这些静态部分由类、接口、对象、组件和节点表示。架构图可以细分如下-
下表提供了这些关系图的简要说明 -
行为图
行为图基本上捕获了系统的动态方面。动态方面基本上是系统的变化/移动部分。UML 具有以下类型的行为图:
下表提供了这些图的简要说明 -
体系架构视图模型
模型是对软件架构的完整、基本和简化的描述,它由来自特定视角或观点的多个视图组成。
视图是从一组相关关注点的角度对整个系统的表示。它用于从不同利益相关者(如最终用户、开发人员、项目经理和测试人员)的角度描述系统。
4+1 视图模型
4+1视图模型由Philippe Kruchten设计,用于描述基于使用多个并发视图的软件密集型系统的架构。它是一个 多视图 模型,可解决系统的不同功能和问题。它标准化了软件设计文档,并使所有利益相关者都易于理解设计。
它是一种用于研究和记录软件架构设计的架构验证方法,涵盖了所有利益相关者的软件架构的所有方面。它提供了四个基本视图 -
可以通过为最终用户或软件系统的客户再添加一个称为场景视图或 用例 视图的视图来扩展此 视图 模型。它与其他四个视图一致,并用于说明作为“加一”视图(4+1)视图模型的体系架构。下图描述了使用五个并发视图 (4+1) 模型的软件体系架构。
为什么叫4+1而不是5?
用例视图具有特殊意义,因为它详细说明了系统的高级别要求,而其他 视图 则详细说明了这些需求是如何实现的。当所有其他四个视图都完成后,它™实际上是多余的。但是,没有它,所有其他观点都是不可能的。下图和表格详细显示了 4+1 视图 -
体系架构描述语言 (ADL)
ADL 是一种为定义软件体系架构提供语法和语义的语言。它是一种符号规范,它提供了对软件系统™的概念架构进行建模的功能,与系统的™实现区分开来。
ADL 必须支持体系架构组件、其连接、接口和配置,它们是体系架构描述的构建基块。它是一种用于体系架构描述的表达式形式,并提供分解组件、组合组件和定义组件接口的能力。
架构描述语言是一种正式的规范语言,它描述了软件功能,如进程、线程、数据和子程序,以及硬件组件,如处理器、设备、总线和内存。
很难对 ADL 和编程语言或建模语言进行分类或区分。但是,将语言归类为 ADL 有以下要求 -