2022-12-23 소프트웨어공학_10

2022. 12. 23. 17:55학부 강의/소프트웨어공학

 

0. UML 설계

 

1. 4+1 View 모델

 

시스템 개발에 참여하는 이해관계자들의 역할에 따른 관점을 제시한다.

 

 

가. 논리 관점

  • 유스케이스 다이어그램과 요구사항 기술서에 기술된 기능들을 프로그래밍 시각으로 변경하는 관점
  • 객체를 추출하고, 객체들의 세부적인 속성과 동작에 대해 정의
  • 클래스/상태/오브젝트/시퀀스/커뮤니케이션 다이어그램 등 사용

 

나. 프로세스 관점

  • Integrator가 작업을 통합하기 위해 사용한다.
  • 시스템 개발 전반의 작업 수행 주체와 작업의 흐름 정의에 중점
  • 상태, 시퀀스, 액티비티, 컴포넌트 다이어그램 등 사용

 

다. 개발 관점

  • 개발자들의 관점으로 시스템 개발 방법에 대해 정의
  • 계층구조, 제약사항, 코드 재사용 등 시스템 구현을 위한 요건 정의
  • 컴포넌트 다이어그램(논리적 단위로 정의), 패키지 다이어그램(물리적 단위로 정의) 사용

 

라. 물리 관점

  • 소프트웨어와 하드웨어의 관계와 결합구조를 정의하기 위한 관점
  • 시스템 디자이너가 시스템의 설치 방법과 실행 환경을 정의하는데 사용
  • 배치 다이어그램

 

마. Usecase 관점

  • 시스템 개발에 참여하는 모든 이해관계자가 시스템에 대해 이해할 수 있도록 요구사항을 정의
  • 시스템의 기능과 전체 규모에 대해 정의하며 모든 개발의 기반으로 사용됨
  • 유스케이스 다이어그램, 요구사항 기술서

 


2. 클래스 다이어그램

 

클래스 및 클래스들 간 관계로 시스템의 구조를 표현한 다이어그램으로 시스템의 정적인 구조 표현한다.

 

 

각각의 클래스(class)는 이름, 속성, 메소드, 접근제어자를 가진다.

 

  • 클래스 이름(class name) : 만들고자 하는 클래스의 고유한 이름
  • 속성(attribute) : 클래스의 정보
  • 메소드(method) : 클래스의 동작
  • 접근 제어자 : 정보은닉을 위해서 속성과 메서드에 대한 접근 여부를 설정 (public, private, protected)

 


가. 관계의 종류

 

다양한 관계의 의미와 기호에 대하여 알아두자.

 

 

(1) 연관 (association)

 

클래스간 서로 일반적으로 연결된 경우

 

 

(2) 직접 연관 (directional association)

 

연관 관계이지만 하나의 클래스만 다른 클래스의 행위를 요청.

 

 

(3) 일반화 (generalization)

 

기존의 클래스를 상속받아 새로운 클래스를 도출.

 

 

(4) 집합 (aggregation)

 

여러 개의 독립적인 클래스들이 모여서 하나의 클래스를 구성

 

 

이미지 출처 : https://www.uml-diagrams.org/class-diagrams/class-generalizaion-separate.png

이미지 출처 : https://en.wikipedia.org/wiki/Class_diagram

 


나. 다중성 (multiplicity)

 

클래스 간 대응하는 객체의 개수를 표현한다.

 

 

자동차에 바퀴는 4개 엔진은 1개라는 사실을 표현했다.

 


다. 클래스 타입

 

  • 엔티티 클래스 (entity class) : 문제 영역을 구성하는 컴포넌트
    ex) 책, 앨범, 동영상, 영화 등
  • 경계 클래스 (boundary class) : 시스템 외부의 액터와 상호 작용하는 클래스. 인터페이스 역할
    ex) 검색화면
  • 제어 클래스 (control class) : 경계 클래스와 엔티티 클래스의 중간에 위치
    ex) 검색 시스템

 


3. 시퀀스 다이어그램

 

객체들 간 시간에 따라 발생하는 상호작용(interaction)을 표현한 다이어그램.

 

 

액터와 객체는 서로 메시지를 통해서 상호작용한다.

 

 

 

 

객체 아래로 세로로 그어진 점선을 볼 수 있다.

 

이는 ‘생명선’으로 전체적인 흐름(scenario)에서 참여하는 액터 또는 객체의 생성, 소멸, 활성화될 때를 나타내는 선이다.

 

 

메시지가 객체에 도달하면 객체가 동작한다.

 

이때 동작하고 있음을 표현하기 위해서 사각형을 사용하는데 이를 ‘활성화’되었다고 한다.

 

 

이미지 출처 : https://support.bizzdesign.com/display/knowledge/Specifying+the+type+of+a+message+in+a+UML+sequence+diagram

이미지 출처 : https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38086.1650/doc/html/rad1232633232111.html