SlideShare a Scribd company logo
UML 적절하게 사용하기.
            http://ohyecloudy.com
  http://cafe.naver.com/architect1

                         2009-07-18
소프트웨어의 개발에 관련된



Unified
       설계뿐만 아니라 …

       범용적인 목적

Modeling
Language
Unified
     도식graphical notation을
     사용해서 모델을 표현한다.



Modeling
Language
모델model을

다이어그램diagram으로

그리기 위해 사용하는
시각적인 표기법
왜?
모델을 만들어야 하는가?
건축가,
항공우주 엔지니어,
토목 엔지니어…


  실제         모델로
  물건을        설계를
  만드는        검사하는
  비용         비용
하지만
소프트웨어 개발에서는..
소프트웨어 개발자




 실제         모델로
 구현을        설계를
 하는         검사하는
 비용         비용
UML을 효과적으로 사용

실제
구현을
      !   모델로
          설계를
하는        검사하는
비용        비용
효과적으로 사용하기
의사소통
로드맵road map
백엔드Back-end 문서
보관하거나 버리기




       설계에 대한 토롞에 편리
       코드가 더 명확할 땐 코드로 토롞
효과적으로 사용하기
의사소통
로드맵road map
백엔드Back-end 문서
보관하거나 버리기




코드를 읽는 것보다 클래스 의존관계 빨리 파악
전체 시스템에 대한 교육용 도구
핵심 다이어그램 몇 개면 충분하다
효과적으로 사용하기
의사소통
로드맵road map
백엔드Back-end 문서

보관하거나 버리기



던져 버리는 습관을 길러라.
단, 설계 모임에서
반복적으로 나타나는 다이어그램을 보관하라.
언제
다이어그램을 그려야 하며

    언제
 그리지 말아야 하는가
그려라
여러 사람을 이해시켜야 할 때
설계에 대한 의견이 다를 때
설계 아이디어로 이것저것 시도해
 보고 싶을 때
고객이 다이어그램을 요구할 때
그리지 마
다이어그램을 그리고 코딩 하는 룰
훌륭한 설계자는 다이어그램을 그린다는 생각
 이 든다면 그리지 마라. 훌륭한 설계자는 코
 드를 작성하며 다이어그램을 꼭 필요할 때만
 그린다
코딩에 앞서 설계 단계의 포괄적인 문서를 만
 들기 위해서 다이어그램을 그리지 마라.
다른 사람에게 어떻게 코딩을 해야 할지 알려
 주기 위해 다이어그램을 그리지 마라. 설계
 만 하지 말고 실제 코딩에도 참여하라.
UML은 도구일뿐
그 자체가 목적이
되어서는 안 된다
UML
       클래스 다이어그램class diagram
       시퀀스 다이어그램sequence diagram
       유스케이스 usecase
       객체 다이어그램 object diagram
       상태 다이어그램 state diagram


실젂에서는
이것만 쓴다!
      에서도 조금 빼먹고~
클래스 다이어그램
시퀀스 다이어그램
유스케이스          변수 타입
객체 다이어그램
상태 다이어그램

                              클래스 이름

                              클래스 변수


                             클래스 메서드



 + public
 - private
 # protected
               인자 이름 : 타입   리턴 타입
실젂에서는
모든 변수와 메서드를 기록할 필요
 없다.
중요한 메서드만 기록한다.
규칙을 가지면 좀 더 읽기 쉽다.
 연관은 가로, 상속은 세로
 그룹 짓기
상속관계는 세로
  클래스 스테레오 타입




연관관계는 가로




                                UI 구현




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




                    합성composition


이 관계를 뚜렷하게 따져야 하는 경우는 얼마나 될까?
연관association 관계만으로도 충분하다.
클래스 다이어그램
시퀀스 다이어그램
유스케이스
객체 다이어그램         객체
상태 다이어그램
            인자




   메시지




                      리턴


   생명선
실젂에서는
큰 시퀀스 다이어그램을 그리지 마라
핵심만 집어서 작은 시퀀스 다이어
 그램을 여러 개 그려라
차이점보다 공통점을 찾아서 초점을
 맞춰라
코드가 더 젂달하기 쉬울 때도
 있다
코드가 더 나을 때가 있다.




코드가 알아보기 쉬울까?
이 시퀀스 다이어그램이 알아보기 쉬울까?
클래스 다이어그램
시퀀스 다이어그램
유스케이스
객체 다이어그램
상태 다이어그램




           그리지마!
