소프트웨어 생명주기
- 요구사항분석
- 기능, 제약조건, 목표, 명확하게 정의
- 요구명세서 작성
===============================================================================
소프트웨어 개발단계
- 요구사항분석 (Analysis)
· 사용자의 관점에서 시스템의 요구사항을 수집 합니다.
· 사용자, 요청자의 요구사항을 정리하는 단계입니다.
· 기능(function), 성능(performance), 인터페이스(interface) 요구사항 등이 포함됩니다. (기능요소와 비기능요소의 요구사항 파악 필요)
· 아키텍처를 설계하는데 필수적인 사항인 성능, 가용성, 확장성, 보안 및 안정성에 대한 사용자 요구사항 도출합니다.
· 정보 시스템 구축 용역사업과 같이 요청자와 구축사업자가 다른 경우 '제안요청서'의 내용은 중요한 요건정의 사항이 됩니다.
· '업무분석' 이라고도 합니다. 요구사항 정리를 토대로 시스템 구축사항에 맞도록 분석하는 단계입니다.
· 분석 단계 작업시 타당성 조사도 필요합니다. (누락된 요구사항이 없는가?, 해당 요구사항은 제한된 사항에서 구현 가능한 것인가?등)
· 사용자의 요구사항과 시스템의 기능이 문서화된 산출물인 요구사항 명세서 (Requirements Specification)을 생성합니다.
· 요구사항 명세서는 프로젝트관련 모든 사람이 읽고 이해하기 쉽도록 작성되어야 합니다.
· 요구사항 명세서는 고객과 개발회사간의 계약서라고 할 수 있습니다.
- 설계(Design)
· 요구사항 분석단계에서 산출된 요구사항들을 설계도면에 옮기는 과정.
· 분석과정은 개념적 단계, 설계과정은 물리적 단계라고 할 수 있다.
. 분석과정은 What, 설계과정은 How 하는지에 대한 관점.
. 설계는 구현될 시스템의 성능에 직접적인 영향을 주게 된다.
- 개발, 구현
· 설계의 결과를 사용자가 사용할 수 있는 형태로 변환하는 과정.
· 시스템의 기능이 수행 가능한 형채로 나타나며 이 과정을 '코딩' 이라고 한다.
. 구현단계에서 복잡성과 발생되는 문제점의 대부분은 분석/설계가 잘못되어 있는 경우가 많다. -> (요구사항분석과 설계에 많은 시간과 투자가 되어야 한다.)
- 시험 테스트
· 시스템의 오류를 발견하고 수정하는 단계
. 공식적, 비공식적으로 어떠한 방법이든 오류 검출하기위해 테스트 수행해야함!
. 시험 요구사항분석, 설계, (개발, 구현)의 모든 과정에 대한 최종점검을 의미
. 테스트의 최종목적은 에러를 발견하는 것! -> 발견하면 에러 예찬!(성공이구나!)
- 유지보수
. 시스템은 개발 때부터 유지보수에 대비하여 만들어야 한다.
. 기본 시스템이 부실하게 설계되고 문서화되어 있지 않는 경우에는 유지보수 자체가 불가능할 수 있다.
https://studying-playing-ai.tistory.com/135
https://blog.naver.com/nasu0210/223306685205
https://github.com/RynuRen/face_recognition?tab=readme-ov-file
https://giveme-happyending.tistory.com/199#article-1--목차