소프트웨어 개발 라이프 사이클 SDLC software development life cycle
- 소프트웨어 개발을 주기로 보고 수행하기 위한 프로세스 모델 과정
- 타당성 검토부터 개발, 폐기 전과정을 생명주기로 보고 정의, 단계별 체계화
소프트웨어 위기
1. 원인
- 소프트웨어가 복잡해지니까 잘 관리해서 효율적으로 개발하자
- 소프트웨어 규모 대규모화, 복잡 -> 개발 비용 증가
- 하드웨어 비용에 대해 소프트웨어 가격 증가
- 유지보수 어려움과 개발 정체 현상
2 증상
- 예산 초과, 일정 지연, 비효율적인 소프트웨어
-> 요구사항 불만족, 관리가 어려운 코드
3. 대응 방안
- 객체 지향 프로그래밍, 캡슈로하
- 구조적 프로그래밍
- 통합 개발환경, 컴포넌트화, 프로토타이핑
- 애자일 개발 프로세스, 버그/이슈 관리 시스템, 버전 관리 시스템
- 디자인 패턴, 가비지 콜렉션, 멀티스레딩
SDLC 특성
- 프로젝트 수행 절차를 이행하기 위한 효과적 도구
- 유형, 관점, 개발 방침, 표준 정책에 따라 다양한 방법 존재
SDLC 기능
- 비용 산정, 개발 계획 수립
- 표준화 지원, 프로젝트 관리 지원
SLDC 장접
- 소프트웨어 개발 과정 통제 가능
- 대규모 시스템 개발에 적합
- 문서화 용이
SDLC 단점
- 사용자 요구사항 변경힘듬
SDLC 프로세스
1. 요구사항 정의
- 요구사항 식별, 상세화
- 프로그램 개발을 위한 사양 작성(아키텍처, 프레임워크, 디자인 패턴)
-> 요구사항 명세화
2. 개발 단계
- 프로그래밍 및 실행 코드 생성
- 테스트 : 다양한 수준 테스트(단위/통합 등)로 검증
3. 지원 단계
- 구축 후 인수 테스트 및 교육
- 유지 보수
- 폐기
SDLC 프로세스 정리
- 정의 단계 : 타당성 검토, 요구사항 분석, 설계
- 개발 단계 : 개발, 테스트
- 지원 단계 : 설치/이행, 유지보수, 폐기
SDLC 모델 유형
1. 폭포수 모델
2. 원형 모델
3. 나선형 모델
4. 반복적 모델
5. RAD 기법 모델
6. 4세대 모델
7. 클린룸 모델
8. V모델
1. 폭포수 모델 waterfall
- 개념 정리서 구현까지 하향식 접근 방법으로 추상화 모델링
- 가장 많이 사용된 전통적 모델
- 소프트웨어 개발을 단계, 순차, 체계적 접근
- 각 단계를 철저히 매듭짓고 다음단계 진행
- 검토 validation 및 검증 vertification, 검사 test에 프로젝트 전반 품질 향상 추구
폭포수 모델 장단점
- 장점 : 복잡성이 낮고 세분화하여 관리 용이, 사례가 풍부하고 이해하기 쉬움
- 단점 : 소프트웨어가 거대화, 요구사항 구체화 힘듬. 단계마다 불필요한 문서 양산. 개발 완료 시점에서 완성 가능
2. 원형 모델 prototyping
- 고객과 원할한 의사소통을 통한 개발 모델
- 사용자 요구사항을 충분히 분석할 목적으로 시스템 핵심적인 기능 먼저 만들어 평가 후 구현하는 점진적 개발방법
=> 사용자 요구 잘 반영, 개발 중에도 유지보수 효과
- 기본적으로 폭포수 모델과 같으나 프로토 타입 과정이 추가. 요구사항 분석 잘못될시 다시 샘플 만듬
프르토타이핑 장단점
- 장점 : 사용자 요구사항 불명확시 사용 용이, 관리자 이해 용이, 제품 추적 시험 가능성 확보
- 단점 : 개발 완료로 착각하기 쉬움, 문서 작성 미흡, 과다한 요구사항 발생
프로토타이핑 프로세스
1. 요구사항 분석
2. 프로토타입 개발 - 핵심적 기능위주
3. 요구 사항 이행 확인
4. 수정 및 보완
5. 고객과 개발자가 함께 평가
3. 나선형 모델 spiral
- 소프트 웨어 기능을 나누어 점진적으로 개발하는 모델
- 개발 중 위험 최소화 하기 위해 나선을 돌면서 개발해나감
-> 리스크 최소화, 점진적 수행, 위험 부담이 큰 대형 시스템 구축에 적합
나선형 모델 장단점
- 장점 : 대규모 시스템에 적합, 위험 감소 유지보수 용이, 반복적 개발 및 테스트로 강인성 향상, 다음 사이클서 기능추가
- 단점 : 관리가 힘들고 개발 시간 장기화, 복잡한 프로세스
나선형 모델 프로세스
1. 목표 설정 planning : 목표/제약조건 설정
2. 위험 분석 risk analysis : 우성 순위 기능 선택
3. 구현 및 테스트 engineering : 선택된 기능 개발
4. 의사소통 및 다음단계 수립 evaluation : 개발 경과 평가, 요구사항 반영 수정
'컴퓨터과학 > SW, DB' 카테고리의 다른 글
소프트웨어 공학 활용 - 4 애자일 방법론 (0) | 2020.05.18 |
---|---|
소프트웨어 공학 활용 - 3 소프트웨어 개발 방법론 (0) | 2020.05.18 |
소프트웨어 공학 활용 - 1 소프트웨어 공학 개요 (0) | 2020.05.18 |
데이터베이스 7 - 릴레이션 정규화 (0) | 2020.05.17 |
데이터베이스 6 - 논리적 설계 (0) | 2020.05.17 |