uml 적절하게 사용하기

35
UML 적절하게 사용하기. http://ohyecloudy.com http://cafe.naver.com/architect1 2009-07-18

Upload: jongbin-oh

Post on 25-Jan-2015

7.800 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: UML 적절하게 사용하기

UML 적절하게 사용하기.

http://ohyecloudy.com

http://cafe.naver.com/architect1

2009-07-18

Page 2: UML 적절하게 사용하기

Unified Modeling Language

소프트웨어의 개발에 관련된

설계뿐만 아니라 …

범용적인 목적

Page 3: UML 적절하게 사용하기

Unified Modeling Language

도식graphical notation을

사용해서 모델을 표현한다.

Page 4: UML 적절하게 사용하기

모델model을

다이어그램diagram으로

그리기 위해 사용하는

시각적인 표기법

Page 5: UML 적절하게 사용하기

왜? 모델을 만들어야 하는가?

Page 6: UML 적절하게 사용하기

실제 물건을 만드는 비용

모델로 설계를 검사하는 비용

건축가, 항공우주 엔지니어, 토목 엔지니어…

Page 7: UML 적절하게 사용하기

하지만 소프트웨어 개발에서는..

Page 8: UML 적절하게 사용하기

실제 구현을 하는 비용

모델로 설계를 검사하는 비용

소프트웨어 개발자

Page 9: UML 적절하게 사용하기

실제 구현을 하는 비용

모델로 설계를 검사하는 비용

! UML을 효과적으로 사용

Page 10: UML 적절하게 사용하기

효과적으로 사용하기

의사소통 로드맵road map

백엔드Back-end 문서

보관하거나 버리기

설계에 대한 토롞에 편리

코드가 더 명확할 땐 코드로 토롞

Page 11: UML 적절하게 사용하기

효과적으로 사용하기 의사소통

로드맵road map

백엔드Back-end 문서 보관하거나 버리기

코드를 읽는 것보다 클래스 의존관계 빨리 파악 전체 시스템에 대한 교육용 도구 핵심 다이어그램 몇 개면 충분하다

Page 12: UML 적절하게 사용하기

효과적으로 사용하기

의사소통

로드맵road map

백엔드Back-end 문서

보관하거나 버리기

던져 버리는 습관을 길러라.

단, 설계 모임에서

반복적으로 나타나는 다이어그램을 보관하라.

Page 13: UML 적절하게 사용하기

언제

다이어그램을 그려야 하며

언제

그리지 말아야 하는가

Page 14: UML 적절하게 사용하기

여러 사람을 이해시켜야 할 때

설계에 대한 의견이 다를 때

설계 아이디어로 이것저것 시도해보고 싶을 때

고객이 다이어그램을 요구할 때

그려라

Page 15: UML 적절하게 사용하기

다이어그램을 그리고 코딩 하는 룰 훌륭한 설계자는 다이어그램을 그린다는 생각이 든다면 그리지 마라. 훌륭한 설계자는 코드를 작성하며 다이어그램을 꼭 필요할 때만 그린다

코딩에 앞서 설계 단계의 포괄적인 문서를 만들기 위해서 다이어그램을 그리지 마라.

다른 사람에게 어떻게 코딩을 해야 할지 알려주기 위해 다이어그램을 그리지 마라. 설계만 하지 말고 실제 코딩에도 참여하라.

그리지 마

Page 16: UML 적절하게 사용하기

UML은 도구일뿐

그 자체가 목적이

되어서는 안 된다

Page 17: UML 적절하게 사용하기

UML

실젂에서는

이것만 쓴다!

클래스 다이어그램class diagram

시퀀스 다이어그램sequence diagram

유스케이스 usecase

객체 다이어그램 object diagram

상태 다이어그램 state diagram

에서도 조금 빼먹고~

Page 18: UML 적절하게 사용하기

클래스 다이어그램

시퀀스 다이어그램

유스케이스

객체 다이어그램

상태 다이어그램

클래스 이름

클래스 변수

클래스 메서드

+ public - private # protected

변수 타입

인자 이름 : 타입 리턴 타입

Page 19: UML 적절하게 사용하기

모든 변수와 메서드를 기록할 필요 없다.

중요한 메서드만 기록한다.

규칙을 가지면 좀 더 읽기 쉽다.

연관은 가로, 상속은 세로

그룹 짓기

실젂에서는

Page 20: UML 적절하게 사용하기

연관관계는 가로

상속관계는 세로

트랜잭션과 이것들의 행동 UI 인터페이스

UI 구현

클래스 스테레오 타입

Page 21: UML 적절하게 사용하기

집합aggregation

합성composition

이 관계를 뚜렷하게 따져야 하는 경우는 얼마나 될까?

연관association 관계만으로도 충분하다.

Page 22: UML 적절하게 사용하기

클래스 다이어그램

시퀀스 다이어그램

유스케이스

객체 다이어그램

상태 다이어그램

생명선

메시지

인자

객체

리턴

Page 23: UML 적절하게 사용하기

큰 시퀀스 다이어그램을 그리지 마라

핵심만 집어서 작은 시퀀스 다이어

그램을 여러 개 그려라

차이점보다 공통점을 찾아서 초점을 맞춰라

코드가 더 젂달하기 쉬울 때도 있다

실젂에서는

Page 24: UML 적절하게 사용하기

코드가 더 나을 때가 있다.

코드가 알아보기 쉬울까?

이 시퀀스 다이어그램이 알아보기 쉬울까?

Page 25: UML 적절하게 사용하기

클래스 다이어그램

시퀀스 다이어그램

유스케이스

객체 다이어그램

상태 다이어그램

그리지마!

Page 26: UML 적절하게 사용하기

유스케이스는 내일이면 다 바뀐다.

단순하게 유지해라

빈 종이

워드프로세서

텅 빈 인덱스 카드

프리젞테이션할 때 멋진 표지로만 사용해라.

실젂에서는

Page 27: UML 적절하게 사용하기

클래스 다이어그램

시퀀스 다이어그램

유스케이스

객체 다이어그램

상태 다이어그램

이 클래스 다이어그램의 스냅샷

Page 28: UML 적절하게 사용하기

마음의 눈에는 모든 오브젝트 이름에 밑줄이 그어져 있습니다.

객체

활동적인 객체active object

Page 29: UML 적절하게 사용하기

어떤 순갂의 객체들과 그 객체 사이의 관계 그리고 속성 값을 보여준다.

시스템의 스냅샷

대부분 클래스 다이어그램에서 유추할 수 있다.

유추하기 힘들 때만 사용해라.

실젂에서는

Page 30: UML 적절하게 사용하기

객체 다이어그램 클래스 다이어그램

시퀀스 다이어그램

유스케이스

객체 다이어그램

상태 다이어그램

이벤트 액션

상태state

Page 31: UML 적절하게 사용하기

유한 상태 기계(Finite State Machine)를 설

명하기에 적합하다.

하위시스템의 상태 기계를 파악하는 일에 굉장한 도움이 된다.

다른 다이어그램과 마찬가지로 자주 변경해야 하는 시스템을 표현하기는 좋은 매체가 아니다.

로버트 C. 마틴은 텍스트를 FSM으로 변환하는 프로그램을 짜서 쓴다.

실젂에서는

Page 32: UML 적절하게 사용하기

UML 언어 법률가가 되지 마라.

의사 소통의 수단으로 갂단하게

사용해라.

결롞

Page 33: UML 적절하게 사용하기

젃제! 젃제! 젃제!

Page 34: UML 적절하게 사용하기

참고

Page 35: UML 적절하게 사용하기

UML 어떻게

사용하고

계싞가요?