Project Team T3 Date 2013-03-21 Team Information 양승민 200911400 정세진 200911418 한종철 200911429 1
1. Basic concept of UML - UML이란 UML은소프트웨어시스템이나업무모델링그리고기타비소프트웨어시스템등을나타내는가공물을구체화하고, 시각화하고, 구축하고, 문서화하기위해만들어진언어이다. - UML의개발필요성 UML은 Rational Software와그협력회사에의해개발되었다. 업무처리과정에서그업무의범위와규모가커짐에따른시스템의복잡성을처리할필요성을느끼게되었는데, 특히물리적인시스템의분산, 동시성, 반복성, 보안, 결점보완, 시스템들의부하에대한균등화와같은반복해서발생하는구조적문제에대한프로세스가필요하게되었다. 또한웹의발전에따라시스템을만들기는쉬워졌으나이러한구조적문제는더욱악화되었기에이러한모든필요성에의해 UML이만들어졌다. - UML의목적. 사용자에게즉시사용가능하고직관적인시각적모델링언어를제공함으로써사용자는의미있는모델들을개발하고서로교환할수있어야한다.. 핵심적인개념을확장할수있는확장성과특수화방법을제공한다.. 특정개발프로세스와언어에종속되지않아야한다.. 모델링언어를이해하기위한공식적인기초를제공한다.. 협동 (Collaboration), 프레임워크, 패턴, 컴포넌트같은고수준의개발개념을제공한다. 2. Kinds of UML Tool 모델링을하기위해사용하는여러가지 uml 도구들이있다. -IBM RSA(Rational Software Modeler/Architect) -Together Architect/Designer/Developer (Borland) -MagicDraw (No Magic) -Visual Paradigm for UML (Visual Paradigm) -EA(Enterprise Architect) -Power Designer -Visio 등의상용 UML도구와 -StarUML -ArgoUML -JUDE/Community -TOPCASED-UML2 (TOPCASED Modeling Framework Open Source Project) -MDT-UML2Tools 등의비상용 UML도구들이있다. 이중에서 staruml을사용할것이므로 staruml 의사용법을설명하도록하겠다. 2
3. Use of UML(starUML) 새다이어그램생성하기 StarUML 은모두 11가지의 UML 다이어그램을지원한다. 사용자는필요에따라원하는다이어그램을생성하여작성할수있다. 다이어그램종류 설명 Class Diagram 클래스다이어그램 (Class Diagram) 은클래스관련요소들의여러가지정적인관계를시각적으로표현한것이다. 클래스다이어그램은클래스 (Class) 뿐만아니라인터페이스 (Interface), 열거형 (Enumeration), 패키지 (Package) 및여러가지관계들뿐만아니라인스턴스 (Instance) 와그것들의연결 (Link) 등도포함할수있다. Use Case Diagram 유스케이스다이어그램 (Use Case Diagram) 은특정시스템혹은개체내의유스케이스 (Use Case) 들과그외부의액터 (Actor) 들간의관계를표현한것이다. 유스케이스는해당시스템의기능을표현하며그것들이어떤외부액터들과상호작용하는지를나타낸다. Sequence Diagram 시퀀스다이어그램 (Sequence Diagram) 은인스턴스들이어떻게상호작용을하는지를묘사한다. 하나의협동 - 인스턴스집합 (CollaborationInstanceSet) 에포함된인스턴스 (Instance) 들상호간에주고받는자극 (Stimulus) 들의집합인상호작용 - 인스턴스집합 (InteractionInstanceSet) 을직접적으로표현한다. 시퀀스역할다이어그램 (Sequence Role Diagram) 은역할 (ClassifierRole) 중심의관점을반영한반면, 시퀀스다이어그램 (Sequence Diagram) 은인스턴스 (Instance) 중심의관점을반영한것이다. Sequence Diagram (Role) Collaboration Diagram Collaboration Diagram (Role) Statechart Diagram 시퀀스역할다이어그램 (Sequence Role Diagram) 은역할개념들이어떻게상호작용을하는지를묘사한다. 하나의협동 (Collaboration) 에포함된역할 (ClassifierRole) 들상호간에주고받는메시지 (Message) 들의집합인상호작용 (Interaction) 을직접적으로표현한다. 시퀀스다이어그램 (Sequence Diagram) 은인스턴스 (Instance) 중심의관점을반영한반면, 시퀀스역할다이어그램 (Sequence Role Diagram) 은역할 (ClassifierRole) 중심의관점을반영한것이다. 협동다이어그램 (Collaboration Diagram) 은인스턴스들이어떻게협동하는지를묘사한다. 하나의협동 - 인스턴스집합 (CollaborationInstanceSet) 에포함된인스턴스 (Instance) 들의협동모델을직접적으로표현한다. 협동역할다이어그램 (Collaboration Role Diagram) 은역할 (ClassifierRole) 중심의관점을반영한반면, 협동다이어그램 (Collaboration Diagram) 은인스턴스 (Instance) 중심의관점을반영한것이다. 협동역할다이어그램 (Collaboration Role Diagram) 은역할개념들이어떻게협동하는지를묘사한다. 하나의협동 (Collaboration) 에포함된역할 (ClassifierRole) 들의협동모델을직접적으로표현한다. 협동다이어그램 (Collaboration Diagram) 은인스턴스 (Instance) 중심의관점을반영한반면, 협동역할다이어그램 (Collaboration Role Diagram) 은역할 (ClassifierRole) 중심의관점을반영한것이다. 상태다이어그램 (Statechart Diagram) 은특정개체의동적인행위를상태 (State) 와그것들간의전이 (Transition) 를통해묘사한다. 3
일반적으로클래스의인스턴스에대한행위를묘사하는데사용되지만그밖의요소들에대해서도얼마든지사용될수있다. Activity Diagram 액티비티다이어그램 (Activity Diagram) 은상태다이어그램의특별한형태로써, 활동들의수행흐름을묘사하는데적합하다. 일반적으로작업흐름 (Workflow) 을표현하기위해많이사용되며, 클래스, 패키지혹은연산등의개체에대해주로사용된다. Component Diagram 컴포넌트다이어그램 (Component Diagram) 은소프트웨어컴포넌트사이의의존관계를묘사한다. 소프트웨어컴포넌트를구성하는요소들과그것들을구현하는요소들도모두표현될수있다. Deployment Diagram Composite Structure Diagram 디플로이먼트다이어그램 (Deployment Diagram) 은물리적인컴퓨터및장비등의하드웨어요소들과그것에들이배치되는소프트웨어컴포넌트, 프로세스및객체들의형상을묘사한다. 복합구조다이어그램 (Composite Structure Diagram) 은분류자 (Classifier) 의내부구조를표현하는다이어그램이다. 여기에는 Classifier 가시스템의다른부분들과의상호작용하는지점등을포함한다. 이렇게 11 가지의 UML diagram 이존재한다. - diagram1. Class Diagram Class Diagram 은문제영역을구성하는모델요소간의관계를나타내는다이어그램 이다. 위그림과같이 class를사각형의형태로그리며, class 안에는 class의멤버변수들과멤버메소드들의이름이들어가게된다. 멤버메소드들의리턴타입들을설정해줄수있다. 또한각 class의관계들을다양한화살표로나타낼수있다. 4
위그림은 direct association 관계로 setter 의관계처럼일방적으로이용하는경우에 연결하는화살표이다. 위그림은일반적인 association 관계로각클래스가서로각자의멤버메소드나멤버 변수에대해서필요로할때일반적으로연결하는선이다. 5
위그림은 aggregation 의관계를나타내는그림이다. 하위 class 가상위 class 의한 부분 ( 집합 ) 이될경우사용하는화살표이다. 위그림은 composition 의관계를나타내는그림이다. aggregation 과비슷한개념이 지만 aggregation 에비해서상위 class 와하위 class 간이연결이더밀접한경우에사 용하는화살표이다. 6
위그림은 generalization 의관계를나타낸다. generalization 은일반화로보통 is-a 의관계에사용하는화살표이다. (ex) 초식동물은동물이다.( 초식동물 is a 동물 ) ) Jung, Yoontae is a Bae, Rankyoung 위그림은 dependency 를나타낸다. 이는의존의관계로화살표를보내는쪽이받는 쪽의멤버변수나멤버메소드들을이용할경우에사용한다. 7
실제로자체를사용하지않고클래스로부터만들어진사용하는건다들알고계실거에요그런자신이하게되는일을구현상에서는함수또는메소드 (Function or Method) 하는데, 의인화시킨다면객체가다른객체에게메시지 " 를전달거라고보면되요. - diagram2. Use Case Diagram 유스케이스 (UseCase) 는시스템의행위 (behavior) 를정의하기위해사용하는요소이 다. 일반적으로유스케이스는액터와상호작용한다. 그림과같이왼쪽의사람모양 actor와 system boundary를그려서 association관계를설정해줄수있다. 또한오른쪽그림처럼각 use case 간의 extend와 include를설정하여그려줄수있다. - diagram3. Sequence Diagram 시간에따라위에서아래로수행되고, 옆으로오브젝트간에메시지가왕래한다. Collaboration Diagram 과는다르게시간의흐름을표현한다. 8
방금생성된객체를선택후속성창 (Properties) 를보게되면, Name 과 Classifier 가있는 데, 이들은위에표기한대로변수명과클래스명을의미한다. 9
10
자가메시지전송 (SelfStimulus) 은아래와같이삽입할수있다. 11
모델탐색기 (Model Explorer) 에서해당시퀀스다이어그램의요소를선택한후, 속성창 (Properties) 을보게되면아래와같은속성을볼수있다. 12
"CAMERA" 객체는 "DISPLAY" 객체로부터 "UpdateScene" 메시지를받게된다. 해당함 수 (Operation) 는 "CAMERA" 객체가가지고있는것이고, 이부분은스스로호출하는것이 아니다. 거의비슷한방법으로 Stimulus( 메시지전송 ) 는드래그하는방식으로만들어진다. 메시지전송 (Stimulus) 를역으로만들어주면아래와같은모양이다. 13
아래그림은 return 을나타낸다. display 에가서별다른작업을하지않을테니까 Activation 이필요없으므로아래와같이한다.. UpdateScene 이호출되면, 내부적으로 "CAMERA" 객체는 UpdateProjection 을호출하게 되고 UpdateProjection 은 UpdateScene 의함수 (Operation) 내에서이루어지는것이기때문 에표현하면아래와같이된다. 14
- diagram4. Deployment Diagram 각시스템의하드웨어, 소프트웨어컴포넌트들의관계를나타낸다. Node라는 notation으로 computational unit( 대부분하드웨어적인부분 ) 을나타낸다. - diagram5. Collaboration Diagram Sequence Diagram과의차이점을살펴보면, Sequence Diagram이시간에따른행위의흐름에역점을두고표현하지만 Collaboration Diagram의경우객체들사이의정적인구조에더중점을둔다. 객체상호간의관계에역점을두었기때문에객체하나의행위를정확하게표현하기에는부적절하다. 15
- diagram6. Activity Diagram 순서도나병렬적인처리를요하는행위를표현할때사용하면유용하다. 순서에따른 activity를나타내는것으로모델링하고있는 diagram에서의 activity의의미를파악하는것이중요하다. - diagram7. Package Diagram class 라는개념의등장으로 class 들이상위개념으로의그룹화방법으로제시된다. package 란하나의 class 가아닌 system 에서의하나의 modeling element 이다. - diagram8. State Chart Diagram Object 가가질수있는모든상태와어떠한 event 를받았을때어떠한상태로변화 하는지를나타낸다. 16
4. Code generation and Conclusion UML tool을사용해 Class Diagram을생성할경우 Code generation하면생성한 Class Diagram 관계대로코드가생성되어코딩할수있는환경을만들어준다. UML tool의사용은 GUI로되어있어서마우스클릭과드래그로편하게그릴수있다. 17