精华内容
下载资源
问答
  • 对象的uml表示方法
    2020-07-16 12:11:59

    UML类图的表示通过各个类的基本属性和方法以及类之间的关系比较直观地表示面向对象的设计。
    UML类图中,类与类的关系分为以下6种:

    • 泛化(Generalization)
    • 实现(Realization)
    • 关联(Association)
    • 聚合(Aggregation)
    • 组合(Composition)
    • 依赖(Dependency)
    1. 泛化(Generalization):表示的是类与类之间或者接口与接口之间的继承关系。
      继承使用空心三角形+实线表示。空心三角形指向被继承的类。
      比如:“小轿车”继承了“车”类,空心三角形指向“车”类。

    2. 实现(Realization):表示的是类对接口的实现关系。
      实现使用空心三角形+虚线表示。空心三角形指向被实现的接口。
      比如:“汽车”类实现了“跑”的接口。空心三角形指向“跑”的接口。

    3. 关联(Association):对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。
      关联关系用实线箭头表示。箭头指向和当前类有关联的类。
      比如:“汽车”类的“加油”方法的实现和“车用燃料”类有关联,那么箭头指向“车用燃料”类。

    4. 聚合(Aggregation):表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。
      聚合关系用空心的菱形+实线箭头表示。并且实线的两头可以用数字表明一对多的关系。
      比如:“车队”类和“汽车“类的关系,“车队”类和“汽车“类有各自的生命周期,多个”汽车“聚合在一起组成”车队“。空心的菱形指向“车队”类,箭头指向“汽车”类。

    5. 组合(Composition):组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。
      组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。
      比如:一辆汽车有4个车轮,车轮的拥用者是汽车。那么“汽车”类和“车轮”类的关系是组合的关系。实心的菱形一边可以。标上1,箭头一端可以标上4。

    6. 依赖(Dependency):对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
      依赖关系用虚线箭头表示。
      比如:Factory设计模式中,ConcreteFactory类和ConcreteProduct类的关系。ConcreteProduct类的实例由ConcreteFactory类的方法CreateProduct()产生。虚线箭头指向ConcreteProduct类。

    更多相关内容
  • UML教程 面向对象的分析与设计(OOA&D)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个...它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
  • Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。 Booch方法...

    (1).Booch方法

            Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。面向对象的软件分解更接近人对客观事务的理解,而功能分解只通过问题空间的转换来获得。

            Booch方法是早期面向对象的软件开发方法的一种,Booch认为软件开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。动态模型包括状态图和时序图。该方法对每一步都做了详细的描述,描述手段丰富而灵活

            Booch方法是在UML出现之前比较普及的一种面向对象的软件设计方法,它包括一个很像UML的图标语言。如果不仔细看,不好看出一个图是Booch还是UML。与Booch方法同时存在的,还有至少10种类似于UML的图标语言、设计方法论等等。UML将这些图标语言统一了起来,而没有提及方法论,从而使UML成为一种为所有人都能接受的图标语言,同时适应于各种的设计方法论


    (2).Coad方法

            Coad方法是1989年Coad和Yourdon提出的面向对象开发方法。该方法的主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、结构、属性和操作的认定方面,提出了一套系统的原则。该方法完成了从需求角度进一步进行类和类层次结构的认定。尽管Coad方法没有引入类和类层次结构的术语,但事实上已经在分类结构、属性、操作、消息关联等概念中体现了类和类层次结构的特征。

            Coad / Yourdon 方法特别强调 OOA 和00 D 釆用完全一致的概念和表示法,使分析和
    设计之间不需要表示法的转换。该方法的特点是表示简炼、易学,对于对象、结构、服
    务的认定较系统、完整,可操作性强。        
            在 Coad / Yourdon 方法中,00 A 的任务主要是建立问题域的分析模型。分析过程和
    构 造 O O A 概念模型的顺序由5 个层次组成,分别是类与对象层、属性层、操作层、结
    构层和主题层,它们分别表示分析的不同侧面。00 A 需要经过5 个步骤来完成整个分析
    工作,即标识对象类、标识结构与关联(包括继承、聚合、组合、实例化等)、划分主题、
    定义属性和定义操作。
            OOD 中将继续贯穿 OOA 中的 5 个层次和5 个活动,它由 4 个部分组成,分别是人
    机交互组件、问题域组件、任务管理组件和数据管理组件,其主要的活动就是这4 个组
    件的设计工作


    (3).OMT方法

            OMT方法是1991年由James Rumbaugh等5人提出来的,其经典著作为"面向对象的建模与设计"。

            是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系统。该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力寻求一种问题求解的实际方法。


    (4).UML(Unified Modeling Language)语言

            软件工程领域统一建模语言(UML)。UML将是面向对象技术领域内占主导地位的标准建模语言。

            UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程

    Booch的对象识别方法|软件工程

    展开全文
  • UML类图属于结构图,常被用于描述一个系统的静态结构。一个UML类图中通常包含类的UML图,接口的UML图,泛化...第2层是变量层,也称属性层,列出类的成员变量及类型,格式是“变量名字:类型”,在用UML表示类时,可以...

    UML类图属于结构图,常被用于描述一个系统的静态结构。一个UML类图中通常包含类的UML图,接口的UML图,泛化关系的UML图,关联关系的UML图,依赖关系的UML图和实现关系的UML图。

    类的UML图

    在类的UML图中,使用一个长方形描述一个类的主要构成,将长方形垂直地分为三层。
           

    第1层是名字层,如果类的名字是常规字形,则表明该类是具体类;如果类的名字是斜体字形,则表明该类是抽象类
    第2层是变量层,也称属性层,列出类的成员变量类型,格式是“变量名字:类型”,在用UML表示类时,可以根据设计的需要只列出最重要的成员变量的名字。

    如果变量的访问权限是 public,则需要在变量的名字前面用“+”符号修饰

    如果变量的访问权限是 protected,则需要在变量的名字前面用“#"符号修饰

    如果变量的访问权限是private,则需要在变量的名字前面用“-”符号修饰

    如果变量的访问权限是友好的,则变量的名字前面不使用任何符号修饰。


    第3层是方法层,也称操作层,列出类的方法返回类型,格式是“方法名字(参数列表):类型”

    在用UML类时,可以根据设计需要只列出最重要的方法。

    方法的访问权限是public,则需要在方法的名字前用的“+”号修饰;

    方法的访问权限是 protected ,用“#”符号修饰;

    方法的访问权限是private,用“-”符号修饰;

    方法的访问权限是友好的,则方法的名字前面不使用任何符号修饰。

    方法是静态方法,则在方法的名字下面添加下划线。

    表示接口的UML图

    使用一个长方形描述一个接口的主要构成,分为3层。
    第1层是名字层,接口的名字必须是斜体字形用<<interface>>修饰名字
    第2层是常量层,列出接口中的常量及类型,格式是“常量名字:类型”。

    接口中常量的访问权限都是public,常量名字前用“+" 符号修饰
    第3层是方法层,也称操作层,列出接口中的方法返回类型,格式是“方法名字(参数列表):类型”。接口中方法的访问权限都是public,在方法名字前面用“+"符号修饰

    泛化关系

    泛化关系(Generalization) 指类的继承关系。如果一个类是另一个类的子类,那么 UML通过使用一个实线连接两个类的UML图来表示二者之间的继承关系,实线的起始端是子类的UML图,终点端是父类的UML图,但终点端使用一个空心的三角形表示实线的结束。

    例如:Animal类和它的两个子类Dog和Cat的UML图

     

    关联关系

    如果A类中的成员变量是用B类(接口)来声明的变量,那么A和B的关系是关联关系(Association),称A关联于B.。如果A关联于B,那么 UML 通过使用一个实线连A和B的UML图,实线的起始端是A 的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示实线的结束。

    例如:ClassRoom 类关联Light类的UML图。

     

    依赖关系 

     如果A类中某个方法的参数用B类(接口)来声明的变量或某个方法返回的数据类型是B类型,则A和B的关系为依赖关系,A依赖于B。如果A依赖于B,UML通过使用一个虚线连接A和B的UML图,虚线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示虚线的结束。

    ClassRoom依赖Student接口的UML图

     当需要强调A是通过方法参数依赖于B时,在UML图中使用虚线连接A和B的UML图

    实现关系

    如果一个类实现了一个接口,那么类和接口的关系是实现关系(Realization),称类实现接口。UML通过使用虚线连接类和它所实现的接口,虚线的起始端是类,虚线的终点端是它实现的接口,但终点端使用一个空心的三角形表示虚线的结束。

    ClassOne和ClassTwo类实现 Create接口的UML图

     注释:

    UML使用注释(Annotation)为类图提供附加的说明。UML在一个带卷角的长方形中显示给出的注释,并使用虚线将这个带卷角的长方形和它所注释的实体连接起来。

    例如:Computer类的UML图,该UML图使用注释对Computer类中的add()方法

     

    面向对象原则

    抽象类和接口


    抽象(abstract)类具有以下特点:
    (1)抽象类中可以有abstract方法,也可以有非abstract方法。
    (2)抽象类不能用new运算符创建对象。
    (3)如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的abstract方法 

    (4)做上转型对象:尽管抽象类不能用new运算符创建对象,但它的非abstract子类必须重写它的所有abstract方法,可以让抽象类声明的对象成为其子类对象的上转型对象,并调用于类重写的方法。

    例如:抽象类A中有一个abstract方法add(int x,int y)

    A.java

    
    public abstract class A {
    	public abstract int add(int x,int y);
    }
    

    B.java

    public class B extends A{
    	public int add(int x,int y) {
    		return x+y;
    	}
    
    }
    

    Application.java

    public class Application {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		A a;
    		a = new B(); //a是B类对象的上转型对象
    		int m = a.add(3, 2);//a调用子类B重写的add()方法
    		System.out.println(m);
    		
    	}
    
    }

    接口

    接口具有以下特点:

    (1)接口中有public权限的abstract方法,default方法和static方法

    (2)接口由类实现,及一个类实现一个接口,则它必须重写接口中的abstract方法。

    (3)接口回调:接口回调指把实现接口的类的对象的引用赋给该接口声明的接口变量在,那么该接口变量就可以调用被类重写的接口方法。

    下列接口Com中有一个abstract方法sub(int x,int y);

    Com.java

    public interface Com {
    	public abstract int sub(int x,int y);
    }
    

    ComImp.java

     class ComImp implements Com {
    	public int sub(int x,int y) {
    		return x-y;
    	}
    }
    

    Application.java

    public class Application {
    	public static void main(String args[]) {
    		Com com;
    		com = new ComImp();//com变量存放ComImp类的对象的引用
    		int m = com.sub(8,2); //com回调ComImp类实现的接口方法
    		System.out.println(m); //输出结果为6
    	}
    
    }
    

    输出结果:6

    面向抽象编程

    当设计一个类时,让这个类面向抽象类或接口类,即类中的重要数据为抽象类或接口类声明的变量。

    例如:已经有一个Circle类,该类创建的对象circle调用getArea()方法来计算圆的面积。

    public class Circle {
    	double r;
    	Circle(double r){
    		this.r = r;
    	}
    	public double getArea() {
    		return(3.14*r*r);
    	}
    
    }
    public class Pillar {
    	double height;
    	 Circle bottom; //将Circle对象作为成员,bottom是用具体类Circle声明的变量
    	Pillar(Circle bottom,double height){
    		this.bottom = bottom;
    		this.height = height;
    	}
    	public double getVolume() {
    		return bottom.getArea()*height;
    	}
    }
    

    在上述Pillar类中,bottom是用具体类Circle声明的变量,如果不涉及用户需求的变化,上面Pillar类的设计没有什么不妥,但用户希望Pillar类能创建出底是三角形的柱体。上述Pillar类无法创建出这样的柱体,即上述设计的Pillar类不能应对用户这种需求。


    重新设计Pillar类。首先,注意到柱体计算体积的关键是计算出底面积,一个柱体在计算底面积时不应该关心它的底是什么形状的具体图形,只应该关心这种图形是否具有计算面积的方法。因此,在设计Pillar类时不应当让它的底是某个具体类声明的变量。


    下面将面向抽象重新设计Pillar类。首先编写一个抽象类Geometry(或接口),该抽象类 (接口)中定义了一个抽象的getArea()方法。

    public abstract class Geometry { //如果使用接口,需用interface来定义Geometry
    	public abstract double getArea();
    }

    现在Pillar类可以面向Geometry类编写代码,即Pillar类应当把Geometry对象作为自己的成员,该成员可以调用Geometry的子类重写的getArea()方法

    Pillar类的设计不再依赖具体类,而是面向Geometry类,即Pillar类中的bottom是用抽象类Geometry声明的变量,而不是具体类声明的变量。

    public class Pillar {
    	double height;
    	 Geometry bottom; //将Circle对象作为成员,bottom是用具体类Circle声明的变量
    	Pillar(Geometry bottom,double height){
    		this.bottom = bottom;
    		this.height = height;
    	}
    	public double getVolume() {
    		return bottom.getArea()*height; //bottom可以调用子类重写的getArea方法
    	}
    }
    
    public class Retangle extends Geometry{
    	double a,b;
    	Retangle(double a,double b){
    		this.a = a;
    		this.b = b;
    	}
    	public double getArea() {
    		return a*b;
    	}
    }
    
    public class Circle extends Geometry {
    	double r;
    	Circle(double r){
    		this.r = r;
    	}
    	public double getArea() {
    		return(3.14*r*r);
    	}
    
    }
    public class Application {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Pillar pillar;
    		Geometry bottom;
    		bottom = new Retangle(22,100);
    		pillar = new Pillar(bottom,58);
    		System.out.println("矩形底体积:"+pillar.getVolume());
    		
    		bottom = new Circle(10);
    		pillar = new Pillar(bottom,60); //pillar是具有圆形底的柱体
    		System.out.println("圆形底的体积:"+pillar.getVolume());
    	}
    
    }
    

    运行结果:

    矩形底体积:127600.0
    圆形底的体积:18840.0

    通过面向抽象来设计Pillar类,使得该Pillar类不再依赖具体类。,每当系统增加新的Geometry的子类时,例如增加一个Triangle子类,不需要修改Pillar类的任何代码,就可以使用Pillar创建出具有三角形底的柱体

    “开-闭”原则

    所谓“开-闭”原则(Open-Closed Principle),就是让用户的设计“对扩展开放,对修改关闭”。
    本质是指当在一个设计中增加新的模块时,不需要修改现有的模块。在给出一个设计时,应当首先考虑用户需求的变化,将应对用户变化的部分设计为对扩展开放,而设计的核心部分是经过精心考虑之后确定下来的基本结构,这部分应当是对修改关闭的,即不能因为用户的需求变化而再发生变化。

    例如,有4个类UML类图如图所示


    该设计中的Geometry类和Pillar类就是系统中对修改关闭的部分,而Geometry的子类是对扩展开放的部分。当向系统再增加任何Geometry的子类时(对扩展开放),不必修改 Pillar类,就可以使用Pillar创建出具有Geometry的新子类指定底的柱体。
     

    方法复用的两种技术:类继承和对象组合

    子类继承父类的方法作为自己的一个方法,可以被子类中自己声明的任何实例方法调用。

    父类的方法可以被子类以继承的方式复用。
    通过继承来复用父类方法的优点是,子类可以重写父类的方法,即易于修改或扩展那些被
    复用的方法。


    通过继承复用方法的缺点如下:
    (1)子类从父类继承的方法在编译时刻就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。
    (2)子类和父类的关系是强耦合关系,当父类的方法的行为更改时,必然导致
    子类发生变化。
    (3)通过继承进行复用也称“白盒”复用,其缺点是父类的内部细节对于子类而言是可见的。

    组合复用

    一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该对象中就会有其他对象,该对象将其他对象作为自己的组成部分(这就是人们常说的Has-A),或者说该对象是由几个对象组合而成。
    如果一个对象a组合了对象b,那么对象a就可以委托对象b调用其方法,即对象a以组合的方式复用对象b的方法。


    通过组合对象来复用方法的优点是:
    (1)通过组合对象来复用方法也称“黑盒”复用,因为当前对象只能委托所包含的对象调用其方法,当前对象所包含的对象的方法的细节对当前对象是不可见的。
    (2)对象与所包含的对象属于弱耦合关系,因为如果修改当前对象所包含的对象的类的代码,不必修改当前对象的类的代码。
    (3)当前对象可以在运行时刻动态指定所包含的对象,如Pillar组合的bottom对象,可以在运行时刻指定bottom是Circle 对象或 Rectangle 对象。
     

    下面模拟汽车动态更换驾驶员

    person.java

    public abstract class Person {
    	public abstract String getMess();
    }
    

     Car.java

    public class Car {
    	Person person; //组合驾驶员
    	public void setPerson(Person p) {
    		person = p;
    	}
    	public void show() {
    		if(person == null) {
    			System.out.println("没人驾驶");
    		}
    		else {
    			System.out.println("驾驶人是:");
    			System.out.println(person.getMess());
    		}
    	}
    }
    

    MainClass.java

    public class MainClass {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Car car = new Car();
    		int i=1;
    		while(true) {
    			try {
    				car.show();
    				Thread.sleep(2000); //每个2000毫秒更换驾驶员
    				Class<?>cs = Class.forName("Driver"+i); 
    				Person p = (Person)cs.getDeclaredConstructor().newInstance(); //无人驾驶或当期驾驶员继续驾驶
    				car.setPerson(p); //更换驾驶员
    				i++;
    			}catch(Exception exp) {
    				i++;
    			}
    			if(i>10) i=1;
    		}
    	}
    
    }

    继续编辑Person类子类程序,子类名字必须是Drive1,Drive2。。。。

    public class Driver1 extends Person{
    	public String getMess() {
    		return "我是美国驾驶员";
    	}
    }
    public class Driver5 extends Person {
    	public String getMess() {
    		return "我是女驾驶员";
    	}
    }
    

    运行结果:

    没人驾驶
    驾驶人是:
    我是美国驾驶员
    驾驶人是:
    我是美国驾驶员
    驾驶人是:
    。。。。

    展开全文
  • UML类图表示方法

    千次阅读 2020-07-09 23:35:05
    来源:简书 @最后的轻语_dd43 ... 1.类图基础属性 ...在UML类图中,常见的有以下几种关系: 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Composition) 依赖(Depen.

    来源:简书 @最后的轻语_dd43
    https://www.jianshu.com/p/57620b762160

    1.类图基础属性

    在这里插入图片描述

    • -表示private
    • #表示protected
    • ~表示default,也就是包权限
    • _下划线表示static
    • 斜体表示抽象

    2.类与类之间关系

    在UML类图中,常见的有以下几种关系:

    • 泛化(Generalization)
    • 实现(Realization)
    • 关联(Association)
    • 聚合(Aggregation)
    • 组合(Composition)
    • 依赖(Dependency)
      在这里插入图片描述

    2.1泛化

    介绍:泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系

    (1)继承

    介绍:继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。

    表示方法:继承使用空心三角形+实线表示。

    示例:鸟类继承抽象类动物

    在这里插入图片描述

    (2)实现

    介绍:实现表示一个class类实现interface接口(可以是多个)的功能。

    表示方法:

    1)矩形表示法
    使用空心三角形+虚线表示

    比如:大雁需要飞行,就要实现飞()接口
    在这里插入图片描述

    2)棒棒糖表示法

    使用实线表示
    在这里插入图片描述

    2.2依赖

    介绍:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。

    表示方法:依赖关系用虚线箭头表示。

    示例:动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数

    在这里插入图片描述

    2.3关联

    介绍:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。

    表示方法:关联关系用实线箭头表示。

    示例:企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
    在这里插入图片描述

    2.4聚合

    介绍:表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。

    表示方法:聚合关系用空心的菱形+实线箭头表示。

    示例:每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同。

    在这里插入图片描述

    2.5组合

    介绍:组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。

    表示方法:组合关系用实心的菱形+实线箭头表示,还可以使用连线两端的数字表示某一端有几个实例。

    示例:鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。在这里插入图片描述

    来源:简书 @最后的轻语_dd43
    https://www.jianshu.com/p/57620b762160

    展开全文
  • ——《庄子·渔父》类是一种对本质相同事物的抽象,人类软件开发技术的发展历史,就是还事物以本源的历史,开发技术、名词越来越接近世界的真实,“面向对象”、“类”就是这样的产物。3.1类图在UML中,类图显示了一...
  • 【系统分析师之路】第十章 UML面向对象方法
  • 业务对象模型(BOM)中的类图这是“贷款验证”示例BOM的类图示例。 ClassDiagramWriter类可以生成要传递给PlantUML的BOM的文本表示形式,以生成实际的类图。 它可以与来自ODM Rules或ODM DSI的BOM一起使用。 它具有...
  • UML(Unified Modeling Language)是一种面向对象的建模语言,包含我们所需要的所有图形标识;是一种更直观的图形方式,用符号来表示概念,概念间的关系用连接符合的线来表示 UML的各种图形,分别描述软件模型的静态...
  • 下图是从StarUML工具界面截下来的,从上往下依次表示UML的关系:关联、单向关联、聚合、组合、泛化、依赖和实现。关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。聚合和组合是...
  • 研究本体表示相关技术,并且从表达和推理能力等方面对当前本体表示方法进行...在此基础上提出一种基于统一建模语言(UML)和对象约束语言的本体表示方法,特别研究该表示方法的推理机制,并对这种表示方法进行应用。
  • UML类图基本表示

    千次阅读 2021-07-27 20:42:00
    UML类图中,类使用包含类名、属性和方法且带有分割线的矩阵来表示,比如下图表示一个Employee类,它包含name,age和adress这三个属性,以及work()方法。 在这里插入图片描述 属性/方法名称前加的加号和减号表示了...
  • 第一部分以一种高层的、独立于语言的方式描述面向对象的概念,以及UML表示法;第二部分从问题陈述到分析、系统设计和类设计,一步一步地描述了软件开发的面向对象方法学;第三部分用面向对象语言和关系数据库描述了...
  • UML表示法简介

    千次阅读 2020-02-23 20:54:12
    UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构...
  • 面向对象UML

    千次阅读 2020-10-18 14:10:02
    文章目录一. 什么是UML1. 统一建模语言(The Unified Modeling Language,UML)2. UML基本图形类型(1)....系统建模就是建立系统抽象模型的过程,其中每一个模型表示系统的一个不同的视角或观点,系统建模现在通常意味着
  • 第一部分以一种高层的、独立于语言的方式描述面向对象的概念,以及UML表示法;第二部分从问题陈述到分析、系统设计和类设计,一步一步地描述了软件开发的面向对象方法学;第三部分用面向对象语言和关系数据库描述了...
  • 面向对象设计原则和UML表示

    千次阅读 2017-11-12 13:04:52
    面向对象的设计原则单一职责原则 类的功能要单一。 开闭原则 在尽量不修改源代码前提下扩展 里氏代换原则 父类引用的地方也能用子类。就是说尽量不要覆盖父类的方法 依赖倒转原则 要针对接口编程,而不是针对...
  • 鲁棒图的3种元素鲁棒图包含3种元素(如图8-2所示),它们分别是边界对象、控制对象、实体对象:边界对象对模拟外部环境和未来系统之间的交互进行建模。边界对象负责接收外部输入,处理内部内容的解释,并表达或传递...
  • UML 类图图示样例(总图) 一、类图 类图分三层: ...接口的两种表示方法 —— “飞翔”,它表示一个接口图,与类图的区别主要是顶端有<<interface>>显示。第一行是接口名称,第二行是...
  • 目录 第1章 入门 1.1 背景 1.2 编程简史 1.3 方法学 1.4 关于本书 第Ⅰ部分 设置场景 第2章 对象的概念 2.1 引言 2.2 什么是对象 2.3 相同还是相等 2.4 描述对象 ...2.12 面向对象程序的工作原理 ...附录C UML表示法小结
  • UML类图表示

    千次阅读 2021-01-27 20:52:42
    UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。 二 类图概述 类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的...
  • 第 2 章 UML和面向对象 2.1 UML 2.1.1 UML的历史 2.1.2 RUP的历史 2.1.3 UML语义和UML表示法 2.2 面向对象 2.2.1 面向对象的历史 2.2.2 面向对象分析和设计基本概念 2.2.3 面向对象编程
  • 一个UML中通常包含类(class)的UML图,接口(Interface)的UML图以及泛化关系(Generalizaiton)的UML图、关联关系(Association)的UML图、依赖关系(Dependency)的UML图和实现关系(Realizati...
  • 面向对象分析之UML

    千次阅读 2018-11-03 09:15:04
    UML,也就是所谓的统一建模语言,这是一种被广泛接受的面向对象的分析方法。说是一种语言,可它并不像C/C++或其他任何编程语言那样主要由文字来表达含义,UML是由图表加部分解释文字构成的,换句话说,它就是个图。 ...
  • 具体表现: 依赖关系在 Java 中的具体代码表现形式为 B 为 A 的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A 调用 B 的静态方法 简单来说,就是 A 类中, 出现了 B 类 2、UML 图以及相应...
  • UML类图

    2021-02-27 04:11:13
    UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。...接口在类图中通过版型来表示<<interface>>,下面的介绍将主要介绍类,接口和
  • UML各种对象、关系表示方法

    千次阅读 2012-11-27 16:31:45
    类的UML表示 动物 的矩形框 表示是一个类。 类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体表示;第二层是类的特性,通常就是类的字段和属性;第三层显示类的操作,通常就是方法或行为。 前面的“+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,761
精华内容 24,304
关键字:

对象的uml表示方法