본문 바로가기
Computer Science & Engineering/CBD

[CBD] UML

by 니나노 Mr.꾸 2008. 2. 20.
반응형

구조성

클래스
다이어그램

모델의 조립 부품의 집합. 클래스와 관계에 의해서 (클래스의) 구조와 (클래스 간의) 관계를 표현한다

객체
다이어그램

시스템의 어떤 시점에서의 snapshot

행동성

유스 케이스 다이어그램

시스템의 문맥과 외부 기능(functionality)의 설정

순서
다이어그램

상호작용하는 객체의 시간 순서 계열 즉, 객체의 집단 메시지 송신에 대한 시계열 표현이다

콜라보레이션 다이어그램

객체 집단에서의 상호작용에 대한 직접적 표현이나 객체 집단의 접속망의 형태와 메시지, 스레드의 순서 등을 표현한다

스테이트차트
다이어그램

1개의 객체 생성에서 소멸까지 상태 천이, 즉 어떤 클래스에 속하는 객체의 「라이프 사이클 표현」을 제공한다

액티버티
다이어그램

1개의 interaction 전체에서의 순서 제어 플로우. 상태 다이어그램의 상대적 표현으로서 워크플로우에 초점을 맞춘 다이어그램

구현성

컴포넌트
다이어그램

소프트웨어- 유닛 간의 의존관계를 나타내는 것으로, 소프트웨어 모듈 구성이나 버젼 관리도 표현할 수 있다

배치
다이어그램

객체나 패키지, 파일 등을 실제 플랫폼이나 네트워크 노드 상의 어디에 배치할 것인지, 그리고 어느 프로세스 상에서 실행할 것인지라는 물리적인 관점에서 시스템 구성을 표현한다


UML에서 사용하는 다이어그램

 

1.         연관(Association)

A.       [의미] : 일반적인 의미의 연결 관계

                       i.              방향(navigability)

1.         양방향 연관 관계 : 두 클래스 사이에 그어진 선이 화살표가 없다면 서로의 존재를 알고 있다는 의미

2.         단방향 연관 관계 : "A -> B"처럼 A 클래스에서 B 클래스로 향하는 화살표가 있다면 A 클래스는 B 클래스의 존재를 알지만 B 클래스는 A 클래스의 존재를 모른다는 뜻

                      ii.              멀티플리시티(multiplicity) : 연관된 객체의 개수를 의미

1.         "1" : 1개의 객체

2.         "1..*" : 1개 이상

3.         "*" or "0..*" :  0개 이상

4.         "0..1" : 없거나 1개

2.         집합(Aggregation) 

A.       [의미] : 전체와 부분을 나타내는 집합, 마름모가 있는 화살표 쪽의 클래스는 전체(whole)를, 반대편은 부분(part)을 뜻함

B.       public class Car {

private Wheel InWheel; // 바퀴에 대한 링크

Engine lnEngine; // 엔진에 대한 링크

private Window lnWindow; // 창에 대한 링크

}

3.         상속(Inheritance)

A.       [의미] : 다른 클래스의 재산을 물려받는 상속, 두 클래스를 연결하는 화살표의 한쪽 끝에 삼각형 모양이 있도록 연결하여 표현. 삼각형 표시가 있는 클래스가 상위 클래스이며 반대쪽이 하위 클래스

B.       class Person { ... };

class Woman extends Person { ... };

public class Man extends Person { ... };

4.         의존(Dependency) 

A.       [의미] : 한 클래스가 다른 클래스에 영향을 미치는 의존, 한 클래스에서 다른 클래스로 그어지는, 화살표가 있는 점선으로 표현한다."A -----> B"의 의존 관계에서는 B가 변경되면 A가 그 영향을 받는다.

B.       Tips) 한 클래스가 다른 클래스의 객체의 레퍼런스를 속성값으로 유지한 채 그것을 사용한다면 그 두 클래스는 연관 관계로 표현

한 클래스가 속성값으로 다른 클래스의 객체의 레퍼런스 값을 끈끈하게 유지하는 것이 아니라 특정 메소드의 인자나 내부에서만 사용할 때는 의존 관계로 표현

C.       public class School {

        public boolean isAdmitable(Student stu) {

             // 입학이 가능한지 여부 파악

             if( stu.getGrade().equals("A"))

                  return true;

             else

                  return false;

        }

   }

 

   public class Student {

        private String grade;

        public String getGrade() {

                  return grade;

        }

   }

   }

728x90

'Computer Science & Engineering > CBD' 카테고리의 다른 글

[CBD] Activity Diagram's Fork & Join  (0) 2008.03.13
[CBD]참고자료  (0) 2008.02.25

댓글