<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Component-Based Specification of Software Product Line Architecture</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Amina Guendouz</string-name>
          <email>guendouz.amina@yahoo.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Djamal Bennouar</string-name>
          <email>dbennouar@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CS Department, Akli Mohand OulHadj University</institution>
          ,
          <addr-line>Bouira</addr-line>
          <country country="DZ">Algeria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>CS Department, Saad Dahlab University</institution>
          ,
          <addr-line>Blida</addr-line>
          ,
          <country country="DZ">Algeria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>2</fpage>
      <lpage>4</lpage>
      <abstract>
        <p>- Software product lines have known an increasing use over the last years, taking advantage from the important benefits they may bring to software development in terms of time, cost and effort. However, product line approaches remain immature owing to the fact that they still base on traditional design concepts of software engineering which are not adequate to the basic principles of software product lines engineering. Considering that software product lines are inspired by industry where production activity is based on assembling certified components, and in light of the recent progress in Component-based development field, we believe that integrating these two approaches will bring significant benefits to software development. This paper describes a new approach for ComponentBased Product Lines engineering focusing on the Component-Based specification of the Product Line architecture. The aim is to overcome the shortcomings of traditional product lines by unifying the strengths of two complementary approaches, and to facilitate the derivation process since applications will be produced by the simple composition of existing components.</p>
      </abstract>
      <kwd-group>
        <kwd>- Software Product Lines</kwd>
        <kwd>Component-Based Development</kwd>
        <kwd>Reuse</kwd>
        <kwd>Components</kwd>
        <kwd>Variability</kwd>
        <kwd>IASA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Software Product Lines are emerging as a
