Object Oriented SW Developing Process
1. Inception
: 기존 시스템을 업데이트하거나, 새로운 시스템을 개발하기 위한 business case를 구축한다.
- Problem statement
- Use case diagram: actor와 use case를 추출하여, use case diagram을 작성한다.
- Flow of events: 각 use case 항목마다 flow of events를 작성한다.
2. Elaboration
: problem domain 분석, architectural foundation 구축, 프로젝트에서 가장 위험이 많은 부분 강조, 프로젝트를 성공적으로 수행할 수 있는 초기 버전 구축
- Initial class diagram
- Sequence diagram: Flow 별로 sequence diagram을 작성한다.
- Refine the initial class diagram.
- 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
- Finding relationships
- Association (연관 관계)
- Aggregation (집합 관계)
- 재귀적 관계
- Constraints (제한 조건)
- 패키지 관계: 클래스가 포함된 패키지들의 관계 - Finding multiplicity(다중성) & navigation(방향)
- Multiplicity: Relation에 참여하는 객체 수를 muliplicity로 추출한다.
- Navigation: 일반적으로 association(연관), aggregation(집합) 관계는 양방향 통신이지만, 특수 상황의 경우 단방향으로 제한해야 한다. 이때 navigation direction으로 표현할 수 있다.
+ Constraint (제한 조건) - Finding data and methods
- Operations: 대부분 메시지의 흐름이 operation이 된다.
- Attributes: Attribute는 class 정의, 문제 정의서, 일반적인 문제 도메인 관련 지식으로부터 추출한다. - Finding inheritance (상속)
- Generalization (일반화): 여러 클래스들의 공통된 attribute와 operation을 캡슐화하여 superclass를 정의한다.
- Specialization (상세화): superclass를 상세화할 수 있는 subclass를 생성한다.
7. Decide software architecture
- Component diagram
- Deployment diagram
8. Iteration Planning
3. Construction
4. Transition
출처: 이화여자대학교 박지현교수님 소프트웨어공학
'소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] L8 - Model-driven Engineering (0) | 2023.11.13 |
---|---|
[소프트웨어공학] L7 - 수강시스템 OOP 실습 (0) | 2023.11.12 |
[소프트웨어공학] L6 - Software & System Modeling UML (0) | 2023.11.12 |
[소프트웨어공학] L5 - Architectural Design (0) | 2023.11.05 |
[소프트웨어공학] 7. Architectural Design (0) | 2023.10.15 |