제품 계열 방법론

IT 위키
Product Line Methodology; 제품계열 방법론; SPL; Software Product Line
특정 제품군에서 공통되는 부분을 핵심 자산으로 미리 만들어 두고, 제품마다 다른 부분만 조립해 개발하는 방법론

비슷한 제품을 여러 벌 만들어야 하는 조직에서 재사용을 체계적으로 하기 위한 접근이다.

소프트웨어 개발방법론의 4가지 유형

[편집 | 원본 편집]
유형 내용
구조적 방법론 기능을 중심으로 하향식 분할. 프로세스와 데이터를 분리해 다룬다. 나씨-슈나이더만 도표, 자료흐름도(DFD)
정보공학 방법론 기업 전체를 대상으로 데이터 중심의 정보시스템을 구축. 데이터 모델링(ERD) 중심
객체지향 방법론 데이터와 기능을 객체로 묶어 다룬다. 캡슐화·상속·다형성. UML
컴포넌트 기반 방법론(CBD) 재사용 가능한 컴포넌트를 조립해 개발. 인터페이스 중심
(제품계열 방법론) 위의 재사용 개념을 제품군 단위로 확장한 것

필요성

[편집 | 원본 편집]
  • 비슷한 제품을 만들 때마다 처음부터 다시 개발하는 중복 투자를 없앤다
  • 검증된 핵심 자산을 재사용하므로 품질이 올라가고 결함이 준다
  • 신제품 출시 기간(Time to Market)이 짧아진다
  • 유지보수 지점이 핵심 자산 한 곳으로 모인다
  • 대량 맞춤(Mass Customization) 요구에 대응할 수 있다
  • 임베디드·가전·통신 장비처럼 기종이 많은 분야에 특히 효과가 크다

2가지 구성요소

[편집 | 원본 편집]
구성요소 내용
영역공학(Domain Engineering) 재사용할 것을 만드는 쪽. 제품군 전체를 분석해 공통성(Commonality)과 가변성(Variability)을 식별하고, 참조 아키텍처와 재사용 가능한 핵심 자산(Core Asset)을 개발한다
응용공학(Application Engineering) 재사용하는 쪽. 개별 제품의 요구사항에 맞춰 핵심 자산을 가져다 쓰고, 가변점(Variation Point)을 설정하고, 제품 고유 부분만 추가로 개발한다

두 공학은 피드백 관계다. 응용공학에서 발견된 새 공통 요소는 다시 핵심 자산으로 올라간다.

핵심 개념

[편집 | 원본 편집]
  • 공통성 — 제품군 전체가 공유하는 부분
  • 가변성 — 제품마다 달라지는 부분. 피처 모델(Feature Model)로 표현한다
  • 가변점 — 가변성이 실제로 반영되는 코드·설계상의 지점

같이 보기

[편집 | 원본 편집]