사이드 프로젝트/CafeMate프로젝트(SpringBoot)

8주차 CafeMate 개발 프로세스 다시 정립

EVO. 2023. 4. 24. 14:45

소프트웨어 생명주기는 요구사항 분석=> 설계=>구현=> 테스트=>유지보수 로 이루어집니다. 앞으로 이 프로세스를 진행하는데 이 주기를 지켜야 할 것 입니다.

현재 문제점...

 

현 단계에 저희는 요구사항 분석(요구사항 수집후 명세서 작성)이 끝나서 이제 설계를 건너뛰어 구현을 바로 할 생각이었습니다.

하지만 요구사항 명세서가 어느정도 작성되었지만 이해관계자들이 이 명세서를 봤을 때 과연 이해를 할 수 있을까? 또한 내가 이 명세서만을 보고서 구현이 쉽고 빠르게 이루어질까? 하는 생각이 들었습니다.

 

그래서 이러한 문제점때문에 그동안 작성한 것들을 바탕으로 빠른 시간내에 수정작업을 할 것 입니다.

 


요구사항 분석 전  모델 채택 : 애자일 프로세스

 

일단 소프트웨어 공학 관점을 지키기 위해 소프트웨어 생명주기를 가지면서 사용자들이 꾸준히 피드백을 줄 수 있는(고객들에 가치를 두는) 애자일 프로세스를 채택합니다.

 

애자일 프로세스란?

반복적이고 점진적인 개발 방법으로 프로젝트 개발주기를 1~4주로 이터레이션을 여러번 진행합니다.

한 이터레이션이 끝나면 일부 기능이 구현된 소프트웨어가 나옵니다.

이러한 장점은 프로젝트가 이상한 방향으로 가기전에 1~4주마다 피드백을 줄 수가 있습니다.

 

이로서 이해관계자들이 다 완성된 형태의 프로젝트를 보는 것보다 빠른시기에 중간완성된 결과의 프로젝트를 보며 꾸준히 피드백을 줄 수 있을것이고 저희 또한 지속적으로 요구사항을 받아들이고 수정하면서 더 완성된 프로젝트를 향해갈 수가 있을 것 입니다.

 


요구사항 분석 수정

요구사항 분석의 첫 시작은 요구사항 수집 후 정의서를 작성하는 것 입니다.

일단 이 정의서는 그동안 계속 어느정도 작성이 되었기에 그리고 또한 애자일 프로세스 방식을 채택했기에 나중에 다시 수정할 수 있으므로 일단 그대로 가져가기로 합니다.

 

요구사항 정의서

1. 이해관계자 선정: 소규모카페운영사업자(관리자), 고객(회원,비회원), 매니저

 

이들에게 다양한 요구사항을 받아야하지만 일단 저희가 직접 고객이 되고 관리자가 되면 어떨지에 대한 생각을 하여 요구사항을 작성했습니다. 추후에 한 이터레이션이 끝나면 이들에게 직접 요구사항을 받아내야 할 것 입니다. 따라서 지금은 가장 기본적인 요구사항만이 작성될 것 입니다.

 

- 요구사항 수집 방법(나중에 이중에서 채택): 인터뷰, 관계자 회의, 브레인 스토밍, 직접 고객이 되기, 자료조사 및 문서 분석, 설문, 웹크롤링(SNS 등)

 

2. 요구사항 도출 

 

3. 요구사항 분류(기능요구사항과 비기능 요구사항으로 분류)

이미 적었던 기능 요구사항을 보고 추후에 명세화 단계에서 유스케이스 다이어그램이나 유스케이스 기술서 등으로 모델링 할 것 입니다.

비기능요구사항에는 제약사항과 품질등을 적어야 하는데 프로젝트를 진행해 본적이 없었기에 구체적으로 작성하지는 않았습니다.

더보기

요구사항 정의서

1. 개요

   

1.1 CafeMate 프로젝트 개요

     

체계적인 고객 관리 시스템은 프렌차이즈 카페 등에서는 갖추어져 있지만, 소규모 업장에서는

자본과 능력 부족으로 관리에 어려움을 겪는 경우가 많습니다. 이러한 소규모 업장들은

