제품 패밀리 엔지니어링

Product-family engineering

제품 라인 엔지니어링이라고도 알려진 제품 패밀리 엔지니어링(PFE)은 소프트웨어 엔지니어링 연구소가 1980년 캘리포니아[1] 대학교 어바인에서 제임스 네이버스가 쓴 논문에서 만든 용어인 "도메인 엔지니어링"의 아이디어를 기반으로 합니다.소프트웨어 제품군은 일상 생활에서 매우 흔하지만 제품군을 성공적으로 구축하기 위해서는 광범위한 프로세스가 필요합니다.이 프로세스를 제품 패밀리 엔지니어링이라고 합니다.

제품 패밀리 엔지니어링은 조직의 제품 플랫폼의 기반 아키텍처를 만드는 방법으로 정의할 수 있습니다.공통성과 계획된 가변성을 기반으로 하는 아키텍처를 제공합니다.다양한 제품 변형이 기본 제품 제품군에서 파생될 수 있으므로 제품군 내 제품을 재사용하고 차별화할 수 있는 기회가 생깁니다.제품군 엔지니어링은 개념적으로 자동차 산업에서 차량 플랫폼을 광범위하게 사용하는 것과 유사합니다.

제품 패밀리 엔지니어링은 새로운 제품을 만들기 위한 비교적 새로운 접근법입니다.제품 구성요소를 재사용하고 비용과 시간을 절감하면서 가변성을 적용할 수 있도록 신제품 엔지니어링 프로세스에 초점을 맞춥니다.제품 패밀리 엔지니어링은 컴포넌트와 구조를 가능한 한 재사용하는 것입니다.

제품 개발에 제품 패밀리 엔지니어링 접근 방식을 사용하면 여러 가지 이점이 있다는 것이 여러 연구에서 입증되었습니다(Carnegy Mellon(SEI), 2003).다음은 그 중 일부 목록입니다.

  • 생산성 향상
  • 고품질
  • 시장 투입 시간 단축
  • 인건비 절감

아래에 언급된 Nokia 사례도 이러한 이점을 보여줍니다.

전체 프로세스

제품군 엔지니어링 프로세스는 몇 가지 단계로 구성됩니다.세 가지 주요 단계는 다음과 같습니다.

프로세스는 더 높은 추상화 수준에서 모델링되었습니다.소프트웨어뿐만 아니라 모든 종류의 제품군과 제품군에 적용할 수 있다는 장점이 있습니다.모델은 모든 제품군에 적용할 수 있습니다.그림 1(아래)은 전체 공정의 모형을 보여 줍니다.아래에서는 프로세스에 대해 자세히 설명합니다.프로세스 설명에는 액티비티와 사용되는 중요한 개념에 대한 자세한 내용이 포함되어 있습니다.이탤릭체로 인쇄된 모든 개념은 표 1에 설명되어 있습니다.

단계 1: 제품 관리

첫 번째 단계는 전체 프로세스의 시작입니다.이 단계에서는 특히 경제적 측면과 관련하여 몇 가지 중요한 측면이 정의된다.이 단계에서는 시장 전략의 개요와 범위를 정의합니다.이 단계는 제품군에 무엇이 포함되어야 하는지, 없어야 하는지를 나타냅니다.

비즈니스 비전 평가

이 첫 번째 활동에서는 제품 라인의 범위 정의에 관련된 모든 컨텍스트 정보가 수집되고 평가됩니다.명확한 시장 전략을 정의하고 소비자의 요구와 같은 외부 시장 정보를 고려하는 것이 중요합니다.이 액티비티에서는 가이드라인, 제약조건 및 제품전략기재컨텍스트 문서를 전달해야 합니다.

제품군 범위 정의

범위 지정 기술은 범위에 포함되는 측면을 정의하기 위해 적용됩니다.이는 프로세스의 이전 단계에 기초한 것으로, 외부 요인이 고려되었습니다.출력은 제품 포트폴리오 설명으로, 현재 및 미래 제품 목록제품 로드맵이 포함됩니다.

