<!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>Preparing for a Literature Survey of Software Architecture using Formal Concept Analysis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lu´ıs Couto and Jose´ Nuno Oliveira</string-name>
          <email>fpg15260@alunos.uminho.pt, jno@di.uminho.ptg</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Miguel Ferreira and Eric Bouwers</string-name>
          <email>e.bouwersg@sig.eu</email>
          <email>fm.ferreira, e.bouwersg@sig.eu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CCTC, Departamento de Informa ́tica, Universidade do Minho</institution>
          ,
          <addr-line>Braga</addr-line>
          ,
          <country country="PT">Portugal</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Software Improvement Group</institution>
          ,
          <addr-line>Amsterdam</addr-line>
          ,
          <country country="NL">Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-The scientific literature on Software Architecture (SA) is extensive and dense. With no preparation, surveying this literature can be a daunting task for novices in the field. This paper resorts to the technique of Formal Concept Analysis (FCA) in organizing and structuring such a body of knowledge. We start by surveying a set of 38 papers bearing in mind the following questions: “What are the most supported definitions of software architecture?”, “What are the most popular research topics in software architecture?”, “What are the most relevant quality attributes of a software architecture?” and “What are the topics that researchers point out as being more interesting to explore in the future?”. To answer these questions we classify each paper with appropriate keywords and apply FCA to such a classification. FCA allows us to structure our survey in the form of lattices of concepts which give evidence of main relationships involved. We believe our results will help in guiding a more comprehensive, in-depth study of the field, to be carried out in the future.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Keywords-Introductory and Survey; Software Architectures;
Formal Concept Analysis;</p>
    </sec>
    <sec id="sec-2">
      <title>I. INTRODUCTION</title>
      <p>
        Architecture is a relevant aspect of software systems
because it “allow[s] or preclude[s] nearly all of the systems
quality attributes” [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. Although the term “architecture”,
referring to software, seems to be widely accepted in both
academia and industry we notice that there is no
consensual understanding of it. A quick overview of just a few
papers will reveal significantly different definitions of SA,
for instance. This calls for knowledge classification and
aggregation in the field. Our main motivation in this paper
is to use formal concept analysis (FCA) [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ] to help us in
classifying and structuring the vast bibliography in the area,
paving the way to the future construction of a taxonomical
body of knowledge. We consider that a survey could help
to clear this and other issues, such as what the main topics
of the field are, what quality attributes are more relevant to
consider when working with the architecture of a software
system, or what the most promising topics for future research
are. Before starting a full fledge literature review of the
field (as proposed in [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] for instance), we propose to do a
preliminary study to shed some light on these, and possibly
other, research questions (RQs). With such a preliminary
review and analysis one can get a better focus on subsequent
reviews due to a better understanding of how the field is
partitioned in streams of research, who is working on what
and how different topics relate to each other.
      </p>
      <p>Our main assumption is that it is possible to use FCA
to answer questions. FCA is a mathematical theory for data
analysis that derives ontologies from sets of objects and their
properties. It can be used to explore a domain, reason about
it or simply describe it in a structured way. We rely on FCA
visualization capabilities to help reason about the field to be
surveyed.</p>
      <p>The contributions of this paper are:
the exemplification of how can FCA be used in
preparing research literature reviews;
answers to the RQs used to illustrate the technique.</p>
      <p>For the illustration of the preliminary survey approach,
we formulate the following RQs about SA.</p>
      <p>1) What are the most supported definitions of software
architecture?
2) What are the most popular research topics in software
architecture?
3) What are the most relevant quality attributes of a
software architecture?
4) What are the topics that researchers point out as being
more interesting to explore in the future?</p>
      <p>The remainder of this paper is structured as follows.
Section II introduces FCA and the lattices used later on in
the paper. Section III describes the proposed approach to
a preliminary literature review. Each of the following four
sections is an illustration of how the generic approach can
be applied to a specific RQ. The paper terminates with a
discussion of the outcome of the study in Section VIII.</p>
    </sec>
    <sec id="sec-3">
      <title>II. FORMAL CONCEPT ANALYSIS This section provides background on FCA in general, and the interpretation of the lattices used in the paper. Readers familiar with FCA may want to skip this section altogether.</title>
      <p>FCA comes from the field of applied mathematics and it
is described by its proponent as follows:</p>
      <sec id="sec-3-1">
        <title>The aim and meaning of Formal Concept Analysis</title>
        <p>
          as mathematical theory of concepts and concept
hierarchies is to support the rational
communication of humans by mathematically developing
appropriate conceptual structures which can be
logically activated. [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ]
        </p>
        <p>
          The input for FCA is a context, which is a relation
(typically a matrix) between objects and attributes. This relation
forms an ontology of concepts and their relationships. A
concept can be considered a subconcept if its extension
(the set of its objects) is contained in the extension of
its superconcept or, dually, if its intension (the set of its
attributes) contains the intention of its superconcept [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ].
        </p>
        <p>
          Although FCA provides advanced features for knowledge
