UML精简手册

来源:互联网 发布:淘宝店铺歌曲怎么弄 编辑:程序博客网 时间:2024/05/01 16:11

1.  

2.   Use Case Diagram

a)        作用:抽象系统的功能。

 

b)        继承(范化)关系:用于表示相同接口,不同实现

                      i.              图:

                   ii.              代码:

public interface Customer{

     public void buy();

}


public class RetailCustomer implements Customer{

     private Shopping s;

     public RetailCustomer(RetailShopping rs){

          this.s = rs;

}

public void buy(){

     s.buy();

}

}

public class WholesaleCustomer implements Customer{

     private Shopping s;

     public WholesaleCustomer(WholesaleShopping ws){

         this.s = ws;

}

pulbic void buy(){

     s.buy();

}

}


 

public interface Shopping{

     public void buy();

}


public class RetailShopping implements Shopping{

     public void buy(){

         do some thing

}

}

public class WholesaleShopping implements Shopping{

     public void buy(){

         do another thing

}

}


 

c)        扩展关系:扩展的用例(计算积分),不一定需要执行。

                      i.              图:

                   ii.              代码:

public class Customer{

     private Shoppping s;

     public void buy(){

         s.buy();

}

}

public class Integral{

     public void countIntegral(){

        

}

}

public class Shopping{

     private Integral i;

     public void buy(){

         do some thing

         if(…)

i.countIntegral();

                       continue do some thing

}

}

 

 

d)        包含关系:包含的用例(收款),必须执行。

                      i.              图:

                   ii.              代码:

public clas Pain{

     public void pain(){

        

}

}

 


public class RetailShopping implements Shopping{

     private Pain p;

     public void buy(){

        

         p.pain();

        

}

}

public class WholesaleShopping implements Shopping{

     private Pain p;

     public void buy(){

        

         p.pain();

        

}

}


 

 

 

 

 

 

 

 

3.   Class Diagram

a)        作用:可用来描述系统中各种物件的形态,也可描述出系统中类与类之间的关系。

 

b)        接口:

                      i.              图:

                   ii.              代码:

public interface ITest{

     public void doThing();

}

 

c)        类:

                      i.              图:

                   ii.              代码:

public class Test {

    private String name;

    public void doThing() {…}

}

 

d)        类实现接口:

                      i.              图:

                   ii.              代码:

public class Test implements ITest{…}

 

 

 

e)        类扩展类:

                      i.              图:

                   ii.              代码:

public class SubTest extends Test{…}

 

f)        类引用其他类:

                      i.              图:

                   ii.              代码:

public class Test{

     private Other other;

    

}

 

g)        类多值引用其他类:

                      i.              图:

                   ii.              代码:

public class Test{

     private Vector<Other> other;

    

}

 

 

 

 

 

 

 

 

4.   Sequence Diagram

a)        作用:用来反映若干个对象之间的动态协作关系。适合于描述对象之间时间上的交互。可用于对对象间的职责进行分派。

 

b)        A调用自身的方法:

                      i.              图:

                   ii.              代码:

public class A{

     public void methodA1(){

         methodA2();

}

 

public void methodA2(){…}

}

 

c)        A调用B的功能方法:

                      i.              图:

 

 

 

                   ii.              代码:

public class A{

     private B b;

     public void methodA1(){

         b.methodB1();

}

}

 

d)        A调用B的获取方法:

                      i.              图:

                   ii.              代码:

public class A{

     private B b;

     public void methodA1(){

         C c = b.methodB2();

}

}

 

public class B{

     public C methodB2(){

         return new C();

}

}

 

 

 

 

 

5.   State Machine Diagram

a)        作用:是对类所描述事物的补充说明,他显示了类的所有对象可能具有的状态,以及引起状态变化的事件。除此以外,我们也能够使用状态机图来描述一个负责的方法的内部实现和跳转。状态机图比较适合于描述单个类内部的复杂行为,而不适合于描述交互行为。

 

b)        描述一次html请求

                      i.              图:

                   ii.              代码:

public void doPost(…,…){

     提取参数;

     boolean result = handleParameter();

     Page page;

     if(result)

          page = generatePage();

     else

         page = generateErrorPage();

     writer.write(page);

}

 

6.   Activity Diagram

a)        作用:用于描述对象间的交互,但侧重于工作的描述,侧重于描述工作的流程,而不是工作的分派。比较善于描述并发的情形。

 

b)        描述并行任务处理:

                      i.              图:

                   ii.              代码:

public void handleTask(Task t){

     SubTask[] sub = deviedeTask(t);

     for(SubTask st:sub)

          new Thread(st).start();

}

 

 

 

 

 

 

c)        描述银行取款

                      i.              图:

                   ii.              代码:

public void pickMoney(){

     while(queue != EMPTY){

        

}

getMoney();

}

 

 

 

 

 

 

 

 

 

 

 

7.   小结:

作用

用例图

描述系统的功能需求

类图

描述类的属性和操作

顺序图

描述类之间的交互

状态机图

描述类单个类的内部状态变化

活动图

用于描述功能的执行流程

 

当实现一个系统时,我们应从用例图入手,分析系统所应该具有的功能接口。然后再使用活动图,研究功能的实现流程。再使用顺序图来进行功能分派,把职责分到类当中,再使用类图,勾勒出某个类,在完成某一特定功能时,所应该具有的方法和属性,最后使用状态机图,对功能的实现进行细化。最后进行编码。

原创粉丝点击