intensive systems that share a common infrastructure
formed by the SPL architecture and essential artifacts
(Linden et al., 2007). Such architecture and artifacts
have common features, the similarities, and variable
elements, the variabilities, in order to provide a means
to derive specific products for a given domain. Vari-
ability represents how SPL specific products differ
one another.
In this context, the existing literature presents sev-
eral variability management approaches based on fea-
ture models, UML and domain specific languages.
The Stereotype-based Management of Variability
(SMarty) approach has been developed OliveiraJr
et al. (2010) and empirically evaluated Marcolino
et al. (2014) for UML-based SPLs.
SMarty is composed of a UML profile, the SMar-
tyProfile, and a systematic process, the SMartyPro-
cess, to guide one on applying the SMarty stereotypes
and meta-attributes. SMarty version 5.1 supports use
case, class, component, activity and sequence models.
2.2 Software Inspection
Software inspection is a specific type of software re-
view (Ciolkowski et al., 2003) applied to artifacts by
means of a systematic and well-planned defect identi-
fication process (Fagan, 1986). More than 60% of de-
fects can be identified in early phases of the software
life-cycle
1
(Boehm and Basili, 2001; Fagan, 1986).
By means of software inspection it is possible to ver-
ify several elements of software artifacts in order to
detect different defect types persistent in software
specifications (IEEE, 1998b).
Fagan (1986) proposed a software inspection pro-
cess driven by roles, such as, moderator, inspector and
author and activities. The process of defect detection
must be standardized and non-ambiguous for the doc-
ument under revision, as for instance, a requirements
specification (IEEE, 1998a). Therefore, Anda and
Sjøberg (2002) propose a taxonomy of defect types
for checklist-based software inspections specifically
for use cases. Such a taxonomy is composed of the
following defect types: Omissions, Incorrect facts, In-
consistencies, Ambiguities and Extraneous Informa-
tion. In addition, these are the main existing defect
types in the literature, as we can see in Travassos et al.
(1999). Furthermore, the literature improves such a
taxonomy by providing several more studies on defect
types, such as in Hayes et al. (2006), IEEE (2012),
Mello et al. (2014), Travassos et al. (1999) and Cunha
et al. (2012).
Therefore, for defect detection it might be used
inspection techniques, thus, the study of Anda and
1
http://www.cebase.org/defect-reduction.html
Sjøberg (2002) presents the Checklist-Based Reading
(CBR), which is a non-systematic technique for de-
fect detection. It does not provide directions or mech-
anisms on “how” the inspection should be performed,
but “what” must be inspected through guidance us-
ing a document in a checklist format (Alshazly et al.,
2014).
Furthermore, the CBR technique based on check-
list is one of the most adopted inspection techniques
for analyzing artifacts, as well as for identifying the
most relevant information required for certain review
tasks (Mello et al., 2014). The checklist verification
items are simple to follow. The checklist format is a
list of non-ambiguous questions, based on either pre-
vious experiences or history, which must be clearly
answered as “Yes” or “No”. In order to make the
checklist able to be applied, a list of defect types must
be available for the inspector (Alshazly et al., 2014).
3 SMartyCheck
The SMartyCheck technique acts at the Domain En-
gineering activities. SMartyCheck was designed as
an inspection technique with the objective of detect-
ing defects in SMarty SPL use case and class vari-
ability models of SPL by means of a checklist with
20 items. The SMartyCheck technique is composed
of two checklists: one for use case models, and one
for class models. We are aware that the automation of
SMartyCheck is an important issue to contribute for
assuring quality in inspection activities, thus, we are
developing a tool for it.
In order to perform inspections, inspectors should
read the checklist answering each question from a
list of assertive questions, marking a single check per
question, based on their prior knowledge with relation
to the SMartyCheck checklist defect types.
The checklist was developed based on the anal-
ysis and adaptation of defect types extracted from a
systematic mapping study that we carried out from
February to March/2014. From the analysis and clas-
sification of the 51 most relevant retrieved primary
studies, it was evident the identification of several
different studies with distinct defect types taxonomy
proposals, most of them empirically evaluated, that
can be adapted by existing software inspection tech-
niques, such as SMartyCheck.
The taxonomy of defect types for the SMarty-
Check checklist contains 13 defect types, adapted
from the following sources: IEEE (2012), IEEE
(1998b), IEEE (1998a), Travassos et al. (1999), Hayes
et al. (2006), Lamsweerde (2009) and Cunha et al.
(2012).
Checklist-basedInspectionofSMartyVariabilityModels-ProposalandEmpiricalFeasibilityStudy
269