SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
UML 개론
UML
• 요구분석, 시스템설계, 시스템 구현 등의 시스템 개발 과
정에서, 개발자간의 의사소통을 원활하게 이루어지게 하
기 위하여 표준화한 모델링 언어이다.
• UML is a universal visual modeling language.
• UML models the world as systems of interacting objects.
An object is a cohensive cluster of data and function.
• 세상은 object들이 상호간 interaction을 하면서 이루어지
는 시스템들의 묶음이다.
Diagrams in UML
Diagrams
static model
(system structure)
dynamic model
(system behavior)
class diagram
component diagram
deployment diagram
object diagram
use case diagram
sequence diagram
collaboration diagram
state-chart diagram
activity diagram
Use Case Modelling
Part 1. Basics
요구 사항 분석
• 모든 시스템은 요구 사항이 있다. 어떻게 하
면 이러한 요구 사항들은 사람들이 쉽게 이
해하고 빠진 요구 사항들을 찾아낼 수 있을
까?
• Functional Requirement
– Use Case Diagram을 그리자.
– Use Case Specification을 작성하자.
Use Case Modelling Step
• Find the system boundary
• Find the actors
• Find the use cases:
– specify the use case
– create scenarios
• actors
• use cases
• relationships
• system boundary
System boundary
• 시스템 구축을 생각하는 시점에 근본적인 요소가 바로 시
스템 범위 결정.
• 시스템 범위 따라서 요구사항이 달라진다.
• 시스템 범위란?
– inside system boundary
• 어떠한 부분들이 시스템 내부에 포함되어 구성이 되어질까?
– outside system boundary
• 어떤 것들을 시스템 외부로 칭해야 할까?
예. 변환서비스는 Docs 시스템 외부? 내부?
• use case diagram에서는 상자에 시스템 이름을 기록
Actor
• Actor는
– 시스템 외부에 위치.
– 시스템과 직접적인 교류가 있는 역할
• 동일한 사람이 다른 role을 취하는 경우 다른 actor
– 예. 일반 사용자 / 관리자.
• 역할이기 때문에 타 시스템도 actor로 취급
– 예. NOS Publisher (post to docs 경우)
• Who or what uses or interacts with the system?
<<actor>>
NOS Publisher
Admin Time
Use case
• use case는
– 앞서 정의한 actor가 시스템이 해주기를 바라는 것들.
– actor에 의해서 시작
– actor 관점에서 상세 내용이 기술된다.
• How does each actor use the system?
• What does do for each actor?
SuspendUser
Use Case Diagram은
시스템의 기능적 요구
사항을 분석하며, 시스템
역할을 쉽게 이해하도록
도움이 되도록 최대한
간단히 그려져야 한다.
Use Case Diagram만
그리다가 모델링 포기하는
사람이 많다.
Use Case Diagram은
점차적으로 반복적으로
갱신되면서 완성되가는
것이다.
Use Case Diagram은
최대한 단순화를 시키도록
그려간다.
Detail a use case
Use Case modelling을 diagram 그리
는 순간에서 마무리 하는 경우가 많다.
이로 인해 많은 문제 발생했었다. 이
로 인해 Use Case Diagram 반대론자
들도 나타났었다.
이는 상세화 과정이 없었기 때문이다.
예외 상황들에 대한 처리 (1)
• If / Else, For, While 기법 적용
• alternative flow: post condition에 기술
– 어느 시점에나 발생될 수 있는 상황에 대한 기술
– 예. 사용자가 사이트를 도중에 나가버린다.
예외 상황들에 대한 처리 (2)
• scenario는
– 정상적인 use case 동작(primary scenario) 경우 외 경
우에 대해서 별도 use case spec.(secondary
scenarios)로 정리
– a use case = primary scenario + secondary scenarios
– scenario 사용 경우에는 branch가 없다.
• secondary scenario들은 별도 use case spec. 으
로 정리. 표기는 타이틀에 대상 Use case 기록 후
추가로 secondary scenario 명시
Use Case Modelling
Part 2. Advanced
advanced topics
• Actor generalization
– 일반화 할 수 있는 역할과 세분화 가능 역할
• Use case generalization
– 일반화 가능한 use case에 이에 대해 세분화 가능한 use case 관계
• <include>>
– 특정 use case가 다른 use case를 포함하는 경우
• <<extend>>
– 기본 use case가 있고 특정 부분에 대해서 이를 확장하는 use case가 있는 경우
• 추가로 사용되는 위 개념들은 최대한 use case model을 단순화 하기
위해서만 사용되어야 합니다.
Actor generalization - target case
• 유사 use case가 중복되는 경우에 이에 대해서
common한 actor(role)로 처리하는 경우
Actor generalization - solution
Use case generalization
• the child use case
– 부모 use case 특정 속성들을 상속
– 새로운 특징들 또는 경우들 포함
– 기존 기능들을 경우에 따라서 구체화 (template)
• use case spec. 표기법
– normal text: 부모 use case 그대로 상속 부분
– Italic text: 특정 부분에 대해서 child 만의 특성 살림
– Bold text: child에서 추가된 부분
Use case generalization - example
그대로 상속
특수화
추가
<<include>>
• php의 include와 유사.
• 동일 use case를 중복 사용하는 경우
• behavior fragment
actor에 의해
실행도 가능
use case spec. of <<include>>
<<extend>>
• <<extend>>는 이미 존재하는 use case에 대해서 새로운 동작을 추가
하는 방법이다.
• <<extend>>되기 전에도 정상적인 use case. <<include>>가 없이는
정상적인 use case가 아닌 것과 차이가 있음.
• 예. 도서관에서 사서가 책을 반납 받는 use case.
• 반납 시점에 연체료가 있는 사용자에 대한 추가적인 조치가 필요한
use case도 있다.
use case spec. for <<extend>>