exploration, in our analysis we only use it for visualizing
concept lattices, which provide a structured view of the
concepts under study. We are interested in understanding which
objects (papers in our case) relate to which attributes (the
different attributes we defined for each RQ), what clusters
of objects and attributes are there, and what hierarchical
relations exist among concepts. We refer the reader to a
paper [
          <xref ref-type="bibr" rid="ref41">41</xref>
          ] where FCA was used for the same purpose.
        </p>
        <p>To create the concept lattices in this study, we chose
to use the “The Concept Explorer” (conexp) 1 tool. Let
us start by showing how to interpret a concept lattice in
FCA. Figure 1 depicts one such concept lattice where books
(objects) are related to their properties (attributes). The
figure shows 6 concepts (nodes in the lattice) of 3 different
types. White labels represent objects, whereas gray labels
represent attributes. The dashed lines between concepts and
labels are a visual aid to help identify to which concepts
labels belong. Solid lines represent the super/sub-concept
relationship. Concepts depicted by half white, half black
1http://conexp.sourceforge.net
circles only refer to objects, meaning that objects in such
nodes have empty intentions (such is the case of the top most
concept where Book3 sits) because it is not related to any of
the attributes, or that the objects in that concept inherit the
attributes from their superconcepts (the case of the concept
where Book2 sits, which inherits the attributes DIGITAL
COPY and HARD COPY from its two superconcepts).
Concepts depicted by half blue, half black circles refer to both
objects and attributes (see e.g. the concept where Book4 sits).
The objects in these concepts are related to the attributes
that sit on the same concept, and to the attributes of their
superconcepts. Finally, the concepts depicted by a rather
small and empty circle can refer to attributes (the case of
the concept where the attribute HARD COPY sits), or merely
serve as hierarchical links between their superconcepts and
their subconcepts.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>III. GENERIC APPROACH</title>
      <p>The approach proposed in this paper is carried out in four
steps: paper selection, paper classification, use of FCA, and
analysis of results. This section gives an overview of these
steps.</p>
      <p>A proper selection of papers should have strictly defined
criteria for searching and filtering papers. However, because
this is simply a preliminary study we skipped such a
structured selection and from a set of 4 papers we chased
bibliography references until we reached a larger set that
both contained different types of papers (such as surveys,
evaluations, new proposals, etc), and covered several
different topics within the field of SA. We ended up with a
selection of 38 papers published between 1992 and 2010.
This set of papers is not meant to be fully representative of
the field of SA, but it is vast enough for a preliminary study
such as this one.</p>
      <p>With the set of papers to survey established it is necessary
to classify each paper according to the attributes selected
for each of the RQs. Different sets of attributes are used to
answer different RQs. For each RQ, a first (more extensive)
set of attributes is manually collected from all papers.
The collected attributes were found in abstract, keywords,
introduction, future work and conclusion sections. Then, the
related attributes are grouped together in order to reduce the
number of attributes in the final set. Attributes are dropped if
too few papers support them. This is typically the case for
attributes that are not related to more than 1 or 2 papers
whenever there are more attributes that get related to a
significantly larger number of papers. Once this set is stable,
then a relation is built between each paper and the attributes
that are relevant to that paper.</p>
      <p>The following step is to apply FCA. There are several
tools that implement FCA. As mentioned previously, we use
conexp, an open source FCA tool.</p>
      <p>Finally, the resulting concept lattices are analyzed and
interpreted, so as to focus on the structural relations they
uncover between papers and attributes.</p>
      <p>The following four sections report the results of applying
this generic approach to the selected RQs. The set of papers
is the same for all the RQs, except for one where it was
further reduced.</p>
      <p>IV. WHAT ARE THE MOST SUPPORTED DEFINITIONS OF</p>
      <p>SOFTWARE ARCHITECTURE?</p>
      <sec id="sec-4-1">
        <title>A. Attributes</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>The attributes for this RQ are the following. Design SA is the set of design decisions, specification or otherwise abstract representation of the software system.</title>
      <p>Structure SA is the structure of components, their
relationship and external properties.</p>
      <p>Constraints SA defines the constraints on the realization
or satisfaction of properties of its elements,
or on the legal and illegal patterns in the
communication between elements.</p>
      <p>Quality SA influences and/or determines quality
attributes of software.</p>
      <sec id="sec-5-1">
        <title>B. Results</title>
        <p>The lattice of Figure 2 shows that a group of 8 papers
does not support any of the 4 given definitions of SA, as they
sit in the topmost concept. Some papers are related to just
one definition of SA. These are the papers that inhabit the
concepts that also hold the attributes QUALITY (3 papers),
DESIGN (6 papers) and STRUCTURE (11 papers). All other
papers support two definitions simultaneously. Regarding
attributes, the odd one out is CONSTRAINTS because no
paper supports it alone. The papers that support the
definition CONSTRAINTS also support DESIGN or STRUCTURE.
Finally, no paper supports more than two definitions.</p>
      </sec>
      <sec id="sec-5-2">
        <title>C. Discussion</title>
        <p>
          The initial scan of the papers revealed 15 definitions. This
