10.1 실습 개발 공정
전산 기술은 하루가 다르게 발전하고 새로운 기술이 나오고 있습니다. 또한, 프로젝트의 규모가 점진적으로 늘어나고 있으며 다른 산업 분야와 접목된 형태로 변화되고 있습니다.
이와 같은 시대의 흐름에 따라 S/W 개발 방법론도 변하고 있는데 여기서는 3개의 단계로 나누어 진행하도록 하겠습니다. 일반적인 CBD 개발 방법론에서는 요구 분석 및 정의 단계, 아키텍쳐 단계, 설계 단계, 구현 단계, 배포 단계로 나누고 있습니다. 규모가 큰 프로젝트에서는 여러 개의 컴포넌트들로 구성하고 이들에 대한 역할 및 인터페이스 약속 및 비지니스 객체 모델링 등의 작업을 수행하는 추상적인 설계를 하는 아키텍쳐 단계를 두고 있습니다. 하지만 여기서는 하나의 컴포넌트로 프로그램을 제작할 것이므로 아키텍쳐 단계를 생략하겠습니다. 그리고 구현하고 나서 테스트를 수행하고 배포를 하는 단계도 여기서 다룰 필요는 없을 것 같아 생략하도록 하겠습니다. 다시 말하면 요구 분석 및 정의 단계, 설계 단계, 구현 단계로 나누기로 하겠습니다.
10.2에서는 개발 공정에 들어서기에 앞서 먼저 작성할 프로젝트의 시나리오를 보여 드리겠습니다.
요구 분석 및 정의 단계에서는 먼저 프로젝트의 외부 요소인 사용자와 프로젝트가 사용할 외부 서비스에 해당하는 액터를 조사합니다. 조사가 끝나면 사용자 액터가 우리 시스템을 사용하는 경우와 우리 시스템이 어떨 때 외부 서비스를 사용하는 지를 파악합니다. 그리고 파악한 내용으로 유즈케이스(usecase)다이어 그램을 만듭니다. 필요하다면 각 유즈케이스 별로 상세 기술서 혹은 시퀀스(sequence) 다이어그램을 작성할 수도 있습니다.
설계 단계에서는 클래스로 표현할 것이 무엇인지를 조사하고 이들의 관계를 클래스 다이어그램으로 나타냅니다. 클래스 다이어그램이 작성이 되었으면 각 유즈케이스 별로 시퀀스 다이어그램을 작성하고 이를 통해 피 명령 개체에 노출 할 멤버 메서드 명과 입력 인자, 반환 형식을 결정합니다. 그리고, 마지막 구현 단계에서는 필요에 따라 상세 설계 및 구현을 하도록 하겠습니다.
10.2 실습 시나리오
프로젝트 명: 이 에이치
프로그램은 콘솔 기반의 응용 프로그램이다. 프로그램이 시작하면 이 에이치 나라가 생성된다. 이 에이치 나라는 초기화, 사용자 명령에 따른 동작, 종료화 과정을 거친다.
이 에이치 나라의 초기화에서는 유닛 공장이 만들어지고 주거지와 공연장이 만들어진다.
이 에이치 나라의 사용자 명령에 따른 동작에서는 종료 메뉴를 선택하기 전까지 선택한 메뉴를 수행하는 것을 반복한다. 이 에이치 나라의 메뉴는 유닛 생성, 초점 이동, 유닛 이동, 전체 상황 보기, 종료 메뉴가 있다.
이 에이치 나라의 유닛 생성 메뉴에서는 생성할 유닛 종류를 선택하고 유닛 이름을 입력받아 유닛 공장을 통해 생성된다. 유닛 종류에는 마법사, 예술가, 회사원이 있다. 유닛의 생성과 소멸은 유닛 공장에서만 가능하다.
이 에이치 나라의 초점 이동 메뉴에서는 공연장이나 주거지 중에 한 장소를 선택하면 해당 장소로 초점이 바뀐다. 각 장소로 이동하면 해당 장소의 종료 메뉴를 선택하기 전까지 선택한 메뉴를 수행하는 것을 반복한다. 종료 메뉴를 선택하면 초점은 다시 이 에이치 나라로 이동된다.
이 에이치 나라의 유닛 이동 메뉴에서는 이동할 유닛을 선택하고 공연장이나 주거지 중에 한 장소를 선택하면 해당 장소로 유닛이 이동된다.
이 에이치 나라의 전체 상황 보기에서는 이 에이치 나라에 있는 유닛들 정보와 각 장소의 정보를 보여준다.
공연장으로 초점이 왔을 때 선택할 수 있는 메뉴는 공연 관람하기, 무대로 올라가기, 이 에이치 나라로 유닛 복귀하기, 공연장 초점 종료가 있다.
공연장 메뉴에서 공연 관람하기를 선택하면 전체 유닛은 감상하며 예술가의 경우는 감상 후에 혼자 논평을 한다.
공연장 메뉴에서 무대로 올라가기를 선택하면 최종 사용자에게 하나의 유닛을 선택하게 하고 선택된 유닛은 자기소개를 한다.
공연장 메뉴에서 이 에이치 나라로 유닛 복귀하기를 선택하면 최종 사용자에게 하나의 유닛을 선택하게 하고 선택된 유닛은 이 에이치 나라로 복귀한다.
주거지로 초점이 왔을 때 선택할 수 있는 메뉴는 소등하기, 휴식하기, 이 에이치 나라로 유닛 복귀하기, 주거지 초점 종료가 있다.
주거지 메뉴에서 소등하기를 선택하면 전체 유닛은 잠을 잔다. 회사원은 잠을 자기 전에 알람을 설정한다.
주거지 메뉴에서 휴식하기를 선택하면 최종 사용자에게 하나의 유닛을 선택하게 하고 선택된 유닛은 휴식한다. 마술사는 휴식 후에 달나라 여행을 한다.
주거지 메뉴에서 이 에이치 나라로 유닛 복귀하기를 선택하였을 때의 동작은 공연장과 같다.
유닛은 생성 시에 유닛 공장으로부터 일련번호를 부여받는다.
모든 유닛은 감상할 때 행복을 느낀다. 마법사일 경우에는 추가로 매직 아이를 한다.
모든 유닛은 자기소개를 하면 일련번호와 이름을 보여준다.
예술가는 잠을 잘 때 노래를 한다. 마법사는 잠을 잘 때 꿈을 꾼다. 회사원은 잠을 잘 때 코를 곤다.
예술가는 휴식을 클래식을 듣는다. 마법사는 휴식할 때 춤을 춘다. 회사원은 휴식할 때 코를 곤다.
(모든 동영상 강의는 무료입니다.)
'언어 자료구조 알고리즘 > Escort C++' 카테고리의 다른 글
[C++] OOP 프로그래밍 실습 - 접근 권한이 public인 멤버 메서드 (0) | 2016.04.15 |
---|---|
[C++] 상세 설계 및 구현, 클래스 추가 및 관계에 따른 헤더 포함 (0) | 2016.04.15 |
[C++] OOP 프로그래밍 실습 - 설계(시퀀스 다이어그램) (0) | 2016.04.15 |
[C++] OOP 프로그래밍 실습 - 설계 (클래스 다이어그램) (0) | 2016.04.15 |
[C++] OOP 프로그래밍 실습 - 요구 분석 (0) | 2016.04.15 |
[C++] 템플릿 클래스 만들기 (0) | 2016.04.15 |
[C++] 템플릿 클래스 (0) | 2016.04.15 |
[C++] 명시적 템플릿 인수 사용 (0) | 2016.04.15 |
[C++] 전역 템플릿 함수 (0) | 2016.04.15 |
[C++] 8. 구조화 된 예외처리 (0) | 2016.04.15 |