1. 객체지향 모델링 

객체지향 모델링의 시작 

실세계를 객체지향으로 모델링 

 실세계의 개념구조를 그대로 소프트웨어 구조로 바꾸고 싶다는 요구에 부응 

 객체지향 모델링 다이어그램은 실세계를 모델링할 수 있도록 개발되었음 

 

객체와 클래스, 정적 구조도 

객체지향의 기초개념 

객체와 클래스 

 책 

- 소프트웨어 공학 

 각 개념은 우리가 속한 세상에 대한 이해 혹은 중요한 사상 

 개념이 적용된 사물을 객체라 함 

 객체는 실체일 수도 있고, 추상적인 것일 수도 있음 


객체는 클래스를 구체화한 것 -> Instantiation (인스턴스 생성) 


클래스 

정의 

개념을 분해하여 정리해놓은 것 


클래스의 속성

 그 클래스의 객체가 가지는 성질 

 클래스의 조작(연산), 그 객체의 행동(Behavior) 및 다른 객체에 대하여 제공하는 서비스 





객체 

객체의 특성 

그 클래스에 정의된 속성(Attribute)과 조작(Operation)을 가짐 

상태(State)와 생명주기(Life-cycle)을 가짐 

UML에서는 상태도를 사용하여 객체의 상태와 생명주기를 표현 


연관 클래스 

필요성 

객체는 상태를 가지게 되는데, 보통의 링크는 상태를 가지지 않음 

연관을 클래스로서 정의할 필요가 있는 것은 그 연관의 링크 상태를 갖는 경우 

두 가지 클래스의 연관이 상태를 표시하는 동사로 표시되는 경우에 사용 


UML(Unified Modeling Language) 

모델링 과정과 모델링 언어 제안 

모델링 과정(Modeling Process) - 객체지향으로 분석하고 설계하는 프로세스 

모델링 언어(Modeling Language) - 설계를 표현할 때 사용하는 그래픽 심볼 


UML 탄생 

1997년 OMG 

