본문 바로가기
정보처리기사

1. 소프트웨어 개발 방법론(★★★)

by project100 2023. 6. 10.

소프트웨어 생명주기 모델(SDLC)

Software Development Life Cycle 

소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차

 

 

소프트웨어 생명주기 모델(SDLC) 프로세스

1. 요구사항 분석 : 요구와 조건 결정, 정의하는 단계

                           기능 요구사항, 비기능 요구사항

2. 설계 : 정의한 기능을 수행할 수 있도록 수행 방법을 논리적으로 결정

              시스템 구조설계, 프로그램 설계, 사용자 인터페이스 설계

3. 구현 : 프로그래밍 언어 선택, 실제 프로그램 작성

              인터페이스 개발, 자료구조 개발, 오류 처리

4. 테스트 : 정해진 기능 수행 여부 검사 평가

                 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트

5. 유지보수 : 시스템 설치 후 모든 활동 

                    예방, 완전, 교정, 적응, 유지보수

 

 

소프트웨어 생명주기 모델(SDLC) 모델 종류

폭포수 모델(Waterfall Model)

절차도 : (타당성검토) - (계획) - 요구사항 분석 - 설계 - 구현 - 테스트 - (유지보수)

특징, 장점 : 고전적, 순차적, 이해 용이, 관리 편리

단점 : 요구사항변경 어려움

 

프로토타이핑 모델(Prototyping Model)

절차도 : 요구사항 분석 - 프로토타입 개발 - 프로토타입 평가 - (요구사항 분석으로 되돌아갈 수 있음) - 구현 - 테스트

특징, 장점 : 고객 피드백 반영, 공동의 참조 모델, 요구분석 용이, 타당성 검증 가능

단점 : 프로토타입 폐기에 따른 비용 증가

 

나선형 모델(Spiral Model)

절차도 : 계획 및 정의 - 위험분석 - 개발 - 고객평가 - (계획 및 정의로 되돌아갈 수 있음)

특징, 장점 : 위험분석, 반복개발, 위험최소화, 점진적

단점 : 단계 반복에 따른 관리 어려움

 

반복적 모델 (Iteration Model)

절차도 : (병행)개발대상 - 분석 - 설계 - 구현

특징, 장점 : 증분방식, 병행개발, 반복개발, 일정단축

단점 : 병행개발에 따른 관리 비용 증가

 

 

소프트웨어 개발 방법론(Software Development Methodology)

소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법

 

 

소프트웨어 개발 방법론(Software Development Methodology) 종류

구조적 방법론(Structured Development)

전체 시스템을 기능에 따라 나누어 개발, 통합, 분할과 정복 접근방식, 프로세스 중심 하향식 방법론

나씨 슈나이더만(Nassi-Shneiderman) 차트 : 도형식 표현 방법

 

정보공학방법론(Information Engineering Development)

정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론, 대형 프로젝트 수행

 

객체지향방법론(Object-Oriented Development)

객체를 기본단위로 시스템 분석 및 설계, 객체, 클래스, 메시지 이용

 

컴포넌트기반 방법론(Component Based Development)

컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성, 개발기간 단축, 생산성향상, 확장성, 재사용가능

 

애자일방법론(Agile Development)

절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론

개발 기간이 짧고 신속하며, 워터폴에 대비되는 방법론으로 최근 회사에서 각광받는 방법론

 

제품 계열 방법론(Product Line Development)

공통 기능을 정의 개발, 임베디드 소프트웨어 작성, 영역공학, 응용공학

영역공학 : 분석, 설계, 핵심 자산 구현 

응용공학 : 제품 요구분석, 제품 설계, 구현

 

 


애자일 방법론, 객체 지향 방법론 시험 출제!