Contenu connexe

Similaire à Uml intro 0

함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍CWMin
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4Usys4u
 
Lost practice : Requirement Analysis
Lost practice : Requirement AnalysisLost practice : Requirement Analysis
Lost practice : Requirement Analysisc K
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세규동 최규동
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론JeongDong Kim
 
『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기복연 이
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요Nohyun Kee
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리KwangSeob Jeong
 
SoftwareEngeneering3rd
SoftwareEngeneering3rdSoftwareEngeneering3rd
SoftwareEngeneering3rd영진 박
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1정환 임
 
Holub on-patterns-2-1
Holub on-patterns-2-1Holub on-patterns-2-1
Holub on-patterns-2-1정환 임
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)Bong-Ho Lee
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13Shin heemin
 

Similaire à Uml intro 0 (20)

Uml 세미나
Uml 세미나Uml 세미나
Uml 세미나
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
Implementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4UImplementing_AOP_in_Spring_SYS4U
Implementing_AOP_in_Spring_SYS4U
 
Lost practice : Requirement Analysis
Lost practice : Requirement AnalysisLost practice : Requirement Analysis
Lost practice : Requirement Analysis
 
테스팅을위한선행조건 명세
테스팅을위한선행조건 명세테스팅을위한선행조건 명세
테스팅을위한선행조건 명세
 
소프트웨어설계론
소프트웨어설계론소프트웨어설계론
소프트웨어설계론
 
『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기『클라우드 시스템을 관리하는 기술』 - 맛보기
『클라우드 시스템을 관리하는 기술』 - 맛보기
 
[강의] OOP 개요
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리JIRA 업무 생산성 향상 및 프로젝트 관리
JIRA 업무 생산성 향상 및 프로젝트 관리
 
SoftwareEngeneering3rd
SoftwareEngeneering3rdSoftwareEngeneering3rd
SoftwareEngeneering3rd
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1HolubOnPatterns/chapter2_1
HolubOnPatterns/chapter2_1
 
Holub on-patterns-2-1
Holub on-patterns-2-1Holub on-patterns-2-1
Holub on-patterns-2-1
 
7 8 1
7 8 17 8 1
7 8 1
 
Design patterns
Design patternsDesign patterns
Design patterns
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13
 

Plus de 운용 최

Wot(daliworks) 20131113
Wot(daliworks) 20131113Wot(daliworks) 20131113
Wot(daliworks) 20131113운용 최
 
NIPA SW Insight Report '13.08
NIPA SW Insight Report '13.08NIPA SW Insight Report '13.08
NIPA SW Insight Report '13.08운용 최
 
Agile Spirit Base On The Book "Agile Samuari"
Agile Spirit Base On The Book "Agile Samuari"Agile Spirit Base On The Book "Agile Samuari"
Agile Spirit Base On The Book "Agile Samuari"운용 최
 
21 application and_network_status
21 application and_network_status21 application and_network_status
21 application and_network_status운용 최
 
20 handler and_async_task
20 handler and_async_task20 handler and_async_task
20 handler and_async_task운용 최
 
18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상운용 최
 
19 나만의 view 만들기
19 나만의 view 만들기19 나만의 view 만들기
19 나만의 view 만들기운용 최
 
17 adapter view & db
17 adapter view & db17 adapter view & db
17 adapter view & db운용 최
 
