2006-06-10 07:00作者:宋宝华出处:天极软件责任编辑:方舟
类型 包含 静态图 类图、对象图、包图 行为图 状态图、活动图 用例图 用例图 交互图 顺序图、协作图 实现图 组件图、部署图

2006-06-14 17:04作者:宋宝华出处:天极开发责任编辑:方舟

UML基础讲座【转】
图2.1 图书管理系统用例图

  参与者

  参与者是与系统、子系统或类发生交互的外部用户、进程或其他系统。参与者可以是人、另一个计算机系统或一些可运行的进程。在图2.1中,"读者"和"管理员"即为参与者。

   参与者之间可以存在泛化关系,例如,在图2.1所示图书馆管理系统用例图中,可以认为"读者"是"学生读者"和"教师读者"的泛化,而"学生读者"还可 以具体化为"本科生读者"和"研究生读者";同样,"图书管理人员"也是"采购员"、"编目员"及"借阅人员"的泛化。图2.2表示出了参与者之间的泛化 关系。

UML基础讲座【转】
图2.2 参与者泛化关系

  用例

  用例是外部可见的一个系统功能,这些功能由系统所提供,并通过与参与者之间消息的交换来表达。用例的用途是在不揭示系统内部构造的情况下定义行为序列,它把系统当作一个黑箱,表达整个系统对外部用户可见的行为。

  鉴于用例的特点,用例一般被命名为一个能够说明目标的动名词组。如图2.1中的"借书"、"还书"和"管理图书"皆为动名词组。

  用例之间也可以存在包含、扩展和泛化等关系:

  (1)包含关系:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。

  (2)扩展关系:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。在以下几种情况下,可使用扩展用例:

  a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);

  b.表明只在特定条件(如例外条件)下才执行的分支流;

  c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。

  图2.3给出了一个扩展关系的例子,在还书的过程中,只有在例外条件(读者遗失书籍)的情况下,才会执行赔偿遗失书籍的分支流。

UML基础讲座【转】
图2.3用例扩展关系

  (3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。如在图2.4中,订票是电话订票和网上订票的抽象。

UML基础讲座【转】
图2.4用例泛化关系

统一建模语言UML轻松入门之类和对象


同类相从,同声相应,固天之理也。——《庄子·渔父》

  类是一种对本质相同事物的抽象,人类软件开发技术的发展历史,就是还事物以本源的历史,开发技术、名词越来越接近世界的真实,“面向对象”、“类”就是这样的产物。

  3.1类图

  在UML中,类图显示了一组类、接口、协作以及它们之间的关系。在UML的静态机制中类图是一个重点,它不但为设计人员所关心,更为实现人员所关注,建模工具也主要依据类图来产生代码(正向)工程。因此,类图在UML的各种图中占据了相当重要的地位。

  类

在类图中类用矩形框来表示,它的属性和操作分别列在分格中,若不需要表达详细信息时,分格可以省略。一个类可能出现在好几个图中。同一个类的属性和操作只在一种图中列出,在其他图中可省略。图3.1给出Student类和MFC中的CObject类。

UML基础讲座【转】UML基础讲座【转】
图3.1类的表示

  类间关系

   在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工 作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛化)、关联、聚合和 组合。

  (1)继承:指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能的能力,继承是类与类之间最 常见的关系。类图中继承的表示方法是从子类拉出一条闭合的、单键头(或三角形)的实线指向基类。例如,图3.2给出了MFC中CObject类和菜单类 CMenu的继承关系。

UML基础讲座【转】
图3.2 类的继承

  类的继承在C++中呈现为:

  class B { }
  class A : public B{ }

   (2)关联:指的是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。可以给关联加上关联名 来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。可以通过关联类进一步描述关联的属性、操 作以及其他信息。关联类通过一条虚线与关联连接。对于关联可以加上一些约束,以加强关联的含义。
 
  关联在C++中呈现为:

  class A{...}
  class B{ ...}
  A::Function1(B &b) //或A::Function1(B b) //或A::Function1(B *b)

  即一个类作为另一个类方法的参数。

   (3)聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合 关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。

UML基础讲座【转】
图3.3 类的聚合

2006-06-26 03:00作者:宋宝华出处:天极开发责任编辑:方舟

UML基础讲座【转】
教程推荐
·ASP.NET初学者入门实践
·Visual Baisc.NET入门
·基于C#的接口基础教程
·Visual Studio 2005   
精彩专题
·ASP.NET创建XML Web服务
·Visual Basic 9.0新功能
·VB2005实现RSS览尽天下事
主题社区
·ASP.NET源码 ·ASP.NET

  静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。

  前一节中介绍的类图和对象图主要用于静态建模,本节我们将描述UML中的动态建模机制。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。

  4.1消息

  在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息:

  (1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细节;

  (2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身的工作;

  (3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身的工作。

  4.2顺序图

   顺序图(也称序列图)是一种交互图(Interaction Diagram,用于描述执行系统功能的各个角色之间相互传递消息的顺序关系,显示跨越多个对象的系统控制流程),强调的是时间和消息的次序,用来说明系 统的动态情况,顺序图由参与者、对象、对象生命线和消息组成。一个顺序图显示了一系列的对象(通常是类的实例,也可以代表其他事物的实例,例如协作、组件 和节点)和在这些对象之间发送和接收的消息。

UML基础讲座【转】
图4.1 图书入库顺序图

  图书管理系统中图书入库的顺序图如图4.1所示,对于顺序图,往往在文字表述上会出现"当…时…"、"首先"、"然后"、"接着"、"…发出…消息","…响应…消息"等词汇。例如图4.1的顺序图可用文字表达为:

   当管理人员把新书入库时,首先要求登录(输入用户名和口令),经系统的"注册表单"验证,若正确无误,则可继续下一步交互,否则拒绝该管理人员进入系 统。若登录正确,管理人员可发出查询请求消息,系统的"图书入库表单"对象响应请求。若管理人员发出增加或删除库存图书请求,"库存图书"对象将响应该消 息,找出数据库中的相关数据并执行相应的操作。此后,管理人员应按下提交键确认请求,"图书入库表单"接口对象应该响应该请求,并发出存储消息,才由"库 存图书"对象响应存储消息,进行数据库存储操作。如果管理人员结束图书入库,发出退出系统的请求,则系统的"注册表单"接口对象响应请求,关闭系统。

UML基础讲座【转】
图4.2 购买商品顺序图

  而图4.2则给出了电子购物系统中购买商品的顺序图,通过观察顺序图,我们可以很清晰地看出顾客购买商品的流程。

2006-06-29 08:00作者:宋宝华出处:天极开发责任编辑:方舟

相关文章:

  • 2022-12-23
  • 2022-01-22
  • 2021-09-04
  • 2022-01-07
猜你喜欢
  • 2021-10-16
  • 2021-05-02
  • 2022-12-23
  • 2022-01-09
  • 2021-08-24
  • 2021-05-04
  • 2021-09-07
相关资源
相似解决方案