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점 추정방식으로 일정 관리