<!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>DPLFW: a Framework for the Product-Line-Based Generation of Variable Content Documents</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Abel Gomez</string-name>
          <email>abel.gomez-llana@inria.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pau Mart</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Carmen Penades</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose H. Canos</string-name>
          <email>jhcanosg@dsic.upv.es</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AtlanMod team (Inria</institution>
          ,
          <addr-line>Mines Nantes, LINA) 4 rue Alfred Kastler. 44307 Nantes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>DSIC, Universitat Politecnica de Valencia. Cno. de Vera</institution>
          ,
          <addr-line>s/n. 46022 Valencia.</addr-line>
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Document Product Lines (DPL) is a document engineering methodology that applies product-line engineering principles to the generation of documents in high variability contexts and with high reuse of components. Instead of standalone documents, DPL promotes the de nition of families of documents where the members share some common content while di er in other parts. The key for the de nition is the availability of a collection of content assets which can be parameterized and instantiated at document generation time. In this demonstration, we show the features of the DPL framework (DPLfw), the tool that supports DPL. DPLfw implements the domain engineering and application engineering stages of typical product line engineering approaches, supports di erent asset repositories, and generates customized documents in di erent output formats. We use the case study of the generation of customized emergency plans in a University campus [http://youtu.be/ueKGfmfkyI0].</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The concept of document has changed in last decades from the classical printed
artifact to a purposeful and self-contained collection of information in a
technology-neutral way [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In more and more domains, documents are the central pieces
of the business processes; moreover, in most cases the generation of customized
documents has become the nal milestone. Examples are customized emergency
plans for organizations, customized learning objects based on students' pro les,
or customized book catalogs made according to customers' preferences.
      </p>
      <p>
        Customization can be made in three dimensions, namely content, structure
and presentation. Speci cally, content customization has been tackled from two
di erent perspectives. On the one hand, proposals on Variable Data Printing
(VDP) use variables within documents that are used as placeholders for
content that are replaced with values to generate customized documents. These
approaches are mostly XML-based [
        <xref ref-type="bibr" rid="ref10 ref5 ref8">5, 8, 10</xref>
        ]: document components are de ned
in XML, and the customized document is generated using XSLT, XPath, and
other related technologies. In these proposals, the variability model is implicit
(that is, it is embedded in XML, XPath and XSLT expressions), forcing
document engineers to have a high knowledge about the XML world. On the other
hand, more recent proposals such as [
        <xref ref-type="bibr" rid="ref4 ref9">4, 9</xref>
        ] use a product line approach to model
the variability explicitly. These proposals use feature models to identify the
variability points from a domain-oriented perspective, hiding the XML complexity.
      </p>
      <p>
        The Document Product Lines approach (DPL) [
        <xref ref-type="bibr" rid="ref2 ref7">2, 7</xref>
        ] is an example of the
latter. DPL was created with a twofold goal: rst, to make variable content
documents creation a ordable to non-expert users by including a domain
engineering process previous to document generation; and second, to enforce content
reuse at domain level following principles of Software Product Line Engineering
(SPLE). We implemented a tool, DPLfw [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], to provide the methodological and
technological background to creating variable content documents by the DPL
approach. DPLfw implements a true product line engineering process where
the content variability is represented using document feature models and di
erent variants of the document may be generated by de ning di erent document
con gurations. DPLfw was developed following the MDE and Model Driven
Architecture (MDA) paradigms, which allowed us to take advantage of code
generation techniques for the implementation of the tool prototype.
2
      </p>
      <p>The Document Product Lines methodology
DPL is a method for the generation of variable content documents. As in SPLE,
the DPL process is the concatenation of two main subprocesses, namely Domain
Engineering and Application Engineering. Fig. 1 shows the most relevant tasks
and artifacts in each subprocess using the BPMN notation.</p>
      <p>The goal of the Domain Engineering is to de ne a family of documents and
related artifacts. A family is a set of documents that share some mandatory
content while di er in other optional content. To enforce reuse, the content of a</p>
      <p>Fig. 1. DPL-based Document Generation Process
family of documents is structured via a document feature model. In the Analyse
Document Family task, a domain engineer speci es the documents in terms of
features and feature attributes. The result is a document feature model including
mandatory, optional, alternative features and their corresponding attributes (if
applicable). In the Design Document Family task, the generic document
architecture is de ned by identifying the document components (called core assets
in the SPLE terminology and InfoElements in DPL) required according to the
feature model built in the previous stage. These InfoElements may de ne a set of
variables corresponding to a set of placeholders, i.e., parts of their content that
may be instantiated at later stages of the document generation process. Speci c
instances of the architecture are created later in the process, after the
variability points and document variable have been xed for a speci c document. DPL
assumes the existence of a Repository where InfoElements are stored and
organized for reuse. Metadata are attached to each InfoElement in order to support
retrieval processes in the Develop Core Asset task to nd existing components.
Finally, in the Generate Document Line task, a production plan is obtained; it
is a process that speci es how the components are integrated according to the
di erent relationships de ned between the document features.</p>
      <p>In the Application Engineering subprocess, a member of the document
family is generated. The process starts with the Characterize Document task by
selecting in the con guration the speci c document features and variable values
to be included in the nal document. Next, the core-assets associated to the
selected document features are retrieved and put together to Generate a
Document Creation's Work ow model that it is used to generate a set of Custom
Document Editors. The editors provide guidance for Enacting the Document's
Creation Work ow by giving both a task-oriented and user-centered view of the
document based on editing task and permissions producing the nal document.
3</p>
    </sec>
    <sec id="sec-2">
      <title>The DPLfw Framework</title>
      <p>document feature model describing the domain at the end of the stage. The
Feature Editor is used by the Domain Engineer to characterize the variability
of the domain as a document feature model. The Feature Editor interfaces with
the Repository, which contains the InfoElements that will later be reused. All
these elements support the Analyse Document Family task (cf. Figure 1).</p>
      <p>It is noteworthy that, for the sake of simplicity, the Reference Architecture
matches the structure of the feature model, and thus, the Design Document
Family task does not require user-interaction. The Component Editor supports
the Develop Core Assets task and is used to create new InfoElements and add
them to the Repository. The Generate Document Line, which will describe how
to retrieve and integrate the di erent components to obtain the nal product, is
also hidden from the user-point of view.</p>
      <p>
        Regarding the Application Engineering subprocess, the Con guration Editor
supports the Characterize Document task through the selection of variability
points. Once a document feature model con guration is de ned, the Enact
Document Creation's Work ow task starts and the Custom Document Editors are
generated by composing the InfoElements. These editors are used to ll in any
remaining variable data. Finally, the Document Generator (a DITA-based [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
document generator engine) integrates the di erent components to obtain a fully
instantiated document generated in a speci c format (printed, hypermedia, etc.).
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Demonstration: The UPV Campus Emergency Plans</title>
      <p>Emergency plans development is the eld we selected for our case study. An
emergency plan is a document that contains all the knowledge required to
respond to any incident in an organization. Emergency plans development is a
domain that brings together a set of requirements that makes it an interesting
real case study. In our demonstration we will show how a family of emergency
plans is modeled, and how a customized emergency plan is generated. The UPV
Campus is a real case study, and its document feature model represents the
family of emergency plans of the university campus; where each building of the
campus has its own emergency plan obtained as a con guration of the family.</p>
      <p>Prior to the adoption of the DPL methodology in the UPV, new emergency
plans were manually created using a text editor (MS Word). Applying DPL to
the development of emergency plans requires that a set of document fragments
(i.e. InfoElements ) need to be created to be combined in the nal document and
a Document Feature Model describing the family of plans. However, sometimes
an InfoElement needs some small parts to be changed from one emergency plan
to another (e.g. the building name or the speci c maps or warning systems,
etc.). This scenario allows us to show how both approaches for document
customization (variability-based customization and Variable Data Printing) have
been combined in DPL and DPLfw.</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>DPLfw supports the generation of variable content documents in a product-line
style. Such an approach has several advantages. On one hand, a domain-oriented
variability speci cation helps to hide the complexity intrinsic to document
description languages such as XML. On the other hand, the de nition of generic
content components increases the reusability of content signi cantly. DPLfw
supports the generation of customized documents with high levels of reuse. Its
foundation, DPL, aims at raising the level of abstraction in comparison with
previous approaches, helping domain engineers and document engineers to develop
families of documents without knowledge of the underlying document
representation techniques such as XML, XPath, DITA or DocBook.</p>
      <p>
        We have illustrated the use of DPLfw with an example taken from our
collaboration with the emergency planning team at the Universidad Politecnica
de Valencia. The DPLfw documentation and prototype are publicly available
for download in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Glushko</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGrath</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Document Engineering: Analyzing and Designing Documents for Business Informatics &amp; Web Services</article-title>
          . MIT Press (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Gomez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Penades</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canos</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borges</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Llavador</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A framework for variable content document generation with multiple actors</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>56</volume>
          (
          <issue>9</issue>
          ),
          <volume>1101</volume>
          {
          <fpage>1121</fpage>
          (
          <year>2014</year>
          ), special Sections from \Asia-Paci c Software Engineering Conference (APSEC),
          <year>2012</year>
          " and \
          <source>Software Product Line conference (SPLC)</source>
          ,
          <year>2012</year>
          "
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. ISSI Research Group: DPLfw (
          <year>2014</year>
          ), http://dpl.dsic.upv.es/, (spanish only)
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Karol</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heinzerling</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heidenreich</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Assmann</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Using feature models for creating families of documents</article-title>
          .
          <source>In: Proceedings of the 10th ACM symposium on Document engineering</source>
          . pp.
          <volume>259</volume>
          {
          <fpage>262</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Lumley</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gimson</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rees</surname>
            ,
            <given-names>O.:</given-names>
          </string-name>
          <article-title>A framework for structure, layout &amp; function in documents</article-title>
          .
          <source>In: Proceedings of the 2005 ACM symposium on Document engineering</source>
          . pp.
          <volume>32</volume>
          {
          <fpage>41</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, USA (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <source>OASIS: Darwin Information Typing Architecture (DITA) Version 1.2 (Dec</source>
          <year>2010</year>
          ), http://docs.oasis-open.
          <source>org/dita/v1.2/spec/DITA1</source>
          .2
          <article-title>-spec</article-title>
          .html
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Penades</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canos</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borges</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Llavador</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Document product lines: variability-driven document generation</article-title>
          .
          <source>In: Proceedings of the 10th ACM symposium on Document engineering</source>
          . pp.
          <volume>203</volume>
          {
          <fpage>206</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, USA (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Piccoli</surname>
            ,
            <given-names>R.F.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chamun</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cogo</surname>
            ,
            <given-names>N.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Oliveira</surname>
            ,
            <given-names>J.a.B.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manssour</surname>
            ,
            <given-names>I.H.:</given-names>
          </string-name>
          <article-title>A novel physics-based interaction model for free document layout</article-title>
          .
          <source>In: Proceedings of the 11th ACM symposium on Document engineering</source>
          . pp.
          <volume>153</volume>
          {
          <fpage>162</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, USA (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Rabiser</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heider</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elsner</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehofer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Grunbacher,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Schwanninger</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>A exible approach for generating product-speci c documents in product lines</article-title>
          . In: Bosch,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <source>SPLC. Lecture Notes in Computer Science</source>
          , vol.
          <volume>6287</volume>
          , pp.
          <volume>47</volume>
          {
          <fpage>61</fpage>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Sellman</surname>
          </string-name>
          , R.:
          <article-title>VDP templates with theme-driven layer variants</article-title>
          .
          <source>In: Proceedings of the 2007 ACM symposium on Document engineering</source>
          . pp.
          <volume>53</volume>
          {
          <fpage>55</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, USA (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>