소프트웨어 프로세스가 어떻게 진행되는지에 대해서 알아보자.
첫 번째로는 무엇을 만들지 정의를 해야한다.
다음과 같은 정의를 함으로 핵심 요구사항을 파악할 수 있다.
- 시스템 또는 정보 엔지니어링
- 프로젝트 관리 - 계획 및 스케줄링
- 요구 사항 분석
두 번째는, 어떻게 만들지 정의를 해야한다.
다음과 같은 정의를 해야한다.
- 소프트웨어 설계
- 코드 생성
- 소프트웨어 테스트
세 번째는, 유지하고 관리하는 것이다.
다음과 같은 정의를 함으로 변경사항을 파악할 수 있다.
- 결함 수정
- 외부 환경 및 비즈니스 규칙에 대한 적응
- 추가 기능 향상
Work Product를 어떻게 만들지 의논하고 양식을 결정하는 방식.
주요 작업
- 프로젝트 관리 - 추적 및 제어
- 공식적인 기술 검토
- 품질 보증
- 구성 관리
- 제품 준비 및 생산(예: 문서화)
- 재사용성 관리
- 측정
- 위험 관리
CMMI는 능력 성숙도 통합 모델로,
이 수치를 측정하여 회사를 평가할 수 있다.
Initial -> Repeatable -> Defined -> Managed -> Optimizing
소프트웨어 제품이 구상되고 사용되지 않을 때까지의 기간.
친구와 함께 시나리오를 작성하여 클라이언트와 대화하듯 처리하여 간단히
만든 스프레드 시트이다. 요구사항명세서를 작성하고, 개발 기간과 비용을 정했다.
유지보수 유형은 다음과 같다.
매우 빠르고 신속하게 어플리케이션을 개발하는 것을 말한다. RAD 모델은 속도와 유연성을 중시하여 빠르게 변화하는 요구 사항에 대응할 수 있는 현대적인 접근 방식을 제공한다.
프로토타이핑 모델은 소프트웨어 개발 방법론 중 하나로, 실제 개발 시작 전에 소프트웨어 요구 사항을 이해하고 검증하기 위해 초기 모형(프로토타입)을 만들어 사용자 피드백을 받는 과정을 포함합니다. 이를 통해 최종 제품의 설계와 요구 사항을 더 명확히 할 수 있습니다.
장점:
요구사항 도출이 용이하여 시스템의 이해와 품질을 향상시킬 수 있습니다.
개발자와 사용자 간의 의사소통이 원활하게 이루어집니다.
사용자의 명확한 요구사항 파악으로 인한 개발 위험을 감소시킵니다.
단점:
의사소통과 문서 관리의 어려움이 있습니다.
프로토타입을 너무 실제 제품처럼 다듬으려 하면 비용과 시간이 증가할 수 있습니다.
정의: 소프트웨어 개발을 순서대로 진행하는 단계적 접근 방식. 각 단계가 완료되어야 다음 단계로 넘어갈 수 있습니다.
장점: 단계별 명확한 구분과 문서화로 이해하기 쉽습니다.
단점: 변화에 유연하게 대응하기 어렵고, 초기 단계에서 요구사항을 모두 정확히 파악해야 합니다.
정의: 유연하고 반복적인 개발 방법론으로, 짧은 주기의 반복 과정(스프린트)을 통해 계속해서 개선해 나갑니다.
장점: 변화에 빠르게 대응할 수 있으며, 고객과의 지속적인 소통이 가능합니다.
단점: 끊임없는 고객 피드백 및 변경 요구에 따라 프로젝트 범위가 불명확해질 수 있습니다.
정의: 위험 관리에 초점을 두고 프로토타이핑과 워터폴 모델의 접근 방식을 결합한 모델입니다.
장점: 위험을 최소화하며 단계적으로 진행할 수 있습니다.
단점: 관리가 복잡하고, 비용과 시간이 많이 소모될 수 있습니다.
정의: 프로토타입을 폐기하지 않고 지속적으로 개발하고 개선해 나가는 모델입니다.
장점: 점진적 개선을 통해 사용자의 요구 사항을 반영할 수 있습니다.
단점: 초기에 프로토타입을 만드는 데 많은 노력이 필요하며, 전체적으로 높은 비용이 발생할 수 있습니다.
각 소프트웨어 개발 모델은 장단점을 가지고 있으며, 이를 잘 이해하고 프로젝트의 특성에 맞게 선택하는 것이 중요합니다. 프로젝트 요구사항, 기한, 예산 그리고 팀의 특성을 고려하여 가장 적합한 모델을 선택해 보세요!