소프트웨어 생명주기 (SDLC) : 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
소프트웨어 생명주기 프로세스 : 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
요구사항 분석 - 요구와 조건을 결정하는 단계. 기능/비기능 요구사항으로 나뉨
설계 - 수행 방법을 논리적으로 결정하는 단계.
구현 - 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계.
테스트 - 검사, 평가 ex) 단위/통합/시스템/인수 테스트
유지보수 - 시스템이 인수되고 설치된 후 일어나는 모든 활동
소프트웨어 생명주기 모델 종류 : 폭프나반
폭포수 모델 - 각 단계를 확실히 마무리 지은 후 다음 단계로 넘어가는 모델, 가장 오래된 모델, 선형 순차적 모형, 고전적 생명주기 모형, 적용 경험과 성공 사례가 많음, 단계별 정의와 산출물이 명확, 요구사항 변경이 어려움.
타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
프로토타이핑 모델 - 고객이 요구한 주요기능을 프로토타입으로 구현하여 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
나선형 모델(Spiral Model) - 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
계획 및 정의 -> 위험 분석 -> 개발 -> 고객평가 (계위개고)
반복적 모델 - 병렬적으로 개발 후 통합하거나 반복적으로 개발하여 완성시키는 모델
모델 간 비교
구분 | 폭포수 모델 | 프로토타이핑 모델 | 나선형 모델 | 반복적 모델 |
절차도 | 요구사항 분석 -> 설계 -> 구현 -> 테스트 |
요구사항 분석 -> 프로토타입 개발 -> 프로토타입 평가 -> 구현 -> 테스트 |
계획 및 정의 -> 위험분석 -> 개발 -> 고객 평가 ->......... |
개발 대상 -> 분석 설계 -> 구현 |
특징 | 순차적 접근 | 프로토타입 개발 | 위험분석, 반복 개발 | 병행개발 |
장점 | 이해가 용이, 관리가 편리 | 요구분석 용이, 타당성 검증 가능 | 위험성 감수와 변경에 유연한 대처 | 병행개발로 인한 일정 단축 가능 |
단점 | 요구사항 변경이 어려움 | 프로토타입 폐기에 따른 비용 증가 | 단계 반복에 따른 관리 어려움 | 병행개발에 따른 관리 비용 증가 |
소프트웨어 개발 방법론 : 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법
소프트웨어 개발 방법론 종류
구조적 방법론 - 기능에 따라 나누어 개발하고 통합하는 분할과 정복 접근 방식의 방법론, 하향식 방법론, 나씨-슈나이더만 차트 사용
나씨-슈나이더만 차트 ?
도형식 표현 방법으로 시각적으로 명확히 식별하는데 적합하다.
연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조로 표현
정보공학 방법론 - 개발주기를 이용해 대형 프로젝트를 수행하는 체계적인 방법론
객체지향 방법론 - 객체라는 단위로 시스템을 분석 및 설계하는 방법론, 객체, 클래스, 메시지를 사용
컴포넌트 기반 방법론 - 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론, 개발 기간 단축으로 인한 생산성 향상, 새로운 기능 추가 쉬움(확장성), 소프트웨어 재사용이 가능
애자일 방법론 - 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
제품 계열 방법론 - 임베디드 소프트웨어를 작성하는데 유용한 방법론, 공통된 기능을 정의하여 개발하는 방법론, 영역/응용 공학으로 구분
애자일(Agile)
- 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법
- 개발 기간이 짧고 신속하며 유동적으로 개발할 수 있다.
개발 트렌드가 모바일 환경으로 변화하고 잦은 배포의 중요성이 부각되면서 애자일 방법론이 등장하였다.
변화에 신속한 대응이 어려운 기존 개발방법론의 한계로 등장하였다.
애자일 방법론 유형 - XP, 스크럼, 린
XP - 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
XP의 5가지 가치 - 용기, 단순성, 의사소통, 피드백, 존중 (용단의피존)
XP의 12가지 기본원리 - 짝 프로그래밍, 공동 코드 사용, TDD, 리팩토링, 지속적인 통합, 작은 릴리즈, 메타포어, 코드표준, 간단한 디자인, 40시간 작업, 고객 상주, 계획 세우기
스크럼 - 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
백로그 - 요구사항
번다운 차트 - 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트
린 - 낭비 요소를 제거하여 품질을 향상시킨 방법론 ex) JIT , 칸반
애자일 VS 전통적 방법론
비교 대상 | 애자일 방법론 | 전통적 방법론 |
계획수립 | 유동적 범위 설정 | 확정적 범위 설정 |
업무수행 | 팀 중심 | 개인 단위, 관리자 주도적 명령과 통제 |
개발/검증 | 반복 주기 단위 | 순차적 |
팀관리 | 팀 평가 | 개별 평가 |
문서화 | 코드를 강조 | 문서화를 강조 |
성공요소 | 고객 가치 전달 | 계획/일정 준수 |
유형 | XP, 스크럼, 린 | 폭포수, 나선형, 프로토타입 |
'자격증 > 정보처리기사' 카테고리의 다른 글
2021 3회 정보처리기사 실기 시험 후기 / 난이도 / 합격 팁★ (0) | 2021.10.18 |
---|---|
현행 시스템 파악 - 디자인 패턴 (0) | 2021.09.15 |
현행시스템 파악 - 소프트웨어 아키텍처 (0) | 2021.09.15 |
현행 시스템 파악 - 현행 시스템 파악 개념 / 현행 시스템 파악 절차 (0) | 2021.09.15 |
비용산정, 일정관리 모형 (0) | 2021.09.13 |