안녕하세요! 저번에 '소프트웨어 설계와 파이썬' 강좌에 대해 소개해드렸는데요.
오늘은 1주차 내용이었던 소프트웨어의 개요 중 소프트웨어 개발 생명주기에 대해 더 자세히 설명해드리려고 합니다.
1주차는 파이썬 문법을 본격적으로 학습하기에 앞서, 소프트웨어가 무엇인지 소프트웨어 기획에서 유의해야 하는 사항들에는 무엇이 있는지에 대해 학습한 주차였는데, 기본적인 소프트웨어 공학에 대한 내용이니 꼭 잘 기억하시면 좋을 것 같아요 : )
1. 소프트웨어의 정의
소프트웨어는 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합으로 그 수행에 필요한 절차, 규칙, 문서 등의 총칭입니다. 개발 과정에서 생성되는 모든 산출물과 각 단계에서 만들어지는 문서와 사용자 매뉴얼 등을 포함하는 정의입니다.
2. 소프트웨어 개발 생명주기(SDLC)
소프트웨어 공학은 품질 좋은 소프트웨어를 경제적으로 개발하기 위해 계획을 세우고, 개발하며, 유지 및 관리하는 전 과정에서 공학을 적용해 필요한 이론과 기술 및 도구들에 관해 연구하는 학문입니다. 소프트웨어 공학 관점에서의 소프트웨어 개발 프로세스를 소프트웨어 개발 생명주기라고 합니다!
소프트웨어 개발 생명주기는 아래의 총 6단계로 이루어집니다.
1. 계획
2. 요구분석
3. 설계
4. 구현
5. 테스트
6. 유지보수
<계획>
비용, 기간 등 프로젝트를 수행하는 데 필요한 것에 대해 계획하는 단계입니다.
<요구분석>
기능, 제약조건, 목표 등을 사용자와 함께 명확히 정의하는 단계입니다.
<설계>
- 분석단계에서 표현한 다이어그램을 가지고 코딩할 수 있는 수준으로 환경에 밀접하게 구체화하는 단계입니다.
- 소프트웨어의 구조, 알고리즘을 작성합니다.
<구현>
- 프로그래밍 언어를 사용해 실제로 프로그램을 작성하는 단계입니다.
- 프로그래밍 언어, 기법, 스타일, 순서를 결정합니다.
<테스트>
- 개발한 시스템이 요구사항을 만족하는지, 실행 결과가 예상 결과와 맞는지, 숨어있는 오류는 없는지 찾아내 완성도를 높이는 단계입니다.
- 요구사항, 실행 결과, 오류를 체크합니다.
<유지보수>
- 시스템이 인수되고 배포가 이루어진 후 일어나는 모든 활동입니다.
- 결함 수정, 성능 개선, 버전 업!(제품 수정) 등이 포함됩니다.
- 6단계 중 가장 긴 기간입니다.
2. 소프트웨어 개발 생명주기 모델
소프트웨어 개발 생명주기 모델은 소프트웨어를 어떻게 개발할 것인가에 대한 전체 흐름을 체계화한 개념으로, 각 단계에서 무엇을 어떤 순서로 작업하며, 어떤 자원을 사용할 것인지에 대한 지침입니다.
강좌에서 다뤄진 선형 순차적 모델을 더 자세히 설명하도록 하겠습니다.
선형 순차적 모델은 폭포수 모델과 폭포수 모델의 확장 버전인 V 모델이 있습니다.
<폭포수 모델>
- 고전적 생명주기로 요구사항이 확정되어 변동이 없는 소규모 프로젝트에 적합합니다.
- 햐향식으로 각 단계 확실하게 끝내고(+문서화) 다음 단계로 내려갑니다.
장점
- 각 단계별로 산출물을 문서화할 수 있어서 진척상황에 대한 관리가 용이합니다.
- 절차가 단순해서 이해하기 쉽습니다.
단점
- 무조건 전 단계가 완료되어야 다음 단계가 수행되기 때문에 요구분석 이후의 단계에서 새로운 요구를 반영할 수 없습니다.
- 각 단계 결과물이 완벽한 수준이 되어야합니다.
- 사용자가 중간에 가시적인 결과물을 볼 수 없기 때문에 구현 이후에 수정사항 반영에 시간, 비용이 많이 듭니다.
⇒ 최근에는 요구사항이 끊임없이 변화하기 때문에 폭포수 모델은 잘 사용하지 않는다고 합니다!
<V 모델>
- 폭포수 모델에 테스트 단계를 추가한 모델입니다.
- 폭포수 모델은 산출물 중심인 반면 V 모델은 각 개발 단계를 검증하는데 초점을 두기 때문에 오류를 줄일 수 있습니다.
장점
- 각 개발 단계를 테스트할 수 있어 오류를 줄일 수 있어 신뢰성이 중요한 분야에 적용 가능합니다.
단점
- 폭포수 모델과 동일하게 각 단계가 반복되지 않기 때문에 변경사항을 다루기 힘듭니다.
이렇게, 소프트웨어 개발 생명주기와 선형 순차적 모델까지 다뤄봤습니다!
다음주차부터는 드디어 파이썬이 시작됩니다. 설치방법부터 차근차근 설명해주시니 걱정말고 꼭 완강하시길 바랄게요~!
'Experience > K-MOOC 서포터즈' 카테고리의 다른 글
[K-MOOC] 경희대 K-MOOC '소프트웨어 설계와 파이썬' (4) <파이썬 반복문 for, while문> (0) | 2024.02.21 |
---|---|
[K-MOOC] 경희대 K-MOOC '소프트웨어 설계와 파이썬' (3) <파이썬 연산자> (0) | 2024.02.14 |
[K-MOOC] 경희대 K-MOOC '소프트웨어 설계와 파이썬' (1) <강좌소개> (0) | 2024.02.04 |
[K-MOOC] 경희대학교 K-MOOC 강좌 소개 (2) (0) | 2024.02.04 |
[K-MOOC] 경희대학교 K-MOOC 강좌 소개 (1) (0) | 2023.11.15 |