目录

  • 1 教学内容
    • 1.1 导言
    • 1.2 用例图
    • 1.3 对象图
    • 1.4 顺序图
    • 1.5 通讯图
    • 1.6 类图
    • 1.7 状态图
    • 1.8 活动图
    • 1.9 包图
    • 1.10 构件图
    • 1.11 部署图
    • 1.12 面向对象分析的uml模型
    • 1.13 面向对象设计的uml模型
  • 2 教学视频
    • 2.1 OOAD详解
    • 2.2 UML简介
    • 2.3 用例图
    • 2.4 类图1
    • 2.5 类图2
    • 2.6 类图3
    • 2.7 对象图
    • 2.8 组件图
    • 2.9 部署图
    • 2.10 时序图
    • 2.11 协作图
    • 2.12 状态图
    • 2.13 包
    • 2.14 使用UML分析十种设计模式
  • 3 软件设计师考试教程教学视频2
    • 3.1 UML建模前言
    • 3.2 UML图(用例图)
    • 3.3 UML图(类图)
    • 3.4 UML图(顺序图)
    • 3.5 UML图(活动图)
    • 3.6 UML图(状态图)
    • 3.7 UML图(通信图)
    • 3.8 UML案例分析
  • 4 实验
    • 4.1 实验一:用例图设计
    • 4.2 实验二:类图设计
    • 4.3 实验三:活动图设计
    • 4.4 实验四:顺序图设计
    • 4.5 实验五:协作图设计
    • 4.6 实验六:状态图设计
    • 4.7 实验七:物理图设计
  • 5 期末考核
    • 5.1 期末考试要求
  • 6 软件
    • 6.1 startuml
    • 6.2 rose
  • 7 课件
    • 7.1 第一章 导言
    • 7.2 第二章 用例图
    • 7.3 第三章 对象图
    • 7.4 第四章 顺序图
    • 7.5 第五章 通讯图
    • 7.6 第六章 类图
    • 7.7 第七章 状态图
    • 7.8 第八章 活动图
    • 7.9 第九章 包图
    • 7.10 第十章  构件图
    • 7.11 第十一章 部署图
导言

1.1 模型

