오늘은 프로세스와 방법론에 대해서 배워보겠습니다.
-목차-
2.1 소프트웨어 생명주기
2.2 프로세스
2.3 프로세스 모델
2.4 지원 프로세스
2.5 방법론
프로세스 이전에 프로세스에 대해서 간단히 알아보겠습니다.
먼저 프로세스 없는 개발이라는 안좋은 예시부터 배워보겠습니다.
영어로는 Code-and-fix라고 불리는 이것은 아래 도식처럼 아무 생각없이
일단 프로그래밍 하고 만족할 때까지 수정하는 방식입니다.
해당 방식에는 무려 3가지의 단점이 존재합니다.
첫째, 설계하는 작업의 중요성을 깨닫지 못함
둘째, 계획이 없어 작업 목표가 모호함
셋째, 테스트의 필요성에 대한 인식이 없음 -> 이는 버그를 초래합니다.
프로세스가 없다면 아래와 같이 각기 다른 이해를 초래하는 결과를 낳습니다.
고객과, 개발 직책별로 이해가 매우 상이해집니다. 이는 문서가 전혀 없기에
발생하는 해석의 차이가 원인입니다.
그리고 이는 개발 기간을 늘리고 고객에 대한 청구금액이 늘어날 수 있습니다.
이제 이를 방지하기 위한 프로세스와 방법론에 대해서 알아보겠습니다.
먼저 프로세스란, 단계적인 작업의 틀을 정의한 것입니다.
특징으로 4가지가 있습니다.
첫째, 무엇을 하는가에 중점을 둡니다.
둘째, 결과물이 표현에 대해서 직접적인 언급을 하지 않습니다.
예를 들어, "요리를 한다"는 프로세스지만, 그 결과물이 김치찌개일 수도, 파스타일 수도 있는 거죠
방법적인 것, 추상적인 방식 그 자체에 집중을 합니다.
셋째, 패러다임에서 독립적입니다.
프로그래밍에서는 절차지향, 객체지향, 함수형 프로그래밍 등 다양한 패러다임이 있는데, 프로세스 자체는 그중 특정한 하나에 종속되지 않는다는 의미예요
넷째, 각 단계가 다른 방법론으로도 실헌현 가능
예를 들어, "온라인 쇼핑 주문 처리"라는 프로세스가 있다고 할 때, 결제 단계에서는 신용카드, 카카오페이, 네이버페이 등 다양한 방법이 사용될 수 있는 것처럼요.
프로세스의 종류로는 다음과 같습니다.
폭포수 프로세스, 나선형 프로세스, 프로토타이핑 프로세스, Unified 프로세스, 애자일 프로세스가 있습니다.
곧 배울 겁니다.
그리고 프로세스와 비슷하지만 다른 '방법론'이라는 것도 있습니다.
방법론이란? 프로세스를 구체적인 구현하는 방법을 말합니다.
프로세스는 '무엇을 하는지'에 대한 단계적인 틀이라면
방법론은 프로세스대로 '어떻게 만들 것인가'에 대해 초점을 맞춥니다.
결과물을 어떻게 표현하는지 표시 되어야 합니다. 예로, 보고서, 코드, 그래프가 있습니다.
패러다임에 종속적입니다. 객체지향 프로그래밍인지 함수형 프로그래밍인지에 따라 방법이
달라질 수 있습니다.
각 단계의 절차, 기술 가이드라인을 제시해야 합니다.
예로, 구조적 분석, 설계 방법론
객체지향 방법론
컴포넌트
애자일 방법론이 있습니다.
소프트웨어 생명주기에 대해 알아보겠습니다.
소프트웨어 개발에 대한 기술적, 관리적 이슈를 다루는 작업을 말합니다.
개발 모델별 컴포넌트 프로세스와 부 프로세스가 존재합니다.
대표적으로는 아래 방식입니다.
프로세스에 대한 정확한 정의는 소프트웨어 시스템을 구축하기 위한 작업의 단계입니다.
소프트웨어 개발에 대한 기술적, 관리적 이슈를 다룹니다.
그리고 프로세스 종류로는
프로젝트 중심의 프로세스 그리고 기타 프로세스로 나뉜다
프로젝트 중심 프로세스에는 개발프로세스와 관리 프로젝트가 있다
기타 프로세스에는 형상 관리 프로세스, 프로세스 관리 프로세스가 있다.
다르게 표현하자면
소프트웨어 프로세스가 최상위
그 다음 프로덕트 엔지니어링 프로세스와 프로세스 관리 프로세스가 있다.
프로덕트 엔지니어링 프로세스 밑에는
개발 프로젝트, 프로젝트 관리 프로세스, 소프트웨어 형상 관리 프로세스가 있다.
'Other > Software Engineering' 카테고리의 다른 글
소프트웨어 공학 4주차 - 김범수 교수님 (0) | 2025.03.31 |
---|---|
소프트웨어 공학 3주차 : 프로젝트 관리와 계획 (0) | 2025.03.24 |
소프트웨어 공학 1주차 - 김범수 교수님 (0) | 2025.03.10 |
댓글