1단계인 제품 관리가 제품 패밀리 엔지니어링 프로세스의 일부인지는 논란의 여지가 있습니다. 왜냐하면 제품 관리는 제품 측면이 아니라 관리 측면에 더 초점을 맞춘 개별 비즈니스 프로세스로 볼 수 있기 때문입니다.단, 단계2에서는 이 단계에서 큰 부분을 정의하기 때문에 이 단계에서 중요한 입력이 필요합니다.따라서 이 관점에서 도메인 엔지니어링 프로세스의 기반으로 제품 관리 단계(단계 1)를 프로세스 전체에 포함하는 것이 중요합니다.

단계 2: 도메인 엔지니어링

도메인 엔지니어링 단계에서는 전체 제품 라인에 대한 변수 및 공통 요건이 수집됩니다.재사용 가능한 플랫폼을 구축하는 것이 목표입니다.이 단계의 결과는 제품 라인의 모든 제품에 대한 공통적이고 가변적인 요건 세트입니다.

도메인 요건 분석

이 액티비티에는 개념 요건에 관한 도메인을 분석하기 위한 모든 액티비티가 포함됩니다.요건은 분류되어 두 가지 새로운 활동으로 나뉩니다.출력은 도메인 분석이 포함된 문서입니다.

그림 1에서 볼 수 있듯이 공통 요건을 정의하는 프로세스는 가변 요건을 정의하는 프로세스와 병렬 프로세스입니다.두 활동 모두 동시에 진행됩니다.

공통 요건 정의

제품 라인의 공통 요건을 도출하고 문서화함으로써 재사용 가능한 공통 요건을 포함하는 문서를 작성하기 위한 모든 활동을 포함합니다.

변수 요건 정의

제품 라인의 가변 요건을 도출하고 문서화하기 위한 모든 활동을 포함합니다.그 결과 가변 요건을 가진 문서가 생성됩니다.

설계 도메인

이 프로세스 단계는 제품 라인의 참조 아키텍처를 정의하는 활동으로 구성됩니다.이것에 의해, 제품 라인의 모든 제품에 대해서 추상적인 구조가 생성됩니다.

도메인 구현

이 단계에서는 재사용 가능한 컴포넌트의 상세 설계와 이들 컴포넌트의 구현이 작성됩니다.

테스트 도메인

컴포넌트의 재사용 가능성을 검증 및 검증합니다.컴포넌트는 사양에 따라 테스트됩니다.다양한 사용 사례와 시나리오에서 모든 컴포넌트를 성공적으로 테스트한 후 도메인 엔지니어링 단계가 완료되었습니다.

단계 3: 제품 엔지니어링

최종 단계에서는 제품 X를 제작하고 있습니다.이 제품 X는 도메인 엔지니어링 단계에서의 공통성과 가변성을 이용하기 때문에 제품 X는 도메인 엔지니어링 단계에서 확립된 플랫폼에서 파생되고 있습니다.기본적으로 이전 단계의 모든 공통 요건과 유사점 및 자체 변수 요건을 취합니다.도메인 엔지니어링 단계의 기반과 제품 엔지니어링 단계의 개별 요건을 사용하여 완전하고 새로운 제품을 구축할 수 있습니다.제품 테스트 및 승인이 완료된 후 제품 X를 배송할 수 있습니다.

제품 요건 정의

개별 제품에 대한 제품 요구사항 사양서 작성 및 이전 단계의 요구사항 재사용

디자인 제품

제품 아키텍처를 제작하기 위한 모든 활동."design domain" 스텝의 레퍼런스 아키텍처를 사용하여 레퍼런스 아키텍처의 필요한 부분을 선택 및 구성하고 제품 고유의 적응을 통합합니다.

제품 구축

이 프로세스에서는 재사용 가능한 컴포넌트의 선택과 구성을 사용하여 제품을 제작합니다.

테스트 제품