为了更好地了解个过程或事物,人 们通常根据所研究对象的某些特征形状 、结构或行为等建立相关的模型(   Model模型是从个特定视点对系统进行的抽象,它 可以是实物模型,例 如 建 筑模型、教学模 型、玩也 可以是抽象数字或图示模型,例如数学公式或图形等。模型建立的目的不是复制真实的原物,而是帮助人们更好地理解复杂事物本质反映过程或事物内部各种因素之间的相互关系所以 ,模型是对复杂事物进行的有目的的简化和抽象在开发软件的过程中同样需要建立各种各样 的软件模型

1.  2     开发软件为什么需要模型

    在开发软件的过程中,开发者在动手编写程序之前需要研究和分析软件的诸多复杂和纷乱的问 题。例如,用户需求的 准确描 述问题、功能与功能之间的关系问题、软件的质量和性能问题、软件的结构组成问题、建立几十个甚至几百个程序或组件之间的  关联问题等。所以,软件系统的开发是一个非常复杂的过程,它们的复杂程度不比任何一项大型的复杂土木建设工程逊色。但 是,在这个 复杂的开发过程中,人们最关注的还是开发者之间的交流问题。

软件开发中消除技术人员与非技术人员(用户)之间、使用不同技术的开发人员之间、不同功能使用者之间等的交流障碍是软件开发 成功的关键。直观的软件模型将有助于软件工程师 与他们进行有效地交流。

在软件的需 求分析中,用户和系统 所属领域的专家更熟悉将要构建的系统 的功能,他们被称 为领域专家 ( Doma i n E xper t ) 。他们提出软件系统 在这 个领域中所需要具有的功能。所以,软件设计者可以通过建 立需求模型来 实现技术人员 与非技术人员(用户)之间的交流。

在软件的设计中,设计人员首先要把描述系统功能需求的自然语言形式转化为软  件程序的形式,在这个转化过程中,设计人员要借助许多模型来完成最终的程序设计  模型。这些中间辅 助模型包括系统的行为模 型、对象的状态和行 为模型等。如果这些模型都是严格遵循统一建模语言标准而建立的,那么,无论开发人员具有多么不同的开发条件和技能 ,他们都可以 理解软件设计,并且进行有效交流。

在软件的实施 、测试和部署中,模型为不同 领域的技术人员 在软件和硬件的实施、测试和部署中提供有效 的交流平台。

最后,要强调的是,在各 种各样的软件中,软件模型是最有效的软件文档保存形式,软件模 型在开发团 队人员的培训、学习和知识的传递与传播等方面起 着非常重要的作用。

所以 ,软件开发中需 要建立需求( Requirement ) 模型、问题域( Domain ) 模型、设计(Design) 模型、实施( Implementation) 模型、测试( Tes t ) 模型和部署( Deployment ) 可见 在系统 开发生命周期中,需 要从多角度来建立模型才能全面、准确地分析和设计软系统


1.  3     什么是统建模语

     软件模型有多种表达方式或语言。但是,开发者们经过多年的实践发现,相对于以数学为基础的体系结构描述语言( Architecture Description  Language , AOL )  来说, 以 图 形 符 号 ( Graphical  Notation ) 为 基 础 的 统 建 模 语 言 ( UnifieModeling Language , UML) 描述软件模型既简单又清

统一建模语言是由系列标准的图形符号组成的建模语言,它 用  于描述软件系统分析、设计 和实施中的各种模型UML的定义有两个主要组成部分表示法UML语义用自然语言和对象约束语言( ObjectConstraint  Language , OCL ) 描述UML表示法定义了 UML可视化标准表示符号这决定了 UML种可视化的建模语这些图形符号和文字用于建立应用级的模型在语义上,模  型是元( Metamodel) 元 模 型是定义 表达模 型 所用 语言 的模 型,它 定 义了UML模 型 的 结 构此 外U ML  的 定 义 还 给 出 了 语 法 结 构 的 精 确 规 约( Specific ation) 对于建模者,应 重点掌握基本的概念与表示,并 熟 练运用们 ,这正是本书的 目的

       图 1-1 给出了 UM L 中各种图的分类

          图 1-1 展示了 U M L 图示建模工具被分为两大类共 13 种图形

类是结构图在结构图中,UML2.06种图示建模工具类 图 ( Class Diagram ) 、构件图 ( Component   Diagram ) 、对象 ( Object   Diagram ) 、复合结构图(CompositeStructurDiagram) 、部署图( Deployment Diagram) 和包图 (Package Diagram)

二类是行 为图在行 为图 中UML  2.  0  7 种图示 建模工具活 动图 ( Activity Diagram) 用例图( UseCase Diagram) 状态图( StatDiagram ) 以及 4种交互图(Interaction Diagrams )—— 顺序图( Sequence Diagram) 、通信图 ( Communication  Diagram ) 、交互综 合图 ( InteractionOverview Diagram) 和时间 配 置图 ( Timing Diagram)

图1-1 uml图的分类

1.  4     UML的发展史

     自从对象管理组织( O b je c t  Management Grou p , O M G ) 采纳 U M L 作为其标准建模语以来,U M L 得 到了广泛的应用,并 在世界范围内成为事实上的建模规 范1- 2 简要描述了 U M L 的发展史

O M G 个推广面向对象技术的非盈利性国际组织称为对象管理组织 ,目 标是通过网络为独立开发的应用软件建立个相互之间互操作性的标准。O M G 的成员已包括绝大多数信息技术公司和终端用户,其核心任务是接纳广泛认可的对象管理  体系结构( O be ctM a na ge m e n t Architecture, OMA)或其语境( Co n te x t ) 中的接口和规程的规范

图1-2 uml发展史

19891994,建模 语 的 数 已经从不到十种增加到了五十多种,2090年代中期出现了批新方法其中最引人 注目的是 Booch  提出的 Booch' 93Jacobson提出的 OOSE方法和 Rumbaugh等人提出的 OMT方法1995Booc  h Rumbaugh决定将他们各自的方法结合起来成为种方法19910月发布了1个版本被称作“统方法” ( Unified Method  0. 8 ) 。一年之后 Jacobson加入其中结合 了 BoochOMTJacobson方法的优点,统 了符号体系,并 从 其 他的方法程实践中吸收了许多过实际检验的概念和技术,于 1996年形成了 UML0.9由于的符号体系只是种建模语而不是种建模方法,所以 0.9版起 改称 “统建模语言“ ( UnifiedModeling  Language ) 在此过程中Rational公 司发起成立了UML伙伴组织开始时有 12 家公司加入,共同 推出了 UML1. 0,并 于1997 1提交到对象管理组织( OMG) ,申请 作 种标准建模语言。,对 UML步做了修改,产生了 UML1. 1199711O  MG正式采纳 UML1. 1作为建模语言规范 然后成立任务组进行不断地修订,并 产 生了 UML1. 21. 31. 4版本,其中UML1. 3是较重要的修订版

 UML   1. X  基本上是为分析和对小规模软件系统建模而设计的UML  2.  O  20036月被推荐采用,完 成了这个工业标准建模语言的次大的升级新的 UML 2.  0更加适合系统工程师和软件开发人员所面临的日益复杂的大型软件系统的挑战。它具有更好的扩展性,在基 于构件和系统行 为建模 方面提供更 强的支持 。


1.5             模型驱动的软件构架

    "Write  Once, Run  Everywhere" ( WORE ) ,是 Sun   Microsystems为宣传 Java语言的跨平台特性 而提出的 口号。Sun  Microsystems的目的是让一个 Java程序可以 在不同的 操作系 统 上 执行,使 Java成 为 平 台无关性 语言 ( platform  independent   language)。但是Java语言并不能代替所有其他开发语言,在开发软件时,软件工程师除了要考虑解决功能需求问题,还 要关注开发语言与系统环境间的整合问题。OMG 的模型驱动的软 件构架 ( Model  Driven  Architecture  , MDA )的目的就是利用建模语言创建模型,并且由模型驱动自动生成可执行程序。在MDA 下,软件工程师关注的是平台无关模 型( platfo rm independent model) ,而不是 执行系统的具体技术。

 

1.5.1         MDA的 三种模型

 MDA 是一种基于建模的软件构架,MDA 构架通过建立三种模型达到模型驱动自动生成可执行程序的目的。

 (1 )计算无关模型 ( Computation Independent Model,CIM) 用于建立业务需求、流程和规则等业务模型这些模型与系统逻辑运算 和平台无关,所以被称 为计算无关模型。一般用 UML 的用例图和活动图 描述

( 2) 平台无关模型( Platform Independent Model, PIM ) 是从业务流程中抽象出的逻辑运算 PIM 不包含与系统执行 环境和技术相关的特定信息所以 P IM 被称为平台无关模型。一般用 U ML 的类图 状态图 顺序图描述

( 3 ) 平台特定模型( Plat form Specific Mod el , PSM)是从相应 PIM 转换而来不仅包含 P IM 的逻辑运算 也包含系统执行环境所 需要的相关技术应用所以 PS M 被称为平台特定模型P IM 可以被转换为多种多样的 PSM 般有 J ava / EJ B,CORBA, XM L/ SOAP 等模型

MDA 下,C IM 可以驱动产生P IM, P IM 可以转换产生 PS M , PS M 可以自动 生系统可执行程序见图1-3) MDA 是基千 OMG    定义的一系列建模标准和规范来实现的 ,这些标准和规范解决了 MDA 模型 CC IM , PIM PS M ) 的建立、扩展、交换、转换等技术问 题

