객체지향분석 및 설계 수업 내용 정리 -4

yooom·2023년 4월 24일
0

OOAD-13

state machine 다이어그램, package 다이어그램, component 다이어그램, deployment 다이어그램

State machine Diagrm

  • 객체의 상태를 모델링

  • 유한한 상태 머신 형식을 사용하여 이벤트 동작을 모델링하는 데 사용하는 개념 집합을 정의(먼말이야)

  • 다음을 포함하여 소프트웨어, 하드웨어 시스템의 특별한 틈새에 사용됨
    - 실시간/미션 크리티컬 시스템. 예) 심장 모니터링 소프트웨어

    • 동작이 상태 측면에서 정의되는 전용 장치. 예) 스마트폰, ATM
  • 이벤트와 상태 확인

  • 상태에 따른 행위(액션, 액티비티) 확인

state (상태)

  • 객체 생명 주기 동안에 가질 수 있는 특정 조건(상황)이며, 해당 기간 동안 객체는 조건이 만족된 상태에서 활동을 수행하고 다른 사건도 기다림
  • 상태의 구성
    - 명칭(name) : 특정 상태와 다른 상태를 구분 짓는 문자열로 구성된 이름
    • 진입/탈출 동작(entry/exit action) : 상태에 진입/탈출 때 수행되는 동작
    • 내부 전이(internal Transition) : 상태 변경 없는 상태 내의 전이
  • 초기 상태와 종료 상태

transition (전이)

특정 객체가 현 상태에서 어떤 동작을 수행한 후 지정된 조건이 만족되어 다음 상태로 들어가는 두 상태간의 관계

상태 내부 표현

상태 내부 묘사가 필요한 경우

  • entry/exit action, internal transition, activity, deferred event
  • 진입 동작, 내부 전이, 활동, 지연 사건

composite state with two states

하위(substate) 상태

하위 상태를 포함하는 복합(composite) 상태를 표현할 수 있다.

이력(history) 상태

객체가 복합 상태를 떠날 때 활동한 마지막 하위 상태를 기억하고 있는 객체 모델을 만들 필요가 있을 때 사용함

동시(concurrent) 하위 상태

객체가 동일 상태에서 동시적으로 실행되는 하위 상태가 두 개 이상 나타낼 때 사용

+)
concurrent와 parallel의 차이?
병렬적 : 같은 오퍼레이션을 다른 데이터에서 연산 처리
동시(다발)적 : 완전히 다른 오퍼레이션을 다른 환경에서 연산할 수 있도록 함

Package Diagram

그룹핑 구성체

  • 상위 레벨 단위로 그룹핑
  • 관련된 클래스들을 구조화
  • 패키지는 다른 패키지 포함 가능

패키지 다이어그램의 용도

  • 대형 시스템의 주요 요소들 간의 의존성 관계를 표현
  • 어플리케이션의 의존성 제어

이름 영역

모든 클래스는 포함된 패키지 내에서 유일한 이름 보유
완전한 경로명

Component Diagram

시스템의 부품을 관리하고 재사용

  • 컴포넌트는 캡슐화되고, 재사용가능하고, 교체가능한 S/W의 모듈화

Interface of Component Diagram

인터페이스 표기법 : Ball and Socket

  • 구성 요소의 제공된 인터페이스는 구성요소를 실현하는 인터페이스다.
  • 구성 요소의 제공된 인터페이스는 구성요소가 작동하는 데 필요한 인터페이스다.

인터페이스를 표기하는 3가지 방법

  • ball and socket symbols
  • stereotype notation
  • text listings

인터페이스 표기법 : 스테레오타입

인터페이스의 오퍼레이션을 나타낼 때 사용

컴포넌트 다이어그램 예시

컴포넌트 구현 클래스

• 종속 관계를 통해 구현 클래스를 외부에 표시

Black-Box and White-Box Component Views

블랙 박스 뷰

  • 구성 요소의 내부 구현에 대해 아무것도 지정하지 않는다.

화이트 박스 뷰

  • 구성 요소가 기능을 수행하는 데 도움이 되는 클래스, 인터페이스, 기타 구성 요소를 보여줌

Deployment Diagram

  • 시스템의 물리적인 배치 레이아웃 표현
  • 어떤 소프트웨어 부분이 어떤 하드웨어 상에서 실행되는가를 표현
  • 배포 패키지는 시스템의 실행 아키텍처와 시스템 요소에 대한 소프트웨어 아티팩트 할당을 정의하는 데 사용할 수 있는 구성을 지정함
  • 통신 경로 : 어떻게 노드 간에 통신이 이루어지는 가를 표현. 사용되는 프로토콜 정보를 라벨로 표시

deployment diagram의 예

왼쪽은 유형 수준 사양이고 오른쪽은 인스턴스 수준 사양입니다.

노드와 커넥션

노드의 구성

  • 노드를 패키지로 그룹화하여 구성
  • 노드간의 의존, 일반화, 연관 관계로 노드들의 관계 표현

연결

  • 노드간의 관계를 표현하며 연관 관계가 일반적임
  • 연관 관계는 이더넷, 시리얼 라인, 쉐어드 버스 등과 같은 노드간의 물리적 연결을 표현

노드

소프트웨어를 호스트할 수 있는 것

디바이스 노드와 실행 환경 노드로 구분

  • 디바이스 노드 : 하드웨어, 컴퓨터 또는 시스템에 연결된 하드웨어의 간단한 부분
  • 실행 환경 노드 : 다른 소프트웨어를 호스트하거나 포함하는 소프트웨어, 운영체제 또는 컨테이너 프로세스

deployment되는 산출물 포함

컴포넌트와 배치

배치 다이어그램은 시스템과 관련된 하트웨어, 소프트웨어 제품 등 전반적인 요소들에 대한 내용을 표현

0개의 댓글