viable and important development paradigm
allowing companies to realize
order-ofmagnitude improvements in time to market,
cost, productivity, quality, and other business
drivers. A software product line (SPL) is “A set
of software-intensive systems sharing a
common, managed set of features1 that satisfy
the specific needs of a particular market
segment or mission and that are developed
from a common set of core assets2 in a
prescribed way” [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
1 A feature is an end-user visible characteristic of a
system [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
2 A reusable artifact or resource that is used in the
production of more than one product in a software
product line. A core asset may be an architecture, a
software component, a domain model, a
requirements statement or specification, a
document, a plan, a test case, a process
description, or any other useful element of a
software production process [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Software Product Line approach intends to
adapt to the software development, the
principles that we find in the automotive,
aeronautics and electronics industries.
Production in these industries is organized into
ranges with similar parts and offering a
number of options. For example, in automotive
industry, various car models come out the
same assembling chains using the same
chassis, the same engines and the same test
plans. The aim is to improve productivity,
decrease time to market, and reduce
production, maintenance and test costs. The
idea is to transpose the principles of
manufacturing of these industries in software
development, to benefit from the
beforementioned advantages.</p>
      <p>Although, the principles of software product
lines are inspired by industry where production
activity is based on assembling certified
components, most of software product lines
today are based on traditional design concepts
of software engineering such as modular
design and object-oriented design. These
design concepts are not able to support the
assembly of certified components which
makes the derivation and maintenance
processes difficult to perform. Furthermore,
both of software product lines and component
based development promote reuse; putting
them together will bring significant benefits to
software development.</p>
      <p>SPL improve reuse while maintain diversity
between products. In most cases, software
components intended for reuse must be
adapted to meet specific requirements of
customers. If flexibility is not considered since
the early development process phases,
developers will meet lot of difficulties in
adaptation step, which lead them to leave
these components even they will have to
redevelop components from scratch. SPL
simplify adaptation phase by involving
“Variability management” activity along all the
software development process.</p>
      <p>
        However, traditional component-based
approaches do not support variability
management. It becomes necessary to
establish new approaches or enhance existing
component-based approaches in order to
allow an effective variability management. In
this paper, we propose an approach that
integrates SPL engineering and
componentbased engineering, aiming to unify the power
of these two approaches. Firstly, we will
present the development process of
component-based SPL (CBPL). Then, we will
show the extension of a component-based
approach (IASA [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]) in order to allow the
modeling of variability in CBPL. The proposed
approach is, afterward, supported by a case
study.
      </p>
      <p>The remainder of this paper is organized as
follows: Section 2 introduces the proposed
approach. Section 3 shows the specification of
a CBPL for e-Meeting applications. Section 4
reports the related work and comments on it,
while Section 5 summarizes the paper and
outlines future work.</p>
    </sec>
    <sec id="sec-2">
      <title>2. COMPONENT BASED PRODUCT LINES</title>
      <p>
        The crucial aim of introducing product line
approach in software engineering is to improve
reuse. SPL differs from traditional reusing
approaches in two ways: the first one is that
SPL approach systematizes reuse throughout
all the software development process: from
requirements engineering to the final code and
test plans, in contrast of traditional software
reuse approaches which exploit reuse only at
design and coding phases [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The SPL
engineering process is thus decomposed into
two sub-processes (section 2.1): development
for reuse and development with reuse [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
The second one is that, SPL improve reuse
while maintaining diversity between products.
This is ensured by involving “Variability
management” activity along all the software
development process.
      </p>
      <p>Introducing a new CBPL approach must take
into account these two aspects. It must be
able to reconcile between the two
development processes (component-based
process and SPL process) on the one hand,
and enable the effective management of
variability on the other hand. In next
subsections we present how our approach
considers these two aspects.</p>
    </sec>
    <sec id="sec-3">
      <title>2.1. COMPONENT BASED PRODUCT LINE</title>
    </sec>
    <sec id="sec-4">
      <title>ENGINEERING</title>
      <p>
        Software product line engineering relies on a
fundamental distinction of development for
reuse and development with reuse [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Development for reuse or “Domain
engineering” consists in developing core
assets through the domain analysis, domain
design and domain implementation processes.
Development with reuse or Application
engineering consists in developing the final
products, using the core assets and the
specific requirements expressed by the
customers.
      </p>
      <p>
        The development process of CBPL we
propose (figure 1) is an integration of the
development process of SPLs [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and the
component-based development process [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Unlike to the traditional SPL engineering, the
base of core assets obtained from CBPL
engineering relies mainly on software
architecture (reference architecture,
refinement of components and reusable
components...). While, its difference compared
to the traditional Component-based
development is the introduction of variability
management activity. Since variability is
handled from the early stages of development,
reusable components obtained from domain
engineering process do not have to be
adapted to the specific needs of final
applications, which make the step of
application assembly easier and faster.
Domain engineering consists of three activities
that are Domain analysis, Product-line
architecture design and Components
implementation (Figure 1). The purpose of this
sub-process is to produce the reusable core
assets and to provide the effective means that
help in using these core assets to build new
products within the SPL. The main outputs of
this process are: reference requirements,
reference architecture and reusable
components.
Application engineering consists in developing
the final products, using the core assets and
the specific requirements expressed by
customers. This sub-process consists of three
steps: Application analysis, Application
architecture design for the specific application
and finally Application assembling. Each step
is facilitated by the reuse of the outputs from
the previous process. The result of application
engineering is an application ready to be used.
      </p>
    </sec>
    <sec id="sec-5">
      <title>2.2. VARIABILITY MODELING IN CBPLs</title>
      <p>
        Variability management is a key activity that
usually affects the degree to which a SPL is
successful [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Variability refers to the ability of
an artefact to be configured, customized,
extended, or changed for use in a specific
context [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. This variability must be
identified, represented, exploited,
implemented, evolved, etc. – in one word
managed – throughout software product line
engineering [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        After being identified, variability must be
represented. The second step in managing
variability is to model it in all software
artefacts. Modeling variability is a technique
used firstly to document the variability and
secondly to reason about the variability. Its
main objectives are: to make the variability
explicit in the early stages of the project, and
to reduce the complexity related to variability
management throughout the development
process [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        For the modeling of variability in the
architecture view, we have chosen to extend
the component-based model IASA (Integrated
Approach to Software Architecture) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. IASA
was used to realize complex e-Government
software system, and was proved as a clear
and easy specification language to design at a
high level of abstraction using Aspect Oriented
approach [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
2.2.1.
      </p>
      <p>
        Architecture design with IASA
The design according to IASA approach uses
a component-oriented process which proceeds
by successive refinement. An IASA
component is seen from the outside as a
black-box that communicates with the external
world through Ports [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], which define the
services it can provide or require. The internal
view of a primitive component is inaccessible,
while the structure of a composite component
is well defined, it consists of three parts:
Operative Part, Aspect Part, and Control Part.
Figure 2 sets out the basic notations of IASA.
Since IASA have not been developed to
capture all types of variability explicitly, we
propose to extend it in order to meet the needs
of SPL engineering. We define three types of
variability in architecture: Mandatory, Optional
and choice.
      </p>
      <p>Mandatory and Optional elements: Each
element in the architecture can be mandatory
or optional according to the context in which it
will be used. In order to represent explicitly
these types of variation, Components and
Connectors are annotated by: «Mdr» and
«Opt» which means respectively: Mandatory
and Optional.</p>
      <p>Considering that interfaces in the same
component can be optional if they are not
needed in some contexts, variability in
interfaces is represented as follow:</p>
      <sec id="sec-5-1">
        <title>Mandatory provided interface</title>
      </sec>
      <sec id="sec-5-2">
        <title>Mandatory required interface</title>
      </sec>
      <sec id="sec-5-3">
        <title>Optional provided interface</title>
      </sec>
      <sec id="sec-5-4">
        <title>Optional required interface</title>
        <p>Choices: We distinguish between two types of
choices:
1. Component choice: When there are a
variety of implementations for the same
component, the variable component is
annotated by: «Choice» and related
through the same interface to all its variants
as shown in figure 3.
2. Connector choice: When a component is
related to a variable set of components, the
relation between these components
becomes a connector annotated by:
«Choice» and related with different
interfaces to each variant as shown in
figure 4.</p>
        <p>The number of components that can be
supported by the connector is expressed by a
cardinality [n..m], such as:
 n=m if the type of the relation is AND;
 m&gt;=n if the type of the relation is OR;
 n=m=1 if the type of the relation is XOR or</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Alternative.</title>
    </sec>
    <sec id="sec-7">
      <title>3. CASE STUDY: E-MEETING CBPL</title>
      <p>In this section we apply our approach in a
specific domain which is: E-Meeting
applications. E-meeting applications exhibit an
excellent solution to overcome the problems
that can occur when organizing a face to face
meeting namely: distance, costs and
availability. Using online meeting technologies
allow us to simplify the meeting organization
processes, save time and displacement
expenses.</p>
      <p>The concept of meeting can be found in
various fields. For instance: meetings for
yearend deliberation, meetings of a Scientific
Council, meetings of elected members of an
APC3, APW4 or APN5, meetings of business
leader, etc. E-meeting applications designed
for these various types of meetings share
many similarities and are distinguished by
some particular aspects. It becomes very
important to take advantage of similarities
between these applications to develop a family
of e-meeting applications. This family of
product (SPL) once implemented is able to
produce for each meeting type, the appropriate
software in a very short time. In this case study
we will focus on the component-based
specification of the e-Meeting SPL. Next
subsections describe the artefacts obtained from
Domain analysis and Product-line architecture
design steps.</p>
    </sec>
    <sec id="sec-8">
      <title>3.1. Domain analysis</title>
      <p>
        The goal of domain analysis is to extract and
document the similarities and variations
3 An APC is the elected assembly which governs a
commune (baladiyah).
4 An APW is the elected assembly which governs a
wilaya (province).
5 An APN is the national elected assembly.
between the SPL members. To document the
common and variable features of our product
line, we have used the Feature Model. The
Feature Model is the first language dedicated
to the modeling of variability; it was first
introduced in the Feature-Oriented Domain
Analysis (FODA) method [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. It has known a
broad use in the field of SPLE, since it is a
simple and easy to use language in
comparison with other more complex modeling
languages such as: UML and BPMN. The
feature model is generally described by a
hierarchy of the set of features of a system or
what is called feature tree [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Figures 5 and 6
show a part of the feature model of our CBPL.
For the notation, we must note that all of AND,
OR, XOR variability types are expressed
through cardinality (as shown in section 2) to
avoid cluttering the diagram with more
notations, for us cardinality is sufficient to
represent all kinds of choices.
      </p>
      <p>The constructed feature model is divided into
three diagrams according to the type of
features it includes: Business features,
technical features, and implementation
features. Features in the first diagram called
Business features (Figure 5), represent the
Business functionalities provided by the
system. This diagram shows that the main
features of an e-Meeting application are
“Create meeting” and “Manage meeting”.
Each e-Meeting application must allow at least
the planning of a meeting and the generation
of reports. However, in some cases a prior
step can be needed before performing a
meeting which is: the discussion of the
meeting item, modeled by “Request for
meeting” in the Feature diagram.
“Management of recurring items” feature can
be included if the customer is interested to the
history of previously treated items, there
results, statistics about them and so on.
“Configuring” a Meeting is an optional feature
that consist in preparing the application by
fixing the meeting type (video, audio, chat...),
in addition to the needed tools to run a
meeting according to the user’s requirements.
“Meeting tools” might include “Attendance
management”, “Participation management”,
“Schedule manage”… the application can
eventually be extended by new tools if
required.
The second diagram Figure 6 represents the
technical features; it means features that do
not reflect the business aspect of e-Meeting
applications. Technical features encompass
features related to the application
(configuration, UI management), features
related to users (Accounts management,
Roles management, Authentication), and
features related to files (including: text, video
and audio files). Those features could be
found in any e-Meeting application, but not all
of them are mandatory.</p>
      <p>The third diagram represents the
implementation features of the system it
means implementation details at lower levels.
We do not show this diagram in the paper
owing to space reasons.</p>
    </sec>
    <sec id="sec-9">
      <title>3.2. Product-line architecture design</title>
      <p>The purpose of Product-line architecture
design is to establish the generic software
architecture of the product line. Variability
identified during domain analysis must be
explicitly specified in the product-line
architecture. To design the reference
architecture of our composite SPL we have
used the notation presented in section 2. The
reference architecture of our e-Meeting
product line is reported in figure 7. The
mandatory components that must be included
in each member of the SPL are annotated by
«Mdr»(Meeting_Management,Meeting_Planni
ng, Roles_Management…), while those which
are optional are annotated by «Opt»
(Items_Management,
Meeting_Configuration…).</p>
      <p>Figure 8 shows the refinement of the
“Meeting_Configuration_Cmp”. This latter can
be connected to (can use) no or many tools
components(Attendance_Cmp,Participation_C
mp, Schedule_Cmp, FilesManage_Cmp). The
choice connector “Meeting_tools_Cnt” allows
us to represent this type of variability. The
binding time6 of this variability can be: design,
6 Is an attribute of variation points and/or variability
technique used to delay the architectural design
assembly, configuration or might be delayed
until runtime, this leads developers to have
more flexible applications and thus better
customer satisfaction.</p>
    </sec>
    <sec id="sec-10">
      <title>4. RELATED WORK</title>
      <p>
        The most known approaches that integrate
Software Product Line engineering and
Component-based engineering are: Kobra [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
and Koala [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The basic goal of Kobra is
to provide a systematic approach to the
development of component-based application
frameworks. Nevertheless, Kobra approach
interest to the internal structure of components
for which it uses UML modeling. Therefore,
this approach cannot be compared to ours.
Koala is a component model based on an
architectural description language used to
build a large diversity of products from a
repository of components. Its aim is to manage
the growing complexity and diversity of
software in consumer electronics products.
Various concepts are used in the koala
components models, like interfaces,
connectors, subcomponents and compound
decisions to later stages in the
development process [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
software
components. Koala allows the modeling of
variability related to interfaces (optional
interfaces) and connections between
interfaces (switch). However, the model
proposed by Koala does not cover all types of
variability that can be found and must be
explicitly defined in a SPL, such as: mandatory
or optional components, AND, OR, XOR
relations… Furthermore, Koala consider
variability binding only at configuration time,
while SPL engineering allows several binding
times, according to the context, ranging from
design to configuration and runtime [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
    </sec>
    <sec id="sec-11">
      <title>5. CONCLUSION</title>
      <p>The work presented in this paper aims to
reach a high level of reuse that can be
obtained through the integration of two
approaches: Software product lines and
Component-based development. Each of
these approaches promotes reuse at different
granularity levels. Component-based
development supplies technologies for reuse
in the small, while Software product line
approach intends reuse in the large. Putting
them together allow us to reach large scale
reuse and flexibility at the same time.
Moreover, Component-based development
can overcome the lack of maturity in SPL
engineering by providing efficient technologies
of development.</p>
      <p>Since our approach needs more space to be
well define, this paper presented the outlines
of the proposed approach, mainly: the
development process and the
Componentbased model. The paper presents also a case
study for an ambitious field (e-Meeting) aiming
to validate the proposed approach. The
designed e-Meeting reference architecture
represents a framework for all foreseeable
eMeeting applications and can be extended to
cover specific requirements if needed. Since,
software can be quickly derived from a CBPL
by the simple composition of existing
components; the activity of deriving new
members in a CBPL can be greatly automated.
The automation of applications derivation step
is an important perspective of our work.</p>
    </sec>
    <sec id="sec-12">
      <title>6. REFERENCES</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M. N.</given-names>
            <surname>Linda</surname>
          </string-name>
          , C. C. Paul, “
          <article-title>A Framework for Software Product Line Practice”</article-title>
          ,
          <source>Version</source>
          <volume>5</volume>
          .0 (
          <issue>online</issue>
          ), http://www.sei.cmu.edu/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Jean</surname>
          </string-name>
          , “Les lignes de produits logiciels Réutilisation et variabilité ”, Publication périodique de Smals,
          <year>Juin 2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F. van der</given-names>
            <surname>Linden</surname>
          </string-name>
          , S. Klaus, R. Eelco, “
          <source>Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering”</source>
          , Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Klaus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Günter</surname>
          </string-name>
          and
          <string-name>
            <surname>F. van der Linden</surname>
          </string-name>
          , Software Product Line Engineering: Foundations, Principles, and Techniques, Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Roger</surname>
          </string-name>
          <string-name>
            <surname>Pressman</surname>
          </string-name>
          , “
          <article-title>Software engineering: a practitioner's approach”</article-title>
          ,
          <source>Edition: 5</source>
          ,
          <string-name>
            <surname>McGraw-Hill Higher</surname>
            <given-names>Education</given-names>
          </string-name>
          ,
          <year>June 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Babar</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Nour, “
          <article-title>Variability Management in Software Product Lines: A Systematic Review</article-title>
          ,” SPLC, San Francisco, California,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>B.</given-names>
            <surname>Felix</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.C.</given-names>
            <surname>Paul</surname>
          </string-name>
          , “Variability in Software Product Lines”,
          <source>technical report CMU/SEI</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Jilles van</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Jan</surname>
          </string-name>
          , S. Mikael , “
          <article-title>On the Notion of Variability in Software Product Lines”</article-title>
          , WICSA,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mikael</surname>
          </string-name>
          , G. Jilles van, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Jan</surname>
          </string-name>
          , “
          <article-title>A taxonomy of variability realization techniques”</article-title>
          ,
          <source>Software Practice and Experience</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Andreas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Klaus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Patrick</surname>
          </string-name>
          , S. PierreYves, S. Germain, “
          <article-title>Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization</article-title>
          and
          <source>Automated Analysis”, 15th IEEE International In Requirements Engineering Conference</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Djamal</surname>
          </string-name>
          , “
          <article-title>The Integrated Approach to Software Architecture”</article-title>
          ,
          <source>Ph.D. Thesis</source>
          , Ecole Supérieure d'Informatique, Oued Smar,
          <source>Algiers (in French)</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Djamal</surname>
          </string-name>
          , S. Abdelfettah, “
          <article-title>The Design of an eGovernment Application Using an Aspect Oriented Software Architecture Approach”</article-title>
          , AOSA conference,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.</given-names>
            <surname>Djamal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Abderrezak</surname>
          </string-name>
          , S. Abdelfettah, “
          <article-title>The Design of A Complex Software System Using A Software Architecture Approach”</article-title>
          , ACIT,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>B.</given-names>
            <surname>Djamal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Khammaci</surname>
          </string-name>
          , H. Abderrezak, “
          <article-title>A new approach for component's port modeling in software architecture”</article-title>
          ,
          <source>In: Journal of System and Software, Elsevier</source>
          , Volume
          <volume>83</volume>
          Issue 8,
          <string-name>
            <surname>August</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hess</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Nowak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peterson</surname>
          </string-name>
          , “Feature- Oriented
          <string-name>
            <surname>Domain Analysis (FODA) Feasibility</surname>
            <given-names>Study</given-names>
          </string-name>
          ,”
          <source>Technical Report CMU/SEI-90-TR-21</source>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Rafael</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Jan</surname>
          </string-name>
          , “
          <source>Binding Time and Evolution, Systems and Software Variability Management”</source>
          , pp
          <fpage>57</fpage>
          -
          <lpage>73</lpage>
          , Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Colin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Joachim</surname>
          </string-name>
          , M. Dirk, “
          <article-title>ComponentBased Product Line Development: The KobrA Approach”</article-title>
          ,
          <source>software Product Line Conference</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>O. Rob van</surname>
          </string-name>
          , “
          <article-title>The Koala component model for consumer electronics software”</article-title>
          ,
          <source>Philips Research Eindhoven, IEEE Computer 33</source>
          (
          <issue>3</issue>
          )
          <string-name>
            <surname>,</surname>
            <given-names>MAR</given-names>
          </string-name>
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Timo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Timo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomi</surname>
          </string-name>
          , “
          <article-title>A KoalaBased Approach for Modelling and Deploying Configurable Software Product Families”</article-title>
          ,
          <source>PFE-5</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>