图1-3 MDA的模型和模型之间的转换

 

 

1.5.2       MDA的三个核心建模标准

     MD A 个核心建模标准是:

(1  )   建模语( U M L ) M D A  使用的主要建模语言由于 U M L  经在面向对象分析设计中广泛应所以O  M   G   U M L  作为 M D A  中建模的主要标准UM L 可以用来定义 M D A 中的各种模 型但是M D A 并不要求必须使用 U M L

( 2 ) 元对( MetaObjectFacility , MOF ) MDA于定义模型的标不仅使 UML在今后的 扩展中有依据的标准,同时也是建立任何新的建工具和元数据仓库(CWM ) 的标MOF的标准是 UML系列标 准中的子集类图( ClassDiagrams ) MDA要求必须 以 MOF准作为所有 MDA元模型的标

( 3 ) 公共仓库元模型( C o m m o n W are house Metamodel , C W M ) 对企业各种数据模型进行了全面和完整的标准化并且定义任何两种数据模型之间的映射规则CW M 使得企业具有跨数据库甚至跨行业之间的数据挖掘能力。M D A 使用 U M L进行系统建模 ,MDA 使用 CWM 行数据建模


1.5.3         OMG4层模型结构

 

OMG把模型分 为 4 见 图 1-4 ) :   M3层是 元--元模 型层 ( meta- metamodel layer ) ; M2层是元模型层( metamodel  layer);  Ml  层是模型层( model  layer) MO是运行层( run- timelayer)

l-4         OMG4结构


M3 模型是定义 M2 的元模 型在这层中只有一个元元 模 型就是 MOF 模型M2 模型的目的是定Ml的模型,在 这层有很多种元模型,如 UMLCWMMl  模型的目的是定义各种数据和MO  模 型的目的是表现系统执行时数据和对象从图 1-4 可以出,MOF M DA 础标准


1.6            UML的建模对象

    UML 种有效的面向对象分析和设计的建模工具,那 么 如 何 在面向对象编程方法中应用 U ML 图形进行软件建模呢?在回答这个问题之前,必须 先 了 解软件开发中都需要建立哪些软件模型U ML 的建模对象是什么 ,然后,才能有的放选择相应的 U ML 建模图形工具为软件建模

