- 이 글은 이렇게 하 나도 프로그램을 잘 만 수 있다 : C & JAVA 프로그래밍 입문 - 1을 보고 공부 한 뒤 정리한 내용입니다.
소프트웨어 개발 생명 주기
소프트웨어를 만들 때도 좋은 품질의 소프트웨어를 만들어야 한다
-
좋은 품질의 소프트웨어를 만들기 위해서는 주먹구구식으로 소프트웨어를 만들 수 없다
-
체계적이고 합리적인 절차에 따라 만들어야 한다
따라서 소프트웨어 개발 절차의 중요성을 이해할 필요가 있다
-
집 짓는 절차에 비유해서 소프트웨어를 개발하는 절차의 전체적인 의미를 이해해 보도록 하자
건축추가 집을 짓겠다고 결정했다면, 건축주 혼자서 바로 집을 짓는 것이 아니라 여러 전문가들과 상담, 토의 및 검토를 거쳐 집을 건축하게 된다
-
개략적으로 집을 건축하는 일반적인 공정을 보면 다음과 같다
-
1. 건축기획과 사전 조사
-
2. 계획설계
-
3. 기본설계
-
4. 실시설계
-
5. 건축공사
-
6. 공사완료
-
7. 건물사용
아무렇게 절차 없이 그리고 요구사항 반영 없이 전문성이 없는 집짓기는 사람이 사는 집을 짓는데 적용한다면 그렇게 지어진 집은 오래가지 못한다
-
위의 집을 건축하는 일반적인 공정의 목차를 보다시피 집을 짓는 절차는 복잡하지만, 건축주와 집을 사용할 구성원들의 요구 사항들을 적극 반영하고, 철저한 시공과 감리 그리고 허가 과정을 거쳐서 완공되어야 집으로서 용도를 다할 수 있는 것이 된다
정의
마찬가지로 소프트웨어도 아무렇게 만들지 않는다
-
나름대로 합리적인 절차를 가지고 만들어야 좋은 소프트웨어를 만들 수 있다
즉, 소프트웨어도 무조건 프로그래밍 언어(Programming Language)를 이용하여 바로 구현을 하는 것이 아니라
집 짓는 절차와 같이 일정한 절차에 따라서 소프트웨어를 작성해야만 좋은 소프트웨어를 작성할 수 있다
-
소프트웨어를 개발하는 일련의 과정을 소프트웨어 개발 생명 주기(Software Development Life Cycle, SDLC)라고 한다
소프트웨어 개발 생명 주기(Software Development Life Cycle, SDLC)
-
소프트웨어의 단계적인 개발 과정을 의미
-
각 과정별로 정해진 일들을 수행하여 앞 단계의 산출물을 토대로 다음 단계의 과정을 수행
-
필요시 이전 단계로 피드백(Feed-Back)을 통하여 전체적인 결과물의 일치성을 유지한다
소프트웨어 개발은 단순히 프로그래밍 언어를 이용하여 구현을 한다고 모든 것이 해결되는 것이 아니고 일련의 절차를 따라 개발해야만 사용자가 요구하는 정확한 소프트웨어를 만들 수 있으며, 또한 유지보수도 쉽게 할 수 있다
-
따라서 소프트웨어 개발자들은 소프트웨어 개발 생명 주기의 과정을 이해하고 실제로 적용할 수 있어야 한다
소프트웨어 단계적 개발 과정은 다음과 같다
-
1. 개발 전 단계
- 타당성 조사 (Feasibility)
- 예측(Estimation)
- 계획(Planning
-
2. 개발 단계
- 요구사항 분석(Requirements Analysis)
- 설계(Design)
- 구현(Implementation)
- 시스템 테스트(Testing)
-
3. 개발 후 단계