소프트웨어공학 프로젝트 계획서 (O분반-O조)

기본 사항
교과목명	소프트웨어공학	담당교수	이종민
프로젝트명	강의실 예약 시스템: [부제]
팀구성원 (학번/성명)	구성원: 홍길동(학번), ...

1. 프로젝트 개요

1.1 비전

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

1.2 이해당사자 요구사항

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

예)

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

1.3 시스템 범위

기존 시스템에서 시스템 기능과 관련된 목록을 표 형태로 기술한다.

연번	우선순위	특징 목록	유형
F-01	5	프레임웍은 다양한 타입의 지형을 지원한다.
F-02	2	프레임웍은 게임의 특성에 맞는 여러 타입의 부대들 또는 유닛을 지원한다.
F-03	1	프레임웍은 사각형의 타일로 구성된 보드를 제공하고 각 타일은 지형 유형을 가지고 있다.

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

예)

1.4 관련 기술

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

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

2. 개발 내용

유스케이스 다이어그램에 있는 주요 시스템 기능이 실행되는 절차를 간략하게 기술한다. 이 절차는 향후 분석 단계에서 유스케이스 형식에 맞게 작성해야 한다.

(참고) 강의실예약시스템-개요

- 시스템 범위 초안

- “빈 강의실 예약” 시스템 순차 다이어그램(SSD)

3. 개발 프로세스

개발 시 적용할 프로세스를 간단하게 기술한다. (폭포수 모형, 스크럼, UP 등의 개발 프로세스 중에서 선택하면 됨.) --> 이번 프로젝트에서는 Unified Process(UP)를 기본적으로 채택하므로 UP의 단계와 단계별 산출물에 대하여 조사한 내용을 간략하게 기술한다.

4. 팀 구성

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

5. 시험 계획

강의실 예약 시스템 요구사항에 맞게 올바르게 구현하였음을 확인할 수 있도록 (자동화된) 시험 계획을 기술한다.

6. 일정 계획

6.1 WBS

개발을 위한 소작업을 정의하고 의존성과 소요기간을 산정한다.

6.2 최소 소요기간 산정

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

6.3 간트 차트

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

7. 현실적 제한조건 분석

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

항목	내 용
생산성	개발 과정에 생산성을 높일 수 있는 도구를 적용하였는지, 그리고 산출물을 활용하여 기존 시스템에 비해 생산성을 높일 수 있는지를 기술한다.
	NetBeans IDE의 maven 빌드 도구를 사용하여 라이브러리 설치를 자동으로 하게 하였으며, FindBugs 정적 분석 도구를 사용하여 발견된 주요 결함(major 이상)을 제거하였다. 개발된 프로그램을 사용하면 학생들의 성적 증명서를 입력으로 하여 졸업 이수요건을 자동으로 검증하게 하여 기존 수작업에 비하여 소요시간 측면에서 비교불가할 정도로 빠른 처리가 가능하다 기존의 클래스만을 대상으로 하는 프로그래밍의 한계를 극복하고 보다 좋은 구조를 가지는 프로그램을 제작하여 생산성을 높인다.
산업표준	개발 프로세스나 개발 산출물에 산업표준/국가표준/국제표준을 고려하였는지 기술한다.
	개발 프로세스로 애자일 개발 방법론인 스크럼을 사용한다. 개발 단계에서 테스팅시 ISO/IEC/IEEE 29119 SW 테스팅 국제 표준에서 정의하는 테스트 케이스 설계 기법(경계값 분석 등)을 적용한다. 객체지향 분석, 설계의 기본 요소인 클래스 표기 방법인 UML을 이해하고, 클래스의 구조를 디자인 패턴에 맞게 표현할 수 있어야 한다.
기타	위에서 기술한 항목 외에 반영된 현실적 제한 조건을 기술한다.

8. 의사소통 계획

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

9. 형상관리 계획

프로젝트 진행을 원활하게 수행하기 위하여 프로젝트 산출물에 대한 형상관리 계획을 기술한다.