교재: J. Schmuller 저/곽용재 역, 초보자를 위한 UML 객체지향설계, 제3판, 정보문화사, 2006
차례 1.1 복잡한 세상 바로잡기 1.2 UML의 탄생 배경 1.3 UML의 구성요소 1.4 이외의 것들 1.5 UML2.0의 새로운 다이어그램 1.6 왜 이렇게 다이어그램이 많을까? 1.7 단지 그림 몇 개 묶어 놓은 것 아닌가? 1.8 요약 2010-2학기 소트트웨어설계
1.1 복잡한 세상 바로잡기 왜 UML이 필요할까? UML(Unified Modeling Language)은 오늘날의 객체지향 시스템 개발 분야에서 가장 각광받는 도구 중 하나 UML은 시스템 개발자가 자신의 비전(vision)을 구축하고 반영하는데 있어서 표준적이고 이해하기 쉬운 방법으로 할 수 있도록 지원 자신의 설계 결과물을 다른 사람과 효과적으로 주고받으며 공유할 수 있는 메커니즘 제공 2010-2학기 소트트웨어설계
1.1 복잡한 세상 바로잡기 UML Diagrams (출처: http://www.wikipedia.org, Unified Modeling Language) 2010-2학기 소트트웨어설계
1.2 UML의 탄생 배경 UML이 어떻게 생겼을까? UML 1.0 (1997) 은 세 친구(Three Amigos)에 의해 만들어졌다. Grady Booch - Booch Notation James Rumbaugh - Object Modeling Technique (OMT) Ivar Jacobson - Objectory methodology UML 은 소프트웨어 업계의 명실 상부한 표준이 되었으며, 계속 수정 보완되고 있다. UML 1.3과 UML 1.4 (2000)그리고 UML 1.5 (2003)가 나와 있고, 최근에는 UML 2.0 (2005) 이 OMG에 의해 승인 (참고: http://www.omg.org, Object Management Group) 2010-2학기 소트트웨어설계
1.2 UML의 탄생 배경 (출처: http://www.wikipedia.org, Unified Modeling Language) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 UML 다이어그램 UML의 여러 가지 그래픽 요소는 하나의 큰 그림, 즉 다이어그램을 그리는데 사용 다이어그램의 목적은 시스템을 여러 가지 관점에서 볼 수 있는 뷰(View)를 제공하는 것이며, 이러한 뷰의 집합을 모델(Model)이라 함 UML 모델은 시스템 자체의 “목적 행동”을 설명하는 언어 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 UML diagram (1) (8) (2) (6) (3) (4) (10) (9) (13) (5) (11) (7) (12) (출처: http://www.wikipedia.org, Unified Modeling Language) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 4+1 Architectural View Model (Philippe Kruchten) Class Diagram(1) Communication diagram(7) Sequence diagram(5) (13)Package diagram (3)Use case diagram Activity diagram(6) (9)Deployment diagram (출처: http://www.wikipedia.org, 4+1 Architectural View Model) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (1) 클래스 다이어그램(Class Diagram) 예: 세탁기 클래스 속성 : 브랜드 이름, 모델, 일련 번호, 용량 등 행동 : “옷을 넣는다(accept clothes)” “세제를 뿌린다(accept detergent)” “전원을 켜다(turn on)” “전원을 끄다(turn off)” 등 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 UML 클래스 기호 예: 세탁기 클래스 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (2) 객체 다이어그램 (Object Diagram) 객체(Object) - 클래스의 인스턴스 즉, 값이 주어진 속성과 행동을 가지고 있는 개별적인 개체 UML 객체 아이콘 이름이 있는 객체 익명의 객체 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (3) 유스케이스 다이어그램 (Usecase Diagram) 예: 세탁기 유스케이스 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (4) 상태 다이어그램 (State Diagram) 객체는 시간에 따라 각기 다른 상태에 있을 수 있다. 예: 세탁기 상태 다이어그램 - 세탁기의 상태가 단계적으로 변해감을 알 수 있다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (5) 시퀀스 다이어그램 (Sequence Diagram) 객체들끼리 주고받는 메시지의 순서를 시간의 흐름에 따라 표현 예: 세탁기 시퀀스 다이어그램 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (6) 활동 다이어그램 (Activity Diagram) 예: 세탁기 활동 다이어그램 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (7) 통신 다이어그램 (Communication Diagram) 하나의 시스템 구성요소는 다른 구성요소들과 손발을 맞추면서 시스템 전체의 목적을 이루어 나아간다. 시퀀스 다이어그램과 함께 표현 예: 세탁기 통신 다이어그램 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (8) 컴포넌트 다이어그램 (Component Diagram) UML 1.x UML 2.0 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.3 UML의 구성요소 (9) 배포 다이어그램 (Deployment Diagram) 컴퓨터를 기반으로 하는 시스템의 물리적 구조를 표현 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.4 이외의 것들 UML은 다이어그램을 조직화하고 확장하는 방법을 제공 노트 (note) 스테레오 타입 (stereotype) 키워드 (keyword) 2010-2학기 소트트웨어설계
1.4 이외의 것들 노트(note) 붙였다 떼었다 할 수 있는 노란 메모지 모든 다이어그램 요소에 추가적인 설명 제공 모든 다이어그램 요소에 추가적인 설명 제공 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.4 이외의 것들 키워드와 스테레오타입 스테레오타입(stereotypes) - 기존의 UML 요소를 기본으로 하여 다른 요소를 새로 만들 수 있게 하는 장치 키워드(keyword) - UML 요소가 원래 의미가 아닌 새로운 다른 의미로 사용되었음을 나타내며 거듭 인용부호(« ») 안에 위치 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 UML 2.0 의 다이어그램의 변화/추가 UML 1.X의 다이어그램이 새롭게 변화된 것 컴포넌트 다이어그램 새로운 아이디어가 여러 방면으로 추가된 다이어그램 복합체 구조 다이어그램 교류 개요 다이어그램 타이밍 다이어그램 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 (10) 복합체 구조 다이어그램(composite structure diagram) 각 컴포넌트 클래스를 전체 클래스 안에 위치시킴으로써 클래스의 내부 구조가 어떤 것으로 이루어져 있는지 살펴보는 데 매우 유용 UML 2.0에서 새로 도입 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 (11) 교류 개요 다이어그램 (interaction overview diagram) 각 활동마다 객체 사이에 시간의 흐름을 갖는 메시지가 존재한다면 몇몇 활동 부분은 시퀀스 다이어그램이나 통신 다이어그램(혹은 두 다이어그램의 조합)으로 바뀌어야 한다. UML 2.0에서 새로 도입 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 활동 다이어그램과 교류 개요 다이어그램 예: 도서관에서 책 빌리기 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 (12) 타이밍 다이어그램 (Timing Diagram) 시퀀스 다이어그램은 시간에 관해서는 전혀 언급하지 않음 타이밍 다이어그램은 객체가 특정 상태에서 얼마나 오래 머무는지 명시 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.5 UML2.0의 새로운 다이어그램 (13) 패키지 다이어그램 (Package Diagram) 다이어그램들을 조직화 구성요소들을 탭이 달린 폴더 안에 표현 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
1.6 왜 이렇게 다이어그램이 많을까? 왜 굳이 여러 가지 다이어그램을 사용할까? 모든 참여자(stakeholder)를 만족시키기 위해서 다양한 다이어그램 사용 좋은 시스템 설계는 모든 가능한 관점의 다이어그램이 포함되어 있어야 함 각각의 UML 다이어그램은 자신이 나타내고 있는 관점을 하나로 통합하는 수단을 제공 2010-2학기 소트트웨어설계
1.7 단지 그림 몇 개 묶어 놓은 것 아닌가? 정확한 모델의 중요성 “Big Dig”: 보스톤의 건설 프로젝트 (1982, 1991-2006; $21.93B) (출처: http://www.wikipedia.org, Big Dig (Boston, Massachusetts)) 2010-2학기 소트트웨어설계
1.8 요약 시스템 개발을 위한 이해하기 쉬운 표기 방식 필요 UML은 시스템 개발 세계에서 표준으로 인정받은 표기 시스템 시스템 분석가, 의뢰인, 프로그래머, 기타 참여자의 관점 제공 각 시점에서 이해하는 다방면의 설계도 작성 표준 제안된 그래픽 요소를 조합하여 다이어그램 작성 UML 모델은 시스템이 “무엇(what)”을 의도하고 있는 지 말해줄 뿐, “어떻게(how)” 구현되는 지 말해주지 않는다. 2010-2학기 소트트웨어설계