<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Modelling Configuration Knowledge in Heterogeneous Product Families</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Matthieu</forename><surname>Quéva</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">DTU Informatics</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Tomi</forename><surname>Männistö</surname></persName>
							<email>tomi.mannisto@aalto.fi</email>
							<affiliation key="aff1">
								<orgName type="institution">Aalto University</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Laurent</forename><surname>Ricci</surname></persName>
							<email>lricci@microsoft.com</email>
							<affiliation key="aff2">
								<orgName type="institution">Microsoft Development Center Copenhagen</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christian</forename><forename type="middle">W</forename><surname>Probst</surname></persName>
							<email>probst@imm.dtu.dk</email>
							<affiliation key="aff0">
								<orgName type="department">DTU Informatics</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Modelling Configuration Knowledge in Heterogeneous Product Families</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">38F9723B1551B0B84AB0DF12372F7C5F</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-19T15:47+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Product configuration systems play an important role in the development of Mass Customisation. The configuration of complex product families may nowadays involve multiple design disciplines, e.g. hardware, software and services. In this paper, we present a conceptual approach for modelling the variability in such heterogeneous product families. Our approach is based on a framework that aims to cater for the different stakeholders involved in the modelling and management of the product family. The modelling approach is centred around the concepts of views, types and constraints and is illustrated by a motivation example. Furthermore, as a proof of concept, a prototype has been implemented for configuring a non-trivial heterogeneous product family.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>In many companies, there has been an increasing need to reduce the costs while offering highly customised products. Indeed, today's customers demand products with lower prices, higher quality and faster delivery, but they also want products customised to match their unique needs. Product configuration systems (or configurators) have allowed the manufacturers to adapt their business model to Mass Customisation <ref type="bibr">[Pine, 1993]</ref> and propose products with hundreds of product features and options for a competitive price.</p><p>Model-based configuration is based on a strict separation between the product knowledge (i.e. the data representing the characteristics of the products) and the problem solving knowledge (i.e. the mechanisms used to ensure the consistency of the customised product). As the solving process is independent from the product knowledge, this separation provides a good robustness, compositionality and reusability, making model-based systems the prime choice for configuring large and more complex models <ref type="bibr">[Sabin and Weigel, 1998]</ref>.</p><p>Most of the research on product knowledge modelling has concentrated on manufactured product families <ref type="bibr">[Hvam et al., 2008]</ref>. Moreover, configuration techniques have recently been applied to other types of products, such as software variability <ref type="bibr" target="#b1">[Asikainen et al., 2007]</ref> or configurable services <ref type="bibr" target="#b3">[Heiskala et al., 2005]</ref>. However, many products nowadays are heterogeneous, i.e. different design disciplines are taken into account within the same product family. Modelling such products raises two main issues. One must first consider how to structure the different kind of knowledge that needs to be modelled. A second issue concerns the evolution of the product family. The set of features provided by a product family varies according to where and when it is distributed.</p><p>In this paper, we present a framework for modelling heterogeneous product families, based on modelling views. This framework synthesizes, unifies and extends different approaches to modelling configuration in the different design disciplines, e.g. physical products, software or services. The different views used in the approach are described using UML metamodels, together with different types of constraints that govern the dependencies both within and between views.</p><p>Section 2 and Section 3 introduce the necessary background and the research problem behind our approach. Section 4, 5 and Section 6 present concepts and constraints involved in our framework. Section 7 provides a brief overview of the proof of concept for our work, while Section 8 discusses our results and related work. Finally, Section 9 concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background and Previous Work</head><p>This section provides a brief overview of different research areas on which this work is based.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Product Configuration</head><p>Product configuration modelling is widely based on concepts such as components, ports, resources and functions <ref type="bibr" target="#b7">[Soininen et al., 1998]</ref>. A configurable product is composed by components that are connected together via ports to form a hierarchical partonomy structure. Specialisation relations also permits to create a taxonomy structure in the model. Resources are balanced entities that can be produced or consumed by components, while functions can be used to define the product from the point of view of what functionalities it provides. The model also contains constraints that limit the number of possible variants, e.g. by restricting the combinations of values allowed for the different attributes of the product. The traditional method for modelling products is the type-instance approach: the model defines a number of types, that are then instantiated as individuals during the configuration process to store the final data.</p><p>Several high-level modelling languages tailored for product configuration have been proposed, including PCML <ref type="bibr" target="#b7">[Tiihonen et al., 2002]</ref>. Other languages such as UML have also been studied for modelling product configuration <ref type="bibr" target="#b2">[Felfernig et al., 2002;</ref><ref type="bibr">Hvam et al., 2008]</ref>. Finally, product configuration has also been successful in industry <ref type="bibr" target="#b3">[Haag, 1998]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Software Product Lines</head><p>Software product lines (SPL), also known as software product families, is a set of software systems sharing a common set of features that "satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way" <ref type="bibr">[Clements and Northrop, 2001]</ref>.</p><p>Some approaches consider software product lines from an architectural point of view. Architecture description languages (ADLs) have been proposed to describe the SPLs in terms of their structure, including their components, interfaces, or communication protocols; but few can handle variability in SPLs. A few exceptions exist: Koalish <ref type="bibr" target="#b1">[Asikainen et al., 2003]</ref> for example extends Koala, an ADL based on components and interfaces, by adding variability elements such as attribute domains and constraints.</p><p>A more common method to model SPL is using features. Feature modelling approaches are based on the concept of features, that usually represent the visible characteristics of the system, from an end-user point of view. Well-known feature modelling methods, such as FODA (Feature Oriented Domain Analysis) <ref type="bibr" target="#b4">[Kang et al., 1990]</ref> or FORM (Feature Oriented Reuse Method) <ref type="bibr" target="#b5">[Kang et al., 1998</ref>] use a feature model, which represents a feature tree using different relations between features and subfeatures, including mandatory, optional or alternative relations. Feature models have been extended to support shared subfeatures, feature attributes and cardinalities or feature groups <ref type="bibr">[Czarnecki et al., 2005b]</ref>.</p><p>Finally, <ref type="bibr" target="#b1">Asikainen et al. [2007]</ref> recently proposed Kumbang. Kumbang combines advanced feature modelling concepts with the approach from Koalish, and adds support for advanced constraint relations compared to traditional feature modelling approaches.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Service Configuration</head><p>Configurable services represent services that can be customised from a set of pre-defined options, in order to fit the needs of individual customers. Research on configurable services and how to model them is a relatively recent topic: several authors have been discussing the configuration of different types of services, e.g. IT services <ref type="bibr" target="#b1">[Böhmann et al., 2003]</ref>.</p><p>Other researchers <ref type="bibr" target="#b0">[Akkermans et al., 2004;</ref><ref type="bibr" target="#b3">Heiskala et al., 2005]</ref> propose more detailed conceptualisations for modelling services. The most similar to our work, <ref type="bibr" target="#b3">Heiskala et al. [2005]</ref>, presents a conceptual model following a type/instance approach using four viewpoints, called worlds: the needs world, representing the customer's needs; the service solutions world, for the service's specifications; the process world, related to the service delivery; and finally the object-of-services world, that is used to describe the service recipient and the environment in which the service will be supplied.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Research Problem</head><p>In this section, we define the Research Problem motivating our work, and describe the example that illustrates our approach.</p><p>The Research Problem considered in this paper is: how to uniformly support the configuration and management of heterogeneous product families? What we refer to as a heterogeneous product family is a family of products integrating separate design disciplines interacting with each others. In the rest of the paper, we refer to these design disciplines as the dimensions of such a product family.</p><p>Modelling variability in heterogeneous product families yields various issues, due to the diversity of the product knowledge necessary to address these different dimensions. Indeed, the model of a heterogeneous product family can be very complex, and involves several types of users with different skills and objectives, making the need for uniformity of prime importance. The different dimensions in such a product family are rarely independent, and it is primordial to take the interactions between dimensions into account.</p><p>With this, we specify the main research problem in more detail with the following Research Questions: RQ1 What are the needs of the users of the model to be supported? RQ2 What modelling constructs support addressing the heterogeneity? RQ3 How to integrate together the different dimensions of heterogeneity in the models? RQ4 How to support the management of such product family over time and for different market situations?</p><p>As a motivation example, we present in Figure <ref type="figure" target="#fig_0">1</ref> a simplified version of a product family consisting of netbooks, smartphones and tablet computers. The example represents a configurable family of products consisting of: a set of physical elements (a motherboard with hardware chips, a screen, ...); the configurable software running on the devices (applications, libraries, ...); and the services associated with the devices (subscriptions, synchronisation services, ...).</p><p>This running example illustrates how complex the modelling of a heterogeneous product family can be. Indeed, the engineers responsible for modelling the variability in the physical parts of the system often possess a knowledge different from the ones responsible for managing the software configuration model, or creating the service model. As can be seen in the previous section, although the modelling approaches often use the same basis (types, partonomy, etc.), the highlevel concepts behind each type of modelling are different, and thus require different mindsets. One can then assume that the task of managing the variability of the hardware, software and service parts for large products is delegated to separate groups of knowledge engineers.</p><p>Configuring such a product family can be quite complex, due to the amount of technical details represented in each different aspects of the products. Those details are often not very accessible to salespersons and end-customers, who prefer viewing the features (or functions) of the product families, as described in <ref type="bibr" target="#b7">[Soininen et al., 1998</ref>]. Defining the feature set of the product family may be enough in some cases. However, we identified several scenarios that illustrate different situations where this feature set may need refinement:</p><p>• Market differentiation: The company selling the products proposes different feature sets for different markets. In our example, different markets, e.g. Europe and United States, means different data signals to be handled by the phones, as well as different regulations. The possible combinations of features may just be restricted on those different markets.</p><p>• Feature set evolution: The product family's feature set is evolving with time. Devices may not arrive fully featured on the market, due to time constraints or strategic decisions. A refined feature set may be needed for a specific time, with additional constraints that may disappear (or be modified) in future evolution of the product family.</p><p>• Distributors tailoring: The producing company is distributing the products to different intermediary vendors. Products as our example may not be distributed directly by the manufacturer. This producer may propose a feature set to vendors that can adapt it in order to forbid specific combinations, or to create a more simple feature set for the end-customer. For example, the example products may be sold by distributors by letting the customer choose between different feature packages, limiting the choices in configuration.</p><p>• Market analysis: The final customers can also be considered first (instead of the product family). A market study identifies the different needs of the final customers (or needs that the company wants to introduce in the market) and build different feature sets to satisfy these needs, aiming at creating a product family to fit those.</p><p>On the contrary to the first three scenarios, this scenario considers the market needs as the basis for designing the product family.</p><p>These scenarios provide a more concrete characterisation of how the functionalities of the product family may need to evolve depending on its use and distribution, as introduced in Research Question 4.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Modelling Framework</head><p>Our approach is based on the concept of modelling views. Those views are used to model different aspects of the product family, according to the different roles of the modellers. The main assumption is that each product family considered consists of different dimensions, and that all those parts need (and benefit from) configuration. Models are created and maintained by knowledge engineers from various informations given by domain experts. However, heterogeneous product families with multiple dimensions may require different kind of domain experts with different roles and sets of skills, according to the degree of technicality or the dimension considered.</p><p>In this section, we thus define three different types of views: the feature views, the structure views and the realisation views, depending on their intended audience and how they contribute to the model of the product family through different levels of abstraction. The views are characterised by a set of concepts with a specific organisation. Most of the concepts presented here are not new in themselves, but how they interact between each others within and between views is of importance.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Feature Views</head><p>Feature views provide a view of a product family from a high level of abstraction. These views are targeted at sales persons or end-customers that need to have an understanding of what the product individuals can do, instead of how they can do it. In our conceptual approach, feature views are not separated according to the different dimensions of the product family. The relations between the concepts described in feature views are related to the product individuals as a whole, and as such should not be dimension-specific. Product individuals can indeed be characterised by the features (or functions) they provide, independently from the way they are structured.</p><p>A feature view is composed of feature types, organise in partonomy (subfeatures) and taxonomy (subtypes) structures, as shown in the UML metamodel in Figure <ref type="figure" target="#fig_1">2(a)</ref>. Variability is defined in each feature type using attributes that can take different values. A feature subtype inherits all the properties of its supertype, i.e. its attributes, subfeatures, and constraints. Two types of constraints can be added to each type. Compatibility constraints model dependencies between the feature view, i.e. it specifies conditions that must hold in a valid configuration. Implementation constraints model the dependencies between different types of views, and will be detailed in Section 5.</p><p>Example: Consider our motivation scenario (Figure <ref type="figure" target="#fig_3">3</ref>). Feature types such as Input or Localisation can be used to define the input type (touch input, keyboard features) or if GPS localisation should be available on the device.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Structure Views</head><p>Feature views are implemented by structure views, which define the different design components that realise the described features of the product family, and the relations between them. Structure-based approaches for configuration are widely used <ref type="bibr" target="#b7">[Soininen et al., 1998]</ref>, as the compositional structure of the product families is often used to represent the product data knowledge. The structure views communicate the aspects of the architecture of interest to those involved in designing the The different concepts used in structure views have a specific meaning according to which dimension each view refers to. For example, a physical structure view represents the physical structure of the product family. Component types are entities whose individuals are physical components involved in the physical design, while association types are used to model non-directional physical links between two components. A software structure view describes the architecture of the software system involved in the product family. Instances of component types represent software components, and association can be defined to model interfaces, whether they provide software functions or require some. Also, a service structure view describes the specifications of the service to be delivered. Component types are service element types, and describes contractual agreements of what to be delivered, similar to what is modelled in the service solutions world of Heiskala et al. <ref type="bibr">[2005]</ref>.</p><p>Example: In our motivation scenario (Figure <ref type="figure" target="#fig_3">3</ref>), the physical structure view contains a Screen and a TouchScreen component types with a size attribute, while the software view handles the User Experience (UX) framework and software interfaces to the Middleware libraries. The service structure view declares RepairCoverage or PhoneSubscription as types.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Realisation Views</head><p>Realisation views offer a detailed technical view of how the product individuals are realised. Compared to structure views, whose purpose is to represent the design of a specific dimension of the product family, realisation views are aimed at describing the elements necessary for the concrete realisation of the system for that dimension. They are thus targeted at highly specialised engineers, e.g. product engineers, software developers or service deliverers, and represent the lowest abstraction level in our conceptual modelling framework. Each realisation view is associated with a dimension, which defines its proper meaning: physical products use this view to represent manufacturing data, while software involve the solution deployment, and services the delivery process.</p><p>The building blocks of a realisation view are realisation types. There are three possible realisation types: item types, operation types and resource types. Item types represent the production components used to realise the products. It can be a BOM item for manufactured parts, a software package when dealing with software, or an object to be produced when delivering a service (e.g. a contract or a bill). Operation types are used to specify a set of operations needed during the production of individuals (e.g. manufacturing operations, software deployment, service processes). Resource types may describe a machine, an operator, an information or anything that may be necessary to complete the operations.</p><p>Contrary to structure views, realisation views are not starting with a single root type. Instead, each realisation view is associated with a structure view (from the same dimension), and each item or operation type may be associated to a relevant structure type via a mapping constraint. Types mapped to a structure type defines their own tree of subitems, providing a more detailed breakdown of the production components.  Example: The Screen component type in the physical structure view of our motivation example can be mapped to different manufacturing items. A specific mapping can be made if TouchScreen is chosen instead, or when a specific configuration is made (e.g. changing the value of the size attribute).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Dependencies and Constraints</head><p>Constraints can be used to specify dependencies within or between views when other modelling mechanisms are not sufficient to capture them. Constraints are written in a constraint language, and involve types attributes and predicates using pre-defined functions, such as Count(...) that returns the actual cardinality in a partonomy relation. The full description of the constraint language is out of the scope of this paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Compatibility Constraints</head><p>A compatibility constraint is specific to a particular view, and can only involve properties of this view. The evaluation of a constraint occurs during configuration, when types are instantiated to individuals. Each instance of the context type in which the constraint is declared must satisfy it.</p><p>Example: The following constraint, declared in the Input component type, specifies that the physical keyboard feature must be selected if one wants a backlit keyboard: backlitKeys ⇒ keyboard Constraints may also contain references to properties that are not always present in the product individual being configured, e.g. if a constraint accesses a subpart whose cardinality is not fixed, or an attribute from a subtype that may not be chosen (the property is said inactive). Each compatibility constraint containing at least one inactive term is evaluated to true during configuration.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Implementation Constraints</head><p>Implementation constraints are essential to our framework, as they model the interaction between the base feature view and the structure views (and in the feature views hierarchy, see Section 6). They are composed of a left-hand side expression L and a right-hand side expression R, related by an implication or an equivalence operator. The expression L represents the features to be implemented by the constraint, in a similar way as in the compatibility constraints. On the other hand, the expression R represents what is needed in the stucture view(s) to implement the features specified by L.</p><p>Example: Consider the following constraint in the Input feature type from the base feature view: This implementation constraint specifies that a device has a multitouch input if there exists a capacitive touchscreen and a touch framework is implemented in the software. Existential quantifiers are implicitly used in the semantics of the expression R, as the feature may exist if there is at least one combination of structural elements implementing it. Universal quantifiers can also be explicitly used in some specific cases.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Mapping Constraints</head><p>Mapping constraints are defined in realisation views to specify under which conditions a realisation type should be included in the configuration results. There exists indeed a mapping between structure types and item and operation types, and the latters should only be part of the final configuration if certain conditions are met. Mapping constraints are declared in item and operation types, and refers to attributes from the structural type defined as context.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Example:</head><p>The following mapping constraint is declared in the Coating operation type and takes as context the Touch-Screen component type from the physical structure view: cmap(T ouchScreen, Coating) : oleophobicCoating = true A valid configuration thus ensures that the latter constraint is true for each instance of the TouchScreen type, i.e. an instance of the Coating operation type is present for each instance of TouchScreen where the attribute oleophobicCoating is true.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Feature View Hierarchy</head><p>To address the management and evolution of the product family (Research Question 4) and the scenarios discussed in the Section 3, several feature views can be defined and organised in a feature view hierarchy. A model defines a base feature view, which will contain all the features available for the modelled product family, and should be implemented by the structural views. This base feature view may then be specialised, as different versions or evolutions of the product family may require special restrictions to the set of available features (Market differentiation and Feature set evolution scenarios), or even more abstract feature views in order to be presented to final customers (Distributors tailoring and Market analysis).</p><p>The feature view hierarchy defines a specialisation tree, rooted by the base feature view. A feature view F is the child of another feature view F if F is a specialisation of F. This specialisation is done through different concepts:</p><p>• Implementation: A feature view F can declare new feature types and attributes, for example to define more abstract feature groups and properties. As for the base feature view, the types in F must use implementation constraints to associate their properties to the feature view F, parent of F . • Refinement and reference: Apart from defining new feature types, feature views can refine feature types from their parent view. A refined feature type can transform the original type by: defining new attributes or subfeatures; refining referenced attribute or subfeature definitions by restricting its cardinality, its domain or visibility (attribute) or change it to one of its subtypes (subfeature); changing the type from concrete to abstract to force the use of its subtypes; or by adding compatibility constraints to constrain the model even more. Figure <ref type="figure">4</ref> shows the mechanism of feature types refinement. Type F 1 is refined: the attribute a1 in F 1 is declared as hidden, and a new attribute a5 is declared. The f eat3 subfeature cardinality is also refined to [1..2]. Finally, even though F 1 is not directly modified, the type F 4 is also refined: the domain of a4 is reduced and a new subfeature is defined.</p><formula xml:id="formula_0">a1: {0,4,5} «FeatureType» F1 [0..3] a2: [0..5] «FeatureType» F2 a3: [2..10] «FeatureType» F3 «FeatureType» F1' a4: [0..10] «FeatureType» F4 &lt;ref&gt; &lt;hidden&gt; a1 a5: [0..2] «FeatureType» &lt;refined&gt; F1 &lt;ref&gt; a4: [0..1] «FeatureType» &lt;refined&gt; F4 «FeatureType» F3 [1..2] &lt;ref&gt; feat3 feat3 feat2 feat4 a6: [3] «FeatureType» F5 feat5 Parent Feature View Refined Feature View</formula><p>Figure <ref type="figure">4</ref>: Feature types refinement. Refined types are characterised by the &lt;refined&gt; tag, while referenced definitions are tagged with &lt;ref&gt;. The type F 3 in the Refined Feature View is shown with a dashed outline, as only the f eat3 definition is part of the refined view, while the feature type is not and is just shown here for illustrative purpose.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Proof of Concept</head><p>A textual modelling language named ProCoLa has been defined to support our modelling framework. The language syntax is closely mapped to the different concepts described in this paper. A language service has been implemented in Visual Studio to support the ProCoLa language, providing an important number of features for tool support, such as syntax highlighting, syntax and semantic checks, automatic word completion among others. The language is supported by a C# compiler, and resembles that of an object-oriented programming language. A formalism of the framework and model analyses are currently being worked on in order to provide additional tool support, such as the ability to see model-wide dependencies of any change that may happen in a view, e.g. the deletion of an attribute or type. The semantics behind our modelling approach (and Pro-CoLa) have been defined by implementing the translation of models to Dynamic CSPs (DCSPs) <ref type="bibr" target="#b1">[Bartak and Surynek, 2005]</ref> and Conditional CSPs (CondCSPs) <ref type="bibr">[Mittal and Falkenhainer, 1990]</ref> formalisms. DCSPs are used to handle the dynamic addition and removal of value assignments to attributes during interactive configuration, while CondCSPs are used to handle the notion of activity involved when dealing with dynamic cardinality or taxonomy structures for example, or the existential (or universal) quantifiers implied by implementation constraints. During the configuration process, an end-user first chooses which feature view he wants to use (if multiple feature views exist in the hierarchy), and then can enter his requirements through a user-interface by assigning values to attributes, or connecting associations. A single CSP model is usually used for all views, allowing a full propagation of the choices to the other views. However, the user may also consider configuring only a single view (using only compatibility constraints). More details can be found in <ref type="bibr" target="#b7">[Quéva, 2011]</ref>.</p><p>A larger mobile device product family based on the motivation example presented in this paper has been modelled using our conceptual framework and ProCoLa. The model is split into 13 views, including three realisation views and three structure views (one for each dimension), and a feature views hierarchy of 7 views. It contains around 250 types, 200 attributes and over 300 constraints. During the modelling of the product family, ProCoLa has provided a sufficient level of support to capture the different part of the family and their dependencies, in a reasonable amount of time. The translation into the CSP formalisms is very fast, while the consistency checks at runtime are done within a few seconds at most.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8">Discussion and Comparison with Related Work</head><p>The different views provides a modelling framework as a contribution to address the Research Questions (RQs) exposed in Section 3. The clear separation of concerns in the structural and realisation data for each dimension is motivated by RQ1 (What are the needs of the users of the model to be supported?) and previous work on modelling each dimension (Section 2). Each view is targeted at a different audience: the structural model of the software is handled by a software architect, while a production engineer may be more adequate to handle billof-materials and manufacturing operations. Moreover, we argue that structural and realisation views from each dimension should be considered independently from each others, and unified in the feature models they contribute to implement, defined in feature views. In Figure <ref type="figure" target="#fig_3">3</ref>, the sales persons working on the device features model the types of input that the end-user may be interested in. How this feature is implemented is dependent on several structural elements from different parts of the system: the touch screen hardware and a touch framework component in the user experience software. Those two elements can however be chosen independently from each others, but will only provide the feature if they are both present in the final product.</p><p>The UML metamodels (Figure <ref type="figure" target="#fig_1">2</ref>) provide a good basis in order to address the problem of modelling the different dimensions of an heterogeneous product family, as raised in RQ2 (What modelling constructs support addressing the heterogeneity?). Uniform modelling constructs and the different types of inter-views constraints defined in the framework also contribute to the issue posed in RQ3 (How to integrate together the different dimensions of heterogeneity in the models?): the implementation and mapping constraints permit to model the interdependencies between the views, allowing a tight integration of the different dimensions of the product family. Modelling these constraints requires communication between the different stakeholders. The sales person responsible for the touch input feature inquires the product designer in order to assess what hardware components are needed for the requested feature. On the other hand, product designers and production engineers need to confer on which items are available to realise the structural design of the hardware.</p><p>Our modelling approach also extends the concept of feature model to a feature view hierarchy, as a contribution to RQ4 (How to support the management of such product family over time and for different market situations?). The refinement of feature type's attributes can be used to model scenarios such as Market differentiation (by adding constraints for specific markets), Feature set evolution (by creating multiple feature views depending on the current capabilities of the product) or Distributors tailoring (by allowing them to create their own specialised views). In a Market analysis scenario, several specific feature views are created in order to match the product feature sets to introduce in the market. These views may then be joined into one base feature view, by gathering common elements or creating more abstract features that can be specialised to fit the original views, via refinement or implementation. The feature view hierarchy thus enables a unification of the product family management and evolution at the feature level, independently from the heterogeneity of the family, while each dimension may have its own separate mechanism for coping with this issue (e.g. product data management, ...).</p><p>Modelling concepts from our approach are based on previous work, mainly in product configuration <ref type="bibr" target="#b7">[Soininen et al., 1998]</ref>. The four worlds from <ref type="bibr" target="#b3">Heiskala et al. [2005]</ref> can also be compared with the modelling views of our framework: the needs world concerns the customer's needs (in an abstract way), and is thus close to our feature views, which describes the abstract features that the customer may require; the service solution world denotes the set of elements used to establish the service's specifications, as the structure views; the process world describes how the service will be delivered, or realised, as in our realisation views. Note that there is nothing in our conceptual approach that is similar to the object-of-services world from <ref type="bibr" target="#b3">[Heiskala et al., 2005]</ref>, which specifies the service recipients or the environment relevant to those recipient. From a modelling point of view, all these worlds are based on the same metamodel, using different types and attributes, as well as taxonomy and partonomy structures, as in our approach. However, dependencies between types of different worlds are simply modelled using classical constraints, while we use implementation and mapping constraints. Also, our framework is centered on the configured product, and thus the services described in the services dimension are seen from the configured product's point of view, while the external environment is not considered. Another type of view may thus be necessary in our framework to define externally controlled elements (such as, in the running example, access to company specific services or credentials, data transfer from an old device, etc.).</p><p>Feature modelling approaches such as cardinality-based models <ref type="bibr" target="#b2">[Czarnecki et al., 2005a]</ref> also have similarities to our feature views, although the richness of constraints and the partonomy/taxonomy structures used in our models is somewhat more complex than with the classic feature-oriented relations. Multi-view models in feature modelling have also been studied. <ref type="bibr" target="#b2">Czarnecki et al. [2006]</ref> sketches a model where different levels of customisation are modelled (including feature and design view). Reiser and Weber <ref type="bibr">[2006]</ref> and work from <ref type="bibr" target="#b7">Zaid et al. [2010]</ref> propose feature models with different perspectives, although they are all centered on software variability and feature modelling techniques only, and the lack of specialisation hierarchy may make the task of implementing the unification with different structured views difficult.</p><p>Kumbang <ref type="bibr" target="#b1">[Asikainen et al., 2007]</ref> is the closest to our work on the software variability side, including their type-instance approach. We consider our work to be an extension of Kumbang, as we use implementation constraints to unify structure views from the different dimensions (including manufactured products and services), as well as we model realisation data. Thus the main contribution of our work is to provide conceptual and practical mechanisms to bring the different dimensions together and unify them under feature models.</p><p>In this paper, we present an approach to help with the issue of modelling a product family consisting of different design disciplines (or dimensions). The presented framework has been motivated by a four research questions and illustrated by several scenarios.</p><p>Our framework is based on modelling views and synthesizes the concepts from different approaches from product configuration, software variability and service configuration, and unify them around feature views using implementation mechanisms. We also describe a feature view hierarchy and refinement mechanisms to cope with the evolution and adaptation of the product family, which remains an important issue <ref type="bibr" target="#b6">[Krebs, 2008]</ref>.</p><p>The approach has been motivated by the use case of a mobile devices product family, and has been implemented in a language prototype as a proof of concept. However, we have yet to perform an in-depth case study with industrial data in order to test the feasibility of implementing a real-life product family with our framework, as well as completing the formalism and tool support for the language, which is planned as future work.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Running example. The product family represents mobile devices and is configured according to three dimensions, hardware, software and services, and need to be adapted to different scenarios, e.g. tailored to distributors and markets.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: UML metamodels for: (a) Feature views (b) Structure views (c) Realisation views</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>Figure3: Overview of the motivation example model and the different modelling views, depending on the three dimensions (physical, software and services). Partonomy relations are shown using UML Aggregations, taxonomy relations using UML Generalizations. For the sake of brevity, only a subset of the types and the base feature view in the hierarchy are shown.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>touchInput = "multitouch ⇔ (P hysical :: T ouchScreen.type = "capacitive ∧ Sof tware :: HandsetU X.touchF rmk = true)</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Value webs: Using ontologies to bundle real-world services</title>
		<author>
			<persName><surname>Akkermans</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Intelligent Systems</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="57" to="66" />
			<date type="published" when="2004">2004. 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">An improved algorithm for maintaining arc consistency in dynamic constraint satisfaction problems</title>
		<author>
			<persName><forename type="first">Asikainen</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. International Workshop on Product Family Engineering</title>
				<editor>
			<persName><forename type="first">P</forename><surname>Clements</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">L</forename><surname>Northrop</surname></persName>
		</editor>
		<meeting>International Workshop on Product Family Engineering</meeting>
		<imprint>
			<publisher>Addison-Wesley</publisher>
			<date type="published" when="2001">2003. Jan 2003. 2007. 2007. 2005. 2005. 2003. 2003. 2001. 2001</date>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page" from="161" to="166" />
		</imprint>
	</monogr>
	<note>Software Product Lines -Practices and Patterns</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Staged configuration through specialization and multilevel configuration of feature models</title>
		<author>
			<persName><surname>Czarnecki</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Configuration knowledge representation using uml/ocl</title>
		<title level="s">Lecture notes in computer science</title>
		<editor>
			<persName><forename type="first">D</forename><surname>Friedrich</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Jannach</surname></persName>
		</editor>
		<editor>
			<persName><surname>Zanker</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2002-01">2005. 2005. 2006. 2006. 2002. Jan 2002</date>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="page" from="49" to="62" />
		</imprint>
	</monogr>
	<note>Software Process: Improvement and Practices</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A conceptual model for configurable services</title>
		<author>
			<persName><forename type="first">;</forename><forename type="middle">A</forename><surname>Haag</surname></persName>
		</author>
		<author>
			<persName><surname>Haag</surname></persName>
		</author>
		<author>
			<persName><surname>Heiskala</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IJCAI Workshop on Configuration</title>
				<editor>
			<persName><forename type="first">L</forename><surname>Hvam</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">N</forename><forename type="middle">H</forename><surname>Mortensen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Riis</surname></persName>
		</editor>
		<meeting><address><addrLine>Scotland</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="1998">1998. 1998. 2005. 2005. 2008. 2008</date>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="78" to="85" />
		</imprint>
	</monogr>
	<note>Product customization</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Feature-oriented domain analysis (foda) -feasibility study</title>
		<author>
			<persName><surname>Kang</surname></persName>
		</author>
		<idno>CMU/SEI- 90-TR-21</idno>
		<imprint>
			<date type="published" when="1990">1990. 1990</date>
		</imprint>
		<respStmt>
			<orgName>Software Engineering Institute, Carnegie Mellon University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Form: a feature-oriented reuse method with domain-specific reference architectures</title>
		<author>
			<persName><surname>Kang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Annals of Software Engineering</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="page" from="143" to="168" />
			<date type="published" when="1998">1998. 1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Knowledge management for evolving products</title>
		<author>
			<persName><forename type="first">Thorsten</forename><surname>Krebs</surname></persName>
		</author>
		<author>
			<persName><surname>Krebs</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Mass Customization -The New Frontier in Business Competition</title>
				<editor>
			<persName><forename type="first">B</forename><forename type="middle">J</forename><surname>Pine</surname></persName>
		</editor>
		<imprint>
			<publisher>Harvard Business School Press</publisher>
			<date type="published" when="1990">2008. 2008. 1990. 1990. 1993. 1993</date>
			<biblScope unit="page" from="307" to="320" />
		</imprint>
	</monogr>
	<note>Research and Development in Intelligent Systems XXIV</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Managing highly-complex product families with multi-level feature trees</title>
		<author>
			<persName><forename type="first">Matthieu</forename><surname>Quéva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Quéva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Weber ; Mark-Oliver</forename><surname>Reiser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Matthias</forename><surname>Reiser</surname></persName>
		</author>
		<author>
			<persName><surname>Weber ; Soininen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 14th IEEE International Requirements Engineering Conference</title>
				<editor>
			<persName><forename type="first">J</forename><surname>Parsons</surname></persName>
		</editor>
		<meeting>of the 14th IEEE International Requirements Engineering Conference</meeting>
		<imprint>
			<date type="published" when="1998-07">2011. 2011. May 2011. 2006. 1998. July 1998. 1998. 1998. 2002. 2002. 2010. 2010. 2010</date>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="233" to="246" />
		</imprint>
		<respStmt>
			<orgName>DTU Informatics</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
	<note>LNCS</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
