Ynghan 2023. 10. 25. 14:46

Object-Oriented Analysis and Design

❑ 객체 지향 분석(OOA)

  • 도메인 개념/객체(문제 도메인의 객체)를 발견합니다.


❑ 객체 지향 디자인(OOD)

  • 소프트웨어 개체 정의(정적)
  • 요구 사항을 충족하기 위해 어떻게 협력할지 정의합니다(동적).

 

OOAD 예시 - 주사위 게임

OOA
1. Use case를 정의
2. 도메인 모델을 정의

OOD
1. 인터렉션 다이어그램을 정의
2. 클래스 다이어그램 설계를 정의

 

UML

"UML(Unified Modeling Language)은 시스템의 아티팩트를 지정, 구성 및 문서화하기 위한 시각적 언어입니다."

❑ UML을 사용하는 3가지 방법

  • 스케치
    • 개념적 관점
    • 문제 또는 솔루션 공간의 어려운 부분을 탐색하기 위해 비공식적이고 불완전한 다이어그램이 생성됩니다. 
      → 상호통신 매체
  • 청사진
    • 사양 관점
    • 코드 생성에는 비교적 상세한 설계 다이어그램이 사용됩니다.
  • 프로그래밍 언어
    • 구현 관점
    • UML에서 소프트웨어 시스템의 완전한 실행 가능 사양

 

UML이 아닌것은?

❑ UML은 객체 지향 분석 및 설계 프로세스가 아닙니다.

  • UML은 소프트웨어 시스템을 개발하는 체계적인 방법이 아닙니다.


❑ UML은 객체지향적 사고방식을 가르치지 않습니다.

  • 개체 구조나 동작을 디자인하는 방법을 알려주지는 않습니다.
  • 디자인이 좋은지 나쁜지는 알려주지 않습니다.

 

소프트웨어 개발 프로세스 및 UP

❑ 소프트웨어 개발 프로세스
• 소프트웨어 구축, 구축 및 유지보수에 대한 체계적인 접근 방식

❑ Unified Process (UP) : 객체 지향 시스템 구축을 위한 대중적인 반복 소프트웨어 개발 프로세스

• 고정 길이 반복(약 3주간의 미니 폭포)
• 애자일(Agile)에서 영감(즉, 폭포 반대인)
• 유연성(다른 OO 프로세스의 관행과 결합 가능)
• OO 소프트웨어 개발을 위한 사실상의 업계 표준