<!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>
      <journal-title-group>
        <journal-title>Oslo, Norway, October</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Identifying Features for Ground Vehicles Software Product Lines by Means of Annotated Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rafael S. Durelli</string-name>
          <email>rafael_durelli@dc.ufscar.br</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel B. F. Conrado</string-name>
          <email>daniel_conrado@dc.ufscar.br</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ricardo Argenton Ramos</string-name>
          <email>ricargentonramos@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Lopez Pastor</string-name>
          <email>opastor@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Valter V. de Camargo</string-name>
          <email>valter@dc.ufscar.br</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rosaˆngela A. D. Penteado</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Collegiate of Computer Engineering, Federal University of Vale do Sa ̃o Francisco</institution>
          ,
          <addr-line>Juazeiro - Bahia -</addr-line>
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Computing Dept., Federal University of Sa ̃o Carlos</institution>
          ,
          <addr-line>Sa ̃o Carlos - Sa ̃o Paulo -</addr-line>
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Dept. of Computer Systems and Computation, Universidad Polite ́cnica de Valencia</institution>
          ,
          <addr-line>Valencia -</addr-line>
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <volume>4</volume>
      <issue>2010</issue>
      <fpage>119</fpage>
      <lpage>123</lpage>
      <abstract>
        <p>An approach for the identification of features supported by class models annotated with stereotypes is shown in this paper. The models are automatically reverse engineered by a tool called Rejasp/Dmasp where attributes and methods are stereotyped if they have some relation with candidate features. The approach consists of four guidelines and focuses on identifying features in embedded systems of ground vehicles. As a preliminary evaluation, the guidelines were applied in creating a product line in the domain of ground vehicles.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Product Line</kwd>
        <kwd>Embedded Systems</kwd>
        <kwd>Ground Vehicles</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Software Product Line (SPL) enables systems to be developed quickly through the
