피쳐 모델

Feature model

소프트웨어 개발에서 피쳐 모델소프트웨어 제품군(SPL)의 모든 제품을 "피쳐" 측면에서 압축적으로 표현한 것이다.형상 모형은 형상도를 통해 시각적으로 표현된다.피쳐 모델은 전체 제품군 개발 과정에서 널리 사용되며 문서, 아키텍처 정의 또는 코드 조각과 같은 다른 자산을 생산하기 위한 입력 자료로 일반적으로 사용된다.[citation needed]

SPL은 관련 프로그램의 가족이다.프로그램 구성 단위가 기능(프로그램 기능 또는 개발의 증가)인 경우 SPL의 모든 프로그램은 고유하고 합법적인 기능 조합으로 식별되며, 그 반대의 경우도 마찬가지다.

피쳐 모델은 1990년 강씨가 FODA(Feature-Oriented Domain Analysis) 방식으로 처음 도입했다.[1]이후 소프트웨어 제품군 커뮤니티에서 피쳐 모델링이 널리 채택되었고, 여러 가지 확장이 제안되었다.

배경

"기능"은 "소프트웨어 시스템이나 시스템의 사용자가 볼 수 있는 유망한 측면, 품질 또는 특성"[1]으로 정의된다.SPL 개발의 초점은 유사 프로그램의 체계적이고 효율적인 제작에 있다.FODA는 특정 SPL이 커버할 도메인에서 형상의 식별에 전념하는 분석이다.[1]

모델

형상 모형은 형상도와 그 종속성을 정의하는 모델이며, 일반적으로 형상도 + 왼쪽-오버(예: 교차 트리) 제약조건의 형태로 정의된다.그러나 또한 가능한 조합의 표로서도 될 수 있다.[citation needed]

도표

형상도는 형상 모형의 시각적 표기법이며, 기본적으로 및/또는 트리이다.기타 확장이 존재한다: 추기경, 형상 복제, 형상 속성, 아래에서 설명된다.

배열

형상 구성은 SPL의 멤버를 설명하는 형상의 집합이다. 형상이 그 구성에 있는 경우에만 형상이 포함되어 있다.형상 모형이 부과한 제약조건을 위반하지 않는 경우에만 형상 모형에 의해 형상 구성이 허용된다.

피쳐 트리

피쳐 트리(피쳐 모델 또는 피쳐 다이어그램이라고도 함)는 증가하는 상세 수준의 그룹으로 솔루션의 피쳐를 시각적으로 묘사하는 계층형 다이어그램이다.피쳐 트리는 솔루션에 포함될 특징과 단순한 시각적 방식으로 그것들이 어떻게 연관되어 있는지를 요약할 수 있는 좋은 방법이다.[2]

피쳐 모델링 표기

현재 형상 모델링 기호는 다음과 같은 세 가지 주요 그룹으로 나눌 수 있다.

  • 기본 피쳐 모델
  • 카디널리티 기반 피쳐 모델
  • 확장된 피쳐 모델
구성 가능한 e-shop 시스템을 나타내는 기능 다이어그램.

기본 피쳐 모델

상위 형상과 하위 형상의 관계는 다음과 같이 분류된다.

  • 필수 – 하위 기능이 필요함
  • 옵션 – 하위 기능은 옵션이다.
  • 또는 – 하위 기능 중 적어도 하나를 선택해야 한다.
  • 대체(xor) – 하위 기능 중 하나를 선택해야 함

특징들 간의 부모 관계 외에도, 교차 트리 제약이 허용된다.가장 흔한 것은 다음과 같다.

  • A는 B를 필요로 한다 – 제품에서 A를 선택하는 것은 B의 선택을 의미한다.
  • A 제외 B – A와 B는 동일한 제품의 일부가 될 수 없다.

예를 들어 오른쪽 그림은 기능 모델을 사용하여 구성 가능한 온라인 쇼핑 시스템을 지정하고 구축하는 방법을 보여준다.각 애플리케이션의 소프트웨어는 그것이 제공하는 기능에 의해 결정된다.루트 기능(즉, E-Shop)은 SPL을 식별한다.모든 쇼핑 시스템은 카탈로그, 결제 모듈, 보안 정책 및 선택적으로 검색 도구를 구현한다.E-shops는 높은 보안 정책 또는 표준 보안 정책을 구현해야 하며(하나를 선택하십시오), 은행 송금, 신용카드 또는 둘 다와 같은 다른 결제 모듈을 제공할 수 있다.또한 가로수 제약으로 인해 신용카드 결제 모듈을 포함한 쇼핑 시스템이 높은 보안 정책을 시행하게 된다.

카디널리티 기반 피쳐 모델

일부 저자는 [n,m] 형식의 UML 유사 승수를 가진 기본 형상 모델을 확장할 것을 제안하며, n은 하한이고 m은 상한이다.이는 상위 항목을 선택할 때마다 제품의 일부가 될 수 있는 하위 기능의 수를 제한하는 데 사용된다.[3]

상한이 m인 경우 형상은 원하는 횟수만큼 복제될 수 있다(다른 제약조건이 존중되는 한).이 표기법은 임의의 수의 성분으로 확장 가능한 제품에 유용하다.