실젂에서는
유스케이스는 내일이면 다   바뀐다.
단순하게 유지해라
 빈 종이
 워드프로세서
 텅 빈 인덱스 카드
프리젞테이션할 때 멋진 표지로만 사
 용해라.
클래스 다이어그램
시퀀스 다이어그램
유스케이스       이 클래스 다이어그램의 스냅샷
객체 다이어그램
상태 다이어그램
마음의 눈에는 모든 오브젝트 이름에 밑줄이 그어져 있습니다.




                활동적인 객체active object

                                객체
실젂에서는
어떤 순갂의 객체들과 그 객체 사이의 관
 계 그리고 속성 값을 보여준다.
시스템의 스냅샷
대부분 클래스 다이어그램에서 유추할
 수 있다.
유추하기 힘들 때만 사용해라.
클래스 다이어그램
시퀀스 다이어그램
유스케이스
            객체 다이어그램
객체 다이어그램         상태state
상태 다이어그램




     이벤트    액션
실젂에서는
유한 상태 기계(Finite State Machine)를 설
 명하기에 적합하다.
하위시스템의 상태 기계를 파악하는 일에 굉
 장한 도움이 된다.
다른 다이어그램과 마찬가지로 자주 변경해야
 하는 시스템을 표현하기는 좋은 매체가 아니
 다.
 로버트 C. 마틴은 텍스트를 FSM으로 변환하는 프로
 그램을 짜서 쓴다.
결롞

UML 언어 법률가가 되지 마라.
의사 소통의 수단으로 갂단하게
사용해라.
젃제! 젃제! 젃제!
참고
UML 어떻게
사용하고
계싞가요?

More Related Content

PDF
現場で役立つシステム設計の原則
PDF
Logging system of Android
PPTX
OSを手作りするという趣味と仕事
PDF
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
PDF
ROS.js の紹介
PDF
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
PPTX
shared_ptrとゲームプログラミングでのメモリ管理
PDF
ドメイン駆動設計とは何か 【入門編】
現場で役立つシステム設計の原則
Logging system of Android
OSを手作りするという趣味と仕事
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
ROS.js の紹介
[IGC2018] 넷마블 이상철 - 모바일 게임 보안 AR(Android Republic) 변조앱 내부를 파헤치다
shared_ptrとゲームプログラミングでのメモリ管理
ドメイン駆動設計とは何か 【入門編】

What's hot (20)

PDF
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
PPT
게임 프레임워크의 아키텍쳐와 디자인 패턴
PDF
ゲームの仕様書を書こうまとめ
PPTX
RPGにおけるイベント駆動型の設計と実装
PDF
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
PDF
Obsのプラグイン作ってみた
PDF
ドメイン駆動設計(DDD)の実践Part2
PDF
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
PDF
JPAのキャッシュを使ったアプリケーション高速化手法
PDF
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
PDF
これからSpringを使う開発者が知っておくべきこと
PPTX
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
PDF
MediaPipeを使ったARアプリ開発事例 ~カメラをかざして家䛾中で売れるも䛾を探そう~
PDF
ドメイン駆動設計のためのオブジェクト指向入門
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
PDF
最新 ASP.NET Web 開発オーバービュー
PPTX
Unreal perception
PPT
【Unity道場】使って覚えるTileMap
PDF
一般的なチートの手法と対策について
PDF
NDC12 인디게임 개발 시 주의할 점
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
게임 프레임워크의 아키텍쳐와 디자인 패턴
ゲームの仕様書を書こうまとめ
RPGにおけるイベント駆動型の設計と実装
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
Obsのプラグイン作ってみた
ドメイン駆動設計(DDD)の実践Part2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
JPAのキャッシュを使ったアプリケーション高速化手法
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
これからSpringを使う開発者が知っておくべきこと
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
MediaPipeを使ったARアプリ開発事例 ~カメラをかざして家䛾中で売れるも䛾を探そう~
ドメイン駆動設計のためのオブジェクト指向入門
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
最新 ASP.NET Web 開発オーバービュー
Unreal perception
【Unity道場】使って覚えるTileMap
一般的なチートの手法と対策について
NDC12 인디게임 개발 시 주의할 점
Ad

Viewers also liked (8)

