7. 프로젝트
이번 장에서는 이제까지 다룬 내용을 다루는 간단한 콘솔 응용 프로그램을 작성하면서 정리해 보기로 합시다.
여기에서는 효과적인 프로그래밍을 위해 시나리오, 설계, 구현 단계로 나누어 작업하기로 하겠습니다. 일반적인 CBD 개발 방법론에서는 요구 분석 및 정의 단계를 수행한 후에 역할에 따라 컴포넌트를 구성하고 이들에 대한 관계 및 인터페이스 약속, 비지니스 개체 모델링 등을 수행하는 아키텍처 단계에서 추상적인 설계를 진행하지만 생략하기로 하겠습니다.
7.1 시나리오
프로젝트 명: 캠퍼스 생활
캠퍼스 생활은 콘솔 기반의 응용 프로그램이다. 프로그램은 초기화, 사용자 명령에 따른 동작 순으로 수행된다.
초기화에서는 캠퍼스 생성과 장소 생성, 학생 생성이 진행된다. 장소 생성에서는 강의실과 도서관, 기숙사가 생성된다. 학생 생성에서는 사용자가 원하는 수만큼 학생들이 생성된다. 학생 종류에는 도전적인 학생, 보수적인 학생, 수동적인 학생이 있으며 사용자가 원하는 유형을 선택한다. 그리고 학생은 사용자에 의해 이름이 결정이 되며 학번은 차례대로 부여되며 생성된 학생들은 캠퍼스로 이동한다.
사용자 명령에 따른 동작은 종료 메뉴를 선택하기 전까지 선택한 메뉴를 수행하는 것을 반복한다. 메뉴에는 학생 이동, 초점 이동, 전체 정보 보기가 있다. 학생 이동은 캠퍼스에 있는 학생 중에 사용자 선택으로 강의실이나 도서관, 기숙사로 이동시킬 수 있다. 초점 이동도 사용자 선택으로 강의실, 도서관, 기숙사로 이동시킬 수 있다. 전체 정보 보기를 선택하면 캠퍼스에 있는 학생의 정보와 각 장소의 정보가 콘솔 화면에 출력된다.
각 장소로 초점이 이동되면 사용자가 종료 메뉴를 선택하기 전까지 각 장소의 선택한 메뉴를 수행하는 것을 반복한다. 그리고 각 장소의 메뉴에서 종료를 선택하면 해당 장소에서 사용자가 원하는 학생들을 캠퍼스로 이동시킬 수 있다.
강의실에서는 판서 강의, 발표 수업을 할 수 있다. 판서 강의를 선택하면 강의실에 있는 모든 학생이 강의에 집중한다. 판서 강의가 진행되면 도전적인 학생은 질문한다. 발표 수업을 선택하면 사용자가 선택한 학생이 발표하고 나머지 학생은 자유 토론을 수행한다. 발표 수업이 진행되면 수동적인 학생은 꾸벅꾸벅 졸면서 자유 토론을 수행한다.
도서관에서는 세미나 진행과 책 읽기를 할 수 있다. 세미나 진행을 선택하면 도서관에 있는 모든 학생이 세미나에 집중한다. 책 읽기를 선택하면 사용자가 선택한 학생이 책을 읽는다.
기숙사에서는 TV 시청과 잠자기를 할 수 있다. TV 시청을 선택하면 사용자가 선택한 학생이 TV 시청한다. 잠자기를 선택하면 기숙사에 있는 모든 학생은 잠을 잔다. 수동적인 학생은 잠을 자면서 잠꼬대를 한다.
학생은 학번과 이름 외에 iq(지력), hp(체력), cp(대화능력)가 있다. iq는 초기값이 80이며 최소 60, 최대 200이다. hp는 초기값이 50이며 최소 0, 최대 100이다. cp는 초기값이 0이며 최소 0, 최대 100이다.
학생은 판서 강의를 들으면 iq가 5올라가고 hp가 4내려가고 cp가 1내려간다. 학생이 발표하면 cp가 3올라가고 hp가 2내려간다. 학생은 세미나를 들으면 iq가 5올라가고 hp가 4내려간다. 학생이 책을 읽으면 iq 2올라가고 cp가 2올라간다. 도전적인 학생은 책을 읽으면 추가로 cp가 1올라간다. 학생이 TV를 시청하면 hp가 2내려간다. 보수적인 학생은 추가로 cp가 1내려간다. 잠을 자면 hp가 2올라간다.
도전적인 학생은 질문하면 iq와 cp가 1올라간다. 수동적인 학생이 잠꼬대하면 hp가 1 내려가고 iq가 1올라간다.
[C#] 7.2.2 프로젝트 설계 - 시퀀스 다이어그램
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 클래스 추가
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 학생 이동
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 초점 이동
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 판서 강의
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 발표 수업
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 세미나
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 책 읽기
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 잠자기
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - TV 시청
[C#] 7.4 프로젝트 구현 - Run(메뉴 및 사용자와 상호작용)
[C#] 7.4 프로젝트 구현 - 초점이 강의실 (판서 강의, 발표 수업)
[C#] 7.4 프로젝트 구현 - 초점이 도서관 (책 읽기, 세미나)
[C#] 7.4 프로젝트 구현 - 초점이 기숙사 (잠자기, TV 시청)
너와 나의 연결고리 "공감"
'언어 자료구조 알고리즘 > Escort C#' 카테고리의 다른 글
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 초점 이동 (0) | 2016.05.03 |
---|---|
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 학생 이동 (0) | 2016.05.03 |
[C#] 7.3 설계한 내용 프로젝트에 옮기기 - 클래스 추가 (0) | 2016.05.03 |
[C#] 7.2.2 프로젝트 설계 - 시퀀스 다이어그램 (0) | 2016.05.03 |
[C#] 7.2 프로젝트 설계 - 클래스 다이어그램 (0) | 2016.05.03 |
[C#] 6.2.6 sealed 키워드를 이용한 봉인 (0) | 2016.05.02 |
[C#] 6.2.5 abstract 키워드를 이용한 추상화 (0) | 2016.05.02 |
[C#] 6.2.4 가상화 virtual, 재정의 override (0) | 2016.05.02 |
[C#] 무효화 - new 키워드, base 키워드 (0) | 2016.05.02 |
[C#] 6.2.2 is 연산자와 as 연산자 (0) | 2016.05.02 |