[소프트웨어 설계 방법론] - RUP 기반의 프로젝트
해당 프로젝트는 건국대학교 컴퓨터공학부 3학년 2학기 - '소프트웨어 설계 방법론' 수업에서 진행한 프로젝트를 설명합니다.
프로젝트는 학부생이 정한 개발할 시스템을 RUP (Rational Unified Process) 에 맞춰 개발을 진행합니다.
해당 프로젝트는 시스템 문제 영역에서 요구사항과 설계에 관련된 문제를 살펴 보고, 객체 지향 기반으로 시스템을 기술합니다.
반복적인 개발 전략에 따라, Business Modeling 및 Requirements Capture 를 통한 요구사항 추출 및 식별 (Requirement Eliciation), 객체지향 분석 (OOA, Object Oriented Analysis) 방법을 이용한 요구사항 분석 (Requirement Analysis), 객체지향 설계 (OOD, Object Oriented Design) 방법을 이용한 S/W 설계 그리고 설계한 내용을 기반으로 Java 언어를 이용하여 구현을 수행합니다.
프로젝트는 시스템을 "Applying UML and Patterns 3rd Edition" 책에서 설명하는 Part 2. Inception, Part 3. Elaboration Iteration 1 - Basics and Part 4. Elaboration Iteration 2 - More Patterns 이렇게 3단계 / 파트에 맞춰 개발하고 각 단계에서 생산된 산출물에 대해 정리합니다.
위의 3 단계는 [소프트웨어 모델링 및 분석] 프로젝트 에서의 단계와 유사합니다.
Part 2. Inception
첫 단계는 RUP 에서의 Inception Phase 로 As-Is 분석을 통해 현행 비즈니스 프로세스의 문제점을 분석하고, Stakeholder 가 기술한 비즈니스 비전이나 시스템 비전을 만족하기 위한 To-Be 분석을 만들어서 시스템의 요구사항 식별 및 시스템의 범위 등을 결정하는 단계입니다.
해당 단계에서는 Business Modeling 활동을 통해 비즈니스 프로세스 모델을 만들고 Requirement Capture 활동을 통해 시스템의 기능적 요구 사항이나 비 기능적 요구사항을 분석합니다.
- Business Modeling
- 대상 조직과 시스템 및 개선 요구사항을 이해하고 차후 요구사항 추출과 설계/분석 단계를 진행하기 위한 기초작업으로 비즈니스 프로세스 모델 생성
- 프로젝트 범위, 비전, As-Is/To-Be 을 설정
- Requirement Capture
- 시스템의 기능적 요구 사항이나 비 기능적 요구사항을 분석
해당 단계는 [소프트웨어 모델링 및 분석] 프로젝트 에서의 OSP Stage 1000 단계와 동일합니다.
Part 3. Elaboration Iteration 1 - Basic
두 번째 단계는 Elaboration Phase 의 첫 반복 (Iteration) 으로 기초적인 OOA/D (Obejct Oriented Analysis & Design) 기술 적용을 통해 요구사항 분석 & S/W 설계 & 구현을 수행합니다.
요구사항 분석 단계에서는 대상 시스템과 사용자 간의 상호작용의 관계에 대한 동작을 포함하여 시스템의 기초적인 동작이나, 구성에 대해 분석합니다.
Inception Phase 에서 정의한 Use case 를 시스템과 User 의 상호작용을 하는 형태로 개정/확장하고 개정한 Use case 를 기반으로 Domain Model (Class Diagram 형태) 을 정의합니다.
그 후, 개발할 소프트웨어 시스템을 블랙박스로 간주한 후, 시스템과 통신/사용하는 User 와 시스템간의 상호작용 (event sequence) 을 분석하여 System Sequence Diagram 을 정의합니다.
S/W 설계 단계에서는 System Sequence Diagram 에서 각각의 System Event 를 식벽하여 각각의 Event 마다 시스템 내부의 Interaction 을 정의하여 동적 설계 내용인 Interaction Diagram (e.g. Sequence Diagram, Communication Diagram 등)을 작성합니다.
그 후 앞서 정의한 모든 내용을 기반으로 정적 설계 내용인 Class Diagram 을 작성합니다.
구현 단계에서는 설계한 내용 (정적 설계: Class Diagram, 동적 설계: Sequence Diagram, Communication Diagram) 을 Java Code 로 구현합니다.
해당 단계는 [소프트웨어 모델링 및 분석] 프로젝트 에서의 OSP Stage 2030 / 2040 / 구현 & 테스트 와 동일합니다.
Part4. Elaboration Iteration 2 - More Patterns
세 번째 단계는 첫 번째 단계 (Inception Phase) 에서 정의한 품질 속성을 만족시키기 위해 두 번째 단계 (Part 3. Elaboration Iteration 1 - Basic) 에서 정의한 설계 내용에 품질 속성 만족을 위한 여러 GoF (Gang Of Four) Design Pattern 을 접목 시키는 단계입니다.
정리
해당 프로젝트는 기획 - 분석 - 설계 - 구현에 이어 일반 기능 요구사항 이외의 S/W 관련 품질 요구사항을 만족시키기 위해 특정 디자인 패턴을 적용한 프로젝트입니다.
프로젝트의 상세 활동 내역 및 산출물은 아래 글에 정리합니다.