소프트웨어 생명 주기

rin12·2020년 6월 4일
1

CSW

목록 보기
5/12
post-thumbnail

소프트웨어 생명 주기란?

소프트웨어를 체계적으로 개발하고 관리하기 위해서 개발 과정을 단계별로 나누어 구분한 것

소프트웨어를 기획하고 개발하는 개발자로써 이 단계를 바탕으로 개발하면 조금 더 안정적이고 좋은 프로그램을 만들 수 있다.






처음에 프로그래밍 언어를 접하게 되면 기초인 C언어를 배우고, C++를 다음에 배우고 자바를 접하게 된다.

만약 이런 단계적으로 배우는 게 아닌 자바를 제일 먼저 접하게 됐다면 If문, for문, class의 개념을 제대로 익히지 않은 상태에서 자바를 시작할 수 없다.

모든 일에는 단계적인 게 필요하다. 배우거나 기획하거나 만들 때 차근차근 쌓아가야 안정적이다.




<1단계> 요구 분석 단계

  • 문제를 분석하는 단계. 개발할 소프트웨어의 기능과 제약 조건, 목표 등을 명확히 정의한다.
    개발할 소프트웨어의 성격을 이해하고 개발 방법과 필요한 개발 자원이나 예산을 측정.

리액트로 웹 페이지를 만들게 된다고 했을 때, 개발할 웹 페이지에 어떠한 기능을 넣을 것이며, 기획서에 적힌 기능과 요구사항, 분배가 어떻게 되어있는지 분석하고 파악하는 단계이다.



<2단계> 시스템 명세 단계

  • 시스템이 어떻게 동작하는지 정의.
    입력 자료나 처리 내용, 생성되는 출력이 무엇인지 정의하는 단계.


이 단계에서 명세서가 중요하다. 정확하게 작성하지 않으면 개발 과정에서 의견 차이나 오류로 인해 재개발 작업, 갈등 등이 생길 수 있으니 명세서를 정확하게 작성해야 한다.



<3단계> 설계 단계

  • 명세 단계 (2단계)에서 정의한 기능을 실제로 수행하기 위한 방법을 논리적으로 결정하는 단계.

3-1. 시스템 구조 설계
: 시스템을 구성하는 내부 프로그램이나 모듈 간의 관계와 구조를 설계

3-2. 프로그램 설계
: 프로그램 내의 각 모듈에서의 처리 절차나 알고리즘을 설계.

3-3. 사용자 인터페이스 설계
: 시스템을 사용하는 사용자에게 보여지는 프로그램을 설계.




<4단계> 구현 단계

  • 프로그래밍 언어를 사용하여 실제로 프로그램을 작성하는 단계

예를 들어 사용할 컴퓨터 언어를 선택하거나 프로그래밍 기법과 순서를 정하고 그 언어를 사용하여 작성하는 단계이다.


4-1. 구조화 프로그래밍 : 지정문, 조건문, 반복문만 사용하여 3가지 제어 구조로 표현
4-2. 모듈러 프로그래밍 : 프로그램을 여러 개의 작은 모듈로 나누어 계층 관계를 갖도록 구성



<5단계> 테스트 단계

  • 개발한 프로그램을 테스트 하는 단계

요구사항이나 조건을 만족하는지 출력된 결과나 보여지는 결과가 예상한 게 맞는지 테스트한다.



5-1. 단위 테스트
: 시스템의 최소 구성 요소가 되는 모듈에 대해서 개별적으로 시행

5-2. 통합 테스트
: 단위 테스트를 통과한 모듈을 연결하여 전체 시스템으로 완성하여 통합적으로 시행하는 테스트


5-3. 인수 테스트 : 완성된 시스템을 인수하기 위해서 실제 자료를 사용한 최종 테스트



<6단계> 유지보수 테스트

  • 시스템이 인수되고 설치된 후, 일어나는 모든 활동
    (소프트웨어 생명 주기 단계에서 가장 오래 걸리는 단계)

6-1. 수정형 유지 보수
: 사용 중에 발견한 프로그램의 오류 수정 작업


6-2. 적응형 유지 보수
: 시스템과 관련한 환경적 변화에 적응하기 위한 재조정 작업


6-3. 완전형 유지 보수
: 시스템의 성능을 향상 시키기 위한 개선 작업


6-4. 예방형 유지 보수
: 앞으로 발생할지 모를 변경사항을 수용하기 위한 대비 작업

0개의 댓글