Archive for the ‘UML’ Category

h1

UML crib #2 – UML transformed to C# (1)

August 31, 2008

 

This article should contain, what generates Enterprise Architect, when you created UML design. It demostrates what means relations between classes. Generating of classes you can execute from menu Element->Source code engeneering ->Generate selected files. Another articles from this cathegory you can find here.

Association

image

  public class ClassA {
     public
ClassA(){}
     ~ClassA(){}
     public virtual void Dispose(){}
   }//end ClassA

  public class ClassB {
    
public ClassA m_ClassA;
     public ClassB(){}
     ~ClassB(){}
     public virtual void Dispose(){}
  }//end ClassB

 

 


Aggregation

image

public class ClassC {
   public ClassC(){}
   ~ClassC(){}
  public virtual void Dispose(){}
}//end ClassC

 

public class ClassD {
   public ClassC m_ClassC;
   public ClassD(){}
   ~ClassD(){}
   public virtual void Dispose(){}
}//end ClassD


 

 

Composition

image

public class ClassD
{
  
public ClassC m_ClassC;
   public ClassD(){}
   ~ClassD(){}
   public virtual void Dispose(){}
}//end ClassD


 

public class ClassE
{
   public ClassE(){}
   ~ClassE(){}
  public virtual void Dispose(){}
}//end ClassE

 


Nested class

image

  public class ClassG
      public class ClassH {
       
public ClassH(){}
       
~ClassH(){}
      
public virtual void Dispose(){}
     
}//end ClassH

  public ClassG(){}
  ~ClassG(){}
  public virtual void Dispose(){}
}//end ClassG

 

 

 

Generalization

Inheriting classes.ClassK iherits from ClassJ.

image

public class ClassJ {
  public ClassJ(){}
  ~ClassJ(){}
  public virtual void Dispose(){}
}//end ClassJ

 

public class ClassK : ClassJ {
  public ClassK(){}
  ~ClassK(){}
  public override void Dispose(){}
}//end ClassK

 

 

Realize

image

public class ClassM {
 
public ClassM(){}
  ~ClassM(){}
  public virtual void Dispose(){}
}//end ClassM

 

public class ClassN : ClassM {
   public ClassN(){}
   ~ClassN(){}
   public virtual void Dispose(){}
}//end ClassN

 

 

 

Dependency

image

public class ClassO {
  
public ClassO(){}
   ~ClassO(){}
   public virtual void Dispose(){}
}//end ClassO

 

public class ClassP {
   public ClassP(){}
   ~ClassP(){}
   public virtual void Dispose(){}
}//end ClassP

 

 


Derive

Implementing of interface

image

public interface Interface1 {
}//end Interface1

public class ClassN {
   public ClassN(){}
   ~ClassN(){}
   public virtual void Dispose(){}
}//end ClassN

 

 

 

 

 

Abstract class

image

public abstract class AbstractClassR {
  
public AbstractClassR(){}
   ~AbstractClassR(){}
  public virtual void Dispose(){}
}//end AbstractClassR


 

 

Singleton

image

/// <summary>
///
This class (a) defines an Instance operation that lets clients access its
///
unique instance, and (b) may be responsible for creating its own unique
///
instance.
///
</summary>
public class Singleton {
  private int singletonData;
  private static int uniqueInstance;
  public Singleton(){}
  ~Singleton(){}
  public virtual void Dispose(){}
  public void GetSingletonData(){}
  public static void Instance(){
  //return uniqueInstance
  }
  public void SingletonOperation(){}
}//end Singleton

 

Links

h1

UML crib 1

April 8, 2008

This is my UML crib, taht is devoted to relationships between entities. Be careful, I don’t recognize between analyze and design disciplines in this crib

I found nice links here:

Association

associations

NOTE:  Undefined line between entity (no arrow) is used in Architecture. But in the design dicipline it has no sense. In the design discipline it means bi-directional arrow <->. Or nothing. In the all cases. Use it in Analyse discipline, but not in the design discipline. 

Aggregation

 

Aggregation

Composition

 

Composition

NOTE: By my opinion. It has no sense in the analyse discipline. Use it in the design discipline.

Specialization

 

Specialization

Association versus Aggregation

 

AssociationVsAggregation

Aggregation versus Composition

AggregationVsComposition