정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리중심의 방법론
- 타당성 검토 → 계획 → 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수
정보시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data) 중심의 방법론 → 대규모 정보 시스템 구축에 적합
현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 구성 요소: 객체(Object), 클래스(Class), 메시지(Message), 메소드(Method)
- 기본 원칙: 캡슐화, 상속성, 다형성, 추상화, 정보 은닉
기존 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션으로 만드는 방법론
- 재사용이 가능해 시간과 노력을 절감할 수 있다.
- 새로운 기능 추가가 쉬운 확장성
- 개발 기간 단축으로 인한 생산성 향상
"민첩한", "기민한" , 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
- XP, Scrum, Kanban, Crystal 등
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
임베디드 소프트웨어를 만들 때 적합
(임베디드 시스템이라고 불리는 소형 컴퓨터나 기기에 내장되어 작동하는 소프트웨어를 말합니다. 이러한 시스템은 자동차, 가전 제품, 휴대폰, 의료기기, 산업 제어 시스템 등 다양한 분야에서 사용됩니다.)
소프트웨어 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 산정하는 것
- 하향식 비용 산정, 상향식 비용 산정
프로젝트 요소 - 제품 복잡도, 시스템 크기, 요구되는 신뢰도
자원 요소 - 인적 자원, 하드웨어 자원, 소프트웨어 자원
생산성 요소 - 개발자 능력, 개발 기간
과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법
- 전문가 감정 기법, 델파이 기법
두 명 이상의 전문가에게 비용 산정을 의뢰하는 방법
- 새로운 프로젝트에는 과거 프로젝트와 다른 요소들이 있다는 것을 간과할 수 있음
- 새로운 프로젝트와 유사한 경험이 없을 수 있음
- 개인적이고 주관적일 수 있음
전문가 감정 기법의 주관적인 편견을 보완하기 위해 한 명의 조정자와 여러 전문가의 의견을 종합하여 산정
프로젝트 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
- LOC(원시 코드 라인수)기법, 개발 단계별 확인 기법, 수학적 산정 기법(COCOMO, Putnam 모형, 기능점수 모형)
소프트웨어 원시 코드 라인수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 활용하여 비용을 산정
LOC 기법을 보완하기 위해 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정, LOC 기법보다 정확
비용 견적의 강도 분석 및 비용 견적의 유연성이 높아 소프트웨어 개발비 견적에 널리 통용되고 있음
- 같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 산정
- 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man-Month)으로 나타남
Organic, Semi-Detached, Embedded 나오면 무조건 COCOMO
소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형
- 생명 주기 예측 모형이라고도 함
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
- SLIM: Rayleigh-Norden 곡선과 Putnam 예측 모형을 기초로 개발된 자동화 추정 도구
소프트웨어 기능을 증대시키는 요인별 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능점수를 산출하며 총 기능점수와 영향도를 이용하여 기능점수(FP)를 구한 후 이용해서 비용을 산정하는 기법
- ESTIMACS: 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기초로 개발된 자동화 추정 도구
- 자료 입력(입력 양식)
- 정보 출력(출력 보고서)
- 명령어 (사용자 질의수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스
주어진 기간 내 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
- 일정 관리: 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
- 비용 관리: 비용 산정, 비용 예산 편성, 비용 통제
- 인력 관리: 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
- 위험 관리: 위험 식별, 위험 평가, 위험 대처, 위험 통제
- 품질 관리: 품질 계획, 품질 보증 수행, 품질 통제 수행