[UML笔记]UML介绍

本章内容:

  • UML概述
  • 理解UML的三个步骤
  • 软件体系结构
  • 软件开发过程

统一建模语言(Unified Modeling Language,UML)是一种绘制蓝图的语言。可以用UML对软件密集型系统的制品进行可视化、详述、构造和文档化。

从企业信息系统到基于Web的分布式应用,乃至硬实时嵌入式系统,都适用UML来建模。UML是一种富有表达力的语言,可以描述开发所需要的各种视图,然后以此为基础来部署系统。虽然UML的表达力丰富,但理解和使用它并不困难。要学习使用UML,一个有效的出发点是形成该语言的的 概念模型 ,这要求学习3个要素: UML的基本构造块、支配这些构造块如何放置在一起的规则及运用于整个语言的一些公共机制。

UML仅仅是一种语言,因此仅仅是软件开发方法的一部分。UML是独立于过程的,但最好把它用于以用例为驱动、以体系结构为中心、迭代和增量的过程。

UML用于对软件进行建模,是对软件的一种抽象,并且可以从不同的角度进行抽象。并且其应用范围很广。UML的表达能力强。要学习使用UML,首先要学习UML语言的 概念模型 : 1.UML的基本构造块(基本元素);2.支配这些构造块如何放置在一起的规则(基本结构);3.运用于整个语言的一些公共机制(基本约定)。

UML独立于开发过程,但最好把它用于以用例为驱动、以体系结构为中心、迭代和增量的过程。

1 UML概述

UML是一种对软件密集型系统的制品进行下述工作的语言:

  • 可视化
  • 详述
  • 构造
  • 文档化

1.1 UML是一种语言

语言提供了用于交流的词汇表和在词汇表中组合词汇的规则,而 建模 语言的词汇表和规则侧重于对系统进行概念上和物理上的描述,因而像UML这样的建模语言是用于软件蓝图的标准语言。

建模是为了产生对系统的理解。只用一个模型是不够的,相反,为了理解系统中的各种事物,经常需要多个相互联系的模型。对于软件密集型系统,就需要这样的一种语言,它 贯穿 于软件开发的生命周期,表达系统体系结构的各种不同视图。

像UML这样的语言的词汇表和规则可以告诉你如何创建或理解形式良好的模型,但它没有说明应该什么时候创建什么样的模型,因为这是软件开发过程的工作。一个定义良好的过程将指导你决定生产什么制品,由什么样的活动和人员来创建与管理这些制品,怎样采用这些制品从整体上去度量和控制项目。

建模是为了产生对系统的理解,为了交流。软件开发工程中会有不同角色的人员参与,所以需要从不同的角度去描述系统,从不同的抽象层次去规划系统。UML只告诉了我们 WhatWhy*、 *How, 但是却没告诉我们 When, WhereWho 。也就是说UML只告诉了我们基本原理,至于如何使用却没有说明。因为这与软件开发方法有关,不同的开发流程UML的应用实践也不同。所以好的开发流程才会有好的UML应用实践。

1.2 UML是一种用于可视化的语言

这个没啥说的

1.3 UML是一种可用于详细描述得语言

这此处,详细描述意味着所建模的模型是精确的、无歧义的和完整的。特别是,UML适于对所有重要的分析、设计和实现决策进行详细描述,这些是软件密集型系统在开发和部署时所必须的。

1.4 UML是一种用于构造的语言

UML模型可以直接与各种编程语言进行关联。

1.5 UML是一种用于文档化的语言

UML适于建立系统体系结构及其所有细节的文档。UML还提供了用于表达需求和用于测试的语言。此外,UML还提供了对项目计划活动和发布管理活动进行建模的语言。

可以说UML可以贯穿软件开发的整个生命周期。

1.6 UML的使用场景

UML主要用于软件密集型系统,但不限于对软件建模。它的表达能力对非软件系统建模也是足够的。

2 UML的概念模型

UML的概念模型包括三个要素:UML的基本构造块、支配这些构造块如何放在一起的规则和一些运用于整个UML的公共机制。

2.1 UML的构造块

UML的词汇表包含下面三种构造块:

  • 事物
    • 结构事物 结构事物(structural thing)是UML中的名词。他们通常是模型的静态部分,描述概念或物理元素。包括类,接口,协作,用例,主动类,组件,节点等。
    • 行为事物 行为事物(behavioral thing)是UML中的动词。他们通常是模型的动态部分,代表了跨越时间和空间的行为。包括交互(interaction,对象之间的消息交互),状态机(state mathine, 状态)和活动(activity, 动作)等。

      • 交互 交互是这样一种行为,它在特定语境中共同完成一定任务的一组 对象角色 之间交换的消息组成。
      • 状态机 状态机是这样一种行为,它描述了一个 对象 或一个 交互 在生命周期内响应时间所经历的状态序列以及它对这些事件作出的响应。
      • 活动 活动是这样一种行为,它描述了计算过程执行的步骤序列。活动的一个步骤称为一个 动作

      三者的区别: 交互所注重的是一组进行交互的对象,状态机所注重的是一定时间内一个对象的生命周期,活动所注重的是步骤之间的流而不关心那个对象执行哪个步骤。 活动图也不尽然吧,加上泳道,也会兼顾对象吧。 明白了三者的区别和适用场景才能更好地应用吧。

    • 分组事物
    • 注释事物
  • 关系

2.2 UML规则

2.3 UML中的公共机制

3 体系结构

4 软件开发生命周期