Uml逻辑视图

面向过程vs面向对象

有两种最常用的建模方法:基于算法的和面向对象的。

问题:如何将大象放入冰箱

面向过程:1.打开冰箱门。2.放入大象。3.关闭冰箱门。

动词➕宾语

强调解决问题的过程步骤

面向对象:

主体:冰箱.open()  大象.move()     冰箱.close()      主+谓    

有两类

大象类:move()

冰箱类:open()close()

强调在解决问题的过程中 主体 以及主体的行为

特点:封装、继承、多态

还便于代码维护、重用等 更符合人的思考方式

 

类图技术是面向对象的核心技术,应用非常广泛,其中,类,对象,以及它们之间的关系是最基本的建模元素。

类是对一组具有相同属性、操作、关系和语义的对象的描述。在uml中,类用矩形来表示,并且该矩形被划分为3个部分:名称部分、属性部分和操作部分。

继承:继承指的是一个类(子类)继承另外的一个类(超类)同一功能,并增加它自己的新功能的能力。为了在一个类图上建模继承,从子类(要继承行为的类)拉出一条闭合的、单建头(或三角形).的实现指向超类。

抽象类:在图中,类名student和study操作使用斜体表示。这说明student类是一个抽象类,而study方法是抽象的操作。换句话说,student类使用study规定抽象操作,两个子类都分别执行它们各自版本的操作。

父类定好了实现那些行为,子类定义了行为具体怎么实现。

关联

单项关联:在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。在uml中表示为一条带有指向已知类的开放箭头的实线。同标准关联不同的是,单向关联只包含已知类的角色名和多重值。

比如:student----->teacher   student知道teacher但teacher不知道student

双向(标准)关联:两个类在概念上有连接关系时,类之间的连接称为关联,关联提供了不同类的对象之间相互作用的连接。图形表示中,关联使用一根连接类的实线表示,用箭头表示关联的方向;如果不明确指明方向,则默认关联是双向的。

聚合

聚合是一种特别类型的关联,用于描述"总体到局部"的关系。在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。在uml中表示为一条从整体类到部分类的实线,并在整体类的关联末端画一个未填充的菱形。

生命周期不一样,比如:classes类------>student类,classes类没了,但student类还在。

组合

组合关系是聚合关系的另一种形式,说明了子类实例的生命周期依赖于父类生命周期。绘制组合关系的方法同绘制聚合关系的方法基本一样,只不过菱形是填充了的。

接口

接口是描述类的部分行为的一组操作,它也是一个类提供给另一个类的一组操作。接口包含操作但不包含属性,并且它没有对外界可见的关联。一个类和它的接口之间的关系叫做实现。(虚线)

关系

关系是事物间的联系。在类关系中,最常用的4种关系分别为:依赖,它表示类之间的使用关系;泛化,它表示类之间的一般和特殊关系;关联,它表示对象之间的结构关系,实现,它是规格说明和其实现之间的关系。

关联

关联是一个结构关系,它指明一个事物的对象与另外一个事物对象间的联系。也就是说,如果两个事物存在连接,这鞋事物和类间必定存在着关联关系,因为连接说关联的实例,就如同是类的实例一样。

泛化

泛化:泛化是一般事物(称为超类或父类)和该事物的较为特殊的种类(称为子类)之间的关系,子类继承父类的属性和操作,除此之外通常子类还添加了新的属性和操作,或者修改了父类的某些操作。泛化意味着子类的对象可以用在父类的对象可能出现的地方,但反过来则不成立。

依赖

依赖是元素之间的关系,对一个元素(提供者)的改变可能会影响或提供信息给其他元素(客户)。也就是说,客户以某种方式依赖于提供者。

从语义上理解,关联,实现和泛化都是依赖关系,但因为它们有更特别的语义,所以在uml中被分离出来作为独立的关系。

在图形上,uml把依赖描述成一条有向的虚线,指向被依赖的对象。

面向对象技术总结

面向对象技术是分析问题和解决问题的方法,其基本出发点尽可能按照人类认识世界的方法和思维方式来分析解决问题。

面向对象技术主要支持三种基本的活动:识别对象和类之间的关系、以及通过每个类的功能定义对象的行为。

包图

包是一个容器,提供对uml元素进行分组的功能,主要表现在:把一个大的系统分解为多个小的系统,分解是控制软件复杂性的重要手段;结构化方法中,对功能进行分解;面向对象方法中,讲相关类放在一起。

包中的元素可以呀;类、接口、组件、用例、包等。

包中的元素也具有可见性。可分为public、protected、peivate。

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(uml)