number was, however, reduced to 4. Some definitions were
simply dropped because too few papers supported them, and
others were merged together. An example of such a merge
is the case of STRUCTURE, which aggregates three of the
initial definitions, namely STRUCTURE, DECOMPOSITION
and RELATIONSHIP. The reason for this aggregation is that
most papers that support these definitions articulate them
together in sentences like “. . . software architecture of a
program or computer system is the structure or structures
of the system, which comprise software components, the
externally visible properties of those components, and the
relationships among them” Bengtson et al. 2004 [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>We found that 8 papers do not support any of the analyzed
definitions, 5 of these not providing any definition at all. The
remaining 3 papers do provide definitions, but these were
dropped. Eight of the papers that provide a definition for
SA quote it from elsewhere.</p>
        <p>It turns out that STRUCTURE is the most supported (17
papers) definition among the papers we surveyed, followed
by DESIGN (13 papers). Recall the definitions of DESIGN
and STRUCTURE from Section IV-A. These definitions,
although not exactly the same, look fairly similar to us.
DESIGN refers to decisions and abstract representations.
On the other hand, STRUCTURE refers to a structure of
components that are related to each other in some way.
We think that the decomposition of a software system in
different components that are structurally related can be
viewed as an abstract representation of that system. Also,
such structure of components exists due to decisions made
by people developing the system. This understanding of the
definitions, however, does not make them the same thing.
The structure of components can be observed at different
abstraction levels, such as the structure of source code
packages (or equivalent) which are already highly concrete
and far away from the abstract representation. The point is
that SA viewed from the STRUCTURE perspective can be
too detailed to be considered abstract. All in all, we believe
that although there might be some overlapping these are two
different definitions of SA.</p>
        <p>V. WHAT ARE THE MOST POPULAR RESEARCH TOPICS IN</p>
        <p>SOFTWARE ARCHITECTURE?</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>The attributes for this RQ are the following.</title>
      <p>Notation Addresses a notation (or description
language) for representing SA.</p>
      <p>Method Addresses a method for analysis or evaluation
of SAs.</p>
      <p>Tool Addresses a tool for the analysis or evaluation
of SAs.</p>
      <p>Evaluation Pertains to SA evaluation with respect to one
or more quality attributes.</p>
      <p>Analysis Pertains to SA analysis not leading to
appreciation of quality attributes.</p>
      <p>Scenarios Addresses scenarios as a technique for
evaluation or analysis of SA.</p>
      <p>Metrics Addresses metrics as tools for evaluation or
analysis of SA.</p>
      <p>Reviews Addresses reviews as tools for evaluation or
analysis of SA.</p>
      <p>Prototypes Addresses prototypes as tools for either
evaluation or analysis of SA.</p>
      <p>Due to the overly complex concept lattice obtained if
using the entire attribute set we decided for simplification
in detriment of a complete view of the concepts. To this
end, we consider a core set of topics containing NOTATION,
EVALUATION, ANALYSIS, TOOL and METHOD. This leaves
out SCENARIOS, METRICS, REVIEWS and PROTOTYPES as
we expect these to be bound to some of the topics of the
core set.</p>
      <p>
        Figure 3 depicts the concept lattice built from classifying
each surveyed paper according to the attributes of the core
set. This lattice shows that there is one paper (Shaw and
Clements 2006 [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]) that does not cover any of the 6
analyzed topics. In the lattice it is visible that 5 concepts
descend directly from the topmost. For easy reference we
will refer to these as level1 concepts. Four of these hold both
objects and attributes, and one only holds the attribute TOOL,
which means that no paper covers the TOOL topic alone. On
the other hand, the 4 that hold both objects and attributes
reveal that some papers are focused on just one topic. These
topics are EVALUATION (9 papers), NOTATION (6 papers),
METHOD (1 paper) and ANALYSIS (4 papers). Moving
further down along the lattice it becomes clear that the
number of connections among concepts increases. Two of
the concepts that descend directly from level1 concepts hold
papers, and both have two direct superconcepts. Kazman
1996 [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] covers TOOL and ANALYSIS, whereas a group
of 10 papers cover EVALUATION and METHOD. Analyzing
the lattice from the bottom up, there are 4 concepts that
are superconcepts of the bottommost concept and only
hold papers. All these papers cover some combination of
three topics. No paper covers all topics and every topic is
associated to at least one paper.
      </p>
      <p>
        Adding METRICS to the analysis produces the concept
lattice depicted in Figure 4 in which we see that METRICS
are covered by 4 papers. All of these papers cover METRICS
in addition to some other topic(s). For example Bouwers et
al. 2009 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] also covers EVALUATION.
      </p>
      <p>
        Taking SCENARIOS into account together with the core set
