• UML中的关联,泛化,依赖,聚集,组合(转)


    转自:http://blog.sina.com.cn/s/blog_5f8b45f20100dzjo.html

    关联(association): 这是一种很常见的关系,这种关系在我们的生活中到处可见,如:一张订单对象一个客户,关联可以是单端关联也可以是多端关联。如:用户和身份证就是双向关联的。关联可以叫做持有对方引用。(用一条实线表示,可以还箭头)

    泛化(generalization):这里的泛化可以理解为面向对象中的继承

    依赖(dependency):是指两个对象间有依赖关系,如果一端修改了,那么依赖他的对象都会有影响.如:充电器和电池,机器和零件,等都有依赖关系。

    聚合(aggregation):聚合是一种整体与部分的关系,比如车和轮子的关系就是一种聚合关系,但是轮子可以离开车子独立存在,轮子的生命周期与车子不相关,因为可以提前把轮子做出来再做车子。还有俱乐部和人的关系也是一种聚合。还有自行车和他的轮子,铃铛,龙头都是聚合关系。

    组合(composition):组织也是一种整体和部会的关系。但是部分的存必须依赖于整体的存在,如果整体不存在了,部分也自然不存了。如:公司和部门就是一种组合关系:如果公司不存在了。那么也没有部门这个概念了。

    包含(extend)和扩展(include)

     一般只有use   case之间有扩展关联和包含关联关系。   
      如果use   case   A和use   case   B有扩展关联关系,说明B的动作序列是A动作序列的一个分支,这个分支只有在某种条件下执行,B的动作序列插入A中的位置,称为“扩展点”。  
       
      比如A是一个从ATM取款的use   case,动作包括:插入卡、输入密码、选择取款服务、输入金额、吐钱、取回卡。  
       
      B表示密码错误的处理方法,B是A的扩展用例,在输入密码错误下执行:选择重新输入密码、系统提示错误、选择取回卡。这样B的动作只在A的第二个动作输入错误密码的情况下执行。扩展点就是输入错误密码。  
       
      如果use   case   A和use   case   B有包含关联关系,说明A的动作序列总是包含B的动作序列,不论在什么情况下。比如如果use   case   C表示验证用户,动作序列是插入卡、输入密码。A   include   C,不论什么情况下,A的动作序列都包含C。  
       
     注1: extend和include的区别是,extend是可选的,只在某种情况下执行另一个use   case,通常是异常条件下,而include是一定会执行的。因为它已经包含在其中了。

    注2:聚合和组合的区别就是,聚合的的各部分可以独产存在,也就是他的生命周期没有依赖性,但是组合的各部门不能独立存在。

  • 相关阅读:
    java操作生成jar包 和写入jar包
    jboss配置jndi连接池
    windows 域的LDAP查询相关举例
    LDAP error Code 及解决方法
    HDU 6417
    CF1299D Around the World
    codechef Chef and The Colored Grid
    Educational Codeforces Round 82 (Rated for Div. 2)
    CF1237F Balanced Domino Placements
    CF1254E Send Tree to Charlie
  • 原文地址:https://www.cnblogs.com/YangBinChina/p/7473064.html
Copyright © 2020-2023  润新知