Transcript UML(개요)

내부세미나를 위한
UML & ROSE
UML OVERVIEW
PRESENTED BY DPKIM
2004. 2.
객체지향 패러다임에 대한 소개
객체지향 패러다임에 대한 소개
UML & ROSE
객체지향 패러다임
UML & ROSE
 관심 분야
 구조적 프로그래밍 : 데이터 중심
 객체 지향 프로그래밍 : 데이터 및 행위(비즈니스 룰, 행위) 중심
 객체지향 기본 개념
 캡슐화/Encapsulation
• 정보의 조각들과 그 정보에 대해 작용하는 특정 행위들을 조합하고 이들을 하나
의 객체로 패키지화
• 애플리케이션을 기능적으로 연결된 작은 부분으로 분할하는 것
• 정보은폐
 상속/Inheritance
• 기존 객체로부터 새로운 객체를 만들 수 있게 해주는 메커니즘
 다형성/Polymorphism
• 서로 다른 형상이나 단계 혹은 형식의 발생
• 특정 기능이 여러가지 형태나 구현을 갖는 것을 의미
비쥬얼 모델링
 모델





시스템에 대한 청사진
시스템을 구축하기 전에 계획을 미리 수립할 수 있다.
설계는 견고한지
요구사항은 모두 반영되었는지
추가 요구사항을 모두 수용할 수 있도록 계획되었는지
 모델링
 사용자들의 요구사항과 개발자들이 사용할 요구사항의 매핑
 사용할 요구사항과 개발자 코드의 대응
 그래픽 표기/Graphicla Notation
 Booch 표기법
 OMT 표기법
 UML 표기법
UML & ROSE
Booch 표기법
UML & ROSE
 창시자인 Rational Software사의 Grady Booch의 이름을 따서 붙여짐
Deposit Funds
Transfer Funds
Customer
Withdraw Money
View Balance
OMT 표기법
UML & ROSE
 객체관리 기법/Object Management Technology, OMT
Deposit Funds
Transfer Funds
Customer
Withdraw Money
View Balance
UML 표기법
UML & ROSE
 Grady Booch와 James Rumbaugh, Ivar Jacobson, Rebecca Wirfs-Brock,
Peter Yourdon 등 여러 사람들이 협력하여 만듦
Deposit Funds
Transfer Funds
Customer
Withdraw Money
View Balance
UML Diagrams









비즈니스 유스케이스 다이어그램 / Business Use Case Diagram
유스케이스 다이어그램 / Use Case Diagram
액티비티 다이어그램 / Activity Diagram
시퀀스 다이어그램 / Sequence Diagram
협력 다이어그램 / Collaboration Diagram
클래스 다이어그램 / Class Diagram
상태차트 다이어그램 / State Chart Diagram
컴포넌트 다이어그램 / Component Diagram
디플로이먼트 다이어그램 / Deployment Diagram
UML & ROSE
비즈니스 유스케이스 다이어그램
 조직으로부터 제공 받은 기능을 전체적
으로 조망할 때 사용
 “비즈니스가 하는 일이 무엇인가?”와
“왜 시스템을 구축하는가?”에 대한 대답
 조직적인 시각에서 그려진다.
 수동적인 처리절차와 자동적인 처리절차
를 구분하지 않는다.
 업무적 유스케이스와 이를 수행하는 액
터 간의 상호작용
 업무적 유스케이스 : 업무가 수행하는 처
리절차
 비즈니스 액터 : 조직 외부에 있지만 조
직과 상호작용하는 사람 혹은 사물
 비즈니스 작업자 : 조직 내부 역할
UML & ROSE
Teller
Manage Accounts
Customer
Manage Credit Account
Credit Manager
Loan Money
Investment Manager
Invest Money
유스케이스 다이어그램




UML & ROSE
유스케이스와 액터 간의 상호작용(시스템의 요구사항)
유스케이스 : 시스템의 기능, 사용자 관점에서 본 시스템의 요구사항
액터 : 시스템으로부터 정보를 제공하거나 받는 사람 또는 시스템
자동화된 프로세스에 초점을 맞춘다.
Transfer Funds
Deposit Funds
Change PIN
Bank Officer
Customer
Make Payment
Withdraw Money
View Balance
Credit System
액티비티 다이어그램
 시스템 내에서 기능이 어떻게 흘러가는
지를 보여준다.
 비즈니스 모델링에서 비즈니스 워크플로
우를 보여주기 위해서 사용
 요구사항 수집시 유스케이스를 통한 이
벤트의 흐름을 보여주기 위해 사용
 워크플로우가 어디서 시작하고 종료하는
지를 정의
 워크플로우가 흘러가는 동안 어떤 액티
비티가 발생했는지, 발생한 순서는 어떻
게 되는지 정의

: 액티비티

: 영향받는 객체

: 흐름의 분기

(Transition) : 액티비티 진행
 수직적 분할구간 : 각 구간별 다른 역할
UML & ROSE
Customer Serv ice Representativ e
Credit Dept. Manager
Customer
Collect Customer
Information
Create New
Credit Account
Set Credit Limit
: Account
[Initialize]
do/ Check Customer Credit History
Review Credit
History
Reject Account
: Account
[Denied]
Approve
Account
: Account
[Approved]
Accept Credit
Terms
: Account
[Open]
Sign paperwork
시퀀스 다이어그램