yields the lattice of Figure 5. Nine papers cover SCENARIOS.
A group of 6 papers cover it together with EVALUATION
and METHOD. Lung et al. 1997 [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] is not part of this
set because it also covers NOTATION. Kruchten 1995 [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
covers SCENARIOS together with ANALYSIS, METHOD and
NOTATION. Finally, Kazman 1996 [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] also covers TOOL
and ANALYSIS.
      </p>
      <p>The lattice resulting from adding REVIEWS to the analysis
is depicted in Figure 6. REVIEWS are covered only by 3
papers, all also covering EVALUATION and METHOD.</p>
      <p>
        PROTOTYPES, the last attribute, generates the lattice of
Figure 7. Only Luckham et al. 1995 [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] covers this attribute
and it does so in addition to NOTATION.
      </p>
      <sec id="sec-6-1">
        <title>C. Discussion</title>
        <p>
          EVALUATION is the topic gathering most papers (21),
followed by METHOD (17) and NOTATION (11). The
difference in the number of papers that cover EVALUATION
(21) and the number of papers that cover ANALYSIS (8)
seems to indicate that the research community represented in
the surveyed papers believes that attributing quality notions
to SA is of paramount importance. On the other hand, it
could also mean that there are sufficiently mature analysis
techniques available and that quality attributes are the next
logical step. The most frequent (12 papers) combination of
two topics is EVALUATION and METHOD, which indicates
that a good deal of papers focuses on methods for evaluation
of SAs. Except for Kazman 1996 [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] all papers that cover
more than one topic, cover METHOD. This indicates that
methods for SA evaluation or analysis are still a hot topic in
the field. It could be seen as a consequence of the definition
of the attribute METHOD. However the attribute TOOL was
defined in a similar way and does not gather as many papers.
This is perhaps a sign of method immaturity (too early for
tool development).
        </p>
        <p>
          With the exception of one paper (Kazman 1996 [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]), all
other papers that cover METRICS also cover EVALUATION.
        </p>
        <p>This reveals that researchers consider metrics to be adequate
indicators (or predictors) for quality attributes. Similarly
to METRICS, REVIEWS are only covered together with
EVALUATION and METHOD. When compared to METRICS
and REVIEWS, SCENARIOS are more diversified in the
field. Figure 5 shows that SCENARIOS are related to all
other topics in the core set, which implies a broad scope
of applications. Finally, PROTOTYPES are always covered
together with NOTATION and nothing else. This does not
mean researchers find prototyping inadequate for evaluation
or analysis. Instead, modeling and building prototypes seems
in most cases inherent to any of these activities. This could
explain why researchers do not mention it explicitly when
covering topics such as EVALUATION, ANALYSIS, METHOD
or TOOL.</p>
        <p>From the surveyed papers we do not see a clear evolution
in research topics, meaning that most topics were and are
researched in parallel. As depicted in the above timeline all
topics overlap along most of the timeline.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>VI. WHAT ARE THE MOST RELEVANT QUALITY ATTRIBUTES OF A SOFTWARE ARCHITECTURE?</title>
      <sec id="sec-7-1">
        <title>A. Attributes</title>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>The attributes for this RQ are the following. Maintainability How easily can software be maintained.</title>
    </sec>
    <sec id="sec-9">
      <title>Usability How easily can software be used.</title>
      <p>Reusability How easily can software (or parts of it)
be re-used.</p>
      <p>Performance The amount of useful work
accomplished by software compared to the time
and resources used.</p>
      <p>Reliability The capability of software to maintain
performance under stated conditions for
a stated period of time.</p>
      <p>Availability The capability of a software product to
be in a functioning state.</p>
      <p>Security The capability of software to prevent
unintended usage and unintended access
to its data.</p>
      <p>Modifiability How easily can software be modified.
Interoperability How easily can software interact with
other systems.</p>
      <p>Testability How easily can software be tested.
Scalability The capability of software to handle
growing work loads without prejudice of
its service quality.</p>
      <sec id="sec-9-1">
        <title>Generic B. Results</title>
        <p>The quality attribute is a parameter in the
evaluation.</p>
        <p>
          For this RQ the set of papers was reduced to the 22 papers
that cover the topic EVALUATION which, by definition of the
topic, refer to some quality attribute, leading to the lattice
of Figure 8. This lattice shows that all papers cover at least
one quality attribute. Out of the 22 papers 18 cover at most
one quality attribute (including the GENERIC). Which only
leaves 4 papers that cover more than one attribute. Two
papers, Immonen and Niemela¨ [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] and Lung et al. 1997 [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ],
cover two quality attributes (respectively RELIABILITY and
AVAILABILITY, and MODIFIABILITY and REUSABILITY).
Babar et al. 2004 [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] covers 6 quality attributes. Finally, the
paper O’Brien et al. 2007 [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] covers 9 attributes. From the
perspective of the quality attributes, three (SCALABILITY,
TESTABILITY, and INTEROPERABILITY) are covered by a
single paper (O’Brien et al. 2007 [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]). SECURITY is always
covered together with other quality attributes (RELIABILITY,
AVAILABILITY, PERFORMANCE, and USABILITY).
AVAILABILITY is always covered together with RELIABILITY. The
last odd attribute is GENERIC for which the associated
papers do not cover any other quality attribute (this is actually
a meta quality attribute as explained in Section VI-A).
        </p>
      </sec>
      <sec id="sec-9-2">
        <title>C. Discussion</title>
        <p>The fact that AVAILABILITY and RELIABILITY are
always covered together hints at the similarities between these
two quality attributes. In fact a software system that is very
reliable should have no problems in being available to its
users. However, the contrary might not be true, since a
system can be available but in the end not so reliable. For
instance a system could be available for its users to perform
whatever tasks they need it for, but still lose important
data without the user perceiving it. This seems to indicate
AVAILABILITY as an aspect of RELIABILITY.</p>
        <p>Because SECURITY is always covered together with
RELIABILITY, AVAILABILITY, PERFORMANCE and
USABILITY it does not seem a main concern of researchers focusing
on SA. The fact that it is covered by no more than two papers
seems to reinforce this interpretation.</p>
        <p>Seven papers cover GENERIC evaluations, meaning that
the quality attribute is a parameter of the evaluation method,
therefore these methods can be applied to different
quality attributes. The next most covered quality attribute is
REUSABILITY (6 papers) which indicates this quality
attribute as the most relevant for the surveyed papers. This
makes sense if one considers that most SAs are built from
scratch every time, over and over. Just like with code
libraries, researchers believe that there should be ways to
reutilize existing SAs, or at least bits and pieces. Lastly, we
have MAINTAINABILITY and RELIABILITY each with 4.</p>
        <p>The remaining quality attributes are covered by three or
two papers, with the exception of INTEROPERABILITY and
TESTABILITY. A possible explanation for these two quality
attributes to appear in isolation from the others, could be
the development stage of the SA they apply to. There is a
distinction between designed and implemented architecture.
The former refers to the architecture that was initially
designed for a system typically using an Architecture
Description Language (ADL), whereas the latter refers to the
architecture that got implemented in source code. It could
be that both INTEROPERABILITY and TESTABILITY can be
better assessed when considering implemented architectures.
VII. WHAT ARE THE TOPICS THAT RESEARCHERS POINT
OUT AS BEING MORE INTERESTING TO EXPLORE IN THE</p>
        <p>FUTURE?</p>
      </sec>
      <sec id="sec-9-3">
        <title>A. Attributes</title>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>The attributes for this RQ are the following.</title>
      <p>Notation Improve notation support for SA, including
enrichment of semantics.</p>
      <p>Knowledge Create and/or extend a reusable SA body
of knowledge.</p>
      <p>Validation Validate usefulness of methods, tools and
languages used for evaluation and analysis
of SAs.</p>
      <p>Evaluation Improve SA evaluation methods.</p>
      <p>Tooling Improve SA tool support.</p>
      <p>Quality Study SA quality attributes.</p>
      <p>Integration Promote integration of SA evaluation and
analysis methods in software development
processes.</p>
      <p>Measurement Propose new, or select from existing,
metrics for SA.</p>
      <p>The lattice of Figure 9 shows that all topics sit in concepts
that directly descend from the topmost concept. This means
that the topics are fairly independent. A group of 6 papers
sits in the topmost concept, meaning that they either do not
propose any future work, or their topics cannot be found
in the attribute set. No paper proposes EVALUATION or
TOOLING alone. All other topics are singled out in some
papers. Before moving on to the remaining 20 papers that
propose several topics, one noteworthy observation is that
VALIDATION is the topic which is most proposed together
with other topics (11 papers), followed by INTEGRATION
(10 papers), and TOOLING (7 papers). The 17 papers that
propose multiple topics do so in pairs.</p>
      <p>
        When compiling the attribute set for this RQ, we
encountered two papers (Perry and Wolf 1992 [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] and Babar
et al. 2004 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]) which proposed a working definition of
SA. Although this topic did not make it into the analyzed
attribute set, it shows the relevance of our first RQ.
      </p>
      <p>The pairs of topics that were pointed out by more papers
