본문 바로가기

Software Engineering

[소프트웨어 공학] 개발 프로세스 / Reuse-oriented model

반응형

 

 

소프트웨어 개발 분야에서는 다양한 개발 모델이 사용되지만, 가장 대표적인 세 가지 모델은 워터폴 모델(Waterfall Model), 점진적 개발(Incremental Development), 그리고 재사용 중심 개발(Reuse-oriented Software Engineering)입니다.

워터폴 모델은 가장 전통적인 소프트웨어 개발 방식으로, 프로젝트를 명확하게 정의된 여러 단계로 나누어 진행합니다. 이 모델은 요구사항 정의, 설계, 구현, 검증, 유지보수 등의 단계가 순차적으로 이루어지며, 각 단계는 이전 단계가 완전히 완료되어야만 다음 단계로 넘어갈 수 있는 엄격한 순서를 따릅니다. 워터폴 모델의 주된 장점은 그 구조가 명확하고 간단하여 관리하기 쉬우나, 변경 사항을 수용하기 어렵다는 단점도 있습니다.

점진적 개발은 프로젝트를 작은 모듈로 나누어 점진적으로 개발하는 방법입니다. 이 모델에서는 전체 프로젝트가 여러 작은 프로젝트의 집합으로 처리되며, 각각의 소규모 프로젝트는 독립적으로 계획되고 실행됩니다. 이 방식은 유연성을 제공하고 초기 단계부터 소프트웨어의 일부를 사용할 수 있게 하므로, 고객의 피드백을 빠르게 반영할 수 있는 장점이 있습니다. 점진적 개발은 특히 변화가 잦은 프로젝트 환경에서 유리합니다.

재사용 중심 개발은 기존에 개발된 소프트웨어 컴포넌트를 재사용하여 새로운 소프트웨어를 개발하는 방식입니다. 이 접근 방식은 개발 시간을 단축하고 비용을 절감하는 효과가 있으며, 이미 검증된 컴포넌트의 사용으로 인한 신뢰성 향상이 가능합니다. 재사용 중심 개발은 특히 컴포넌트 기반 개발(Component-based Development)과 서비스 지향 아키텍처(Service-Oriented Architecture, SOA) 등의 현대적 기술 트렌드와 잘 어울립니다.

이 세 가지 모델은 각각의 장단점을 가지고 있으며, 프로젝트의 특성에 따라 적절한 모델을 선택하는 것이 중요합니다. 소프트웨어 개발 팀은 프로젝트 요구사항, 기술적 배경, 그리고 예산 등을 고려하여 가장 효율적인 개발 모델을 결정해야 합니다.

 

 

재사용 중심 개발 

재사용 중심 개발은 기존에 이미 개발된 요소를 재사용, 가져와서 새로운 소프트웨어를 개발하는 방식이라고 했습니다. 소프트웨어 구성요소를 마치 조립하듯이 구축하는 방식은 이미 개발된 요소들은 다시 개발할 필요가 없는 점에서 개발 과정을 효율적으로 만듭니다. 

 

재사용 가능한 대상들은 웹서비스, 객체 집합, 상용 구성 요소(COTS) 또는 오픈 소스 소프트웨어 등이 있을 수 있습니다. 상용 구성 요소(COTS, Commercial Off-The-Shelf)란 시장에서 일반적으로 구입할 수 있는 제품을 의미합니다. 이러한 컴포넌트는 특정 소프트웨어 프로젝트의 요구에 맞춰져 있지 않지만, 개발을 용이하게 하고 비용과 시간을 절약할 수 있는 장점이 있습니다. COTS 제품은 별도의 맞춤화 없이도 사용할 수 있으며, 다양한 용도로 활용될 수 있는 범용성을 갖추고 있습니다.

 

 

 

 


재사용 중심 개발 프로세스 모델의 기본 흐름은 다음과 같습니다. 첫째, 요구사항 명세화(requirements specification)를 통해 프로젝트의 기본 요구사항을 정의합니다. 다음으로, 컴포넌트 분석(component analysis) 단계에서는 사용 가능한 오픈 소스나 시장의 요소들을 조사합니다. 전 단계에서 명시한 요구사항에 따라 시중에 필요한 구성요소를 찾는 과정을 동반합니다. 만약 오픈소스나 공개된 컴포넌트가 없다면, COTS 등을 통해 컴포넌트를 구입할 수도 있습니다. 이후, 요구사항 수정(requirement modification) 과정에서 상대적으로 유연한 요구사항을 선택적으로 수정하여 사용할 컴포넌트에 맞춥니다.

시스템 디자인은 재사용을 기반으로(system design with reuse) 진행되며, 개발 및 통합(development and integration) 단계에서는 조립과 통합이 주요 특징입니다. 마지막으로, 시스템 검증(system validation) 과정을 통해 최종 제품의 기능과 성능을 평가합니다.

 

 

재사용 중심 개발은 현대의 오픈소스 트렌드와 잘 어울립니다. 특히 현대의 개발 역사가 쌓인 만큼 처음부터 다시 쌓는 개발과정보다 더욱 대두되고 있을 것으로 여겨집니다. 

 

 

 

 

반응형