개주 훈련일지/📚 코살대 교본 학습

소프트웨어 개발 프로세스

lshfood2 2025. 11. 11. 17:50

프로세스는 소프트웨어 시스템을 구축하기 위해

수행되는 작업의 집합을 의미한다.

 

여러 작업에 집합이므로

프로세스는 여러 컴포넌트 프로세스,

즉 부프로세스로 구성될 수 있다.

 

각 컴포넌트 프로세스는 서로 다른 목적을 가지나

서로 협력하여 전체 소프트웨어 공학의 목적을 만족한다.

 

[프로세스와 프로세스 모델]

1) 프로세스

실제 프로젝트에서 수행해야 하는 작업과

수행 순서를 정의한 명세를 의미한다.

> 구체적인 작업 흐름을 나타낸 것

 

2) 프로세스 모델

일반적인 프로세스를 추상적으로 기술한 것으로

프로젝트를 위한 작업의 단계와 순서, 각 단계 작업 수행의

제약사항이나 조건 등을 모아 놓은 것이다.

> 알맞은 프로세스를 개발하기 위한 일반적인 가이드라인

 

- 프로세스

소프트웨어를 개발하는 조직 내의 관점에서 보면

소프트웨어 제품 자체를 구축하기 위한 기술 작업과

그 작업 과정을 지원하고 관리하기 위한 프로세스가 있다.

 

- 프로세스 정의

높은 품질의 소프트웨어를 만들기 위해서는

반드시 프로세스를 정의해야 한다.

장기적인 사고와 전략을 수립하기 위해

최소한 다음과 같은 세 가지 사항을 정의해야 한다.

[목적]
프로세스를 수행하기 위한 목적이 무엇인지,
프로세스를 효과적으로 구현하였을 때
기대되는 성과는 무엇인지 기술

[작업방법]
프로세스에서 해야 할 작업이 무엇인지 명시

[성과]
프로세스 작업의 결과물로 문서의 내용이나 코드,
프로토타입 등 구체적인 작업 결과를 기술

 

이와 같이 각 단계의 결과를 명확히 정의하고 작업하면

결과물에 유입된 결함을 찾아내는데 효과적이다.


[프로세스와 품질]

소프트웨어 분야에서는 제품의 품질을

프로세스의 능력과 관련하여 정의하고

평가하는 경우가 많다.

 

CMMI나 SPICE 같은 프로세스의 품질을 평가하는

모델이 제안된 이유는 프로세스가 개발된 소프트웨어

제품의 품질에 큰 영향을 미치기 때문이다.

 

소프트웨어 개발 작업은 실수를 제거하는 것보다

방지하는 것이 더 저렴하다는 인식 때문에

공정을 상세히 정의하고 엄격하게 지키고 확인한다.

 

-관리 프로세스

이와 같은 이유로 소프트웨어 개발에는

관리 프로세스가 필요하다.

 

대규모 소프트웨어 개발 프로젝트는
오랜 기간 동안 많은 사람이 참여하고
여러 단계로 나누어 작업한다.

비용, 품질, 일정 목표를 맞추기 위하여
각 단계의 작업에 자원을 할당하고
진척 상황을 모니터링하여 필요하면
적절한 조치를 취하는 것이 관리 프로세스이다.

 

다음과 같이 세 가지로 크게 분류한다.

[계획]
가장 어려운 작업으로 프로젝트 목적에 맞는 소프트웨어 개발 계획을 새우는 것
개발 작업이 시작되기 전에 작성하고 개발하면서 변경된다.
주된 작업은 비용과 일정 예측, 중간 점검에 대한 결정으로
관리 작업 중 가장 중요하며 모니터링과 제어 작업을 위한 기준이 된다.

[모니터링]
개발하는 동안 수행하는 모든 작업이 프로젝트 목적에 부합되며
개발이 계획대로 진척되는지 확인하기 위하여 데이터를 수집한다.
비용, 일정, 품질에 영향을 주는 요인들을 모니터링한다.

[분석과 조절]
모니터링에 의하여 확인된 사실을 분석하고,
계획과 차이나는 부분에 대하여 조정하고 조치한다.

프로젝트 모니터링과 제어는 개발 프로세스의

모든 단계를 포함하므로 가장 긴 기간동안 이루어진다.