< 소프트웨어 생명주기 모델 >
- 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
- 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때까지 어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화한 것
< 소프트웨어 생명주기 모델 종류 >
① 폭포수 모델 : 고전적 생명주기 모델, 요구사항 변경 어려움
② 프로토타이핑 모델 : 고객 요구 주요 기능 프로토타입으로 구현, 피드백 반영 -> 소프트웨어 개발
③ 나선형 모델 : 계획 및 정의 -> 위험분석 -> 개발 -> 고객 평가
④ 반복적 모델 : 병렬적으로 개발 후 통합 or 반복적으로 개발하여 점증 완성
< 애자일>
- 애자일 방법론은 절차보다 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론이다
< 애자일 방법론의 유형>
1. XP(eXtrme Programming)
- 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
- 1~3주의 반복(Iteration) 개발주기를 가짐
1.1. 5가지 가치
① 용기(Courage): 용기를 가지고 자신감 있게 개발
② 단순성(Simplicity): 필요한 것만 하고 그 이상의 것들은 하지 않음
③ 의사소통(Communication): 개발자, 관리자, 고객 간의 원활한 소통
④ 피드백(Feedback): 의사소통에 대한 빠른 피드백
⑤ 존중(Respect): 탐원 간의 상호 존중
1.2. 12가지 기본원리
① 짝 프로그래밍(Pair Programming): 개발자 둘이서 짝으로 코딩하는 원리
② 공동 코드 소유(Collective Ownership): 시스템에 있는 코드는 누구든지 언제라도 수정가능하다는 원리
③ 지속적인 통합(CI; Continuous Integration): 매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리
④ 계획 세우기(Plannning Process): 고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려 주어야 한다는 원리
⑤ 작은 릴리즈(Small Release): 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다는 원리
⑥ 메타포어(Metaphor): 공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 한다는 원리
⑦ 간단한 디자인(Simple Design): 현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리
⑧ 테스트 기반 개발(TDD; Test Driven Develop): 작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
⑨ 리팩토링(Refactoring): 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다는 원리
⑩ 40시간 작업(40-Hour Work): 개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아야 한다는 원리
⑪ 고객 상주(On Site Customer): 개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 포로젝트에 풀타임으로 상주시켜야 하다는 원리
⑫ 코드 표준(Coding Standard): 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해햐 한다는 원리
2. 스크럼(Scrum)
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
2.1. 주요개념
① 백로그(Backlog): 제품과 프로젝트에 대한 요구사항
② 스프린트(Sprint): 2~4주의 짧은 개발 기간으로 방복적 수행으로 개발품질 향상
③ 스크럼 미팅(Scrum Meeting): 매일 15분 정도 미팅으로 To-Do List 계획 수립, 데일리 미팅이라고도 함
④ 스크럼 마스터(Scrum Master): 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
⑤ 스프린트 회고(Sprint Retrospective): 스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인 및 기록
⑥ 번 다운 차트(Burn Down Chart): 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트, 백로그는 보통 수직축에 위치하며 시간은 수평축에 위치
3. 린(LEAN)
- 도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론
- JIT(Just In Time), 칸반(Kanban) 보드 사용
- 7가지 원칙: 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
< 비용산정 모델 분류 >
1. 하향식
2. 상향식
< 비용산정 모형 종류>
1. LoC(Lines of Code) 모형
2. Man Month 모형
3. COCOMO(COnstructive COst MOdel) 모형
4. 푸트남(Putnam) 모형
5. 기능점수(FP; Function Point) 모형
< 일정관리 모델 종류 >
1. 주 공정법(CPM)
2. PERT
3. 중요 연쇄 프로젝트 관리(CCPM)