[ 정처기 실기 ] 요구사항 확인 #1 / 소프트웨어 개발방법론
1. 소프트웨어 생명주기(SDLC)
- 시스템의 요구사항부터 유지보수까지 전 공정을 체계화한 절차
[단계 - 요설구테유]
1) 요구사항 분석
2) 설계
- 시스템 명세 단계에서 정의된 기능이 실제 수행 될 수 있도록 논리적으로 결정하는 단계
3) 구현
4) 테스트
5) 유지보수
2. 소프트웨어 개발 모델
1) 폭포수 모델
- 각 단계를 확실히 마무리 지은 다음, 다음 단계로 넘어가는 모델
2) 프로토타이핑 모델
- 고객의 요구사항을 프로토타입으로 구현하고 고객의 피드백을 반영하여 개발해 나가는 방법
3) 나선형 모델
- 개발 진행시 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
4) 반복적 모델
- 구축 대상을 나누어 병렬적으로 개발 후 통합, 반복적으로 개발하여 점증 완성하는 모델
3. 방법론
1) 구조적 방법론
- 기능에 따라 나누어 개발 후 이를 통합하는 분할과 정복 접근 방식의 방법론
2) 정보공학 방법론
3) 객체지향 방법론
- 객체를 기본단위로 시스템을 분석 설계 / 사람이 이해하는 방식으로 시스템에 적용하는 방법론
4) 컴포넌트 기반 방법론(CBD)
5) 애자일 방법론
- 사람중심 / 변화에 유연하고 신속하게 적응
6) 제품 계열 방법론
- 특정 제품에 적용하고 싶은 공통된 기능 정의하여 개발하는 방법론
4. XP 12가지 가치
1) 짝 프로그래밍
- 개발자 둘이서 짝으로 코딩하는 원리
2) 지속적인 통합(CI)
- 매일 여러번 소프트웨어를 통합하고 빌드해야한다는 원리
3) 메타포어
- 공통적인 이름 체계와 시스템 서술서를 퉁해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
4) 테스트 기반 (TDD)
- 프로그램에 대한 테스트를 먼저 진행하고 통과할 수 있도록 실제 프로그램 코드를 작성하는 원리
5) 리팩토링
6)공동코드소유
7) 계획 세우기
8) 작은 릴리즈
9) 간단한 디자인
10) 40시간 작업
11) 고객 상주
12) 코드 표준
5. 애자일 방법론
1)XP
- 의사소통과 즉각적 피드백으로 소프트웨어 품질 높이는 방법론
2) 스크럼
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
3) 린
- 도요타의 린 시스템 픔질기법 / 낭비 요소를 제거하여 품질을 향상
6. 델파이 기법
- 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법
7. 비용 산정 방식
1) LoC
2) Man Month
3) COCOMO
- 보헴 / 프로그램 규모에 따라 비용 산정
4) 푸트남
- 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 방식
5) 기능점수(FP)
- 요구 기능을 증가시키는 인자별로 가중치를 부여, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정
8. 일정 관리 기법
1) 주 공정법(CRM)
- 여러 작업들의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 방법
2) PERT
- 일의 순서를 계획적으로 정리하기 위한 수렴 기법 / 비관치, 중간치, 낙관치의 3점 추정 방식을 통해 일정 관리하는 기법
3) 중요 연쇄 프로젝트 관리 (CCPM)
- 주 공정 연소법 / 자원졔약사항을 고려하여 일정을 작성하는 기법