[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML相关的知识,希望对你有一定的参考价值。

前言:

第3节 架构描述语言ADL

3.1 ADL概述

3.1.1 什么是ADL

ADL,架构描述语言(Architecture Description Language)。两个重要的团体在使用架构描述语言术语。它们是:软件工程团体企业建模工程团体

在软件工程团体,架构描述语言(ADL)是一种计算机语言,用来描述软件或系统架构。这意味着如果是技术性架构,该架构必须被清楚的传达给软件开发者。功能架构下,该软件架构必须被清楚的传达给利益相关者和企业工程师。一些软件工程团体开发了若干ADL,如ACME(CMU开发),AADL(SAE标准化),C2(UCI开发),Darwin(英国伦敦帝国学院开发)和Wright(CMU开发) 。

3.1.2 核心思想

与通过测试来验证目标软件系统的性能和功能不同的是,模型驱动架构是:试图在软件被构建出来之前,通过对模型的分析和解构这种方式,就可以推导和论证出目标系统的性能和功能,这是一个非常诱人的目标!!!

3.1.3 MDA基于三种建模方法。

第一种建模方法就是著名的统一建模语言(Unified ModelingLanguage,UML),它包括各种软件建模所需的子语言。UML主要的子语言用于表达类图、活动图与状态图。

第二种建模方法是元对象工具(Meta Object Facility,MOF),它是作为UML构造的一个子集而建立的,具有足够的表达能力来表达重要的模型。

第三种建模技术是公共仓库元模型(Common Warehouse Metamodel,CWM),它标准化了数据仓库应用程序的生命周期(例如,设计、构建和管理)。

3.1.4 在MDA开发过程,可从三个不同的层次建立系统模型。

第一个层次模型是计算无关模型(Computational Independent Model,CIM),该模型关注于业务环境和需求,而不考虑计算环境。该模型通常由业务分析人员创建,展示了系统的业务模型,可以理解为系统需求。

第二个层次为平台无关模型(Platform Independent Model,PIM),该模型考虑在计算系统环境中的业务逻辑表示,但不关注具体的实现平台。该模型通常由系统架构师创建,关注系统功能,可以理解为分析模型。

第三个层次为平台相关模型(Platform Specific Model,PSM),该模型关注于如何在特定平台(如JavaEE)下如何实现业务逻辑;可以理解为设计模型。MDA的价值在于CIM可以通过简单的映射转换成PIM。同样,PIM也可以映射成不同平台的PSM,而PSM则可以最终转换成具体的实现代码。

基于MDA的开发过程,业务人员首先通过业务领域的分析和建模构造CIM以描述需求;之后结合相关的标准规范将CIM转换为PIM;在PIM基础上,针对不同的实现环境,可以构造出不同的PSM;最后将PSM转换成目标代码,完成开发过程。

3.2 UML概述

3.2.1 概述

统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。

UML作为一种统一的软件建模语言具有广泛的建模能力。UML是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。UML还突破了软件的限制,广泛吸收了其他领域的建模方法,并根据建模的一般原理,结合了软件的特点,因此具有坚实的理论基础和广泛性。UML不仅可以用于软件建模,还可以用于其他领域的建模工作。 [1]

UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。

作为一种建模语言,UML有严格的语法和语义规范。UML建立在元模型理论基础上,包括4层元模型结构,分别是基元模型、元模型、模型和用户对象。4层结构层层抽象,下一层是上一层的实例。UML中的所有概念和要素均有严格的语义规范。 [1]

UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

3.2.2 主要模型类型

在UML系统开发中有三个主要的模型:

功能模型

从用户的角度展示系统的功能,包括用例图

对象模型

采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。

动态模型

展现系统的内部行为。 包括序列图、活动图状态图

3.2.3 UML的13种视图

截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。

分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。

用例图:从用户角度描述系统功能。

类图:描述系统中类的静态结构。

对象图:系统中的多个对象在某一时刻的状态。

状态图:是描述状态到状态控制流,常用于动态特性建模

活动图:描述了业务实现用例的工作流程

顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互

协作图:描述对象之间的协助关系

构件图:一种特殊的UML图来描述系统的静态实现视图

部署图:定义系统中软硬件的物理体系结构

包图:对构成系统的模型元素进行分组整理的图

组合结构图:表示类或者构建内部结构的图

交互概览图:用活动图来表示多个交互之间的控制关系的图

3.2.4 UML用五大系统组织视图

UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。

逻辑视图:逻辑视图也称为设计视图,表示设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。

进程视图:进程视图是可执行线程和进程作为活动类的建模,是逻辑视图的一次执行实例,描述了并发和同步结构。

实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模。

部署视图:部署视图把构件部署到一组物理结点上,表示软件到硬件的映射和分布结构。

用例视图:最基本的需求分析模型。

3.2.5 UML与软件工程

UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量,而UML作为一种建模语言,更加有效的实现了软件工程的要求。

如下图,在软件的各个开发阶段需要的UML图

下表是UML使用人员图示

以上是关于[架构之路-110]-《软考-系统架构设计师》-软件架构设计-3-架构描述语言ADL与UML的主要内容,如果未能解决你的问题,请参考以下文章

[架构之路-116]-《软考-系统架构设计师》-软架构设计-9-构件与中间件技术

[架构之路-117]-《软考-系统架构设计师》-软架构设计-10-应用程序架构与基于Web的架构设计负载均衡技术

[架构之路-107]-《软考-系统架构设计师》-0-系统分析师与系统架构设计师简介与官网介绍

系统架构设计师软考简介 ( 软考好处 | 职称晋升 | 工作居住证 | 积分落户 | 系统架构设计师与系统分析师备考及难度 | 软考报名考试注意事项 )

系统架构设计师软考简介 ( 软考好处 | 职称晋升 | 工作居住证 | 积分落户 | 系统架构设计师与系统分析师备考及难度 | 软考报名考试注意事项 )

软考高级系统架构设计师系列论文之:软考高级架构设计师百篇范文