• No se han encontrado resultados

Based on the conception of PLONTOREC as a formal process that specializes software product line practices for the development of TIS, a formal and precise definition of the PLONTOREC approach is necessary. In order to achieve this, the definition of SPL given in (Prankatius et al.,

74 2007) has been adopted but adapted to fit the specific context of our approach, which hybridizes software product line and ontology engineering.

A PLONTOREC-generated product line TISPLplontorec (F, FTree, O, Pr, As, Cs) consist of:

A set F of features, such that f ∈ F: F = (name, type, annotation); i.e. each feature has a

name, a type and an annotation. Feature types are classified as common, optional or alternative i.e. type ∈ {common, optional, alternative}.

It is distinguished between the sets of

- common features CF: = {f ∈ F | type(f) = common} with CF≠ ø - optional features OF: = {f ∈ F | type(f) = optional}

- alternative features AF: = {f ∈ F | type(f) = alternative}. annotation is a description of feature in a natural language.

The features are organized in a feature tree FTree with nodes Q. Each node

ni ∈ Q, except the root node nr ∈ Q, has a type and contents, i.e. ni = (type, contents) with

node type ∈ { common, optional, alternative}. Every node is linked to features in F through its contents, and each feature occurs in exactly one node. The root node nr

however has no corresponding feature in F as an exception. The connection between a node ni and features is given as follows:

- contents (ni) = f ∈ CF , if type(ni) = common;

f ∈ OF ,if type(ni) = optional;

(Y, min, max) ∈ N with

Y ⊆ AF; min, max ∈ N , if type(ni) = alternative;

- if type(ni) = alternative then ni must be a leaf in FTree.

• A set of ontologies O = {o1 …ot} and for o ∈ O: o = (oid, name, type, annotation,

ONTO) with

− oid is a unique identifier for the ontology oi

− a name, a type and an annotation (which is a description in natural language). − a representation ONTO = {G(V,E), β, α, N, T} with

75  a set β ={c1,…cn} where ci ∈ β is a concept name;

 a set α = {r1…rm}, where ri ∈ α is the type of the binary; relation relating

two concepts, such that ciand riare non-null strings);

 a directed graph G(V, E) representing the ontology, where V is a finite set of vertices and E is a finite set of edges: Each vertex of V is labelled with a concept and each edge of E represents the inter-concept relationship between two concepts. Such that the label of a node v ∈ V is defined by a function N (v) = cithat maps v to a string cifrom β. The label of an

edge e ∈ E is given by a function T(e) = rithat maps e to a string rifrom α.

• A set of TIS software products Pr = {p1, …pk} and for p ∈ Pr: p = (pid, FTreep, Fp)

where

- pid is a unique identifier for the software products p.

- FTreep is a feature tree for the product p, which is an instance of FTree. In order

words FTreep is a subtree of FTree, with root node nr that is by default included

into FTreep;

- a node ni of the type common in FTree has to be included in FTreep if its

immediate predecessor was included, i.e. for an included node, all immediate successor of type common have to be included in FTreep;

-

From a node na of type alternative in FTree, not all alternative features must be

chosen for FTreep. The corresponding node na’ = (type’, contents’) in FTreep has

type’ = alternative and contents’ (na’) = X ⊆ Y with min ≤│X│≥ max, i.e. at least

and at most max alternative feature have to be chosen from the set Y

- The set F

p = CFp ∪ OFp ∪ AFp denotes all common, optional and alternatives

features in FTreep which are finally in the contents of the included nodes, these features will realize the functionality of the product p.

• A set of core assets As := {a1…aj} which are used to build a feature or a subset of

features in FTree. Furthermore, for a ∈ As: a = (aid, content, annotation), which means that a core asset can conceptually consist of

76 - some content which can be for example a document, code, a model etc.

- some annotations related to the content, e.g. natural language descriptions, metadata, process specification for its construction etc.

• A construction specification Cs = (model, annotation, B) which specifies how to create every possible product in the TIS product line from core assets. In particular:

- there is a model which describes the overall construction;

- an annotation adds additional information e.g. as natural language descriptions; - B is the built-in-from-relation B ⊆ P x A indicating which TIS product are built using

core assets.

The definition above characterizes a PLONTOREC product line as consisting of a set of features

F that are organized in a feature tree FTree, a suite of ontologies O relevant to specific tourism

objects of interest, a set of TIS products Pr that are built from reusing a set of core assets As, and a construction specification model Cs that defines how individual recommendation-enabled TIS products are built from the core assets leveraging specific ontologies. The components of the definition as further explicated as follows:

Features (F): The features in the product line are strictly classified into three crisp sets of:

common features, optional features and alternative features. In the feature tree each node is connected to a feature, and a feature must occur in only one node. The set of features must not be empty, and there must be sufficient commonalities among the features of products in the domain to justify the need for a product line. The types for features and nodes are used to impose constraints on the choice of features for particular products.

Feature Tree (FTree): The feature tree is used as an organization structure for features and as a

means to model feature dependencies and constraints. Also, the feature configuration of every concrete product exists as an instance of the feature tree, FTree. For the creation of such an instance, it is assumed that starting with the root which is always included in every product only those nodes from FTree are chosen which contain features that should be implemented in a product. For a specific product, the resulting instance FTreep is also a tree. The selection process

of features in the nodes of the tree FTree is influenced by already chosen parents and by the type of a node (Bosch & Svahnberg, 1999).

77

Ontologies (O): The suite of ontologies provides the basis for intelligent knowledge-based

recommendation that is inherent in every product in the TIS product line. The features configuration of specific products determines the set of ontologies that are relevant to each of them. Such ontologies are also built and maintained (updated) as the feature configuration of associated TIS products evolve.

Products (Pr): These are the end products of PLONTOREC; the variability among products is

determined by their distinct features configurations. This also determines the specific intelligent recommendation attribute inherited by such TIS products.

Core Assets (Cs): Each core assets has a unique identifier, a content part and annotation part.

The content part can be for example a code component, an architecture, a design diagram, a text case etc. The annotation part can be for example metadata, a natural language description with details on how to use the asset during the construction of a product, or even a more precise process specification for application engineering.

Construction Specification (Cs): The construction specification is the product line scope that

defines how each TIS in the product line will be constructed. It is a construction model for the whole product line. This also includes relevant annotation in natural language, which may contain non-model information of the production plan. The built-in-from-relation B defines how specific core assets are used to build specific products.