유스케이스를 실행하는 기능의 흐름
분석가 : 처리의 흐름 파악
개발자 : 객체의 operation 파악
QAO : 자세한 처리 절차를 통해 테스트
항목을 결정
UML & ROSE
Joe : Customer
: Card Reader
: ATM Screen
Joe's Account :
Account
: Cash
Dispenser
1: Accept Card
2: Read Card No
3: Initialize Screen
4: Open Account
5: Prompt for PIN
6: Enter PIN(1234)
7: Verify PIN
8: Prompt for Transaction
9: Select Transaction (Withdraw)
10: Prompt for Amount
11: Enter Amount($20)
12: Withdraw Funds($20)
13: Verify Funds($20)
14: Deduct Funds($20)
15: Provide Cash($20)
16: Provide Receipt
17: Eject Card
협력 다이어그램
UML & ROSE
 시퀀스 다이어그램과 완전히 같은 정보를 표현
 시간에 대한 참조 없이 객체와 액터의 상호 작용을 표현
 QAO, System Designer : 객체 간에 처리 과정이 어떻게 분산되어 있는지 파악
6: Enter PIN( )
9: Select Transaction(Withdraw)
11: Enter Amount(20$)
5: Prompt for PIN
8: Prompt for Transaction
10: Prompt for Amount
Joe : Customer
ATM
Screen
7: Verify PIN
12: Withdraw Funds($20)
1: Accept Card( )
2: Read Card No.
3: Initialize Screen( )
4: Open Account( )
Card
Reader
Joe's
Account
Cash Dispenser : Cash
Dispenser
클래스 다이어그램







시스템 내에 있는 클래스 간의 상호작용을 표시
클래스는 정보와 정보에 작용하는 행위를 갖는다.
클래스의 구조 : 클래스 명, 속성(클래스와 관련된 정보의 조각), 오퍼레이션
클래스를 연결하는 선 : 각 클래스 간의 통신 관계
개발자 : 클래스를 개발하기 위해 이용
분석가 : 시스템의 상세한 내용을 살펴보기 위해 이용
시스템 설계자 : 시스템의 설계를 보기 위해 이용
UML & ROSE
상태차트 다이어그램





UML & ROSE
객체가 존재할 수 있는 다양한 상태를 모델링하기 위한 방법을 제공
상태차트는 좀 더 동적인 행위를 정보 제공
이벤트 : 한 상태에서 다른 상태로 이동하도록 만듦
액션 : 객체가 특정 상태에 있을 때 발생하는 프로세스들
복잡한 클래스들에 대해서 작성
Withdrawal[ Balance<0 ]
Overdrawn
Open
do/ Send notice to customer
Customer
Request
Closure
Closed
Deposit[ Balance<0 ]
Check Balance[ Balance<0 for >30days ]
컴포넌트 다이어그램




UML & ROSE
시스템 내의 소프트웨어 컴포넌트와 그들 간의 관계, 모델의 물리적인 모습
컴포넌트 종류 : 실행 컴포넌트, 코드 라이브러리
컴포넌트 간의 종속성 표시 – 컴파일 시 종속성과 런타임 시 종속성 파악
컴파일 순서 파악
ATM.exe
Card Reader
Cash Dispenser
ATM Screen
Card Reader
Cash Dispenser
ATM Screen
디플로이먼트 다이어그램
UML & ROSE
 네트워크의 물리적 배치형태, 다양한 컴포넌트들의 위치
 프로젝트 관리자와 사용자, 시스템 설계자, 배포 담당자들이 이용.
Banking
Databa...
<<LAN>>
Regional ATM
Server
Printer
<<Private Network>>
<<Private Network>>
125 First St.
ATM
459. Elm St.
ATM
비주얼 모델링과 소프트웨어 개발 프로세스
UML & ROSE
 소프트웨어 개발 프로세스
 폭포수 모델
• 분석, 설계, 개발, 테스트, 배포
 RUP(Rational Unified Process)
• 초기 분석 단계(Inception)
–
–
–
–
이런 시스템이 있다면 훨씬 더 좋아지지 않을까? -> 면밀한 조사
경영진은 소용시간, 비용, 개발 가능 여부를 확인하려고 한다.
비즈니스 유스케이스 모델 구축(액티비티 다이어그램 작성 가능)
반복 계획 – 유스케이스 별로 종속성을 고려하여 반복 계획
• 상세 분석 단계(Elaboration)
–
–
–
–
–
–
일부 계획안과 분석, 아키텍처 설계 포함
개념에 대한 코딩 검증, 테스트 항목의 결정, 설계 시의 의사 결정 등이 포함
프로젝트 아키텍처적인 기초 설정에 초점
유스케이스를 상세화
시퀀스 다이어그램, 협력 다이어그램, 상태 차트 다이어그램이 포함
소프트웨어 요구사항 기술서(SRS, Software Requirement Specification)에 수록
비주얼 모델링과 소프트웨어 개발 프로세스
UML & ROSE
• 구축 단계(Construction)
–
–
–
–
–
–
상세 분석 단계에서 얻은 아키텍처를 기초로 하여 시스템의 나머지 부분을 구축
아직 남아 있는 요구사항에 대한 결정, 소프트웨어 개발 및 테스트가 포함
초기 시점에 컴포넌트와 컴포넌트 다이어그램을 작성(종속성 파악)
코드 생성
개발 시 추가된 부분을 모델에 반영
컴포넌트 다이어그램, 디플로이먼트 다이어그램
• 전이 단계(Transition)
– 완성된 소프트웨어 제품이 사용자 그룹에게 양도되는 시점.
– 최종적으로 소프트웨어 제품을 완성하고, 마지막 테스트 수행, 사용자문서작업 완료
– 컴포넌트 다이어그램, 디플로이먼트 다이어그램, 각종 모델의 수정
UML & ROSE
Q/A