(3 each) were NOTATION and TOOLING, and INTEGRATION
and VALIDATION. This seems to stress the need for tool
support for SA specific notations, and that methods and tools
need to be both validated with respect to their usefulness and
better integrated in development processes.</p>
      <p>Six papers do not propose future work topics at all.
The most proposed topics VALIDATION and INTEGRATION
(11 papers each), by definition, only make sense when
researched together with something else. Even though some
papers single these two out, we believe that the intention of
the authors is to validate or integrate whatever methods or
tools they have developed. All in all, it appears that there
are many avenues to be explored by new research and that
there is no topic that gathers the majority of the researchers.</p>
      <p>Contrary to what we found for RQ2, there is not as much
time overlapping between proposals for future research
topics. The following timeline shows that both MEASUREMENT
and KNOWLEDGE span over short periods of time 1994–
1997 and 2006–2009, respectively. For the remaining topics
there is significant overlap for most of the analyzed period,
which means that for this RQ there is no crystal clear
evolution in what researchers consider to be important to
research in the future.
Year 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09 10
Timeline of future research topics.</p>
    </sec>
    <sec id="sec-11">
      <title>VIII. CONCLUSIONS Our preliminary survey shows that the term SA lacks a clear definition. Two of the surveyed papers actually mention the desirable clarification of the term as future work.</title>
      <p>From the analysis of RQ1 (“What are the most supported
definitions of software architecture?”) we were able to single
out 2 (DESIGN and STRUCTURE) of the 4 main definitions as
being the most supported. This dichotomy can be explained
by the gap existing between the designed architecture (what
is initially designed for a system) and the implemented
architecture (what is actually implemented in the source
code). In a full fledge survey of the field it might be
desirable to take both definitions into account, or to just
focus on one. If one already knows the field to be surveyed,
such differences might be obvious. However, if the field is
unknown, a preliminary study as the one described in this
paper can help to focus on what to include and what to
exclude from the survey.</p>
      <p>With respect to RQ2 (“What are the most popular
research topics in software architecture?”), one thing that
stands out is the fact that whenever a paper covers two
topics, METHOD is almost always (there is one exception)
one of them. So if the focus of the survey would be “methods
for SA”, one would already expect not to exclude any topic
from the literature selection. On the other hand, should the
focus of the survey be “tools for dealing with SA”, one
would already expect to find more papers regarding methods
for architectural analysis that than, for instance, architectural
evaluation. Of course, these are not rules of thumb, but
they help set the expectations, which in turn guide literature
searches and help validate findings. RQ2 also shows how to
partition the analysis if the lattice is overly complex.</p>
      <p>Regarding RQ3 (“What are the most relevant quality
attributes of a software architecture?”), we observed that
the maintainability, reusability, usability, performance,
reliability and modifiability quality attributes seem to be more
impacted by decisions taken at the level of SA. Furthermore,
other quality attributes, such as scalability, testability and
interoperability, seem to be less relevant according to the
number of papers that cover those.</p>
      <p>Finally, the analysis of RQ4 (“What are the topics that
researchers point out as being more interesting to explore
in the future?”) shows that there are many avenues for future
work and that there are many proposals for combining these
avenues into streams of research. From all the identified
future research topics the ones that gather more consensus
are validation and integration efforts. This seems to indicate
that the field has matured to the point where there is
enough confidence in what has been developed thus fur
to start embracing integration of such methods and tools
into mainstream software engineering practices. On the other
hand, the field has not yet matured enough to have provided
full confidence in its methods and tools, thus requiring
additional empirical validation studies.</p>
      <p>
        We recognize limitations in this preliminary study for a
