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

[소프트웨어공학] L7 - Object Oriented Development Process Using UML

by leziwn.cs 2023. 11. 12.
Object Oriented SW Developing Process

1. Inception

: 기존 시스템을 업데이트하거나, 새로운 시스템을 개발하기 위한 business case를 구축한다.

  1. Problem statement
  2. Use case diagram: actor와 use case를 추출하여, use case diagram을 작성한다.
  3. Flow of events: 각 use case 항목마다 flow of events를 작성한다.

 

2. Elaboration

: problem domain 분석, architectural foundation 구축, 프로젝트에서 가장 위험이 많은 부분 강조, 프로젝트를 성공적으로 수행할 수 있는 초기 버전 구축

  1. Initial class diagram
  2. Sequence diagram: Flow 별로 sequence diagram을 작성한다.
  3. Refine the initial class diagram.
  4. Decide software architecture.

 

3. Construction

: 소프트웨어를 iteration planning에 맞추어 단계적으로 개발한다.

  • Class diagram 완성

 

4. Transition

: 소프트웨어를 user에게 delivery.

 


A CASE Study
1. Inception

1. Problem statement

2. Use case diagram

3. Flow of event

 

2. Elaboration

4. Initial class diagram

5. Sequence diagram, Collaboration diagram

6. Refine class diagram

  1. Finding relationships
    - Association (연관 관계)
    - Aggregation (집합 관계)
    - 재귀적 관계
    - Constraints (제한 조건)
    - 패키지 관계: 클래스가 포함된 패키지들의 관계
  2. Finding multiplicity(다중성) & navigation(방향)
    - Multiplicity: Relation에 참여하는 객체 수를 muliplicity로 추출한다.
    - Navigation: 일반적으로 association(연관), aggregation(집합) 관계는 양방향 통신이지만, 특수 상황의 경우 단방향으로 제한해야 한다. 이때 navigation direction으로 표현할 수 있다.
    + Constraint (제한 조건)
  3. Finding data and methods
    - Operations: 대부분 메시지의 흐름이 operation이 된다.
    - Attributes: Attribute는 class 정의, 문제 정의서, 일반적인 문제 도메인 관련 지식으로부터 추출한다.
  4. Finding inheritance (상속)
    - Generalization (일반화): 여러 클래스들의 공통된 attribute와 operation을 캡슐화하여 superclass를 정의한다.
    - Specialization (상세화): superclass를 상세화할 수 있는 subclass를 생성한다.

7. Decide software architecture

  • Component diagram
  • Deployment diagram

8. Iteration Planning

 

3. Construction
4. Transition

 

 

 

 

 

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