Ⅰ. 요구사항 확인
1. 소프트웨어 개발방법론
1) 소프트웨어 개발방법론
(1) 소프트웨어 생명주기(SDLC; Software Developent Life Cycle) 모델
* 개념: 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.
* 소프트웨어 생명주기 모델 프로세스: 요구사항 분석 - 설계 - 구현 - 테스트 -유지보수
* 소프트웨어 생명주기 모델 종류:
- 폭포수 모델(Waterfall Model)
- 프로토타이핑 모델(Prototyping Model)
- 나선형 모델(Spiral Model)
- 반복적 모델(Iteration Model)
(2) 소프트웨어 개발방법론(Software Development Methodology)
* 개념: 소프트웨어 개발방법론은 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.
* 종류:
- 구조적 방법론(Structured Development): 나씨-슈나이더만(Nassi-Shneiderman) 차트
- 정보공학 방법론(Information Engineering Development)
- 객체지향 방법론(Object-Oriented Development)
- 컴포넌트 기반 방법론(CBD; Component Based Development)
- 애자일 방법론(Agile Development)
- 제품 계열 방법론(Product Line Development)
* 애자일(Agile)
- 개념: 애자일 방법론은 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론이다. 개발과 함께 즉시 피드백을 받아서 유동적으로 개발할 수 있다.
- 등장 배경: 소프트웨어 개발 환경의 변화(개발 트렌드가 모바일 환경으로 변화, 시장 적시성과 잦은 배포의 중요성 부각), 기존 개발방법론의 한계(전통적 방법론은 문서 및 절차 위주로 변화에 신속한 대응이 어려움, 빠르게 적용하고 효율적으로 개발할 수 있는 방법론의 필요성 증가)
- 유형: XP(eXtreme Programming), 린(Lean), 스크럼(SCRUM) 등
* XP 개념: 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론. 1~3주의 반복(Iteration) 개발주기
* XP의 5가지 가치: 용기, 단순성, 의사소통, 피드백, 존중
* XP의 12가지 기본원리:
기본원리 | 설명 |
짝 프로그래밍 (Pair Programming) |
개발자 둘이서 짝으로 코딩하는 원리 |
공동 코드 소유 (Collective Ownership) |
시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리 |
지속적인 통합 (CI; Continuous Integration) |
매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리 |
계획 세우기 (Planning Process) |
고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리 |
작은 릴리즈 (Small Release) |
작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다는 원리 |
메타포어 (Metaphor) |
공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리 |
간단한 디자인 (Simple Design) |
현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리 |
테스트 기반 개발 (TDD; Test Driven Develop) |
작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리 |
리팩토링 (Refactoring) |
프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성한다는 원리 |
40시간 작업 (40-Hour Work) |
개발자가 피곤으로 인해 실수하지 않도록 일주일에 40시간 이상을 일하지 말아야 한다는 원리 |
고객 상주 (On Site Customer) |
개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리 |
코드 표준 (Coding Standard) |
효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다는 원리 |
* 스크럼 주요 개념
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
- 백로그(Backlog)
- 스프린트(Sprint)
- 스크럼 미팅(Scrum Meeting)
- 스크럼 마스터(Scrum Master)
- 스프린트 회고(Sprint Retrospective)
- 번 다운 차트(Burn Down Chart)
* 린 개념: 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론
* 린 7가지 원칙: 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
2) 비용산정, 일정관리 모형
(1) 비용산정 모형
* 개념: 비용산정 모형은 소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식이다.
* 비용산정 모형 분류
- 하향식 산정방법: 전문가 판단, 델파이 기법
- 상향식 산정방법: 코드 라인 수(LoC), Man Month, COCOMO 모형, 푸트남 모형, 기능점수(FP) 모형
* 비용산정 모형 종류
모형 | 설명 |
LoC (Lines of Code) 모형 |
예측치: (낙관치 + 4x중간치 + 비관치) / 6 |
Man Month 모형 | (Man Month) = (LoC) / (프로그래머의 월간 생산성) (프로젝트 기간) = (Man Month) / (프로젝트 인력) |
COCOMO (COnstructive COst MOdel) 모형 |
보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정. 유형: 조직형(5만 라인 이하), 반 분리형(30만 라인 이하), 임베디드형(30만 이상 라인) |
푸트남 (Putnam) 모형 |
푸트남이 제안한 모형으로 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식. 생명주기 예측 모형. |
기능점수 (FP; Function Point) 모형 |
기능점수(FP) = 총 기능점수 X [0.65 + (0.1 X 총 영향도)] |
(2) 일정관리 모델
* 개념: 일정관리 모델은 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델이다.
* 종류
- 주 공정법(CPM; Critical Path Method)
- PERT(Program Evaluation and Review Technique)
- 중요 연쇄 프로젝트 관리(CCPM; Critical Chain Project Management)
'정보처리기사 실기' 카테고리의 다른 글
흥달쌤 정처기 실기 1과목 (0) | 2023.07.12 |
---|---|
Ⅱ. 화면 설계 - 1. UI 요구사항 확인 (0) | 2022.12.27 |
Ⅰ. 요구사항 확인 - 4. 분석 모델 확인하기 (0) | 2022.12.22 |
Ⅰ. 요구사항 확인 - 3. 요구사항 확인 (0) | 2022.12.21 |
Ⅰ. 요구사항 확인 - 2. 현행 시스템 분석 (1) | 2022.12.20 |