확장된 피쳐 모델

다른 이들은 "속성"을 사용하여 기능에 추가 기능 정보를 추가할 것을 제안한다.이것들은 주로 이름, 도메인, 그리고 가치로 구성되어 있다.[4]

의미론

형상 모델의 의미론은 형상 모델이 허용하는 형상 구성의 집합이다.가장 일반적인 접근법은 수학적 논리를 사용하여 형상도의 의미론을 포착하는 것이다.[5]각 형상은 부울 변수에 해당하며 의미론은 명제 공식으로 포착된다.이 공식의 만족스러운 평가는 형상도가 허용하는 형상 구성에 해당한다.예를 들어, 1 }가 f }}의 필수 하위 기능인 경우 공식은 왼쪽 오른쪽 [6]2}} .

다음 표에는 기본 원형의 번역이 수록되어 있다.다이어그램의 의미론은 다이어그램에 포함된 요소의 번역의 결막이다.우리는 그 도표가 뿌리깊은 나무라고 추측한다.

피쳐 다이어그램 원시 의미론
(가) 루트 기능임
} 하위 메뉴
f {\의 필수 하위 항목
,… , 대체 하위 테이블
,… , 또는 의 하위 파티션
}는 f f_2}}을한다.
1}에 }}개 필요

제품 구성

SPL 제품은 사용자의 선호도에 따라 형상을 선택하거나 선택 취소하여 선언적으로 지정된다.그러한 결정은 형상 모형에 의해 부과되는 제약조건을 존중해야 한다."configurator"는 구성 프로세스 중에 사용자를 지원하는 도구다.예를 들어 구성이 성공적으로 완료되기 위해 각각 선택해야 하거나 선택되어서는 안 되는 기능을 자동으로 선택하거나 선택 취소하는 식입니다.현재 접근방식은 단위 전파[7]CSP 해결기를 사용한다.[4]

특성 및 분석

형상 모델의 분석은 마케팅 전략이나 기술적 의사결정에 중요한 모델의 특정 속성을 대상으로 한다.문헌에서 많은 분석이 확인된다.[8][9]전형적 분석은 형상 모형이 보이드인지(제품이 없는지를 나타냄), 비활성 형상(제품의 일부가 될 수 없는 특징) 또는 모델로 대표되는 소프트웨어 제품군의 제품 수를 결정한다.다른 분석에서는 여러 형상 모형의 비교(예: 모형이 다른 형상 모형의 전문화 또는 리팩토링 또는 일반화인지 여부를 확인하기 위해)[10]에 초점을 맞춘다.

참고 항목

참조

  1. ^ a b c Kang, K.C. and Cohen, S.G. and Hess, J.A. and Novak, W.E. and Peterson, A.S., "Feature-oriented domain analysis (FODA) feasibility study", Technical Report CMU/SEI-90-TR-021, SEI, Carnegie Mellon University, November 1990 download
  2. ^ "Feature Tree BAwiki".
  3. ^ Czarneci, K.와 Helsen, S.와 Eisenecker, "특징 모델을 이용한 스테이징 구성", 소프트웨어 제품 라인에 관한 제3차 국제 회의의 진행 (SPLC '04), 컴퓨터 과학 강의 노트 3154권.스프링거 베를린/하이델베르크, 2004년 8월 다운로드.
  4. ^ a b D. Benavides, P.트리니다드와 A.루이즈코르테스"특징 모델에 대한 자동 추론". 제17차 고급 정보 시스템 엔지니어링 회의(CAiSE'05)포르투갈의 포르투.2005년 다운로드
  5. ^ Schobbens, P.-Y.; Heymans, P.; Trigau, J.C., "특징 다이어그램: 설문조사와 공식 의미론" 요구사항 엔지니어링, 제14회 IEEE 국제 컨퍼런스 , vol, no., pp.139-148, 11-15 2006년 9월 다운로드
  6. ^ Amador Duran, David Benavides, Sergio Segura, Pablo Triinidad 및 Antonio Ruiz-Cortés "FLame: 자동 사양 시험에 의해 검증된 소프트웨어 제품 라인의 자동 분석을 위한 공식 프레임워크".소프트웨어 및 시스템 모델링. 2015. 다운로드
  7. ^ 바토리, D, "기능 모델, 그래머 및 제안 공식", 제9회 국제 소프트웨어 제품군 회의(SPLC '05) 다운로드 절차
  8. ^ D. Benavides, A.루이즈코르테스, P.트리니다드와 S.세구라."특징 모델의 자동 분석에 관한 조사". Jornadas de Insenieria del 소프트웨어 y Bases de Datos(JISBD'06)2006년 스페인 시트지스
  9. ^ Benavides, David; Segura, Sergio; Ruiz Cortés, Antonio (2010). "Automated Analysis of Feature Models 20 Years Later: A Literature Review". Information Systems. 35 (6): 615–636. doi:10.1016/j.is.2010.01.001. hdl:11441/24694.
  10. ^ T. Thuem, D.바토리, 그리고 C.카스트너."특징 모델에 대한 편집 내용 변경"2009년 5월 국제 소프트웨어 엔지니어링 회의(ICSE)

외부 링크