소프트웨어 생명주기 모델 (SDLC, Software Development Life Cycle)
- 시스템의 요구분석 부터 유지보수까지 전 공정을 체계화한 절차
- 소프트웨어 생명주기 모델 프로세스
ㆍ요구사항 분석
ㆍ설계
ㆍ구현
ㆍ테스트
ㆍ유지보수
- 모델 종류
ㆍ폭포수 모델
ㆍ프로토타이핑 모델
ㆍ나선형 모델
ㆍ반복적 모델
소프트웨어 생명주기 모델 프로세스
- 요구사항 분석
: 개발할 소프트웨어의 기능과 제약조건, 목표 등을 사용자와 함께 명확히 정의
: 기능 / 비기능 요구사항
- 설계
: 시스템 명세서에서 정의한 기능을 실제 수행할 수 있도록 수행방법을 논리적으로 결정
: 시스템 구조설계 / 프로그램 설계 / UI 설계
- 구현
: 논리적으로 결정한 문제해결 방법을 프로그래밍 언어를 사용하여 실제 프로그램을 작성
: 프로그래밍 언어 선택, 기법, 스타일, 순서 등 결정
: 인터페이스 개발 / 자료구조 개발 / 오류 처리
- 테스트
: 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가
: 단위 / 통합 / 시스템 / 인수
- 유지보수
: 시스템이 인수되고 설치 된 이후
: 예방 / 완전 / 교정 / 적용
소프트웨어 생명주기 모델
- 폭포수 모델
: 소프트웨어 개발시 각 단계를 확실히 마무리 지은후에 다음 단계로 진행
: 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
- 프로토타이핑 모델
: 주요 요구기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하며 진행
: 요구사항 분석 -> 프로토타입 개발 -> 프로토타입 평가 -> 구현 -> 테스트
- 나선형 모델
: 시스템 개발시 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발
: 계획 및 정의 -> 위험분석 -> 개발 -> 고객평가
- 반복적 모델
: 구축대상을 나누어 병렬적으로 개발 후 통합하거나 반복적으로 개발하여 점차 완성
소프트웨어 개발 방법론
- 개발 전 과정에 지속적으로 적용 할 수 있는 방법, 절차, 기법
- 종류
ㆍ구조적
ㆍ정보공학
ㆍ객체지향
ㆍ컴포넌트
ㆍ제품계열
ㆍ애자일
구조적 방법론 (Structured Development)
- 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 방식의 프로세스 중심의 하향식 방법론
: 구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용
※ 나씨-슈나이더만 차트
: 논리의 기술에 중점을 둔 도형식 표현 방법
: 조건이 복합적인 곳의 처리를 시각적으로 명확히 식별
정보공학 방법론 (Information Engineering Development)
- 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화
: 개발 주기를 이용해 대형 프로젝트 수행
객체지향 방법론 (Object-Oriented Development)
- 객체, 클래스, 메시지를 사용하여 이해하기 쉽게 시스템에 적용
컴포넌트 기반 방법론 (CBD, Component Based Development)
- 컴포넌트를 조립하여 새로운 응용 프로그램 구축
: 높은 재사용성과 확장성
※ 컴포넌트
: 이미 개발된 소프트웨어의 모듈 단위
제품 계열 방법론 (Product Line Development)
- 특정 제품에 적용하고자 하는 기능을 정의하여 개발
: 임베디드 소프트웨어 개발에 유용
- 영역 공학
: 영역 분석 / 설계, 핵심자산 구현
- 응용 공학
: 제품의 요구분석, 설계, 구현
애자일 방법론 (Agile Development)
- 신속하고 유연한 사람중심의 경량 개발 방법론
- 유형
ㆍXP (Extreme Programming)
ㆍLean
ㆍSCRUM
XP (Extreme Programming)
- 의사소통 개선과 즉각적 피드백으로 소프트웨어의 품질 향상
: 1~3주의 개발주기 (Iteration)
- 5가지 가치 : 용기 / 단순성 / 의사소통 / 피드백
- 12가지 기본원리
ㆍ짝 프로그래밍
ㆍ공동 코드 소유 : 시스템의 코드는 누구든지 언제라도 수정 가능
ㆍ지속적인 통합 : 매일 여러번씩 소프트웨어를 통합하고 빌드
ㆍ계획 세우기 : 고객 요구 정의 및 개발자가 필요한 부분 알림
ㆍ작은 릴리즈 : 작은 시스템을 먼저 만들고 짧은 단위로 릴리즈
ㆍ메타포어 : 공통적인 이름 체계와 시스템 서술서 작성 (고객과 개발자간 의사소통을 위함)
ㆍ간단한 디자인
ㆍ테스트 기반 개발
ㆍ리팩토링 : 중복제거 / 단순화
ㆍ40시간 작업 : 주 40시간만 작업
ㆍ고객 상주 : 개발자들의 질문에 고객이 즉각 응답하도록 항시 상주
ㆍ코드 표준 : 효과적인 공동작업을 위해 모든 코드에 대한 코딩 표준 정의
스크럼 (SCRUM)
- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 위한 프로젝트 관리 중심 방법론
- 백로드
: 제품과 프로젝트에 대한 요구사항
- 스프린트
: 2주~4주의 짧은 개발 기간으로 반복적 수행
- 스크럼 미팅 (Daily meeting)
: 매일 15분 정도 미팅을 통해 To-Do-List 계획 수립
- 스크럼 마스터
: 프로젝트 리더, 스크럼 수행시 문제 인지 및 해결
- 스프린트 회고
: 스프린 주기를 되돌아 보며 규칙 준수 여부, 개선점 확인 및 기록
- 번 다운 차트
: 남아있는 백로그 대비 시간을 표현한 차트
린 (LEAN)
- 도요타의 린 시스템 품질 기법을 기반으로 낭비요소를 제거하여 품질을 향상시키는 방법론
: JIT / 칸반 보드 사용
- 7가지 원칙
: 낭비제거 / 품질 내재화 / 지식 창출 / 늦은 확정 / 빠른 인도 / 사람 존중 / 전체 최적화
'Certification > 정보처리기사' 카테고리의 다른 글
UI 설계 (다이어그램의 종류) (0) | 2021.04.08 |
---|---|
UI 요구사항 확인 (0) | 2021.04.08 |
요구사항 확인 (0) | 2021.04.08 |
현행 시스템 분석 (0) | 2021.04.08 |
비용산정 / 일정관리 모형 (0) | 2021.04.08 |