PDF
Beginning the UML - in Banking Domain (UML 교육자료)
PDF
Ksug2015 jpa4 객체지향쿼리
PPTX
SpringMVC 전체 흐름 알아보기
PDF
Ksug2015 jpa5 스프링과jpa
PDF
Ksug2015 - JPA1, JPA 소개
PDF
SpringDataJPA - 스프링 캠프
PDF
Ksug2015 - JPA2, JPA 기초와매핑
PPSX
spring data jpa 간단한 튜토리얼
Beginning the UML - in Banking Domain (UML 교육자료)
Ksug2015 jpa4 객체지향쿼리
SpringMVC 전체 흐름 알아보기
Ksug2015 jpa5 스프링과jpa
Ksug2015 - JPA1, JPA 소개
SpringDataJPA - 스프링 캠프
Ksug2015 - JPA2, JPA 기초와매핑
spring data jpa 간단한 튜토리얼
Ad

Similar to UML 적절하게 사용하기 (20)

PPT
I.Uml개요
PPT
Uml 세미나
PPTX
StarUML NS Guide - Uml overview
PPTX
UML distilled 1장 스터디 발표 자료
ODP
전달교육(분석설계모델링)
PPTX
UML Diagram about Class / Activity / Object (Korean Language)
PDF
151015 lecture-uml-v03
PDF
소프트웨어설계론
PPTX
분석과 설계
PPTX
OOP - Object Oriendted Programing
PPTX
110903_아꿈사_DDD_03
PDF
클린 코드 part2
PDF
객체지향 개념 (쫌 아는체 하기)
PDF
소프트웨어 아키텍처 문서화
PPTX
깨끗한 코드 (클린 코드, Clean Code)
PPT
[강의] OOP 개요
PDF
UML로 정리한 Design Pattern 2024-07-06 Korean
PDF
Uml intro 1
PDF
Domain-Driven-Design 정복기 1탄
PDF
Domain-Driven-Design 정복기 1탄
I.Uml개요
Uml 세미나
StarUML NS Guide - Uml overview
UML distilled 1장 스터디 발표 자료
전달교육(분석설계모델링)
UML Diagram about Class / Activity / Object (Korean Language)
151015 lecture-uml-v03
소프트웨어설계론
분석과 설계
OOP - Object Oriendted Programing
110903_아꿈사_DDD_03
클린 코드 part2
객체지향 개념 (쫌 아는체 하기)
소프트웨어 아키텍처 문서화
깨끗한 코드 (클린 코드, Clean Code)
[강의] OOP 개요
UML로 정리한 Design Pattern 2024-07-06 Korean
Uml intro 1
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄

More from 종빈 오 (20)

PDF
트위터 봇 개발 후기
PDF
적당한 스터디 발표자료 만들기 2.0
PDF
페리 수열(Farey sequence)
PDF
내가 본 미드 이야기
PDF
비트 경제와 공짜
PDF
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
PDF
[Windows via c/c++] 4장 프로세스
PDF
Intrusive data structure 소개
PDF
2011 아꿈사 오전반 포스트모템
PDF
[프로젝트가 서쪽으로 간 까닭은] chap 17, 18, 26, 33, 81
PDF
[GEG1] 3.volumetric representation of virtual environments
PDF
넘쳐나는 정보 소화 노하우
PDF
[Domain driven design] 17장 전략의 종합
PDF
LevelDB 간단한 소개
PDF
[GEG1] 2.the game asset pipeline
PDF
[TAOCP] 2.5 동적인 저장소 할당
PDF
[GEG1] 24. key value dictionary
PDF
[TAOCP] 2.2.3 연결된 할당 - 위상정렬
PDF
[TAOCP] 1.3.1 MIX 설명
PDF
[GEG1] 10.camera-centric engine design for multithreaded rendering
트위터 봇 개발 후기
적당한 스터디 발표자료 만들기 2.0
페리 수열(Farey sequence)
내가 본 미드 이야기
비트 경제와 공짜
[NDC12] 게임 물리 엔진의 내부 동작 원리 이해
[Windows via c/c++] 4장 프로세스
Intrusive data structure 소개
2011 아꿈사 오전반 포스트모템
[프로젝트가 서쪽으로 간 까닭은] chap 17, 18, 26, 33, 81
[GEG1] 3.volumetric representation of virtual environments
넘쳐나는 정보 소화 노하우
[Domain driven design] 17장 전략의 종합
LevelDB 간단한 소개
[GEG1] 2.the game asset pipeline
[TAOCP] 2.5 동적인 저장소 할당
[GEG1] 24. key value dictionary
[TAOCP] 2.2.3 연결된 할당 - 위상정렬
[TAOCP] 1.3.1 MIX 설명
[GEG1] 10.camera-centric engine design for multithreaded rendering

UML 적절하게 사용하기