Software Engineering

[소프트웨어공학] 제9장 객체지향 분석과 설계

iseop 2023. 5. 18. 21:27   인쇄용 버전

1. 단원 요약

  • 개요
    • "객체지향 분석과 설계"는 제6장 사용자 요구 분석(요구공학) 단원의 "요구사항 모델링"에 관한 설명 중 "객체지향 분석 모델"을 기초로 수행된다.
    • 객체지향 분석: 문제 도메인을 분석하여 개념 모델을 작성하는 과정
      • 객체지향 분석의 결과물은 시스템이 수행하는 기능을 설명하는 모델이다.
      • 유스케이스, 클래스, 상호작용 다이어그램
    • 객체지향 설계:
      • 객체지향 분석 단계의 결과물을 비기능적 요구사항과 아키텍처를 고려하여 변환하는 과정
      • = 개념 클래스들을 구현 클래스들로 변환하는 과정
  • 요구사항 추출
    • 요구 공학: 요구사항 추출을 위한 활동
    • 액터 찾기
      • 시스템과 상호작용하는 사람, 외부 시스템을 찾는다.
      • 유스케이스를 시작시키거나 그로부터 정보를 제공받는 액터를 "참여 액터"라고 부른다.
    • 시나리오 찾기
      • 발견한 시나리오는 유스케이스로 형식화한다.
      • 시나리오는 유스케이스의 인스턴스(특정한 구체적 사례)이다.
    • 유스케이스 찾기
      • 특정 유스케이스는 실현 가능한 모든 시나리오를 명세화한 것이다.
      • 유스케이스는 동사구로 표현한다.
      • 아래 내용을 포함하여 상세화한다.
        • 선행조건/종료조건
        • 기본 이벤트 흐름/대체 이벤트 흐름
        • 특수(비기능적) 요구사항
    • 관계: 액터-유스케이스 혹은 유스케이스 간의 관계를 표현함
      • 통신 관계: 유스케이스와 액터 간 통신이 발생하는 관계
      • 확장 관계: 부모 유스케이스는 완전하며, 자식 유스케이스는 예외적으로 드물게 확장된다.
      • 포함 관계: 부모 유스케이스 없이는 자식 유스케이스가 성립하지 못한다.
      • 상속 관계
  • 분석모델 개발
    • 분석 단계의 모델들은 사용자가 이해할 수 있을 정도로 추상화된 상태여야 한다.
    • 기능모델 개발
      • 유스케이스 다이어그램
      • 사용자 스토리(스토리보드)
    • 분석 활동
      • 엔티티 객체 찾기: 데이터 표현 객체(Constants, 전문용어, 반복 등장하는 명사 등)
      • 경계 객체 찾기: 액터와 시스템 간 인터페이스(버튼, 양식 등)
      • 제어 객체 찾기: 유스케이스의 로직을 표현, 유스케이스나 액터 당 한 개씩 존재
      • 연관 찾기: 동사구를 조사하여 객체 간 상호의존성을 표현
      • 집합체 연관 찾기
      • 속성 찾기
      • 객체 간 상태 종속적 행위 모델링
      • 객체 간 상속관계 모델링
    • 분석객체모델 개발
      • 클래스 다이어그램
      • 경계/엔티티/제어객체/연관/속성/종속성/상속 표현
    • 동적모델 개발
      • 시퀀스 다이어그램: 단일 유스케이스 관점의 객체 간 상호작용 표현
      • 상태 머신 다이어그램: 단일 객체 관점의 시스템 행위 표현
  • 시스템설계모델 개발: 분석 모델을 시스템 설계 모델로 변환하는 작업
    • 설계 목표 정의
    • 시스템을 서브시스템으로 분할
  • 객체설계
    • 재사용
    • 인터터페이스 명세
    • 재구조화
    • 최적화
  • 통합 프로세스(UP, Unified Process) 방법론
    • UP: 객체지향 분석/설계 방법론이며, 여러 개발 방법론의 장점을 통합하였다.
    • RUP (Refined UP): UP를 HTML로 문서화한 제품
    • UP/RUP 생명주기
      • 도입(inception): 시스템의 범위, 위험 요소, 실현가능성 등 조사
      • 정련(elaboration): 핵심 아키텍처 구축, 요구사항 상세화, 높은 위험 해결
      • 구축(construction): 남은 부분에 대하여 설계-구현-통합, 인도 준비
      • 전이(transition): 인도, 유지보수

 

2. 연습문제 요약

  • 객체지향 개발을 위한 첫 단계는 "객체지향 분석"으로, 문제 도메인을 분석하여 개념 모델을 작성한다.
  • 객체지향 분석설계 과정은 요구사항추출➡️분석모델 개발➡️시스템설계모델 개발➡️객체설계 과정으로 구성된다.
  • 분석모델 개발 과정은 기능모델 개발➡️분석활동➡️분석객체모델 개발➡️동적모델 개발 과정으로 구성된다.
  • 시스템설계모델 개발 과정은 설계목표 설정➡️서브시스템 정의 과정으로 구성된다.