The variability management of the software
process line is supported by a product derivation
tool. This tool enables us to relate variability models
(e.g. feature models) to the process content
elements. This is a similar strategy adopted by
existing product derivation tools to manage the
variabilities of software product lines. In our
approach, we have adapted an existing product
derivation tool, called GenArch, to support the
variability management of software process lines.
The original implementation of GenArch provides
three models: (i) feature model – that represents the
commonalities and variabilities; (ii) architecture
model – that represents all the code assets
implemented for a software product line; and (iii)
configuration model – that defines the mapping
between features and code assets in order to enable
the automatic product derivation. To enable the
usage of GenArch in the software process line
context, we replaced our architecture model by the
EPF process model. It allows specifying how
specific variabilities (optional and alternative
features) from a feature model are mapped to
existing elements from a process specification.
Figure 5(A) shows an example of the variability
management of process lines for project
management process activities. As we can see, the
feature model is used to indicate the optional,
alternative and mandatory features of an existing
process line.
The configuration model defines the mapping of
these features to process elements. The complete
configuration model is automatically produced from
feature variabilities annotations that are inserted in
the EPF process specification.
Figure 4 shows an example of feature annotation
inside the
Assess_Result activity from an EPF
specification. As we can see, each annotation defines
the name (
Assess_Result), parent (tasks) and type
(optional) of the feature that the related artefact
represents.
Figure 4: Feature Annotation in an EPF specification.
The following process variabilities have been
found in the process line case study that we have
already modelled and specified: (i) optional and
alternative activities in process workflows; (ii)
optional and alternative steps from process
activities; (iii) optional and alternative specification
templates for any specific tool or activity; and (iv)
optional and alternative technology developer guides
that provides principles and guidelines to adopt
specific technologies (CASE tools, modelling and
programming languages, API libraries, components
and frameworks, and so on). Besides, we are
currently exploring fine-grained variabilities
(parameters, variables, text portions) that can occur
as part of the descriptions of process activities and
steps.
Due to restrictions space, this paper does not
present additional details about these variabilities.
Additional information about process line
variabilities modelling can be found in (Aleixo, et al.
2010). After specifying the mapping between
variabilities in the feature model to the process
elements from an EPF specification, GenArch tool
can automatically derive customized versions of a
software process line. This stage is similar to what is
called product derivation (Clements 2002) in
software product line approaches.
During the process derivation, the process
engineer chooses the desired variabilities (optional
and alternative features) in a feature model editor.
Next, the GenArch tool processes the mappings
specified in the configuration model to decide which
process elements will remain in the final customized
process according to the variabilities selection.
Resolution of feature constraints and process
component dependencies are also computed by the
tool during this step of process customization.
Finally, after all this processing, the tool is
responsible to produce the only EPF specification
that represents a customized process to be adopted
by a specific project. After the feature selection, the
Genarch can be used to generate a new process that
makes sense in the features selected in the feature
model. Figure
5(B) illustrates two examples of
feature selection (configuration1, configuration2)
that are processed by GenArch tool to produce two
different set of project management activities for
specific projects (SIGA, SIEP, and PDSC).
4.2 Deploying and Executing a
Software Process in a Workflow
Engine
Nowadays, organizations are investing in
<?xml version="1.0" encoding="UTF-8"?>
<!-- @Feature(name=Asses_Results, parent=tasks,
type=optional) -->
<org.eclipse.epf.uma:TaskDescription xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:org.eclipse.epf.uma=
"http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0"
xmi:id="_a3uz4LBYEdm7Eph_l9Cn9w"
name="assess_results,_0l53cMlgEdmt3adZL5Dmdw"
guid="_a3uz4LBYEdm7Eph_l9Cn9w"
changeDate="2007-05-01T13:24:08.202-0300"
version="1.0.0">
...
A MODEL-DRIVEN APPROACH TO MANAGING AND CUSTOMIZING SOFTWARE PROCESS VARIABILITIES
97