본문 바로가기
소프트웨어공학

[소프트웨어공학] L7 - 수강시스템 OOP 실습

by leziwn.cs 2023. 11. 12.
1. Inception
프로젝트 생성

 

1. Problem Statement

 

2. Use Case Diagram

 

3. Flow of Event (scenario)

: 모든 유스케이스에 대해 이벤트 플로우(event flow)를 작성한다.

 


2. Elaboration
4. Initial Class Diagram

: 시스템 내에 있는 클래스 간 상호작용

▶ Class Stereo Type:

  • Entity Class
  • Boundary Class
  • Control Class

 

 

Package Diagram

 

 

5. Sequence Diagram

: 유스케이스를 실행하는 기능의 흐름

Communication Diagram

: 시퀀스 다이어그램과 동일한 정보를 보여주지만, 다른 목적을 위해 다른 방식으로 보여준다.

 

 

6. Refine Class Diagram

1) Finding Relationships

: Sequence Diagram/Communication Diagram의 메시지 흐름을 통해 relation을 찾을 수 있다.

  • Association (연관 관계)
  • 패키지 관계
  • Aggregation (집합 관계)
  • 재귀적 관계

 

2) Finding Multiplicity(다중성) & Navigation(방향)

  • Multiplicity(다중성): Relation에 참여하는 객체의 수를 multiplicity로 추출한다.
  • Navigation: 일반적으로 association(연관), aggregation(집합) 관계는 양방향 통신이지만, 특수한 상황의 경우, 단방향으로 제한할 때는 navigation direction으로 표시할 수 있다.

+ 제한 조건(Constraints)

 

3) Finding Data and Methods

  • Operations: 보통, 순서도와 협력도 내의 메시지 흐름이 수신 class의 operation이 된다.
  • Attributes: Attribute는 class 정의, 문제 정의서, 일반적인 문제 도메인 관련 지식으로부터 추출한다.

 

4) Finding Inheritance (상속)

  • Generalization (일반화): 여러 class들의 공통된 attribute와 operation을 캡슐화하여, superclass를 정의한다.
  • Specialization (특수화): superclass를 세련화할 수 있는 sub-class를 생성한다.

 

 

7. Decide Software Architecture

1) Component Diagram: 시스템 내의 컴포넌트들과 그들 간의 관계를 보여준다.

2) Deployment Diagram: 시스템의 물리적인 배치 형태

 


3. Construction
4. Transition

 

 

 

 

출처: 이화여자대학교 박지현교수님 소프트웨어공학