이 단계에서 제품은 사양에 따라 검증 및 검증됩니다.테스트 보고서는 수행된 모든 테스트에 대한 정보를 제공하며, 제품에서 발생할 수 있는 오류에 대한 개요를 제공합니다.다음 단계의 제품이 수락되지 않으면 프로세스는 "제품 빌드"로 루프백됩니다.그림 1에서는 "불만족"으로 표시됩니다.

제품 제공 및 지원

마지막 단계는 최종 제품의 수락입니다.테스트가 완료되고 완료가 승인되면 배송이 가능합니다.제품이 사양에 맞지 않으면 다시 조립하여 테스트해야 합니다.

다음 그림은 위에서 설명한 제품 패밀리 엔지니어링의 전체 프로세스를 보여줍니다.모든 개념을 다양한 단계에 첨부한 전체 프로세스 개요입니다.

공정 데이터 다이어그램

왼쪽에는 위에서 아래까지의 전체 프로세스가 그려졌습니다.왼쪽에 있는 모든 활동은 점선을 통해 오른쪽에 있는 개념과 연결됩니다.모든 개념에는 번호가 있으며, 이는 다른 개념과의 연관성을 반영합니다.

그림 1: 프로세스 데이터 다이어그램

개념 목록

아래에는 컨셉이 기재되어 있습니다.대부분의 개념 정의는 Pohl, Bockle, & Linden(2005)에서 발췌되었으며 새로운 정의도 추가되었다.

개념. 정의.

도메인 분석

문서에는 공통 요구사항과 가변 요구사항을 분할할 수 있는 도메인에 대한 분석이 포함되어 있습니다.

재사용 가능한 공통 요건

이 문서에는 제품 라인의 모든 제품에 공통되는 요구 사항이 포함되어 있습니다.

가변요건

이 문서에는 다양한 제품에 대한 맞춤형 요구 사항의 도출이 포함되어 있습니다.

레퍼런스 아키텍처

제품 라인의 모든 제품에 유효한 정적 및 동적 분해를 결정합니다.또한 설계, 부품의 실현, 제품 형성을 위한 결합 방법을 안내하는 공통 규칙의 수집.

변동성 모형

제품 라인의 가변성을 정의합니다.

재사용 가능한 컴포넌트 설계 및 구현 자산

설계 및 구현 측면의 주요 컴포넌트. 제품 패밀리 전체에 관계합니다.

테스트 결과

도메인 테스트에서 수행된 테스트의 출력입니다.

재사용 가능한 테스트 아티팩트

테스트 아티팩트에는 도메인 테스트 계획, 도메인 테스트 사례 및 도메인 테스트 사례 시나리오가 포함됩니다.

요건 사양

특정 제품에 대한 요구 사항.

제품 아키텍처

레퍼런스 아키텍처에 필적하지만 여기에는 제품 고유의 아키텍처가 포함되어 있습니다.

실행 중인 응용 프로그램

나중에 테스트할 수 있는 동작 중인 응용 프로그램입니다.

상세 설계 아티팩트

여기에는 각 구성요소의 정적 및 동적 구조를 캡처하는 다양한 종류의 모델이 포함됩니다.

시험 성적서

제품의 모든 테스트 결과를 문서화합니다.

문제 보고서

문서 - 제품 테스트 중에 발생한 모든 문제를 나열합니다.

최종 제품

완제품의 배송.

패밀리 모델

모든 패밀리 멤버와 모든 서브 제품이 겹치는 개념입니다.

패밀리 멤버

개별 제품의 개념입니다.

콘텍스트 문서

범위를 결정하기 위한 중요한 정보를 포함하는 문서. 가이드라인, 제약조건 및 생산전략을 포함합니다.

가이드라인

시장/비즈니스/제품 가이드라인

제약

시장/비즈니스/제품 제약

제품 전략

시장에 대한 제품 전략

제품 포트폴리오 설명

이용 가능한 모든 제품과 중요한 속성을 포함하는 포트폴리오.

현재 및 미래 제품 목록

현재 모든 제품 및 향후 생산될 제품 목록입니다.