전체 시장에서 꽤 많은 지분을 차지하고 있지만, 그런 업장들에게 도움을 줄 수 있는 서비스가

실질적으로 대두되고 있지 않습니다.

따라서, 이러한 소규모 업장들을 위하여 간편하게 이용할 수 있는 고객 관리 웹 서비스를 제공함으로써, 고객 관리에 대한 어려움을 해결하고, 업장의 경쟁력을 강화하는 것이 저희의 목적입니다.

이를 통해, 소규모 업장들도 체계적인 고객 관리를 할 수 있는 기회를 제공하고, 기업은 더 나은 고객 서비스와 이로 인한 수익성 증대를 기대할 수 있습니다.

 

 

2. 요구사항

 

2.1 기능적 요구사항

 

요구ID 구분 요청사항 설명 비고란
MEMREQ-001 로그인(회원,관리자,매니저) 회원 또는 관리자 또는 매니저 의 경우 아이디와 비밀번호 로그인 할 수 있도록 함    
MEMREQ-002 로그인(비회원) 로그인페이지에서 회원가입 버튼을 눌러 회원가입페이지로 이동하도록 함    
MEMREQ-003 회원가입(비회원) 비회원은 회원가입 페이지에서 아이디,비밀번호,이메일,이름,연락처,별칭, 관리자 여부라디오버튼 선택을 하고 제출할수 있도록 함    
MEMREQ-004 회원 정보 수정 이름을 제외한 모든 정보 변경 가능하게함    
MEMREQ-005 회원탈퇴 회원정보수정페이지에서 회원탈퇴 버튼을 누르면 팝업박스로 한번 더 확인, 비밀번호 입력 후 회원 탈퇴(정보 전부 삭제)    
MEMREQ-006 로그아웃(회원) 로그아웃 기능    
MEMREQ-007 회원관리페이지 진입 메뉴(멤버(관리자,매니저)) 멤버만 이 메뉴가 나타남   회원,비회원은 접근 금지
MEMREQ-008 회원관리페이지(정적페이지) 이름,전화번호,이메일을 가진 회원의 표가 나타남   회원,비회원은 접근 금지
MEMREQ-009 회원관리페이지 검색기능 이름으로 검색하면 그 회원만의 이름,전화번호,이메일이 보임   회원,비회원은 접근 금지
ITEMREQ-001 상품목록페이지 등록한 상품의 목록이 표시됨 각 목록에는 상품명,상품종류,판매가,판매여부,등록일이 표시됨    
ITEMREQ-002 상품목록페이지 각 목록은 수정 및 삭제 가능함   회원,비회원은 비활성화
ITEMREQ-003 상품목록페이지 상품등록 버튼을 누르면 상품등록페이지로 이동할수 있게함   회원,비회원은 비활성화
ITEMREQ-004 상품등록페이지 멤버는 상품등록페이지에서 상품명,상품종류,판매가를 등록함 DB에서는 추가적으로 등록일과 판매여부도 등록되어야함  
ITEMREQ-005 회원,비회원주문페이지 해당 페이지에서 판매되고 있는 상품의 목록(상품명,가격)과 구매버튼이 활성화되있음    
ITEMREQ-006 회원,비회원주문페이지 회원또는비회원은 구매버튼을 누르면 해당 물품에 대해 결제페이지로 이동함    
ITEMREQ-007 주문현황 리스트 회원또는 비회원이 구입한 물품명,주문고객,주문수량,주문일자(시간),메뉴ID가 목록으로 나타남    
ITEMREQ-008 주문현황 리스트 주문목록의 우선순위는 가장 먼저 시킨 사람이 먼저 위로 나오도록 해야함   회원,비회원은 해당 페이지 비활성화
ITEMREQ-009 주문현황 리스트 목록을 지울 수 있는 버튼을 누르면 해당 목록이 지워짐    

 

 

2.2 비기능적 요구사항

 

2.3 gpt가 작성한 기능 요구사항 (추후에 이용할 예정)

 

MEMREQ-020 회원 알림 메시지 관리자 또는 매니저가 회원에게 알림 메시지를 보낼 수 있음 알림 메시지는 회원 로그인 시 팝업창으로 표시됨

