1. 소프트웨어 생명주기(SLDC : Software Development Life Cycle)
→ 시스템의 요구분석부터 유지보스까지 전 공정을 체계화한 절차
1.1 소프트웨어 생명주기 모델 프로세스
요구사항 → 분석 → 설계 → 구현 → 테스트 → 유지보수
1.2 소프트웨어 생명주기 모델 종류
① 폭포수 모델 (Waterfall Model)
- 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델(요구사항 변경 어려움)
② 프로토타이핑 모델 (Prototyping Model)
- 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 만들어가는 모델
③ 나선형 모델 (Spiral Model)
- 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
④ 반복적 모델 (lteration Model)
- 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델
2. 소프트웨어 개발방법론
→ 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.
2.1 소프트웨어 개발방법론 종류
① 구조적 방법론 (Structured Development)
- 전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
② 정보공학 방법론 (Information Engineering Development)
- 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
③ 객체지향 방법론 (Object-Oriented Development)
- '객체'라는 기본 단위로 시스템을 분석 및 설계하는 방법론
④ 컴포넌트 기반 방법론 (CBD; Component Based Development)
- 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
⑤ 애자일 방법론 (Agile Development)
- 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
⑥ 제품 계열 방법론 (Product Line Development)
- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
- 영역 공학과 응용 공학으로 구분
2.2 애자일(Agile)
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템에 개발할 수 있는 신속 적응적 경량 개발 방법론
① 애자일 방법론 유형
- XP(eXtreme Programming) : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질 높이기 위한 방법론
→ XP의 5가지 가치 : 용기(Courage), 단순성(Simplicity), 의사소통(Communication), 피드백(Feedback), 존중(Respect)
→ XP의 12가지 기본원리 : 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 계획 세우기, 작은 릴리즈, 메타포어, 간단한 디자인,
테스트 기반 개발, 리팩토링, 40시간 작업, 고객 상주, 코드 표준
- 스크럼(SCRUM) : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
→ 주요 개념 : 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트
- 린(LEAN) : 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질 향상시킨 방법론
→ 7가지 원칙 : 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
3. 비용산정, 일정관리 모형
3.1 비용산정 모형
소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 선정하는 방식
3.2 비용산정 모형 분류
- 하향식 선정방법 : 경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정
→ 전문가 판단, 델파이 기법
- 상향식 선정방법 : 세부적인 요구사항과 기능에 따라 필요한 비용을 계산
→ LOC, Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형
3.3 비용산정 모형 종류
① LOC(Lines of Code) 모형
- 예측치 = o + 4m + p / 6
- 비관치 : 가장 많이 측정된 코드 라인 수
- 중간치 : 측정된 모든 코드 라인 수의 평균
- 낙관치 : 가장 적게 측정된 코드 라인 수
② Man Month 모형 : 한사람이 1개월 동한 할 수 있는 일의 양 기준
- Man Month = LOC / 프로그래머의 월간 생산성
- 프로젝트 기간 = Man Month / 프로젝트 인력
③ COCOMO 모형 : 프로그램 규모에 따라
- 조직형 : 5만(50KDSI)라인 이하
- 반분리형 : 30만(300KDSI) 라인 이하
- 임베디드형 : 30만(300KDSI) 라인 이상
④ 푸트남(Putnam) 모형 : 소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 방식
⑤ 기능점수(FP; Function Point) 모형 : 총 기능의 점수를 계산하여 비용을 산정하는 방식
- 기능점수(FP) : 총 기능 점수 × [0.65 + (0.1 × 총 영향도)]
3.4 일정관리 모델 : 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델
- 종류
① 주 공정법(CPM) : 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 방법
② PERT : 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치, 3점 추정방식을 통해 일정을 관리하는 기법
③ 중요 연쇄 프로젝트 관리 : 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법
'Study > 정보처리기사' 카테고리의 다른 글
정보처리기사 실기 6강 - 데이터 입출력 구현② (0) | 2021.09.25 |
---|---|
정보처리기사 실기 5강 - 데이터 입출력 구현① (0) | 2021.09.24 |
정보처리기사 실기 4강 - 화면설계 ② (0) | 2021.09.23 |
정보처리기사 실기 3강 - 화면설계 ① (0) | 2021.09.16 |
정보처리기사 실기 2강 - 요구사항 확인 ② (0) | 2021.09.15 |