소프트웨어 프로세스 : 소프트웨어를 개발하는데 필요한 작업을 정의한 것
방법론 : 정의된 작업들을 어떤 순서로 어떤 방법으로 하는가를 다루는 것
즉흥적인 소프트웨어 개발 시의 문제점
1. 설계하는 작업의 중요성을 깨닫지 못함
2. 잘 설계되지 않음
3. 계획이 없어 작업의 목표가 없음
4. 체계적인 테스트 작업이나 품질 보증 차원의 활동에 대한 필요성의 인식이 없음
이러한 문제점들은 소프트웨어 개발과 유지보수에 비용이 많이 들게 한다.
그렇다면 프로세스 모델이란 무엇일까?
프로세스 모델이란 프로젝트 수행에 필요한 작업과 작업들 사이의 관계만을 정의한 것인데 각 단계 작업에 대한 자세한 입력 자료와 산출물의 표현 뿐만 아니라 각 작업을 어떤 방식으로 하는지를 자세히 제시하는 것이 방법론이라고 한다.
이제 점점 프로세스와 방법론의 개념이 얼추 잡히기 시작될 것 같다. 쉽게 말해 프로세스 모델은단계적인 작업을 정의한 것이고 방법론이란 프로세스의 구체적인 구현이라고 생각하면 될 것 같다.
좀 더 쉽게 이해하고 프로세스과 방법론을 비교해보도록 하겠다.
|
프로세스 |
방법론 |
특징 |
단계적인 작업의 틀을 정의한 것 무엇을 하는가에 중점 결과물의 표현에 대하여 언급 없음 패러다임에 독립적 각 단계가 다른 방법론으로도 실현 가능 |
프로세스의 구체적인 구현에 이름 어떻게 하는가에 중점 결과물을 어떻게 표현하는지 표시 패러다임에 종속적 각 단계의 절차, 기술, 가이드라인을 제시 |
사례 |
폭포수 프로세스 나선형 프로세스 프로토타이핑 프로세스 Unified 프로세스 애자일 프로세스 |
구조적 분석, 설계 방법론 객체지향 방법론 컴포넌트 애자일 방법론 |
그런데 이제 조금 헷갈리는 부분이 나오는데 프로세스와 프로세스 모델이다. 이 각각의 단어는 소프트웨어 공학에서 정의가 조금 다른데 처음에 나는 같은 의미인 줄 알았다.
프로세스 : 높은 품질, 낮은 비용, 일정 단축을 달성하는 수단
프로세스 모델 : 프로젝트를 위하여 알맞은 프로세스를 개발하기 위한 일반적인 가이드라인
* 프로세스의 종류
프로세스에도 종류가 있다. 크게 개발 프로세스와 관리 프로세스가 있는데 각각에 대해서 알아보도록 하겠다.
- 개발 프로세스 : 수행해야 할 개발과 품질 보증 작업들이 해당
- 관리 프로세스 : 비용, 품질, 기타 목표를 맞추기 위한 계획, 제어 작업을 말함
일반적으로 개발 프로세스는 발전이나 변경에 초점을 두지 않기 때문에 별도의 프로세스, 소프트웨어 형상 관리 프로세스를 사용한다고 한다. 여기서 형상 관리 프로세스의 목적은 변경을 관리하여 제품의 일관성을 유지하려는 것이다.
솔직히 나도 잘 모르겠다.