OMG(http://www.omg.org)에서 UML 발표 


광범위 응용 분야에서 사용 

데이터베이스 설계 표현 

실시간 시스템 등 


시스템 개발 모형 

기능적 모형(Functional Model)  

사용자 측면에서 본 시스템 기능을 나타내며 UML에서는 사용사례 다이어그램으로 표현 

객체 모형(Object Model) 

객체, 속성, 연관 관계, 오퍼레이션에 의하여 시스템의 구조를 나타내며 UML에서는 클래스 다이어그램으로 표현 

동적 모형(Dynamic Model) 

 시스템의 내부 동작을 나타냄 

 UML에서는 순서 다이어그램, 상태 다이어그램, 액티비티 다이어그램으로 표현 

 순서 다이어그램은 객체들 사이의 메시지 교환을 나타내는 반면, 상태 다이어그램은 하나의 객체가 가질 

수 있는 상태와 상태의 변화에 의하여 동작을 나타냄  


UML의 다이어그램 

사용사례 

클래스 

순서 

상태 

액티비티 다이어그램 


클래스, 속성, 오퍼레이션 

표현 

클래스 심볼 

세 부분의 박스 형태 

위 

중간 

아래 

클래스 이름 

클래스 속성 

오퍼레이션 


객체 

객체는 클래스와 같은 형태로 나타내며 객체의 이름을 먼저 쓰고 어떤 타입의 클래스에 속하는지 표시 


외부 투명성(Visibility)을 위한 심볼 


 public으로 선언 

 외부 접근 가능 


 private으로 선언 

 외부 사용 불가능 


#  

 상속된 클래스에서만 제한적으로 사용 가능 


인스턴스가 없는 추상 클래스나 구현이 없는 오퍼레이션 

이름과 함께 {abstract} 표시 



사용사례 다이어그램 

정의 

“순서 있는 액션의 집합을 기술한 것으로 액터에게 혜택이 있는 결과를 제공하여야 함” (UML User Guide) 


목적 

시스템의 외부 기능을 나타냄 

사용자의 요구를 추출하고 분석 


구성요소 

사용사례(Use Case) 

액터에게 보이는 시스템의 기능, 외부동작 

액터(Actor) 

시스템과 상호작용하는 외부 엔티티(사람이나 다른 시스템, 하드웨어)로서 이름과 설명 필요 

통신 

액터와 사용사례가 정보를 교환 


의미 

시스템의 범위를 정함 

사용사례 기술 

스크립트 형태, 자연어 사용 


클래스 다이어그램 

정의 

 시스템을 구성하는 클래스의 구조를 나타냄 

 객체들의 공통 구조와 동작들을 추상화한 것  


목적 

시스템을 구현할 때 어떤 클래스가 필요한지 클래스 사이의 관계를 나타냄 


구성요소 

객체 

클래스 

속성 

오퍼레이션 

연관관계  


의미 

클래스 다이어그램은 객체지향 프로그램의 골격(클래스 정의)을 나타냄 


클래스 다이어그램의 표현 

연관관계(Association) 

 클래스 사이의 관계 

 링크로 나타냄 

- 선으로 표현 


역할(Role) 

연관관계 표시 선분 끝에 역할을 표시 

- has, exist, rent 


다중도(Multiplicity) 

 숫자로 표현 

 연관된 링크의 개수 

 * 는 다수(Many)를 의미 


전체부분 관계(Aggregation) 

 전체 개념의 클래스 

- Directory 

 부분 개념의 클래스 

- File 

 일대 다인 경우가 많음, 다이아몬드로 표시 


일반화 

 일반화된 개념의 클래스와 더 구체적인 개념의 클래스 사이의 관계 

 공통속성과 오퍼레이션을 사용하기 위하여 상속 개념으로 클래스를 구성하는 것 


정의 

시스템 동작을 정형화하고 객체들의 메시지 교환을 시각화  


목적 

참여객체(Participating Object)를 추가로 찾아내기 위하여 객체 사이에 일어나는 상호작용을 파악 



구성요소 

액터 

왼쪽 

객체 

메시지 

이름있는 화살표 

수직선 

시간의 흐름 


의미 

클래스가 가져야 할 오퍼레이션을 파악하는 데 사용됨 

객체들 사이의 통신 패턴 

사용사례의 이벤트 흐름을 나타냄 


상태 다이어그램 

정의 

 객체가 갖는 여러 상태와 상태 사이의 전환을 표현 

 상태란 객체가 만족하는 조건  


목적 

단일 객체의 동작을 나타냄 

객체의 상태 변화를 점검하며 빠진 오퍼레이션 점검 

솔루션 도메인 객체를 표현 


구성요소 

원 

객체의 상태 

화살표 

전환(Transition) 

의미 

외부사건의 결과로 일어나는 단일 객체의 상태 변화에 초점 

객체의 동작을 구체화 


액티비티 다이어그램 

액티비티 

 시스템에서 수행되는 작업 

- 오퍼레이션의 집합 

 클래스의 메소드 


액티비티 다이어그램 

시스템을 액티비티로 표현한 것 

액션 상태인 상태 다이어그램 

액티비티와 천이 사이의 제어흐름 


구성요소 

원 

액티비티 

화살표 

트랜지션 

- 다른 액티비티로 전환 

동기 막대 

제어흐름 동기화 

 다이아몬드 

선택분기 

시작, 종료


외향천이 

액션상태 

액션상태의 이름은 동작이 일어남을 의미 






'소프트웨어공학 > 수업' 카테고리의 다른 글

18. UI 설계(9-2)  (3) 2017.06.15
17. UI 설계(9-1)  (0) 2017.06.15
15. 객체지향 분석 및 설계(8-1)  (0) 2017.06.06
12. 설계(6-2)  (0) 2017.05.30
6. 프로젝트 계획 수립과 관리(3-2)  (0) 2017.05.22
Posted by 멜데스