[소프트웨어설계] UML

thingzoo·2024년 1월 17일
0
post-thumbnail

UML(Uified Modeling Language)

SW시스템을 시각화 및 문서화하고, SW시스템의 구조와 동작을 명세하는 표준화된 모델링 언어

UML 특징

  • 가시화 언어, 명세화 언어, 구축 언어, 문서화 언어

UML 구성요소⭐️

(20.8)

  • 사물(Things): 구조, 행동, 그룹, 주해(사물)
  • 관계(Relationship)
  • 다이어그램(Diagram)
  • 스테레오타입(<< >>): 추가적인 확장요소 표현(20.6)

관계(Relationship)⭐️⭐️

일반화(Generalization)(-▷)

  • 한클래스가 다른클래스를 포함하는 상위개념일때의 관계
  • 객체지향에서는 상속관계라고함

실체화(Realization)(--▷)

  • 인터페이스를 구현받아 추상메서드를 오버라이딩하는 것
  • 한 객체가 다른객체에게 오퍼레이션을 수행하도록 지정

연관(Association)(->)

  • 2개이상 사물이 서로 관련된 관계
  • 한 클래스가 다른 클래스의 기능을 사용할 때

의존(Dependency)(-->)

  • 연관관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시
  • 연관관계와 차이점: 두클래스의 관계가 한 메서드를 실행하는 동안 같이 매우 짧은 시간만 유지
  • 한 클래스의 명세가 바뀌면 다른 클래스에 영향
  • 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우

집합관계:집약(Aggregation)(♢)

  • 한 객체가 다른객체를 소유하는 관계(has a)
  • 전체 객체의 라이프타임과 부분개개체의 라이프타임은 독립적
  • 전체 객체가 사라진다해도 부분 객체는 사라지지 않음

집합관계:합성(Composition)(♦︎)

  • 부분 객체가 전체 객체에 속하는 관계로 긴밀한 필수적 관계(has a)
  • 전체 객체의 라이프타임과 부분개개체의 라이프타임은 의존적
  • 전체 객체가 사라지면 부분 객체도 없어짐

다이어그램⭐️⭐️

  • 각 다이어그램이 정적인지 동적인지 알아두기(20.6,8)

구조 다이어그램(정적)

➡︎ 클객컴배복패
➡︎ 컴포넌트와 배치구현단계에서 사용됨

클래스 다이어그램

  • 시스템의 정적 구조 표현
  • 시스템의 클래스와 그 클래스들 간 관계 표현
  • 접근제한자 표현법
    • private(-): 해당 클래스 내만
    • default(~): 패키지 내만
    • protected(#): 상속/동일패키지 내만
    • public(+): 어디서든

객체 다이어그램

  • 시스템의 객체와 그 객체들 간의 관계 표현
  • 시스템의 실제 인스턴스 표현

컴포넌트 다이어그램

  • 시스템의 물리적인 구조 표현
  • 시스템의 구성요소들과 그들 간의 상호작용 표현

배치 다이어그램

  • 시스템의 물리적인 배치 표현
  • 하드웨어, 소프트웨어, 네트워크, 미들웨어 등의 시스템 구성요소와 그들 관계 표현

복합체 구조 다이어그램

  • 시스템 내의 복합 구조 표현
  • 클래스나 컴포넌트가 상호작용하는 내부 구조 표현

패키지 다이어그램

  • 시스템의 패키지와 그들 간의 관계 표현
  • 패키지는 클래스나 다른 패키지 그룹화에 사용됨

행위 다이어그램(동적)

➡︎ 유시커상활호타

유스케이스 다이어그램

(21.2 기출)

  • 시스템의 기능과 액터 간 상호작용 표현
  • 사용자 요구사항을 추출하고 분석하는 데 사용
  • 구성요소: 시스템, 액터(사용자 또는 외부시스템), 유스케이스, 관계
  • 관계
    • 연관: 액터 - 유스케이스
    • 포함: A -<<include>>-> B ➡︎ A가 B를 포함
    • 확장: A <-<<extend>>- B ➡︎ A에서 B가 확장
    • 일반화: A ◁- B ➡︎ A가 B를 추상화

시퀀스 다이어그램

  • 시스템의 객체들이 특정 기능을 수행하는 동안 상호작용하는 방식을 시간순서에 따라 표현
  • 특정 시나리오나 트랜잭션 표현에 유용
  • 구성요소: 액터(쫄라맨..), 객체(☐), 생명선(--), 실행박스(☐), 메시지(20.8)

커뮤니케이션 다이어그램

  • 시스템의 객체들 간의 상호작용과 통신을 표현
  • 시간의 흐름에 초점을 두지 않고, 객체간의 관계에 중점

상태 다이어그램

  • 객체의 생명주기 동안의 상태 변화 표현
  • 시스템이 내외부 이벤트에 어떻게 반응하는지 표현

활동 다이어그램

  • 시스템의 프로세스 또는 워크플로우 표현
  • 시스템의 활동들과 그들 사이의 흐름 표현
  • 비즈니스 프로세스 모델링에 사용

상호작용 다이어그램

  • 시스템의 상호작용을 하나의 고수준 워크플로우로 표현
  • 활동 다이어그램과 시퀸스 다이어그램의 혼합형태

타이밍 다이어그램

  • 시스템의 객체가 어떻게 행동하고 시간에 따라 어떻게 상호작용하는지 표현
  • 실시간 시스템이나 복잡한 시퀀스 다이어그램 표현에 사용
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글