16 데이터 저장과 사용
16 데이터 저장과 사용16 데이터 저장과 사용
16 데이터 저장과 사용운용 최
 
15 content provider
15 content provider15 content provider
15 content provider운용 최
 
14 broad castreceiver
14 broad castreceiver14 broad castreceiver
14 broad castreceiver운용 최
 
13 service 좀더
13 service 좀더13 service 좀더
13 service 좀더운용 최
 
11 tablet 대응 가이드
11 tablet 대응 가이드11 tablet 대응 가이드
11 tablet 대응 가이드운용 최
 
10 view orientation_change
10 view orientation_change10 view orientation_change
10 view orientation_change운용 최
 
09 android keyboard & layout
09 android keyboard & layout09 android keyboard & layout
09 android keyboard & layout운용 최
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응운용 최
 
07 다양한 device_대응_방법
07 다양한 device_대응_방법07 다양한 device_대응_방법
07 다양한 device_대응_방법운용 최
 
06 activity stack and back, flag
06 activity stack and back, flag06 activity stack and back, flag
06 activity stack and back, flag운용 최
 

Plus de 운용 최 (20)

Wot(daliworks) 20131113
Wot(daliworks) 20131113Wot(daliworks) 20131113
Wot(daliworks) 20131113
 
NIPA SW Insight Report '13.08
NIPA SW Insight Report '13.08NIPA SW Insight Report '13.08
NIPA SW Insight Report '13.08
 
Agile Spirit Base On The Book "Agile Samuari"
Agile Spirit Base On The Book "Agile Samuari"Agile Spirit Base On The Book "Agile Samuari"
Agile Spirit Base On The Book "Agile Samuari"
 
21 application and_network_status
21 application and_network_status21 application and_network_status
21 application and_network_status
 
20 handler and_async_task
20 handler and_async_task20 handler and_async_task
20 handler and_async_task
 
18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상18 안드로이드 리스트뷰_속도향상
18 안드로이드 리스트뷰_속도향상
 
19 나만의 view 만들기
19 나만의 view 만들기19 나만의 view 만들기
19 나만의 view 만들기
 
17 adapter view & db
17 adapter view & db17 adapter view & db
17 adapter view & db
 
16 데이터 저장과 사용
16 데이터 저장과 사용16 데이터 저장과 사용
16 데이터 저장과 사용
 
15 content provider
15 content provider15 content provider
15 content provider
 
14 broad castreceiver
14 broad castreceiver14 broad castreceiver
14 broad castreceiver
 
13 service 좀더
13 service 좀더13 service 좀더
13 service 좀더
 
12 service
12 service12 service
12 service
 
11 tablet 대응 가이드
11 tablet 대응 가이드11 tablet 대응 가이드
11 tablet 대응 가이드
 
10 view orientation_change
10 view orientation_change10 view orientation_change
10 view orientation_change
 
09 android keyboard & layout
09 android keyboard & layout09 android keyboard & layout
09 android keyboard & layout
 
08 fragment 태블릿 대응
08 fragment   태블릿 대응08 fragment   태블릿 대응
08 fragment 태블릿 대응
 
08 font size
08 font size08 font size
08 font size
 
07 다양한 device_대응_방법
07 다양한 device_대응_방법07 다양한 device_대응_방법
07 다양한 device_대응_방법
 
06 activity stack and back, flag
06 activity stack and back, flag06 activity stack and back, flag
06 activity stack and back, flag
 

