객체지향설계 프로젝트 계획서

학과(전공):
담당 교수:
팀 명:
제 출 일:		0000년 00월 00일
	팀 장 :	○ ○ ○	(20181234)
	팀원1 :	○ ○ ○	(20181235)
	팀원2 :	○ ○ ○	(20181236)
	팀원3 :	○ ○ ○	(20181237)
	팀원4 :	○ ○ ○	(20181238)
	팀원5 :	○ ○ ○	(20181239)

동 의 대 학 교

컴퓨터소프트웨공학과장 귀하

〈 요  약  문 〉

프로젝트 목표 (300자내외)
내용 (500자내외)
기대효과 (200자내외)
Keywords

<제목 차례>

1. 프로젝트 개요	4

1.1 비전	4

1.2 이해당사자 요구사항	4

1.4 관련 기술	5

2. 유지보수 유형별 계획	6

3. 유지보수 프로세스	7

4. 팀 구성	7

5. 시험 계획	8

6. 일정 계획	8

6.1 WBS	8

6.2 최소 소요기간 산정	9

7. 현실적 제한조건 분석	10

8. 의사소통 계획	11

9. 형상관리 계획	11

1. 프로젝트 개요

1.1 비전

프로젝트에서 개발한 소프트웨어 시스템의 목적과 가치를 간략하게 기술한다.

1.2 이해당사자 요구사항

SW 제품에 대한 요구사항(특징 포함)을 도출하는데 여러 요구사항 도출 기법을 사용하여 관련된 다양한 이해 당사자로부터 요구사항을 정의한다. (컴퓨팅문제수준설명 속성 6: 이해 당사자의 요구수준 및 범위)

예)

연번	이해 당사자	요구사항
St-01	게임 기획자	기본적으로 지원되는 유닛 외에 게임 기획 시 추가적으로 정의되는 유닛을 쉽게 지원할 수 있어야 한다.
St-02	게임 사용자	2차원 보드뿐만 아니라 3차원 보드 게임을 지원하면 좋겠음.
		유닛이 사용할 수 있는 무기의 종류를 최대 세 개까지 지원하며 동시에 사용할 수 있어야 한다.
St-03	개발자	기본적인 이동 관장은 게임마다 달라질 수 있으므로 프레임웍을 사용하여 게임을 기획/개발하는 쪽에서 담당하도록 해야 한다.
St-04	PM	FindBugs와 EasyPMD를 이용한 정적 분석 결과 결함이 다수 있어 수정해야 함.

1.3 시스템 범위

유스케이스 다이어그램을 사용하여 특징 목록에서 도출할 수 있는 시스템 기능과 액터를 찾아 시스템 범위를 정의한다.

1.4 관련 기술

이해당사자 요구사항을 분석/설계/구현하는데 필요한 관련 기술을 설명한다. (SW 개발에 필요한) 최신 정보와 관련 연구 결과를 잘 활용함을 보여야 한다. (컴퓨팅문제수준설명 속성 1: 지식의 깊이)

연번	유지보수 목록	관련 기술
F-01	프레임웍은 다양한 타입의 지형을 지원한다.	지형을 표현할 때 증강현실을 지원하여 카메라로 입력된 현실 공간에 지형 정보를 덧입혀 현실감이 있도록 지원한다.
F-02	프레임웍은 게임의 특성에 맞는 여러 타입의 부대들 또는 유닛을 지원한다.	기본적으로 지원되는 유닛 유형 외에 외부 서버에 정의된 유닛을 네트워크를 통하여 적재할 수 있도록 JSON 포맷을 활용한다.
F-03	프레임웍은 사각형의 타일로 구성된 보드를 제공하고 각 타일은 지형 모양을 가지고 있다.	N/A (단순한 경우에는 기술하지 않아도 됨)
F-04	프레임웍은 누구의 차례인지에 대한 정보를 유지한다.	N/A (단순한 경우에는 기술하지 않아도 됨)
F-05	정적 분석 결과 발견된 결함을 제거한다.	정적 분석, FindBugs

2. 유지보수 유형별 계획

2.1 교정 유지보수 계획

교정 유지보수 계획을 목록 형태로 기술하고, 각각에 대하여 간략하게 설명한다.

(참고)  소프트웨어에 이미 존재하는 문제나 버그를 수정하는 것을 목표로 함. 소프트웨어가 정상적으로 작동하지 않을 때 필요한 수리나 수정 작업을 포함하며, 이는 소프트웨어의 현재 상태를 유지하고 문제를 해결하는 데 중점을 둠.

F-05 결함 제거: FingBugs을 통하여 발견된 결함의 예는 아래와 같다. 결함 유형을 분류하고 우선 순위를 부여하여 결함을 제거한다.

목록 2: 설명 2

목록 3: 설명 3

2.2 적응 유지보수 계획

적응 유지보수 계획을 목록 형태로 기술하고, 각각에 대하여 간략하게 설명한다.

(참고) 소프트웨어가 변화하는 기술 환경, 운영 체제 변화, 클라우드 저장소, 하드웨어 등과 같은 외부 요인을 적절히 반영하여 계속 잘 작동하도록 하는 것을 목표로 함. 소프트웨어의 생명주기를 확장하고, 시장에서의 경쟁력을 유지하는 데 필수적임.

