求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
软件架构与设计教程
1.介绍
2.关键原则
3.架构建模
4.面向对象范式
5.数据流体系结构
6.以数据为中心的架构
7.分层架构
8.面向交互的架构
9.分布式架构
10.基于组件的架构
11.用户界面
12.架构设计
 
 
软件架构与设计-架构模型
来源: Tutorials Point     翻译:Alice(火龙果软件)

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



380 次浏览
4次

软件架构涉及软件系统抽象的高级架构,通过使用分解和组合,具有架构风格和质量属性。软件体系架构设计必须符合系统的主要功能和性能要求,并满足可靠性、可伸缩性、可移植性和可用性等非功能性要求。

软件体系架构必须描述其组件组、它们的连接、它们之间的交互以及所有组件的部署配置。

软件架构可以通过多种方式定义 -

  • UML(统一建模语言) - UML是软件建模和设计中使用的面向对象解决方案之一。
  • 架构视图模型 (4+1视图模型) − 架构视图模型表示软件应用程序的功能和非功能需求。
  • ADL(架构描述语言) - ADL正式和语义地定义软件架构。

UML

UML 代表 统一建模语言。它是一种用于制作软件蓝图的图形语言。UML 由对象管理组 (OMG) 创建。UML 1.0规范草案于1997年<>月提交给OMG。它作为软件需求分析和设计文档的标准,这些文档是开发软件的基础。

UML 可以被描述为一种通用的可视化建模语言,用于可视化、指定、构建和记录软件系统。虽然UML通常用于对软件系统进行建模,但它并不局限于这个边界。它还用于对非软件系统进行建模,例如制造单元中的工艺流程。

这些元素就像组件,可以以不同的方式关联以制作完整的UML图片,这称为 。因此,了解不同的图表以在现实生活中实施知识非常重要。我们有两大类图表,它们进一步分为子类别,即 架构 图和 行为图

架构图

架构图表示系统的静态方面。这些静态方面表示图中形成主要架构并因此稳定的部分。

这些静态部分由类、接口、对象、组件和节点表示。架构图可以细分如下-

  • 类图
  • 对象图
  • 组件图
  • 部署图
  • 封装图
  • 复合架构

下表提供了这些关系图的简要说明 -

序号 图表和描述
1
表示系统的对象方向。显示类如何静态相关。
2 对象
表示一组对象及其在运行时的关系,还表示系统的静态视图。
3 元件
描述系统的所有组件、它们的相互关系、交互和接口。
4 复合架构
描述组件的内部架构,包括组件的所有类、接口等。
5
描述包架构和组织。涵盖包中的类和另一个包中的类。

6 部署
部署关系图是一组节点及其关系。这些节点是部署组件的物理实体。

行为图

行为图基本上捕获了系统的动态方面。动态方面基本上是系统的变化/移动部分。UML 具有以下类型的行为图:

  • 用例图
  • 序列图
  • 通信图
  • 状态图图
  • 活动图
  • 交互概览图
  • 时间图

下表提供了这些图的简要说明 -

序号 图表和描述
1 用例
描述功能及其内部/外部控制器之间的关系。这些控制器称为参与者。
2 活动
描述系统中的控制流。它由活动和链接组成。流可以是顺序的、并发的或分支的。
3 状态机/状态图
表示系统的事件驱动状态更改。它基本上描述了类、接口等的状态变化。用于通过内部/外部因素可视化系统的反应。
4 序列
可视化系统中执行特定功能的调用序列。
5 交互概述
结合活动和序列图,以提供系统和业务流程的控制流概述。
6 通信
与序列图相同,只是它侧重于对象™的角色。每个通信都与序列顺序、编号加上过去的消息相关联。
7 时间顺序
描述消息在状态、条件和事件中的更改。

体系架构视图模型

模型是对软件架构的完整、基本和简化的描述,它由来自特定视角或观点的多个视图组成。

视图是从一组相关关注点的角度对整个系统的表示。它用于从不同利益相关者(如最终用户、开发人员、项目经理和测试人员)的角度描述系统。

4+1 视图模型

4+1视图模型由Philippe Kruchten设计,用于描述基于使用多个并发视图的软件密集型系统的架构。它是一个 多视图 模型,可解决系统的不同功能和问题。它标准化了软件设计文档,并使所有利益相关者都易于理解设计。

它是一种用于研究和记录软件架构设计的架构验证方法,涵盖了所有利益相关者的软件架构的所有方面。它提供了四个基本视图 -

  • 逻辑视图或概念视图 - 它描述了设计的对象模型。
  • 流程视图 - 它描述了系统的活动,捕获了设计的并发和同步方面。
  • 物理视图 - 它描述了软件到硬件的映射并反映了其分布式方面。
  • 开发视图 - 它描述了软件在其开发环境中的静态组织或架构。

可以通过为最终用户或软件系统的客户再添加一个称为场景视图或 用例 视图的视图来扩展此 视图 模型。它与其他四个视图一致,并用于说明作为“加一”视图(4+1)视图模型的体系架构。下图描述了使用五个并发视图 (4+1) 模型的软件体系架构。

为什么叫4+1而不是5?

用例视图具有特殊意义,因为它详细说明了系统的高级别要求,而其他 视图 则详细说明了这些需求是如何实现的。当所有其他四个视图都完成后,它™实际上是多余的。但是,没有它,所有其他观点都是不可能的。下图和表格详细显示了 4+1 视图 -

逻辑 过程 发展 物理的 场景
描述 显示系统的组件(对象)及其交互 显示系统的进程/工作流规则以及这些进程如何通信,重点是系统的动态视图 提供系统的构建块视图并描述系统模块的静态组织 显示软件应用程序的安装、配置和部署 通过执行验证和插图来显示设计已完成
查看者/利益相关者 最终用户、分析师和设计师 集成商和开发人员 程序员和软件项目经理 系统工程师、操作员、系统管理员和系统安装人员 他们的观点和评估者的所有观点
考虑 功能要求 非功能性需求 软件模块组织(软件管理重用、工具约束) 与底层硬件相关的非功能性需求 系统一致性和有效性
UML - 图 类、状态、对象、序列、通信图 活动图 组件、封装图 部署图 用例图

体系架构描述语言 (ADL)

ADL 是一种为定义软件体系架构提供语法和语义的语言。它是一种符号规范,它提供了对软件系统™的概念架构进行建模的功能,与系统的™实现区分开来。

ADL 必须支持体系架构组件、其连接、接口和配置,它们是体系架构描述的构建基块。它是一种用于体系架构描述的表达式形式,并提供分解组件、组合组件和定义组件接口的能力。

架构描述语言是一种正式的规范语言,它描述了软件功能,如进程、线程、数据和子程序,以及硬件组件,如处理器、设备、总线和内存。

很难对 ADL 和编程语言或建模语言进行分类或区分。但是,将语言归类为 ADL 有以下要求 -

  • 它应该适合将体系架构传达给所有相关方。
  • 它应该适用于架构创建、优化和验证的任务。
  • 它应该为进一步实现提供基础,因此它必须能够向 ADL 规范添加信息,以使最终系统规范能够从 ADL 派生。
  • 它应该能够表示大多数常见的体系架构样式。
  • 它应该支持分析功能或提供快速生成的原型实现。
380 次浏览
4次