본문 바로가기
Computer Science/Software Engineering

[소공] 5장 요구 모델링

by na1-4an 2023. 10. 27.

1. 요구 모델링과 요구 분석의 차이

  • 요구 모델링: 고객과 개발자가 무엇이 개발되고 있는지에 동의하는 것을 주된 목적으로하는 요구 명세 생성.
  • 요구 분석: 시스템에 대한 형식적인 설명 제공.

2. 도메인 지식과 모델링

: 모델링은 도메인 지식(업무 프로세스, 기능, 역할, 규칙)을 체계화하는 과정. 다이어그램으로 정형화함.

5-1 모델링 기초

1. 모델링 하는 이유(7)

  • 복잡함을 잘 관리하기 위해
  • 소프트웨어 구조를 시각화하기 위해
  • 타인과 소통하기 위해
  • 문제 도메인 및 요구사항을 이해하기 위해
  • 개발 중인 시스템을 이해하기 위해
  • 구현 전 솔루션을 실험해보기 위해
  • 기존 시스템을 문서화하기 위해

2. 관점과 추상화 수준

3. 모델 사이의 관계****

5-2 UML

1. UML

: (Unified Modeling Language) 객체지향 소프트웨어를 모델링 하는 표준 그래픽 언어.

  - 역사: OMT(1991), Booch(1994), OOSE(1992) 방법의 통합으로 만들어짐.

2. UML 분류(3)

  • 구조 다이어그램(6): 클래스 diagram, 객체 diagram, 컴포넌트 diagram, 컴포지트 구조 diagram, 배치 diagram, 패키지 diagram
  • 동작 다이어그램(4): 유즈케이스 diagram, 액티비티 diagram, 상태 diagram, 인터렉션 diagram(시퀀스 diagram, 커뮤니케이션 diagram, 인터렉션 오버뷰 diagram , 타이밍 diagram )

3. UML 모델링 과정(7)

  • 유즈케이스 다이어그램 작성
  • 클래스 후보를 찾고 객체 모형 작성
  • 시퀀스 다이어그램 작성
  • 클래스의 속성, 관계를 찾아 객체 모형 완성
  • 상태 다이어그램, 액티비티 다이어그램 등 다른 다이어그램 추가해 UML모델 완성
  • 서브시스템 파악 후 전체 시스템 구조를 설계
  • 새로운 객체 설계

기억해두기********

5-3 정적 모델링

1. 정적 모델

: 객체들의 공통 구조와 동작들을 추상화 시킨 것. 클래스 다이어그램이 대표적임.

: 객체지향 개념 이해 필요.(속성, 연관, 집합, 상속, 다형성)

2. 객체 지향 개념(6)

  • 객체: 상태, 동작, 고유 식별자를 가진 실체.
  • 클래스: 공통 속성을 공유하는 객체 집합에 대한 정의 
  • 캡슐화: 객체 속성 부분, 오퍼레이션 부분을 하나로 모아 단위화. 정보 은닉.
  • 연관: 서비스를 제공하는 객체와 요청하는 객체가 상호작용하는 관계.
  • 상속: 일반화된 클래스가 갖는 속성과 연산을 하위 클래스가 그대로 물려받음
  • 다형성: 같은 이름의 메시지를 다른 객체나 서브 클래스에 호출할 수 있는 특징.

3. 클래스 다이어그램

  - 표현: 사각형을 세부분으로 나눔. 각각 클래스 이름/ 클래스 속성/ 오퍼레이션.

  - 추상클래스는 이텔릭체, 인터페이스 클래스는 <<interface>> 추가.

  - 클래스 속성은 객체가 갖는 모든 필드 포함. 오퍼레이션에서는 흔한 메소드는 생략(get, set)

  - 관계의 표현

        * 연관: 객체 사이에 관련되어 링크 되어 있음. 화살표가 있는 경우 단방향 탐색만 가능.

                   항구에는 보트가 정박해 있다는 의미. Harbor는 Boat클래스의 인스턴스에 대한 참조 배열을 포함.

        * 상속(일반화): SailBoat 클래스가 Boat클래스에서 상속 받음.

        * 의존: 한 클래스의 변경으로 다른 클래스 변경이 필요할 수 있음.

                    의존관계의 클래스를 매개변수로 사용하거나 리턴 값으로 반환할 떄 사용

        * 구현: 클래스가 인터페이스를 구현하는 것.

        (추상클래스의 목적: 그 추상클래스를 상속받아서 기능을 이용, 확장)

        (인터페이스의 목적: 함수껍데기만 있어 그 함수의 구현을 강제하기 위함.)

 

5-4 동적 모델링

1. 동적 모델

: 소프트웨어가 실행될 때 변경 될 수 있는 뷰. 인터렉션 다이어그램.

  -> 시퀀스 다이어그램, 통신 다이어그램(커뮤니케이션 다이어그램)

2. 시퀀스 다이어그램

: 객체들의 메시지 교환을 시간적 관계로 나타낸 다이어그램.

화살표 닿는 객체에게 그 함수가 있음!

 

- 클래스 다이어그램과 일관성이 유지되어야 함.

  - 시퀀스 다이어그램 작성 과정(3)

     (1) 참여하는 객체 파악

     (2) 파악한 객체를 x축에 나열하고 라이프라인을 그음

     (3) 사용사례에 개술된 이벤트 순서에 따라 객체의 메시지 호출을 화살표로 나타냄.

3. 통신 다이어그램

  - (객체 다이어그램) + (객체 간의 메시지)

4. 상태 다이어그램

5-5 제어 모델링

1. 액티비티 다이어그램

: 액티비티(계산 또는 프로세) 사이의 제어 흐름을 보여주는 흐름도.

 

5-6 모델 검증

1. 모델 검증 방법(5)

  • 리뷰(수작업)
  • 테스팅
  • 정형적 방법(상태도)
  • 프로토 타이핑
  • 요구 추적(수작업)

2. 일관성 체크(3)

  (1) 유즈케이스 다이어그램 - 시퀀스 다이어그램

  (2) 시퀀스 다이어그램 - 클래스 다이어그램

  (3) 클래스 다이어그램 - 상태 다이어그