Uml intro 0

  • 2. UML • 요구분석, 시스템설계, 시스템 구현 등의 시스템 개발 과 정에서, 개발자간의 의사소통을 원활하게 이루어지게 하 기 위하여 표준화한 모델링 언어이다. • UML is a universal visual modeling language. • UML models the world as systems of interacting objects. An object is a cohensive cluster of data and function. • 세상은 object들이 상호간 interaction을 하면서 이루어지 는 시스템들의 묶음이다.
  • 3.
  • 4. Diagrams in UML Diagrams static model (system structure) dynamic model (system behavior) class diagram component diagram deployment diagram object diagram use case diagram sequence diagram collaboration diagram state-chart diagram activity diagram
  • 6. 요구 사항 분석 • 모든 시스템은 요구 사항이 있다. 어떻게 하 면 이러한 요구 사항들은 사람들이 쉽게 이 해하고 빠진 요구 사항들을 찾아낼 수 있을 까? • Functional Requirement – Use Case Diagram을 그리자. – Use Case Specification을 작성하자.
  • 7. Use Case Modelling Step • Find the system boundary • Find the actors • Find the use cases: – specify the use case – create scenarios • actors • use cases • relationships • system boundary
  • 8. System boundary • 시스템 구축을 생각하는 시점에 근본적인 요소가 바로 시 스템 범위 결정. • 시스템 범위 따라서 요구사항이 달라진다. • 시스템 범위란? – inside system boundary • 어떠한 부분들이 시스템 내부에 포함되어 구성이 되어질까? – outside system boundary • 어떤 것들을 시스템 외부로 칭해야 할까? 예. 변환서비스는 Docs 시스템 외부? 내부? • use case diagram에서는 상자에 시스템 이름을 기록
  • 9. Actor • Actor는 – 시스템 외부에 위치. – 시스템과 직접적인 교류가 있는 역할 • 동일한 사람이 다른 role을 취하는 경우 다른 actor – 예. 일반 사용자 / 관리자. • 역할이기 때문에 타 시스템도 actor로 취급 – 예. NOS Publisher (post to docs 경우) • Who or what uses or interacts with the system? <<actor>> NOS Publisher Admin Time
  • 10. Use case • use case는 – 앞서 정의한 actor가 시스템이 해주기를 바라는 것들. – actor에 의해서 시작 – actor 관점에서 상세 내용이 기술된다. • How does each actor use the system? • What does do for each actor? SuspendUser
  • 11. Use Case Diagram은 시스템의 기능적 요구 사항을 분석하며, 시스템 역할을 쉽게 이해하도록 도움이 되도록 최대한 간단히 그려져야 한다. Use Case Diagram만 그리다가 모델링 포기하는 사람이 많다. Use Case Diagram은 점차적으로 반복적으로 갱신되면서 완성되가는 것이다. Use Case Diagram은 최대한 단순화를 시키도록 그려간다.
  • 12. Detail a use case Use Case modelling을 diagram 그리 는 순간에서 마무리 하는 경우가 많다. 이로 인해 많은 문제 발생했었다. 이 로 인해 Use Case Diagram 반대론자 들도 나타났었다. 이는 상세화 과정이 없었기 때문이다.
  • 13.
  • 14. 예외 상황들에 대한 처리 (1) • If / Else, For, While 기법 적용 • alternative flow: post condition에 기술 – 어느 시점에나 발생될 수 있는 상황에 대한 기술 – 예. 사용자가 사이트를 도중에 나가버린다.
  • 15. 예외 상황들에 대한 처리 (2) • scenario는 – 정상적인 use case 동작(primary scenario) 경우 외 경 우에 대해서 별도 use case spec.(secondary scenarios)로 정리 – a use case = primary scenario + secondary scenarios – scenario 사용 경우에는 branch가 없다. • secondary scenario들은 별도 use case spec. 으 로 정리. 표기는 타이틀에 대상 Use case 기록 후 추가로 secondary scenario 명시
  • 16.
  • 17. Use Case Modelling Part 2. Advanced
  • 18. advanced topics • Actor generalization – 일반화 할 수 있는 역할과 세분화 가능 역할 • Use case generalization – 일반화 가능한 use case에 이에 대해 세분화 가능한 use case 관계 • <include>> – 특정 use case가 다른 use case를 포함하는 경우 • <<extend>> – 기본 use case가 있고 특정 부분에 대해서 이를 확장하는 use case가 있는 경우 • 추가로 사용되는 위 개념들은 최대한 use case model을 단순화 하기 위해서만 사용되어야 합니다.
  • 19. Actor generalization - target case • 유사 use case가 중복되는 경우에 이에 대해서 common한 actor(role)로 처리하는 경우
  • 21. Use case generalization • the child use case – 부모 use case 특정 속성들을 상속 – 새로운 특징들 또는 경우들 포함 – 기존 기능들을 경우에 따라서 구체화 (template) • use case spec. 표기법 – normal text: 부모 use case 그대로 상속 부분 – Italic text: 특정 부분에 대해서 child 만의 특성 살림 – Bold text: child에서 추가된 부분
  • 22. Use case generalization - example 그대로 상속 특수화 추가
  • 23. <<include>> • php의 include와 유사. • 동일 use case를 중복 사용하는 경우 • behavior fragment actor에 의해 실행도 가능
  • 24. use case spec. of <<include>>
  • 25. <<extend>> • <<extend>>는 이미 존재하는 use case에 대해서 새로운 동작을 추가 하는 방법이다. • <<extend>>되기 전에도 정상적인 use case. <<include>>가 없이는 정상적인 use case가 아닌 것과 차이가 있음. • 예. 도서관에서 사서가 책을 반납 받는 use case. • 반납 시점에 연체료가 있는 사용자에 대한 추가적인 조치가 필요한 use case도 있다.
  • 26. use case spec. for <<extend>>