process models. Meta-modeling is a practice in
software engineering where a general model
(metamodel) organizes a set of concepts that will be
later instantiated and preserved by specific models
(instances). In this scenario, a software process
metamodel could represent basic interconnection
constraints that should hold after the metamodel is
instantiated (Henderson-Sellers and Gonzalez-Perez,
2007), thus minimizing inconsistencies. An evidence
of the importance of metamodels for software
processes is the existence of metamodels such as
Software & Systems Process Engineering Meta-
Model Specification - SPEM 1.1 (OMG, 2002),
OPEN Process Framework - OPF (Open, 2006),
among others. Recently the Object Managements
Group – OMG issued a new version of its standard
for Process Modeling, namely SPEM 2.0, which
offers the minimal elements necessary to define any
software process (OMG, 2007).
Although the SPEM 2.0 metamodel represents a
great advance in software process specification and
consistency, its use is not straightforward. SPEM 2.0
defines several concepts using the UML class
diagram notation and represents several constraints
with natural language. For example, SPEM 2.0
allows the specification of a Task that does not
consume, produce and/or modify any Work Product.
This is clearly an inconsistency once a Task has a
purpose, expressed in terms of creating or updating
Artifacts (Work Products) (Kruchten, 2000).
In order to improve the consistency of the
software processes instantiated from SPEM 2.0 this
paper proposes a set of well-formedness rules to
check for the software processes consistency. The
focus of this paper is only the consistency of the
roles, work products, tasks and their relationships.
Each well-formedness rule expresses a condition
that must be true in all software process instances.
To create the well-formedness rules we have started
our work by redefining some relationships in the
SPEM 2.0. For those more elaborated well-
formedness rules we have used FOLP.
The paper is organized as follows: Section 2
presents the related works. Section 3 describes the
SPEM 2.0. Section 4 presents some packages of
SPEM 2.0. In Section 5, the consistency well-
formedness rules are shown. Section 6 evaluates
some well-formedness followed by the conclusions.
2 RELATED WORK
Several papers have focused on defining software
process from a process metamodel. Some
approaches (Puviani, 2009), (Habli and Kelly,
2008), (Serour and Henderson-Sellers, 2004),
(Bendraou et al., 2007) propose solutions using well
known metamodels such as OPF or SPEM, while
others define their own process metamodels
(Wistrand and Karlsson, 2004), (Gnatz et al., 2003),
(Ralyte et al., 2006).
In (Puviani, 2009), (Serour and Henderson-
Sellers, 2004), (Wistrand and Karlsson, 2004) and
(Ralyte et al., 2006) the authors consider
metamodels to define method fragments, method
chunks or method components. Although they differ
in terminology, fragments, chunks or components,
represent small elements of a software process. This
approach is known as Situational Method
Engineering - SME, which is a subset of the Method
Engineering - ME discipline. According to
(Henderson-Sellers et al., 2008), SME provides a
solid basis for creating software process. Chunks,
fragments or components are typically gleaned from
best practice, theory and/or abstracted from other
processes. Once identified and documented, they are
stored in a repository, usually called method base
(Henderson-Sellers and Gonzalez-Perez, 2007).
In (Bendraou et al., 2007) the authors propose an
extension to SPEM 2.0 to address the lack of the
“executability” of this metamodel. The objective of
the extended metamodel is to include a set of
concepts and behavioural semantics. In (Habli and
Kelly, 2008) the authors present a process
metamodel that embodies attributes to facilitate the
automated analysis of the process, revealing possible
failures and associated risks. The metamodel allows
associating risks to the activities and mitigates them
before they are propagated into software product.
Gnatz et al. (2003) also propose a metamodel to
define software process. The authors are mainly
interested in performing process improvement
together with static and dynamic tailoring
(adjustment) of process models.
Though process metamodels are used by many
research groups, the software process consistency
issue is not widely explored. Most works lack rules
to check the consistency of the created software
processes. Specifically related to the software
process consistency some few works might be found
in the literature. Bajec et al. (2007), which describe
an approach to process configuration, present some
constraint rules in their work to constrain some
aspects of the software process construction. The
authors decompose their rules in four subgroups:
process flow rules, structure rules, completeness
rules and consistency rules. The completeness rules
and consistency rules are related to this work since
IMPROVING THE CONSISTENCY OF SPEM-BASED SOFTWARE PROCESSES
77