在软件的生命周期中,软件有两种存在形式,即静 止状态和运行状态UML 提供的建模图可分为结构和行为两大类型,所以,在软件开发的分析和设计时,需要从  方面来考虑建立软件模型,如表 1-1 所示

(1 )   静止状态下的结构

( 2运行 状态下的结构

( 3 ) 运行 状态下的行为(或功能



1.6.1       UML的结构模型

      软件不只具有种结构,就 座建筑包括起 支撑作用的框架结构 排水用的管道结构,电 力和通信用的线路结构,起 隔 离作用的坚壁结构等从软件整体角度看 也 称 软件为软件系统 根据对软件系统的关注角度不同 ,软件 统结构 有 多 种 不 同 的 表 现 形 式1 -2 给 出 了 用 于 表 达 不 结 构 UML

1 、静止状态下的 结构 

当软件处于逻辑设计阶段时人们关注是软件系统的组 成结构根据组成单位的不同软件系统 组成结构可以分为构件( Co mponent ) 结构和类( Class ) 结构所以 可以 用构件图( Co mpo ne nt D i ag ra m) 和类图( Class Diag ra m) 来建立 这两种结 构模型

当软件处于物理部署阶段时,人们关注的是软件程序在计算机硬件系统中的物理分布和部 署方法,这时需要的是软件系统的部署结构,U ML 的部署图( Deplo ym en t Diag ra m)用来解决这类建模问题 

2. 运行 状态下的 结构

当软件处于运行状态时,人们关注的是软件系统 在运行时某瞬间的状态软件在运行时,组成 软件的 基本单位类( Class ) 是以对象( O bject) 的形式存在的,这时,软件系统 的瞬间状态模型以对象结构模型的形式表达,可以选用对象图(O bject Di ag ra m ) 来建立系统在运行状态瞬间的结构模型

 

1.6.2       UML的行为模型

     软件只有 在运行时 才有行 为即功能。软件系统行为的表现形式是不同的软件功能相关联的行 为是系统行为 与对象相关联的行为是 对象的行为与对象某行为的内 部执行逻辑相关联的行为是逻辑行为1-3 给出 了用于表达软件系统运行状态下不同行为的U M L

1. 系统行为 

系统在运行状态下的行为是由用户提出的需求决定的,将用户目标链接到系统设 计是非常重要的在系统开发过程中,用例 描 述 了 各种情况下系统的行为和系统响应个相关人系统的主要参与者的请求时的行为,也 就是说,用 例用于发现系统的行为。一个系统拥有许多用例UML的 用 例 图 用于为系统行为所涉及的诸多的用例建相互关联的模型但是UML用 例 图 不等于用例,用 例 图 并 不 描 述具体系统行为,将 在第 2详 细讲述

2.   对象行为

在运行状态下 系统行为的实现是由对象行为的协同作用综合表现的每个对象都有多种行为如何完整全面地确定个对象全部可能的行为呢? 这个建模问题需要应用 UM L 的顺序图或通信图来解决当对象的行为是在种状态下实现的应 用U M L的 顺 序图或通信图就可以描述对象的所有行为了但是如果对象的行为随着对象状态的变化而变化U M L 的 顺 序图或通信图就遇到了局限性这时需要应用U M L的状态图来全面地分析该对象所有可能发生的状态以及在每种不同状态下相应的行为

3.  逻辑行为 

软件系统和其对象可能是个简单的动作( Actio n ),也可能是由系列动作组成个活动( A ct i vi ty) 这种活动通常可能涉及在系列条件的限制下与多个其他对象的信息交流的过程这种具有复杂逻辑活动的行为称为逻辑行为可以应用 UM L 的活动图( Act ivit y Diag ra m) 来为该行为建模

1.  7    总      结

    UML种建模语,具 有广泛的应用领域,它 不 仅可以应用于软件领域的建模,也可以用于非软件领域的建模,例如,在企业管理中,对企业的组织结构、工作流程  艺设计的建模等另外 UML不 是 种开发方法,它 是 独立于任何软件开发方法之外的语言利用它建模时 可遵循任何类型的建模过程

UM L 特别适用于以面向对象分析和设计作为软件开发方法的建模UML 建模活动可能是从办公室的白板或桌子上的白纸上画UML草图开始的然后建模者会用他们画出的 UML 模型图与其他的相关人员交流当他们认为所 建的模型是正确的之后,他们才会坐下来根据模型图的要求进行编码的工作,这样在编写代码时就不会出  现严重的逻辑错误

软件工程的研究和实践证明,在提高软件工程的质量、降低软件开发的风险、处理复杂的功能需求、建立有效的开发平台等诸多软件开发中的关键问题方面,U ML 模是非常有效的方法