본문 바로가기
👩‍💻TIL/Computer Science

[소프트웨어 공학] 소프트웨어 개발 프로세스란?

by devuna 2021. 4. 1.
728x90

[소프트웨어 공학] 소프트웨어 개발 프로세스란?

소프트웨어 개발 프로세스(software development process)는 소프트웨어 시스템을 개발하거나 유지보수할 목적으로 수행되는 활동 일체 또는 절차를 뜻한다.  비슷한 말로 소프트웨어 생명 주기가 있다. 

 

SW개발에서의 프로세스 : 작업 순서의 집합 + 제약 조건(일정, 예산, 자원)을 포함하는 일련의 활동(activity)

 👉🏻 작업(task) : 소프트웨어를 개발할 때 일을 수행하는 작은 단위

 

💡 소프트웨어 개발 프로세스의 목적은 전체적인 개발에 대한 가이드라인을 제공하는 데 있다.

체계적인 개발을 지원할 수 있으며 프로젝트의 관리에도 도움을 준다.
개발 조직은 적당한 프로세스 모델을 보유하여 공통의 개발문화와 공통의 기술을 제공해야한다.

 

💡소프트웨어 개발 프로세스 모델이 필요한 이유

 

1️⃣ 전체 프로세스이 이해에 도움을 준다.

2️⃣ 자원 사용에 대한 사전 계획을 가능하게 하며 자원사용을 통제할 수 있다.

3️⃣ 개발과정을 추적하고 관리할 수 있다.

 

💡 소프트웨어 개발 프로세스 모델은 소프트웨어 개발 생명주기(SDLC, Software Development Life Cycle)를 기반으로 설명된다.

    생명주기 6단계  : 요구분석 -> 시스템 명세 -> 설계 -> 구현(코딩) -> 테스트 -> 유지보수

0) 타당성 조사 : 투입비용대비 이익을 평가한다. (조직, 경제적, 기술적, 운영의 타당성)

시간적 제약과 정신적 압박감이 존재한다.

 

1) 요구분석과 명세 : 프로젝트의 성패를 좌우하는 중요한 단계무엇을 개발할지 결정한다.

요구사항이란, 문제의 해결을 위해 시스템이 갖추어야 하는 것으로 요구사항 명세서나 계약서에 명시되어야 함

- 요구사항 명세서(SRS) : 의뢰자와 개발자 간 의사소통 수단으로 정확하고 일관성있으며 완전해야 함.

 

2) 설계와 명세 : whathow로 변환하는 작업!

요구사항들을 구현 작업에 적합하게 명확하고 조직화된 구조로 바꾸는 것

 

3) 구현(코딩)

설계 결과를 프로그램으로 작성

구현된 모듈이 명세서를 만족하는지 테스트하여 확인함

 

4) 통합과 시스템 테스트

- 통합테스트

- 시스템 테스트 : 모든 모듈을 통합한 후 최종적으로 완성된 시스템이 요구사항을 만족하는지 확인

- 알파 테스트 : 완전히 개발된 시스템을 개발 현장에서 테스트하는 것으로 주문형 제품의 경우 개발자와 고객 사이에 인수에 대한 동의가 이루어질 때까지 수행

- 베타 테스트 : 고객의 실제 사용환경에서 수행

 

5) 유지보수 : 배포가 이루어진 후 결함을 수정하거나 성능을 개선하는 소프트웨어 제품의 수정을 말함.

 

 

💡 소프트웨어 개발 프로세스 모델 선택 시 고려할 사항 

 

- 무조건적으로 좋은 모델은 없다.

- 개발 조직마다 , 프로젝트 유형마다 적절한 프로세스가 다르다.

대형 프로젝트의 경우에는 각 부분마다 다른 프로세스를 적용할 수도 있다.

 

💡 SW개발 프로세스 모델의 종류

  1. 폭포수 모델
  2. V 모델
  3. 프로토타이핑 모델
  4. 나선형 모델
  5. 애자일 모델 
  6. 반복형 개발 모델
  7. 스크럼
  8. TDD

 

 

 

 

728x90

댓글