2.3 완전화 유지보수 계획

완전화 유지보수 계획을 목록 형태로 기술하고, 각각에 대하여 간략하게 설명한다.

(참고) 소프트웨어의 기능을 추가하거나 제거하고, 관련 없는 기능을 제거하여 소프트웨어를 최신 상태로 유지하는 과정을 포함함. 소프트웨어의 성능을 향상시키고, 사용자 경험을 개선하며, 시장에서의 경쟁력을 유지하는 데 중요한 역할을 함.

2.4 예방 유지보수 계획

예방 유지보수 계획을 목록 형태로 기술하고, 각각에 대하여 간략하게 설명한다.
(참고) 프트웨어의 성능을 향상시키고, 미래에 발생할 수 있는 결함을 방지하기 위해 논리 구조, 성능, 유지보수성을 개선하는 것을 목표로 함.  소프트웨어의 수명을 연장하고, 비용을 절감하며, 장애를 사전에 방지하는 데 초점을 맞춤. 예를 들어, 코드 리팩토링이나 성능 최적화, 보안 강화 등의 작업이 포함됨.

3. 유지보수 프로세스

유지보수 시 적용할 프로세스를 간단하게 기술한다. (교과과정에서 정의한 스크럼 개발 프로세스에 대하여 간략하게 기술하면 된다. 스크럼을 사용하지 않고 다른 프로세스를 적용하는 경우 적용 방법에 대하여 상세하게 기술하여야 한다.)

4. 팀 구성

팀원의 역할을 간략하게 기술한다.

5. 시험 계획

유지보수 유형별 세부 유지보수 목록에 대하여 요구사항에 맞게 올바르게 구현하였음을 확인할 수 있도록 (자동화된) 시험 계획을 기술한다.

6. 일정 계획

6.1 WBS

유지보수를 위한 소작업을 정의하고 의존성과 소요기간을 산정한다.

6.2 최소 소요기간 산정

프로젝트 수행에 필요한 최소 소요기간을 계산한다. (https://compnet.deu.ac.kr > 게시판 1025번 Critical Path Finder (임계 경로 찾기 프로그램) 참조)

6.3 간트 차트

6.2절에서 계산한 최소 소요기간을 감안하여 간트 차트 형태로 일정 계획을 기술한다.

7. 현실적 제한조건 분석

설계 수행 과정에서 다수의 현실적 제한조건을 반영해서 설계할 계획임을 제시해야 한다. 요소설계 교과목에서는 현실적 제한조건 중 일부만 선택적으로 반영할 수 있음. (컴퓨팅문제수준설명 속성 8: 다양한 분야에 미치는 영향을 고려하고 있다.)

항목	내 용
경제	새로운 시스템이 기존 시스템에 비하여 타당한 원가로 제작할 수 있는지 기술한다. (개발시 원가 고려 여부, 산출물의 경제성 등)
	내용 1 내용 2
환경 영향	산출물이 기존 제품/방법과 비교하여 환경 친화적인지, 또는 환경 개선에 활용 가능한지 여부를 기술한다.
	내용 1 내용 2
보안성 (Security)	개발 전 단계에 걸쳐 보안 이슈를 고려하여 유지보수 계획에 반영한다.
	내용 1 내용 2
윤리	산출물에 SW 라이센스(GNU, BSD, MIT 등)가 적용되어 라이센스를 준수하고 있는지를 기술한다. 혹은 산출물에 SW 라이센스를 적용하여 어떻게 공유할 수 있는지를 기술한다.
	내용 1 내용 2
미학	UI/UX 관점에서 프로그램이 유의미함을 보여주어야 한다.
	내용 1 내용 2
생산성	개발 과정에 생산성을 높일 수 있는 도구를 적용하였는지, 그리고 산출물을 활용하여 기존 시스템에 비해 생산성을 높일 수 있는지를 기술한다.
	NetBeans IDE의 maven 빌드 도구를 사용하여 라이브러리 설치를 자동으로 하게 하였으며, FindBugs 정적 분석 도구를 사용하여 발견된 주요 결함(major 이상)을 제거하였다. 개발된 프로그램을 사용하면 학생들의 성적 증명서를 입력으로 하여 졸업 이수요건을 자동으로 검증하게 하여 기존 수작업에 비하여 소요시간 측면에서 비교불가할 정도로 빠른 처리가 가능하다
산업표준	개발 프로세스나 개발 산출물에 산업표준/국가표준/국제표준을 고려하였는지 기술한다.
	개발 프로세스로 애자일 개발 방법론인 스크럼을 사용한다. 개발 단계에서 테스팅시 ISO/IEC/IEEE 29119 SW 테스팅 국제 표준에서 정의하는 테스트 케이스 설계 기법(경계값 분석 등)을 적용한다.

8. 의사소통 계획

프로젝트 진행을 원활하게 수행하기 위하여 필요한 일간/주간/월간 등의 회의 종류와 의사소통을 위한 도구 설정 등을 기술한다.

예) SamePage, 네이버 밴드 등 일정 관리, 상호 communication 등 프로젝트 관리에 적합한 도구를 선택하여 온라인 프로젝트 진행 (오프라인 회의 없이 진행해야 함)