survey, namely the bias introduced in the selection of papers
and attributes. To overcome this bias, one should rely on
strictly defined criteria for searching and selecting papers,
and the elicitation of the attributes. Since the goal of this
study is the demonstration of how FCA can help in preparing
for a full fledge survey, we do not consider this bias to be a
problem. The way to structure such criteria and protocols
for searching, classifying and extracting knowledge from
scientific literature has already been addressed in systematic
literature reviews for software engineering [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ].
      </p>
      <p>From this study we conclude that FCA can help in
gathering knowledge about a multifaceted field, and better
focus a survey. In addition, we believe that this is also true
if the target of the survey is something more specific, such
as “methods for SA evaluation that use metrics”. Validating
this hypothesis is yet to be done.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P.</given-names>
            <surname>Abrahamsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Babar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          , “
          <article-title>Agility and architecture: Can they coexist?” IEEE Softw.</article-title>
          , vol.
          <volume>27</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>22</lpage>
          , Mar/Apr
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Allen</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          , “Formalizing architectural connection,” in ICSE, May
          <year>1994</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>80</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Babar</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Gorton</surname>
          </string-name>
          , “
          <article-title>A tool for managing software architecture knowledge,” in SHARK/ADI</article-title>
          . IEEE,
          <year>2007</year>
          , p.
          <fpage>11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Gorton</surname>
          </string-name>
          , “
          <article-title>Software architecture review: The state of practice,” IEEE Comp.</article-title>
          , vol.
          <volume>42</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>26</fpage>
          -
          <lpage>32</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zhu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Jeffery</surname>
          </string-name>
          , “
          <article-title>A framework for classifying and comparing software architecture evaluation methods,” in ASEC, ser</article-title>
          .
          <source>ASWEC '04. IEEE CS</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>309</fpage>
          -
          <lpage>.</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          and
          <string-name>
            <surname>B. E. John,</surname>
          </string-name>
          “
          <article-title>Linking usability to software architecture patterns through general scenarios</article-title>
          ,
          <source>” JSS</source>
          , vol.
          <volume>66</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>187</fpage>
          -
          <lpage>197</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bengtsson</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Bosch</surname>
          </string-name>
          , “
          <article-title>Scenario-based software architecture reengineering,” in ICSR</article-title>
          . IEEE,
          <year>2002</year>
          , pp.
          <fpage>308</fpage>
          -
          <lpage>317</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bengtsson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Lassing</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bosch</surname>
          </string-name>
          , and
          <string-name>
            <surname>H. van Vliet</surname>
          </string-name>
          , “
          <article-title>Architecture-level modifiability analysis (ALMA</article-title>
          ),
          <source>” JSS</source>
          , vol.
          <volume>69</volume>
          , no.
          <issue>1-2</issue>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>147</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bouwers</surname>
          </string-name>
          and
          <string-name>
            <surname>A. van Deursen</surname>
          </string-name>
          ,
          <article-title>“A lightweight sanity check for implemented architectures,” IEEE Softw.</article-title>
          , vol.
          <volume>27</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>Jul 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bouwers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Visser</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. van Deursen</surname>
          </string-name>
          , “
          <article-title>Criteria for the evaluation of implemented architectures,” in ICSM</article-title>
          . IEEE,
          <year>2009</year>
          , pp.
          <fpage>73</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bouwers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Visser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lilienthal</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A. van Deursen</surname>
          </string-name>
          ,
          <article-title>“A cognitive model for software architecture complexity,” in ICPC</article-title>
          .
          <source>IEEE Comp. Soc.</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>152</fpage>
          -
          <lpage>155</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L.</given-names>
            <surname>Dobrica</surname>
          </string-name>
          and E. Niemela¨, “
          <article-title>A survey on software architecture analysis methods</article-title>
          ,
          <source>” IEEE TSE</source>
          , vol.
          <volume>28</volume>
          , pp.
          <fpage>638</fpage>
          -
          <lpage>653</lpage>
          ,
          <year>Jul 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Pollet</surname>
          </string-name>
          , “
          <article-title>Software architecture reconstruction: A process-oriented taxonomy</article-title>
          ,
          <source>” IEEE TSE</source>
          , vol.
          <volume>35</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>573</fpage>
          -
          <lpage>591</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Allen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Ockerbloom</surname>
          </string-name>
          , “
          <article-title>Architectural mismatch: Why reuse is so hard,” IEEE Softw.</article-title>
          , vol.
          <volume>12</volume>
          , pp.
          <fpage>17</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>Nov 1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15] --, “
          <article-title>Architectural mismatch or why it's hard to build systems out of existing parts</article-title>
          ,” in ICSE,
          <year>1995</year>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>185</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Monroe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Wile</surname>
          </string-name>
          , “
          <article-title>Acme: an architecture description interchange language,” in CASCON, ser</article-title>
          .
          <source>CASCON '97</source>
          . IBM Press,
          <year>1997</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>.</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Allen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Ockerbloom</surname>
          </string-name>
          , “
          <article-title>Architectural mismatch: Why reuse is still so hard,” IEEE Softw.</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>66</fpage>
          -
          <lpage>69</lpage>
          , Jul/Aug
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hofmeister</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Nord</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Obbink</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ran</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>America</surname>
          </string-name>
          , “
          <article-title>A general model of software architecture design derived from five industrial approaches</article-title>
          ,
          <source>” JSS</source>
          , vol.
          <volume>80</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>106</fpage>
          -
          <lpage>126</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Immonen</surname>
          </string-name>
          and E. Niemela¨, “
          <article-title>Survey of reliability and availability prediction methods from the viewpoint of software architecture</article-title>
          ,
          <source>” SSM</source>
          , vol.
          <volume>7</volume>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>65</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          , “
          <article-title>Tool support for architecture analysis and design,” in ISAW-2 and Viewpoints '96 on SIGSOFT '96 Workshops, ser</article-title>
          .
          <source>ISAW '96. ACM</source>
          ,
          <year>1996</year>
          , pp.
          <fpage>94</fpage>
          -
          <lpage>97</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Webb</surname>
          </string-name>
          , and G. Abowd, “
          <article-title>SAAM: A method for analyzing the properties of software architectures,” in ICSE</article-title>
          .
          <source>IEEE CS</source>
          ,
          <year>1994</year>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lattanze</surname>
          </string-name>
          , and L. Northrop, “
          <article-title>A basis for analyzing software architecture analysis methods</article-title>
          ,
          <source>” SQJ</source>
          , vol.
          <volume>13</volume>
          , pp.
          <fpage>329</fpage>
          -
          <lpage>355</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kruchten</surname>
          </string-name>
          , “
          <article-title>The 4+1 view model of architecture,” IEEE Softw.</article-title>
          , vol.
          <volume>12</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>Nov 1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lange</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Muskens</surname>
          </string-name>
          , “
          <article-title>In practice: UML software architecture and design description,” IEEE Softw.</article-title>
          , vol.
          <volume>23</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>46</lpage>
          , Mar/Apr
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>D.</given-names>
            <surname>Luckham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kenney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Augustin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Bryan</surname>
          </string-name>
          , and W. Mann, “
          <article-title>Specification and analysis of system architecture using rapide,” IEEE TSE</article-title>
          , vol.
          <volume>21</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>336</fpage>
          -
          <lpage>354</lpage>
          ,
          <year>Apr 1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>C.-H. Lung</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Bot</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Kalaichelvan</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Kazman</surname>
          </string-name>
          , “
          <article-title>An approach to software architecture analysis for evolution and reusability,” in CCASCR, ser</article-title>
          .
          <source>CASCON '97</source>
          . IBM Press,
          <year>1997</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>.</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>J.</given-names>
            <surname>Magee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Dulay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Eisenbach</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Kramer</surname>
          </string-name>
          , “
          <article-title>Specifying distributed software architectures,” in ESEC, ser</article-title>
          . LNCS, W. Scha¨fer and P. Botella, Eds. Springer Berlin / Heidelberg,
          <year>1995</year>
          , vol.
          <volume>989</volume>
          , pp.
          <fpage>137</fpage>
          -
          <lpage>153</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , “
          <article-title>A classification and comparison framework for software architecture description languages,” IEEE TSE</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>93</lpage>
          ,
          <year>Jan 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>G.</given-names>
            <surname>Molter</surname>
          </string-name>
          , “
          <article-title>Integrating SAAM in domain-centric and reusebased development processes</article-title>
          ,” in NOSA,
          <year>1999</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>R.</given-names>
            <surname>Monroe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kompanek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Melton</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          , “
          <article-title>Architectural styles, design patterns, and objects</article-title>
          ,” IEEE Softw., vol.
          <volume>14</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>52</lpage>
          , Jan/Feb
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>L. O'Brien Lero</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Merson</surname>
          </string-name>
          , and L. Bass, “
          <article-title>Quality attributes for service-oriented architectures,” in SDSOA</article-title>
          , May
          <year>2007</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>3</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>I.</given-names>
            <surname>Ozkaya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nord</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sangwan</surname>
          </string-name>
          , “
          <article-title>Making practical use of quality attribute information,” IEEE Softw.</article-title>
          , vol.
          <volume>25</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>33</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Perry</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. L.</given-names>
            <surname>Wolf</surname>
          </string-name>
          , “
          <article-title>Foundations for the study of software architecture</article-title>
          ,
          <source>” SIGSOFT SEN</source>
          , vol.
          <volume>17</volume>
          , pp.
          <fpage>40</fpage>
          -
          <lpage>52</lpage>
          ,
          <year>Oct 1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>S.</given-names>
            <surname>Sarkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Kak</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. M.</given-names>
            <surname>Rama</surname>
          </string-name>
          , “
          <article-title>Metrics for measuring the quality of modularization of large-scale objectoriented software</article-title>
          ,
          <source>” IEEE TSE</source>
          , vol.
          <volume>34</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>700</fpage>
          -
          <lpage>720</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          , “
          <article-title>The golden age of software architecture,” IEEE Softw.</article-title>
          , vol.
          <volume>23</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>39</lpage>
          , Mar/Apr
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>B.</given-names>
            <surname>Tekinerdogan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Sozer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Aksit</surname>
          </string-name>
          , “
          <article-title>Software architecture reliability analysis using failure scenarios</article-title>
          ,
          <source>” JSS</source>
          , vol.
          <volume>81</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>558</fpage>
          -
          <lpage>575</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>L. G.</given-names>
            <surname>Williams</surname>
          </string-name>
          and
          <string-name>
            <given-names>C. U.</given-names>
            <surname>Smith</surname>
          </string-name>
          , “
          <article-title>PASASM: a method for the performance assessment of software architectures,” in IWSP, ser</article-title>
          .
          <source>WOSP '02. ACM</source>
          ,
          <year>2002</year>
          , pp.
          <fpage>179</fpage>
          -
          <lpage>189</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <source>Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>R.</given-names>
            <surname>Wille</surname>
          </string-name>
          , “
          <article-title>Formal concept analysis as mathematical theory of concepts and concept hierarchies,” in FCA, ser</article-title>
          . LNCS,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          , G. Stumme, and R. Wille, Eds., vol.
          <volume>3626</volume>
          . Springer,
          <year>2005</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>33</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          , “
          <article-title>Evidence-based software engineering and systematic literature reviews,” in PROFES, ser</article-title>
          . Lecture Notes in Computer Science, J. Mu¨nch and M. Vierimaa, Eds., vol.
          <volume>4034</volume>
          . Springer,
          <year>2006</year>
          , p.
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>J.</given-names>
            <surname>Poelmans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Elzinga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Viaene</surname>
          </string-name>
          , and G. Dedene, “
          <article-title>Formal concept analysis in knowledge discovery: A survey,” in ICCS, ser</article-title>
          . LNCS,
          <string-name>
            <surname>M. Croitoru</surname>
            , S. Ferre´, and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Lukose</surname>
          </string-name>
          , Eds., vol.
          <volume>6208</volume>
          . Springer,
          <year>2010</year>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>153</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>