제품 로드맵

제품 라인의 모든 제품의 기능을 설명하고 각 제품의 일부인 공통 기능과 일부 제품의 일부에 불과한 가변 기능으로 기능을 분류합니다.

표 1: 개념 목록

제품 패밀리 엔지니어링을 사용한 좋은 예가 몇 가지 있는데, 이는 상당히 성공적이었다.제품 패밀리 엔지니어링의 추상적 모델은 다양한 종류의 사용을 허용하며, 대부분은 가전제품 시장과 관련이 있습니다.아래는 Nokia의 실제 경험을 바탕으로 한 제품군 엔지니어링 프로세스의 적용 예를 제시합니다.

노키아는 다양한 종류의 제품을 생산한다.이 중에는 현재 매년 2530개의 신제품을 보유하고 있는 휴대폰 제품군도 포함돼 있다.이러한 제품은 전 세계에서 판매되고 있기 때문에 다양한 언어와 사용자 인터페이스를 지원해야 합니다.여기서 가장 큰 문제는 몇 가지 다른 사용자 인터페이스를 지원해야 한다는 것입니다.또한 신제품이 서로 빠르게 성공하기 때문에 가능한 한 효율적으로 이 작업을 수행해야 합니다.제품 패밀리 엔지니어링을 통해 다양한 제품을 위한 소프트웨어를 만들고 가변성을 사용하여 각 휴대폰에 소프트웨어를 맞춤화할 수 있습니다.

Nokia의 케이스는 일반 소프트웨어 제품군과 동등합니다.첫 번째 단계인 제품 관리에서는 다양한 휴대 전화 시리즈의 범위를 정의할 수 있습니다.제2단계에서는 도메인엔지니어링, 요건이 패밀리 및 개별 전화기 유형(예: 6100/8300 시리즈)에 대해 정의됩니다.이 단계에서는 소프트웨어 요건이 작성되어 제품 패밀리 전체의 기반이 될 수 있습니다.이를 통해 소프트웨어의 전체 개발 프로세스가 빨라집니다.마지막 단계인 제품 엔지니어링은 개별 전화기 유형에 더 초점을 맞춥니다.이전 단계의 요건은 개발 중인 전화기 유형에 맞는 개별 소프트웨어를 작성하기 위해 사용됩니다.

제품 라인의 사용은 노키아가 새로운 휴대폰 모델의 생산을 5-10대에서 약 30대로 늘릴 수 있는 기회를 주었다.Carnegie Mellon (SEI), 2006, Clements & Northrop (2003).

「 」를 참조해 주세요.

레퍼런스

  1. ^ https://escholarship.org/uc/item/5687j6g6 컴포넌트를 사용한 소프트웨어 구축, 2021-01-09 회수
  • Jan Bosch, 소프트웨어 아키텍처 설계 및 사용: ACM Press/Addison-Wesley Publishing Co., New York, 2000 ISBN978-0201674941https://www.amazon.com/Design-Use-Software-Architectures-Bosch/dp/0201674947
  • Carnegie Mellon Software Engineering Institute(SEI)소프트웨어 제품 라인2006년 2월 17일 취득:https://web.archive.org/web/20171005173029/http : //www.sei.cmu.edu/productlines/
  • Clements P. & Northrop L.M. (2003)소프트웨어 제품 라인프레젠테이션 카네기 멜론 소프트웨어 엔지니어링 연구소.2006년 3월 26일 취득:http://www.sei.cmu.edu/
  • European Software Institute(ESI)2006년 2월 17일 취득:https://web.archive.org/web/20070203151901/http : //www.esi.es/Families/famResults.html
  • Pohl K., Bockle G. 및 Linden F. van der(2005).소프트웨어 제품군 엔지니어링베를린, 하이델베르크, 뉴욕: Springer-Verlag.ISBN 978-3-540-28901-2 https://www.amazon.com/Software-Product-Line-Engineering-Foundations-dp-3540243720/dp/3540243720

외부 링크