composition of reusable artifacts [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], that is, in other words, the software – a product line
member or product – is developed by composing features of a specific domain [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
Features are abstractions of design and code that represent the variability of a domain and
may be optional, alternative or mandatory.
      </p>
      <p>
        In general, the development of Embedded Systems (ES) is not supported by
systematic techniques of reuse, leading to bad time-to-market and low quality of products.
Previous studies have explored the use of SPL techniques for developing embedded
systems aiming at increasing productivity and quality of these systems [
        <xref ref-type="bibr" rid="ref3 ref4 ref6">3,4,6</xref>
        ]. However
none of these papers present clear guidelines or support tools for the agile identification
of features for rapid development of SPL in a fast way [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Most researchers in the literature do not provide explicit guidelines for the
identification of features to build product lines of ES. Recent research such as Mohan et al [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
recognizes the need to integrate the product line engineering with agile methods, such
as XP [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The authors state that the time-to-market is less each day and techniques
that facilitate the rapid engineering of a product line are extremely important. However,
they do not present clear and systematic guidelines that can be easily replicated for
identifying features from a set of products previously developed.
      </p>
      <p>
        Kim [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], Lee et al [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and Polzer et al [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] use techniques of SPL to aid the
development of ES, however, did not have clear guidelines to identify the characteristics.
      </p>
      <p>This paper presents an approach that consists of four guidelines that support the
identification of features for the agile construction in of SPL for ground vehicle (GV)
domain. The main contribution consists in an alternative approach for features
identification based on analyzing models rather than analyzing only source code or trust in
knowledge of the domain. We argue that the identification of features based on models
is easier than when it is conducted only base on experience and analysis of the source
code of existing systems. Although the approach is composed of four guidelines, only
the second one is commented in a more detailed way due to space limitations.
2</p>
      <p>Agile Approach for Derivation of LPS for Embedded Systems</p>
      <p>The first step to start the process is to choose a particular domain in which the SPL
must be built, for example, ground vehicles or unmanned aerial vehicles. Next, the
“G1Select GV” guideline consists of obtaining a set of GVs. At least three systems in the
domain must be selected. In our case study, four systems for GVs that use many devices
were obtained from an Internet Repository4. One of them, called BumperCar, has the
responsibility to avoid collisions with obstacles, thus it uses some types of sensors such
as ultrasonic and touch. The second one, called Explorer, has the capability to exploit a
specific environment. The third one, called Forklift is responsible for pick up a
particular object and carry it to another place, this GV is controlled by the user by means of
Bluetooth protocol. The forth follow the same pattern.</p>
      <p>When G1 is done, each of the systems must be labeled with numbers ranging from
1 to N. For each GV, it is performed one cycle, as shown in Figure 1. For instance,
4 http://www.nxtprograms.com/projects2.html
the GVs of our case study have been enumerated from 1 to 4 so that the first GV was
compared with GVs 2, 3, and 4; the second GV with the GVs 3 and 4 and the third was
compared with the fourth GV.</p>
      <p>The guideline “G2-Compare and Identify” is the most important of the approach. It
states that GVi should have its hardware (sensors and actuator) and software compared
to the others GVsj, where i+1 j N, in order to identify features in this domain. This
comparison is supported by a tool called Rejasp/Dmasp, that aims to recover annotated
(stereotyped) class models from source code of systems, where the stereotypes means
indications of candidate features. These indications are evident in the models through
stereotypes, that is, attributes and methods that have some key words representing a
“concept” of the domain are stereotyped. This tool has a “Concept Manager” where the
“domain concepts” which must be mined in the source code of systems can be
registered. Thus, we can register the “domain concepts” that must be searched in the source
code. Domain concepts are words that represent information relevant to the domain, for
instance, the concepts “motor” and “sensor” are considered important terms in the field
of GV and can be features of a SPL in this domain. These concepts must be obtained
through experience of the developers in the domain or through existing ontologies.</p>
      <p>As can be seen, the stereotype Motor is presented in all classes. Due to that, the
concept “Motor” possibly will be indicated as a mandatory feature. However the
stereotype TouchSensor , UltraSonicSensor and LightSensor do not appear in
all classes, which means that each system has different types of sensors and possibly
they will be classified as alternative or optional features. We argue that identify
features only based on an analysis of the source codes is an expensive and time consuming
task. Thus, this tool reduces complexity and improves the productivity of the task of
identifying features of SPL.</p>
      <p>After the process of identifying features it must be created an artifact called Table
of Candidate Features, as shown in Table 1, wherein, at first, all the concepts identified
in the class models must be inserted. In the next guideline, these candidate features
will be analyzed in order to decide if they can be considered final or relevant feature of
the domain. It is worth to mention that the tool can annotate (stereotype) methods and
attributes that are not features, generating false-positives. It is also important to point
out that the quality of the process of identifying features is completely dependent on
the quality of the concepts registered with the Concept Manager.</p>
      <p>An important detail is that the identification coverage (how much the tool manages
to identify all correct features) can be higher if we use the tool incrementaly. For
example, if some features are not present in the first retrieved model, we can update the
Concept Manager including new Domain Concepts and run the tool again to retrieve a
new model that has a higher coverage. Then, this process can be repeated until most of
the features have been stereotyped in the model.</p>
      <p>In the “G3-Accept” guideline, one must analyze and classify the features of the
Table of Candidate Features. The analysis consists in deciding if a feature must be
considered as a “relevant feature” of the domain. This decision process must be supported
by the domain engineer’s knowledge and other information sources like sensor’s
manual and API documentation. Furthermore, the selected features must be classified in
mandatories, optionals or alternatives; however, it’s beyond the scope of this paper. The
final step is to create a new artifact called Table of SPL Features shown in Table 2
which contains all relevant features and the type of them. Table 2 contains a subset of
the relevant features for the SPL of our case study.</p>
      <p>After guidelines G2 and G3 have been applied, the Feature Model must be created
using the guideline “G4-Develop”. The Table of SPL Features that was generated in
“G3-Accept” supports the Feature Model creation. Figure 3 depicts the Feature Model
of our case study. This guideline is also beyond the scope of this paper and will not be
detailed.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Final Remarks</title>
      <p>We argue that identify features only by means of experience and existing source code is
more costly and error prone than using a model-based approach like the one presented
by us. In our approach, models assist in an agile identification of domain concepts in
several systems of a domain, which makes the identification of features a more
controlled and productive task. The quality of the identified features depends on the set of
concepts previously registered in Concept Manager of Rejasp/Dmasp. Therefore, we
suggest registering a concept list or a domain’s ontology in the tool.</p>
      <p>We also argue that top-down strategies for feature identification, that is, those that
identify features by analyzing a certain domain instead of systems previously
developed, are not suitable when the SPL must be created in a short time. The main cause is
that analyzing a domain usually takes a long time to be finished and yields a wide range
of features that are not relevant or that may never be used to derive products from the
PL.</p>
      <p>As a future work, we intend to improve the proposed guidelines in order to be
applied in existing agile methods like XP or SCRUM.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Beck</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andres</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Extreme Programming Explained: Embrace Change (2nd Edition)</article-title>
          . Addison-Wesley
          <string-name>
            <surname>Professional</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Clements</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Northrop</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Software Product Lines</article-title>
          .
          <string-name>
            <surname>Addison-Wesley</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>H.K.</given-names>
          </string-name>
          :
          <article-title>Applying product line to the embedded systems</article-title>
          .
          <source>In: Computational Science and Its Applications - ICCSA 2006</source>
          . Springer (May
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cho</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ham</surname>
            ,
            <given-names>D.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          :
          <article-title>Methodology for embedded system development based on product line</article-title>
          . vol.
          <volume>2</volume>
          , pp.
          <fpage>920</fpage>
          -
          <lpage>923</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Mohan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramesh</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sugumaran</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Integrating software product line engineering and agile development</article-title>
          .
          <source>Software, IEEE</source>
          <volume>27</volume>
          (
          <issue>3</issue>
          ),
          <fpage>48</fpage>
          -
          <lpage>55</lpage>
          (may
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Polzer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kowalewski</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Botterweck</surname>
          </string-name>
          , G.:
          <article-title>Applying software product line techniques in model-based embedded systems engineering</article-title>
          .
          <source>In: MOMPES '09: Proceedings of the 2009 ICSE Workshop on Model-Based Methodologies for Pervasive and Embedded Software</source>
          . pp.
          <fpage>2</fpage>
          -
          <lpage>10</lpage>
          . IEEE Computer Society, Washington, DC, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Chi: Software</given-names>
            <surname>Product-Line Engineering</surname>
          </string-name>
          :
          <article-title>A Family-Based Software Development Process</article-title>
          .
          <article-title>Addison-Wesley Professional; Har/Cdr edition (</article-title>
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>