UML 의구성과도구
UML(Unified Modeling Language) UML 의구성요소 UML 의관계 UML 의다이어그램 UML 도구
UML(Unified Modeling Language) 모델링과정 (modeling process) 과모델링언어 (modeling language) 를제안 모델링과정 : 객체지향으로분석하고설계하는프로세스 모델링언어 : 설계를표현할때사용하는그래픽심볼 UML 탄생 OMT(Object Modeling Technique 와, Booch, OOSE(Object- Oriented Software Engineering) 방법의통합 Shlare/Mellor, Coad/Yourdon, Wirfs-Brock, Martin/Odell 방법의영향 광범위응용분야에서사용 데이터베이스설계표현, 실시간시스템등 3
UML 의구성요소 UML 의기본구성요소 사물 (Things) : UML은기본요소를구성 관계 (Relationship) : 사물간의관계를나타냄 다이어그램 (Diagram) : 사물과관계를도형으로표현
사물 (Things) 사물은추상적개념으로서모델에서가장중요 1 Structural Things : 시스템의구조를표현하는사물 2 Behavioral Things : 시스템의행위를표현하는사물 3 Grouping Things : 개념을그룹화하는사물 4 Annotation Things : 부가적으로개념을설명하는사물
구조사물 UML 모델의명사형 모델의정적인부분이며, 개념적 물리적요소표현 클래스 (Class) 동일한속성, 오퍼레이션, 관계, 그리고의미를공유하는객체를기술한것 클래스는직사각형으로표현 사각형안에이름, 속성, 오퍼레이션을넣는다.
인터페이스 (Interface) 클래스또는컴포넌트의서비스를명세화하는오퍼레이션을모아놓은것 외부적으로가시화되는요소의행동을표현 인터페이스는특정클래스나컴포넌트의전체또는일부분만의행동을나타냄 인터페이스는원으로표현하고인터페이스명을아래에표시하거나클래스형식으로표현하고스테레오타입으로 <<interface>> 를사용 인터페이스는단독으로나타나는경우가거의없고, 인터페이스를구현하는클래스나컴포넌트와함께나타냄
통신 (Communication) 교류 (Interaction) 를정의하며, 서로다른요소와역할들이모여있는것 행동적이고구조적인중요성을가지며하나의클래스는다수의통신에참여 실선으로된사각형으로표현하고보통이름을안에넣는다. 유스케이스 (Use Case) 유스케이스는시스템이수행하는활동들을순차적으로기술 액터 (Actor, 행위자 ) 에게의미있는결과를제공 유스케이스는모델에서행동사물을구조화하기위해사용되고통신으로실현 유스케이스는실선으로된타원으로표현하고보통이름을안에넣는다.
활성클래스 (Active Class) 활성의 2 가지형태 : 동작상태, 활동상태 동작상태는 객체에있는 Operation 을호출하거나, 객체에 Signal 을전송하고, 객체가생성되고소멸될때사용되며보통순간적으로작업이실행 동작상태의경우더이상분할되지않는다. 활동상태는 하나의 Activity 에다른제어흐름을가지는활동또는동작상태로서더작은활동상태나동작상태로분해가능하다.
컴포넌트 (Component) 컴포넌트는시스템의물리적 ( 눈에보이는 ) 이고대체가능한부분 컴포넌트는일반적으로클래스, 인터페이스, 그리고통신과같이서로다른논리요소를물리적으로패키지화한것 컴포넌트는탭이달린직사각형으로표시하며이름을안에넣는다. 노드 (Node) 노드는실행할때에존재하는물리적요소이다. 컴포넌트가노드에존재할수있으며노드에서노드로이동 노드는육면체로표시하고이름을안에넣는다.
행동사물 행동사물은 UML 모델의동적부분 모델의동사로서, 시간과공간에따른행동을나타낸다. 교류 (Interaction) 교류는행동이며, 목적을위해객체들간에주고받는메시지로구성 객체로이루어진공동체의행동, 또는개별오퍼레이션의행동을교류로명세화 교류의다양한요소 : 메시지, 활동순서 ( 메시지에의해호출되는행동 ), 링크 메시지는직선으로나타내고, 항상오퍼레이션이름을포함
상태머신 (State Machine) 상태머신은상태의순서를지정하는행동 개별클래스의행동이나여러클래스들로된특정행동을하나의상태로지정 상태머신의서로다른요소 : 상태전이 ( 상태에서다른상태로의흐름 ), 사건 ( 전이를유발시키는것 ), 활동 ( 전이에따른응답 ) 상태는둥근직사각형으로표현하며안에이름을넣고, 필요시하위상태를포함
그룹사물 그룹사물 : UML 모델을조직화하며, 모델을분해하고담을수있는상자를의미 그룹사물 : 패키지 패키지 (Package) 패키지는요소를그룹으로묶는다. 구조사물, 행동사물, 그리고다른그룹사물까지도하나의패키지내에들어감 컴포넌트가물리적인것에반해패키지는개념적 ( 개발시에만존재한다는의미 ) 패키지는탭이달린폴더로표현하며보통이름만쓰는데, 때때로그안에있는내용을표현하기도한다.
주해사물 주해사물은 UML 모델을설명하는부분 주석으로서모델에있는어떠한요소에대해서설명하고, 비고를표시할때사용 노트 (Note) 노트는하나의요소또는공동체에첨부되는제약과주석을나타내기위해사용 노트는접힌직사각형으로표현되며, 문자와그래픽을함께나타낼수있다.
UML 의관계 관계 (Relationship) 의존 (Dependency) 연관 (Association) 일반화 (Generalization) 실체화 (Realization)
의존 의존은두사물간의의미적관계 한사물의명세서가바뀌면그것을사용하는다른사물에게영향을끼치는것 ( 그반대도반드시성립하는것은아니다. ) 의존은점선으로된직선을사용하고, 의존하고있는사물을향하고있다. 의존은한클래스가다른클래스를오퍼레이션의매개변수로사용하는경우에주로나타난다.
연관 연관은구조적관계로서어느한사물객체가다른사물객체와연결을의미 두클래스가서로연결되어연관이있다면, 한쪽객체에서다른객체로옮겨갈수있으며그반대도가능 한연관의양쪽끝이같은클래스를향해원을그리며순환하는것도가능 한클래스의객체가있을때같은클래스의다른객체에게연결할수있다는의미 쌍방연관 : 정확하게두클래스를연결하는연관 다수연관 : 2 개이상의클래스를연결하는연관 연관은클래스들을연결하는실선으로표현 기본형태에연관의이름, 역할, 다중성, 그리고집합연관등을추가
1 이름 연관은이름을가질수있다. 관계의의미를설명하기위해이름을사용 의미의모호함을없애기위해이름에방향성을추가할수있는데, 이름이읽히기를원하는방향으로방향삼각형을표기 2 역할 클래스가연관에참여하면그것이수행해야하는특별한역할을가진다. 클래스가수행하는역할을명시적으로이름지을수있다. 클래스옆에원하는역할을써줌으로써연관관계내에서의역할을표시
3 다중성 연관은객체간구조적관계를표현 한연관에참여하는하나의객체에대해상대쪽에는몇개의객체가연결되어있는지를밝히는것이중요한때가있다. 몇개 를일컬어연관역할에대한다중성이라한다. 다중성은하나 (1), 제로혹은하나 (0..1), 다수 (0..*), 하나이상 (1..*) 등으로표현
4 집합연관 순수한연관은두동료클래스사이의구조적관계를표현하는데, 두클래스는개념적으로같은수준에위치 전체 / 부분 관계를모델링하려고할때가있다. 한클래스는더큰것 ( 전체 ) 을대표하고그것은더작은것들 ( 부분 ) 로구성 이러한관계를집합연관 ( has-a 관계 ) 전체쪽한객체가부분쪽객체들을소유 연관에속이빈다이아몬드를전체쪽에추가하여표현
일반화 일반화는일반화된사물과좀더특수화된사물사이의관계 ( is-a-kind-of 관계 ) 일반화는자식객체가부모객체가사용되는어느곳에서나사용될수있다는것을의미 ( 그반대는성립하지않는다.) 자식객체는부모객체를대신할수있다는것 일반화는실선으로서속이빈큰화살표로부모를향해그린다. 부모 / 자식관계를표현하려면일반화를사용 일반화는주로클래스와인터페이스사이에서상속관계를보여주기위해사용 UML 에서는다양한사물들사이에서도일반화를사용 ( 패키지 )
실체화 실체화 객체들사이의의미적관계로서한객체가다른객체의계약을지정 의존과일반화의혼합이며, 그표기법도의존과일반화에서가져왔다. 인터페이스와인터페이스에오퍼레이션이나서비스를제공하는클래스나컴포넌트 사이의관계를지정하기위해서사용 인터페이스 오퍼레이션의모음으로서클래스나컴포넌트의서비스를명세화하기위해사용 속성을갖지않음 인터페이스의모델링방법은클래스의모델링방법과비슷 인터페이스는오퍼레이션의집합이기때문에속성을가지지않는다 클래스를나타낼때속성생략가능 속성을생략한클래스와인터페이스는모양과형태가같다. 구분하는방법» 키워드를사용 : 인터페이스의이름위에다가 <<interface>> 라고써주면된다.» 인터페이스의이름첫머리에 I 를붙여서클래스와구분
UML 의다이어그램 다이어그램 (Diagram) 1 Class Diagram 2 Object Diagram 3 Component Diagram 4 Deployment Diagram 5 Usecase Diagram 6 Sequence Diagram 7 Communication Diagram 8 State Diagram 9 Activity Diagram 10 Robustness Diagram 11 Composite Structure Diagram
클래스다이어그램 클래스, 인터페이스, 통신, 그리고이들의관계들을나타내며, 객체지향시스템모델링에서가장공통적으로쓰이는다이어그램 시스템의정적설계뷰를다루며, 활성클래스를갖는클래스다이어그램은시스템의정적프로세스뷰를다룬다. 객체다이어그램 객체와객체들사이의관계를나타낸다. 특정시점의객체들의구조적상태를표현 클래스다이어그램처럼시스템의정적설계뷰와정적프로세스뷰를다루지만실제사례나프로토타입사례의시각에서표현 컴포넌트다이어그램 컴포넌트사이의구성과의존을나타내며, 시스템의정적구현뷰를다룬다. 클래스다이어그램과관련이있는데, 일반적으로하나의컴포넌트는클래스다이어그램에있는하나또는그이상의클래스, 인터페이스, 통신들과대응
배치다이어그램 실행시처리하는노드와그노드에있는컴포넌트들의구성을나타내며, 시스템의정적배치뷰를나타낸다. 컴포넌트다이어그램과관련이있는데, 일반적으로하나의노드는컴포넌트다이어그램안에있는하나또는그이상의컴포넌트를수용하기때문 유스케이스다이어그램 유스케이스 ( 시스템을사용하는다양한경우 ) 와행위자 ( 외부행위자 ) 의관계를구조적으로나타낸다. 시스템의정적유스케이스뷰를다룬다. 시스템행동을조직화하고모델링하는데특히중요 상태다이어그램 상태머신을나타내며, 시스템의내부전이를표현 상태머신은상태 (State), 전이 (Transition), 이벤트 (Event), 활동 (Activity) 으로구성 시스템의동적뷰를다룬다. 인터페이스, 클래스, 또는통신의행동을모델링하는데중요 이벤트에따라순차적으로일어나는객체행동에중점을두기때문에빠른반응이필요한시스템을모델링할때유용
순차다이어그램과통신다이어그램 순차다이어그램과통신다이어그램은교류도 (Interaction Diagram) 의한종류 교류도는 객체와관계, 그리고이들사이에보낼수있는메시지로구성되는교류 교류도는시스템의동적뷰를다룬다. 순차다이어그램은 메시지의시간적순서를강조하는교류도이며, 통신다이어그램은메시지를주고받는객체의구조적구성을강조하는교류도 시스템외부이벤트를처리하기위하여시스템내부객체간에주고받는동적메시지를시간의흐름에따라표현한것 통신다이어그램은 순차다이어그램과동일한내용을객체상호관계의관점에서표현한것 순차와통신다이어그램은동일한구조로되어있어서서로변환이가능 활동다이어그램 시스템내부에있는활동의흐름 시스템의동적뷰를다루며, 시스템기능을모델링할때중요하고, 객체간의제어흐름에중점을둔다.
UML 뷰 큰규모의건축물을만들때는설계라는과정이반드시필요 소프트웨어도매우복잡하기때문에몇가지관점에서기술할필요가있다. 객체지향전문가들은 5가지중요한관점 (View) 을정의 소프트웨어의 5가지관점을표현하기위하여UML 다이어그램을이용 1 유스케이스뷰 (Use Case View) 2 설계뷰 (Design View) 3 프로세스뷰 (Process View) 4 구현뷰 (Implementation View) 5 배치뷰 (Development View)
UML 도구
Menu Rational Rose 구성 Menu Toolbar Browser Diagram Toolbar Diagram Window Documentation Window Log window
클래스다이어그램 - 예제소개
연습문제 UML 의탄생과정과배경을설명하시오. UML 의구성요소별역할을설명하시오. UML 의다이어그램의예제를찾아보시오. UML 도구를조사하여도구별장단점을설명해보시오.