MEMREQ-021 매출 통계 멤버는 매출 통계 페이지를 통해 일/주/월 단위로 매출 통계를 조회할 수 있음 매출 통계는 그래프와 표로 나타남

MEMREQ-022 고객 관심 상품 등록 회원은 상품 상세 페이지에서 상품을 관심 상품으로 등록할 수 있음 관심 상품은 회원 마이페이지에서 조회 가능함

MEMREQ-023 고객 관심 상품 삭제 회원은 관심 상품 목록에서 관심 상품을 삭제할 수 있음

MEMREQ-024 상품 리뷰 등록 회원은 상품 상세 페이지에서 상품 리뷰를 등록할 수 있음 리뷰는 별점과 함께 작성 가능함

MEMREQ-025 상품 리뷰 수정/삭제 회원은 자신이 작성한 상품 리뷰를 수정/삭제할 수 있음

MEMREQ-026 상품 Q&A 등록 회원은 상품 상세 페이지에서 상품 Q&A를 등록할 수 있음 Q&A는 관리자 또는 매니저가 답변을 작성할 수 있음

MEMREQ-027 상품 Q&A 답변 등록 관리자 또는 매니저는 상품 Q&A에 대한 답변을 등록할 수 있음

MEMREQ-028 상품 Q&A 수정/삭제 회원은 자신이 작성한 상품 Q&A를 수정/삭제할 수 있음

MEMREQ-029 상품 Q&A 답변 수정/삭제 관리자 또는 매니저는 자신이 작성한 상품 Q&A 답변을 수정/삭제할 수 있음

MEMREQ-030 주문 페이지 접근 회원은 상품 상세 페이지에서 상품을 주문할 수 있음 주문 페이지에서는 수량, 결제 방법 등을 선택할 수 있음

MEMREQ-031 주문 내역 조회 회원은 주문 내역 페이지에서 자신의 주문 내역을 조회할 수 있음 주문 내역에는 주문 상품, 결제 금액, 주문 일자 등이 표시됨

MEMREQ-032 주문 취소 회원은 주문 내역 페이지에서 주문을 취소할 수 있음

MEMREQ-033 주문 상태 변경 관리자

 

 

 

요구사항 명세서

이제 작성한 요구사항 정의서를 바탕으로 모델을 이용한 명세서를 작성합니다. 모델로 정의함으로서 실제 모습을 미리 확인할 수 있으며 개발 소프트웨어의 범위나 개략적인 구조와 기능을 이해할 수 있습니다.

 

모델화 기법중 UML 다이어그램을 사용할 것이며 UML의 장점으로는

1. 실제 실행되는 모습이 눈에 딱 들어올 수 있습니다.

2. 요구사항 분석 모델을 보는 순간 머리속으로 소스코드가 보이게 합니다.

3. 모델은 요구사항을 더욱 구체화시키고 가시화하며 원할하게 요구사항을 분석할 수 있게 합니다.

4. 변수명도 이 다이어그램을 보고 50프로 이상은 결정됩니다.(이건 정말 장점..!)

 

UML을 채택한 이유는 객체지향 모델링을 위해 개발된 대표적인 표준 모델링 방법 입니다.따라서 자바를 사용할 저희는 딱 맞는 선택입니다. 또한 UML을 통해 모델링을 하면 자연스레 객체지향모델링을 하는 것이기 때문에 따로 설계단계를 가질 필요가 없습니다.

 

UML다이어그램 중에 저는 가장 핵심이 되고 쉬운 유스케이스 다이어그램을 사용할 것 입니다.

유스케이스 다이어그램은 사용자의 관점에서 시스템의 서비스와 기능을 시각적으로 표현하여 이해하기 쉽게 합니다.

유스케이스 다이어그램을 사용하기 위해 Enterprise Architect 툴을 사용합니다.

 

시각적으로 표현을 하여 다른 이해관계자들이 한눈에 볼 수 있도록 하였습니다(지금은 무료버전이지만 나중에 익숙해지거나 더 좋은 툴을 발견하면 그때 해결할 생각 입니다)

 

 

이번 유스케이스는 가장 기본적인 것만을 구성하였으며 시나리오는 작성하지 않았습니다.

시나리오는 각 페이지 혹은 컴포넌트를 구현 하기 직전에 시나리오를 구성할 생각 입니다.