프로그래밍 개발 및 IT관련 프로젝트에서 워터폴(폭포수) 모델의 상류공정을 기준으로 설계의 흐름 및 산출물에 대한 정리임. (한국어와 일본어 용어의 번역이 부자연스러울수도??)
참고는
@chocode - システム設計の流れ・設計書の構成メモ
상류공정은 크게 <요구(요건)정의>👉<외부설계>👉<내부설계> 순으로 진행됨.
[요구정의]
개발하는 시스템 및 서비스에 요구되는 기능 및 조건을 정리하는 단계.
예를 들면, 다음과 같은 것들이다.
- 패스워드 인증을 포함한 회원관리 기능
- 데이터베이스 내부의 자료를 검색
- 입력자료 및 출력자료의 사양
- 업무 플로우
- 처리속도 및 처리용량, 유지보수성, 조작성 등의 비기능적인 요구사항
RFP(제안의뢰서) 작성 및 사전조사를 통해서 실제로 필요한 요건을 정리해 나간다.
이 과정에서 정리된 내용에 기반해서 개발을 진행하게 되므로 제대로 요건을 정의해두면 누락 및 중복을 피할 수 있다.
요구정의를 할 때는 필수적으로 고려해야 하며 확실하게 보증을 해야하는 항목이 중심이 되어야 하며, 인터페이스 디자인 등 개발업체 쪽에서 결정해도 문제가 되지 않는 부분은 외부설계 단계에서 취급한다.
이 단계에서 만들게 되는 산출물은
요구정의서 혹은
요건정의서라고 한다.
여러가지 양식이나 내용이 있지만 최소한 명시되어야 하는 항목은 다음과 같다.
- 시스템 개요
- 무엇을 하는 시스템인가??
- 왜 이 시스템이 필요한가??
- 이 시스템의 목표는 무엇인가??
- 시스템 구성도
- 시스템 개념도
- 시스템의 업무 플로우 혹은 시나리오
- 유스케이스 다이어그램
- 기능요건(요구)
- 입력 및 출력요건
- 입력데이터 일람
- 각 입력데이터의 상세(데이터항목, 파일형식 등)
- 출력데이터 일람
- 각 출력데이터의 상세(데이터항목, 출력형식 등)
- 비기능요건
- 그 외
[외부설계]
클라이언트로 부터 요구사항을 명확하게 확인한 후, 요건정의서에 따라서 시스템의 구성을 구체적으로 설계하는 단계이다.
이 단계에서는 개발하는 입장 및 시각에서 여러가지 사항을 정리하고 세부적인 내용을 결정하고 상술한다.
이 단계에서는 크게 3가지 설계를 하고, 각 단계별로 설계서를 산출한다.
3가지 설계는
[방식설계], [기능설계], [추가설계] 로 나누어서 볼 수 있다.
[방식설계] 는 흔히 아키텍쳐 설계라고도 불린다.
무엇을 사용해서,
어떤 공정을 거쳐서,
어떤 시스템을 만들것인가?? 를 순차적으로 설계하는 단계라고 볼 수 있다.
- 무엇을 사용할까??
- 개발방침을 결정함.
- 하드웨어, 소프트웨어 등의 구성 및 선택
- 규모가 큰 프로젝트인 경우, 개발언어 및 툴, 플랫폼 등을 결정함.
- 어떤 공정을 거칠까??
- 어떤 시스템을 만들까??
[기능설계] 는 시스템을 모듈단위로 나눈 후, 각 모듈의 외부사양을 설계하는 단계이다. UML 다이어그램을 활용하는 경우가 많다. 내부사양의 설계는 후술하는 [내부설계] 단계에서 진행한다.
- 화면이동 다이어그램
- 화면레이아웃 (인터페이스) 설계도
- 시나리오
- 비지니스 로직
- 기능 일람
- 데이터베이스 설계
[추가설계] 는 위 두가지 설계에서 누락되거나 추가적으로 설계할 항목을 정리한다.
- 세큐리티 설계
- 운용 설계
- 네트워크 설계
- 테스트 설계
위의 3가지 설계과정을 마친 후, 외부설계가 완료될 즈음에 결정된 사항을 정리해서 문서화 한 산출물이
[기본설계서]가 되겠다. (프로젝트에 따라서 항목은 달라질 수 있음.)
- 시스템 개요
- 시스템 구성
- 시스템 구성도
- 업무 플로우 및 액티비티 다이어그램
- 하드웨어 & 소프트웨어 구성도
- 네트워크 구성도
- 기능 일람
- 데이터베이스 사양
- UI 설계
- 화면이동 다이어그램
- 화면레이아웃 (인터페이스) 설계도
- 그 외
- 개발 체계
- 개발 스케쥴
- 프로젝트 관리방법 및 도구
작성이 끝난 기본설계서는 프로젝트 맴버는 물론, 클라이언트와 함께 리뷰를 하며 누락되거나 오기된 사항이 없는지 필히 확인하고 승인을 받는 것이 중요함.
[내부설계]
내부설계 단게에서는
어떤 모듈을 만들어서 시스템을 구성할 것이며, 그
모듈의 내부는 어떻게 생기고 어떻게 움직이는가?? 를 중점적으로 설계하게 된다. 내부설계서는 SE 와 PG 가 리뷰하며 클라이언트에는 제출하지 않는 것이 보통이다.
내부설계서는 보통 각 모듈별로 사양서를 만든다. 규모 및 필요에 따라서는 각 모듈별 사양서를 합쳐서 하나의 문서로 정리하기도 하는 듯.
- 모듈설계 (기능별 설명)
- 데이터 플로우
- 모듈상세설계
- 모듈명
- 역활
- 인수 및 리턴값
- 처리개요 및 처리내용
- 참고사항
내 목표는 프로젝트 관리자 이긴 하지만 개발을 전혀 할 줄 모르면 위의 과정을 설계하거나 견적을 낼 수가 없으니 곤란함..물론 개발자에게 물어보거나 참고할 과거실적 등이 있으면 좋지만 그게 근거가 되지는 못하니 스스로가 각 설계과정을 실제적으로 진행하고 기록을 남기고 피드백 하는 게 가장 필요함. 화이팅 합시다.
댓글
댓글 쓰기