STUDY/정보처리기사
[정보처리기사] 소프트웨어 개발방법론
✨sunee✨
2022. 6. 28. 21:11
소프트웨어 생명주기 (SDLC) 모델
소프트웨어 생명주기 개념
시스템의 요구분석 ~ 유지보수까지 전 과정 모델링
소프트웨어 생명주기 모델 종류
모델 | 설명 |
폭포수 모델 (Waterfall) | = 선형 순차적 모델, 고전적 생명주기 모델 각 개발단계를 마무리 지은후 넘어가는 모델 가장 오래됨, 성공사례 多, 단계벌 산출물 명확, 요구사항 변경 어려움 절차: 타당성 검토 > 계획 > 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수 |
프로토타이핑 모델 | 주요 기능을 프로토 타입으로 구현하고, 피드백을 반영해가는 모델 |
나선형 모델 (Spiral) | 위험을 최소화하기 위해 점진적으로 완벽한 시스템 개발 절차: 계획 및 정의 > 위험분석 > 개발과 검증 > 고객 평가 |
반복적 모델 (Iteration) | 반복적으로 개발해 점차 완성 |
소프트웨어 개발방법론 종류 (구정 객컴 애제)
개발방법론 | 설명 |
구조적 방법론 (Structured) |
전체 시스템을 나누어 개발하고 통합하는 분할 - 정복 방식의 방법론 프로세스 중심의 하향식 방법론 나씨-슈나이더만 차트 사용 - 논리의 기술에 중점을 둔 도형식 표현 방법 - 연속, 선택 및 다중선택, 반복 등 제어 논리 구조로 표현 - 복합된 조건의 처리를 식별하는데 적합 |
정보 공학 방법론 (Information Engineering) |
정보 시스템 개발에 필요한 절차를 체계화 대형프로젝트에 적합 |
객체 지향 방법론 (Object-Oriented) |
객체 단위로 시스템을 분석, 설계 하는 방법론 ( 객체 , 클래스 , 메시지 사용 ) |
컴포넌트 기반 방법론 (Componant Based) |
컴포넌트를 조립해 작성하는 방법론 ( keyword: 블록, 부품화 ) 개발기간 단축으로 인한 생산성 향상 새로운 기능 추가가 쉬움 ( 확장성 ) 재사용 가능 |
애자일 방법론 (Agile) |
절차보다는 사람이 중심, 변화에 유연한 경량 개발 방법론 |
제품 개열 방법론 (Product Line) |
임베디드 소프트웨어 작성에 유용 영역 공학 : 영역분석, 설계, 핵심자산 구현 응용 공학 : 제품 요구 분석, 설계, 구현 |
애자일 방법론 유형
XP (eXtreme Programing)
1~3주의 반복주기를 갖는 애자일 방법론
XP의 기본원리
종류 | 설명 |
Pair Programing | 짝 프로그래밍 |
Collective OwnerShip | 코드는 누구나 언제든 수정가능 |
Continuous Intergration | 여러번 소프트웨어 통합, 빌드 |
Planning Process | 고객이 원하는 가치를 정의하고 개발에 필요한것과 어떤부분에서 지연될 수 있는지 알려주어야 함 |
Small Release | 작은 시스템을 먼저 만들고 짧은 단위로 업데이트 |
MetaPhor | 공통 이름 체계, 시스템 서술서를 통해 의사소통을 원할히 함 |
Simple Design | 요구사항에 적합한 단순한 시스템을 설계 |
Test Driven Develop | 테스트를 먼저 수행하고 통과할 수 있는 코드 작성 |
Refactoring | 기능을 바꾸지 않으며 중복제거, 단순화등을 위해 시스템 재구성 |
40-Hour Work | 40시간 이상 일 No |
on site Customer | 개발자의 질문에 즉각대답할 수 있는 고객이 풀타임으로 상주 |
Coding Standard | 코딩에 표준을 두고 효과적으로 개발 |
Scrum
매일 정해진 시간/장소에서 짧은시간의 개발을 위한 애자일 방법론
Scrum 용어
이름 | 설명 |
Backlog | 제품 요구사항 |
Sprint | 2~4주의 짧은 개발 기간으로 반복적 수행 |
Scrum Meeting | 매일 15분정도 미팅으로 To Do List 수립 번다운 차트 작성 |
Scrum Master | 프로젝트 리더 |
Sprint Retrospective | 스프린트가 끝난시점이나 일정 주기별로 스프린트 주기를 되돌아 보며 정해놓은 규칙 준수여부, 개선점등을 확인하고 기록 |
Burn Down Chart | 남아있는 백로그 대비시간을 시각적으로 표현 x: time / y: backlog |
Lean
낭비요소를 제거해 품질을 향상시키는 애자일 방법론
Lean 7가지 원칙 (낭품지 확인 사전)
- 낭비 제거
- 품질 내재화
- 지식 창출
- 늦은 확정
- 빠른 인도
- 사람 존중
- 전체 최적화
비용 산정 모델
비용 산정 모델 개념
소프트웨어 개발 계획 수립을 위해, 투입될 자원이나 시간을 산정하는 방식
하향식: 델타이기법, 전문가 판단
상향식: LoC, Man Month, COCOMO, Putnam, FP ( 요구사항과 기능에 따라 산정 )
비용 산정 모델 종류
모델명 | 설명 |
LoC 모형 (Line Of Code) |
코드라인수의 예측치를 구해 비용산정 산정방법 : (낙관치 + 중간치 x 4 + 비관치 ) ÷ 6 |
Man Month 모형 | 한사람이 1개월간 할 수 있는 일의 양을 기준으로 비용 산정 Man Month = Loc ÷ 개발자의 월간 생산성 프로젝트 기간 = Man Month ÷ 프로젝트 인력 |
COCOMO 모형 | 프로그램 규모에 따라 비용 산정 - 조직형/ 단순형 (organic) : 소규모, 5만라인(50KSDI)이하 - 반분리형 (semi-detached) : 중간형, 30만라인(30KSDI)이하 - 임베디드형 (embedded) : 초대형 |
Putunam 모형 | 생명주기 단계별 인력 분포 예측 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선 분포도 기초 |
FP(기능점수) 모형 | 요구 기능별로 가중치 부여 총점수 계산해 비용 산정 |
일정 관리 모델
모델명 | 설명 |
주공정법 (CPM) |
여러 작업의 수행 순서가 얽힌 프로젝트에서 일정을 계산 임계경로 계산법 : 가장 긴 경로 |
중요연쇄공정법 (CCPM) |
주 공정법의 연쇄법으로, 자원 제약사항을 고려해 계산 |
PERT | 낙관치, 중관치, 비관치 3점 추정방식으로 일정 관리 |