Conference PaperPDF Available

Patterns in Product Family Architecture Design

Authors:

Abstract and Figures

The common architecture is a central asset of a product family. But in many cases variations in quality requirements between family members make it difficult to standardise architectural solutions across the family. Therefore the common architecture has to support variation. In this paper we propose an approach to product family architecture design, modelling and use based on architecture patterns and their relationship to quality attributes that supports the representation of an open architecture and the specialisation of this architecture to meet product specific quality requirements.
Content may be subject to copyright.
Patterns in product family architecture design
Svein Hallsteinsen, Tor Erlend Fægri. Magne Syrstad
SINTEF Telecom and informatics, N-7465 Trondheim, Norway
{svein.hallsteinsen | tor.e.fegri | magne.syrstad}@sintef.no
Abstract. The common architecture is a central asset of a product family. But
in many cases variations in quality requirements between family members make
it difficult to standardise architectural solutions across the family. Therefore the
common architecture has to support variation. In this paper we propose an
approach to product family architecture design, modelling and use based on
architecture patterns and their relationship to quality attributes that supports the
representation of an open architecture and the specialisation of this architecture
to meet product specific quality requirements.
1 Introduction
The common software architecture is a central asset of any software product family
[2,6]. Primarily it is the quality requirements and the anticipated execution
environment that dictate the design of the architecture. In very homogeneous product
families the idea of a common architecture is unproblematic. Although the
functionality may vary considerably between member applications, the applications
have very similar quality requirements and common architectural solutions are viable.
However, in our work with introducing product family engineering in software
companies developing and delivering information systems of various sorts packaged
as standard products, we often see the need for more heterogeneous product families.
Here, the quality requirements and the anticipated execution environment vary
considerably between member applications and the common architecture has to allow
for different architectural choices in different applications.
One way to cope with this is to simply leave the architecture open (i.e.
underspecified) on the points where the variation in requirements makes it impossible
to standardise architectural decisions. This approach has the drawback that it becomes
more difficult to identify and build common components reusable across all family
members while it also complicates the derivation of member products by transferring
difficult architectural decisions to the product derivation process.
In this paper we propose an approach to representing open architectures that seek
to alleviate these drawbacks by encoding more explicitly foreseen variations in
quality requirements and decision support for specialising the architecture for a given
set of specific quality requirements. The approach is based on the following three
main elements:
-
use of patterns as architectural building blocks;
-
use of variation points to make explicit the allowed variation in the
composition of patterns for a given architecture;
-
guidelines for the resolution of variation points based on knowledge of the
effect of using a pattern in an architecture on quality properties of
applications built according to this architecture.
The paper is organised as follows: Section 2 introduces patterns, quality models
and decision models as tools for modelling product family architectures. Section 3
explains how concrete product architectures can be derived. Section 4 gives a
summary of how our approach has been validated in industry, section 5 contains a
discussion of related work and section 6 presents initial conclusions and suggestions
for future work.
2 Modelling open product family architectures
The architecture of a product family has both a prescriptive and a descriptive purpose.
Here we focus on the prescriptive aspect, which is to constrain and alleviate the task
of the application designers by providing a template for application design. It does
this by standardising solutions to design problems recurring across the members of
the product family.
Patterns as building blocks. Defining solutions to recurring problems is exactly
what patterns are about, so therefore patterns form natural building blocks for
architectures1. Moreover, established patterns often have known effects on quality
attributes [7] making it possible to reason about the effect of choosing one pattern
over another. Thus the backbone of our architecture model is a pattern language
encompassing the recommended patterns and relevant relations between them. These
are uses (one pattern uses another pattern in its solution), specialises (one pattern is a
specialisation of another) and conflicts (two patterns cannot be used together).
We are using the tem pattern in a rather broad sense, meaning any problem
solution pair recommended by the architecture either generally or to meet particular
quality requirements. This means that the pattern language may contain both
established patterns widely known an used throughout the software community, and
“local” pattern particular to the product family. In the latter case some may argue that
this is not a proper use of the term pattern, since we are talking about a local
invention. However, as long as we are talking about a recurring problem within the
product family and a solution prescribed by the architecture, and the architect has an
idea about how it influences the quality properties of the derived products, we prefer
to call it a pattern.
Encoding architectural variation. We divide the pattern language into two parts,
the base part and the varying part. The base part contains the enforced patterns, the
1In this paper we do not distinguish patterns and styles. Styles we understand as
high level patterns with a strong overall organising effect on a system.
ones that all applications must use. The varying part contains patterns that an
application may choose to use or not.
The varying part is organised into variation points. There are two kinds of variation
points: optional patterns and alternative patterns. An optional pattern is one that may
be included in an application architecture or not. Alternative patterns is a group of
patterns basically solving the same problem (often they are alternative specialisations
of a more abstract pattern), but in different ways and with different effects on
achievable quality attributes, and where the application programmer can choose the
one that best fits the requirements of the application.
Decision support. The specialisation of the architecture for a given set of quality
attributes is supported by a set of design guidelines. We have adopted the ISO 9126
standard as the basis for modelling quality but with the possibility to break down the
quality attributes defined in the standard into more detailed ones. Scenarios are used
to link quality attributes and patterns in the design guidelines. A scenario describes a
typical requirement related to one or more quality attributes and is also related to one
or more patterns in the pattern language promising to achieve that requirement.
Constructed as stimulus-response pairs, scenarios are effective instruments for
reasoning about the effect of patterns on quality attributes. A pattern may contribute
to satisfy multiple quality attributes, and the same quality attribute may be affected by
multiple patterns. More importantly, quality attributes influence each other through
the choice of patterns used in the architecture. For example, a pattern may have a
positive impact on performance but may affect maintainability negatively.
The design guidelines are organised into variation points in a similar way to the
variable part of the pattern language, with optional scenarios and alternative
scenarios. Table 1 below illustrates a decision guideline dealing with variation in the
handling of changes in the quality in the client-server connection: If the user of the
application requires continued service in the case of communication failures of the
client server connection, the architecture should be based upon the self reliant client
pattern. However, if continuous service is not required, the rich or thin client pattern
may be used.
Variation in client-server connection
availability
Stimulus Responses
Pattern Affects quality
attributes
Denial of service Thin client
Partial service Rich client
Communication
failure between
client and server Continued service Self reliant client
Fault tolerance
Recoverability
Table 1 Example decision guideline
Components. Patterns define roles and collaboration between roles. In a system
designed and implemented according to a set of patterns these roles are filled by
component implementations. Normally a component plays a role in more than one
pattern.
In the architecture we also include component specifications which are defined by
the synthesis of a set of roles from different patterns and possibly also collaboration
models related to the functionality of the system. Consider for instance a business
component in a layered architecture with stateless serverside business components.
The patterns involved are layering with a business component layer, and stateless
components. The business component has a role in the layering pattern, in the
stateless component pattern and in one or more use case related scenarios defining the
business services provided by the component.
Client server pattern
Model View Controller pattern
Component 1
Client Server
Model
View
Controller
Component 2
Figure 1 Components playing different roles
Figure 1 above illustrates how components may play different roles in a given
instantiation of the architecture. One component plays the role of a client in one
pattern and the role of a view in another etc. The controller role in the figure may be
played by either component 1 or component 2.
In summary, Figure 2 below illustrates our open architecture reference model. The
use and applicability of the model will be discussed in the following sections.
Pattern
Component
role
Component
spec
Base
architecture
Component
impl
Collaboration
Architecture
Quality
attribute
Scenario
Variation
point
Decision
model
Quality
req
-concerns*
*
1
*
-chooses between*
*
-defines *
*
-defines
*
*
Architecture
element
-Favours
**
-Use
*
*
1
*
-specialise
0..1
*
-conform *
*
-implement
**
Figure 2 The architecture reference model
3 Deriving family member architectures
Using the open architecture to support application architecture design involves the
following steps:
-
First specialise the quality model by resolving the variation points in light of
the particular quality requirements of the application. For each optional
scenarios decide whether it is relevant or not. For each group of alternative
scenarios select the one that best fits the needs of the application.
-
Then use the decision model to select patterns from the family pattern
language that fits the specialised quality model. The scenarios specified by the
quality model match scenarios labelling design rules in the decision model
which point to patterns promising to contribute to satisfying the scenario.
Together with the base part of the family architecture the selected patterns
form the pattern language of the application.
-
Finally select component specifications that matches the specialised pattern
language.
Since patterns normally affect more than one quality attribute there may be tradeoff
situations. The priorities of the scenarios may help to resolve such situations.
4 Validation
The method to modelling product family architectures that we have described in the
preceding sections is being validated and refined through our long-term collaboration
with Norwegian software companies. Most of them are SMEs, developing products
within the distributed information systems category. The pressure to deliver more
products, at lower costs and within shorter time-frames enforces them maximise the
value of their investments in developing software assets. All of the companies we
have worked with show a strong overall commitment to adopt product family
engineering practices in order to accomplish this. However, the maturity of the
adoption vary.
We have developed a reference architecture for the construction of product family
for information systems with particular requirements in the area of client device
adaptivity. We validated the reference architecture on real-world product family
efforts by performing numerous architecture evaluations at the companies (in form
inspired by the ATAM SM and ARIDSM methods [3]). In summary, we have gained
confidence that our approach is both useful and effective. The obtained results have
been used to refine and validate our quality models, the pattern language and the
decision model. Most importantly, these architecture evaluations have shown that the
different companies’ product families can be captured and modelled by our reference
architecture.
The experience for these architecture evaluation exercises has convinced us that
using patterns or pattern like constructs as building blocks of architectures is a good
idea. During the evaluations we have identified patterns used in the architectures and
related them to quality properties of the product family. This form of architectural
documentation, which normally did not exist on beforehand was generally very well
received both by the architects and the developers.
As an example we consider variation in terms of client device adaptivity. A
recurring variation point observed among the companies is variability in deployment
models. On one hand, the benefits of low-cost client deployment as exemplified by
web-based clients, promote server-centric products architectures. On the other hand,
rich user interfaces that exploit the resources on powerful PCs, are popular among
users that use the software for longer periods of time or are periodically disconnected
from the network. Thus, software architectures that can support this variability are
needed.
These requirements have been incorporated into the quality model, the pattern
language and the decision model (please refer to section 2 for descriptions). The
quality model included with our reference architecture covers these aspects of
variability. The underlying decision model associates these quality attributes with a
set of patterns. Figure 3 below is an example from our pattern language that includes
patterns that are mainly concerned with variability in deployment models. The dotted
arrows denote specialisation relationships. When a pattern specialises multiple other
patterns, we refer to patterns that include and specialise aspects from multiple other
patterns.
Presumably, most of these patterns are well-known to the reader [4,5]. The patterns
that have been identified and added to our pattern language are anyside component
and adapting client. As the name implies, the first pattern denotes components that
are deployable on either the client or the server machine.
«pattern»
Model View Controller
«pattern»
Publish subscribe
«pattern»
Presentation Abstraction Control
«pattern»
Adapting client
«pattern»
Anyside component
«pattern»
Configurator
«pattern»
Command
«pattern»
Workflow
Figure 3 Pattern language example (adaptivity qualities)
The latter denotes a client device that is able to dynamically adapt to context changes
through configuration changes (see e.g. [9] for scenario descriptions). Both patterns
are documented in [1]. The anyside component pattern, likely to be stateless for
scalability at the server side, appear to be a viable solution to some of these
requirements and is already being investigated. The adapting client pattern is more
involved, but promise to address additional adaptivity qualities.
5 Related work
Philips, as one of the early adopters of product family engineering practices in
Europe, has gathered a large amount of knowledge and experience within the area of
platform based software development. Of particular relevance to our work are efforts
related to product populations [12]. Product populations seeks to address the problem
of increasing levels of complexity and scale in software product development by
advocating and controlling reuse of assets between product families. The approach to
architecture design presented in this paper can be used to address variability
management in product populations.
Work done at SEI on ABASs [11] and later within the ADD method [7], is based
on similar assumptions to ours. For example, that certain quality properties can be
associated with architectural patterns. Additionally, we have drawn upon existing
validation techniques from SEI, such as ATAMSM and ARIDSM[3].
The OOram method, developed by T. Reenskaug et.al. [10], advocates the use of
role models and derivation of object specifications by role synthesis. This has inspired
our ideas on component roles and the derivation of component specifications based on
role synthesis.
6 Conclusions and future work
We have argued that in product families significant variation in quality requirements
is often the case, and that this requires variation also in the family architecture. Just
leaving the architecture unspecified on the points where applications must be allowed
to make own architectural decisions is not a satisfactory solution as it leaves too much
to application programming. Using patterns as architectural building blocks, and
encoding the relationship between quality attributes and optional or alternative
patterns in the architecture, we have proposed a way to represent family architectures
that allows for variability while retaining strong design support for application
development.
So far our approach has been used to represent a reference architecture for
information systems intended to provide services over the internet and having to cope
with variations in user context and the capabilities of network connections and client
devices. This exercise has provided promising experience with the quality models,
decision models and patterns as a vehicle to encode architecture design support.
During the development of the reference architecture we evaluated several real life
family architectures to collect requirements and validate our results. The findings of
these evaluations also supported our assumption that family architectures in this
domain must embed variation.
Now we are about to embark on validating the proposed approach on the modelling
of product family architectures where we will also need to model the implementation
framework supporting the architecture. This will give us the opportunity to test also
the derivation of component specifications and their relation to implemented
framework components in the context of a family architecture embedding variation.
Acknowledgements
The work reported here has been carried out in the context of the Café2and DAIM3
projects. The collaboration with both academic and industrial partners in these
projects has provided valuable inspiration and feedback to our work.
References
1. DAIM Software Engineering Handbook. Available through ICT-Norway 2003 (www.ikt-
norge.no).
2. Jan Bosch. Design and Use of Software Architectures - Adopting and Evolving a Product-
Line Approach. Addison-Wesley, 2000.
2 ITEA project ip00004, Café
3Norwegian technology development project led by ICT-Norway and partially funded by the
Norwegian research council.
3. Paul Clements, Rick Kazman, Mark Klein. Evaluating Software Architectures: Methods
and case studies, Addison Wesley, 2002.
4. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerland, and Michael Stal.
Pattern-Oriented Software Architecture - A system of Patterns, Wiley, 1996.
5. Douglas Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann. Pattern-Oriented
Software Architecture Volume 2 Patterns for Concurrent and Networked Objects, Wiley,
2001.
6. Mehdi Jazayeri, Alexander Ran, Frank Van Der Linden. Software Architecture for Product
Families: Principles and Practice. Addison Wesley, 2000.
7. Len Bass, Mark Klein, and Felix Bachmann. Quality Attribute Design Primitives and the
Attribute Driven Design Method. 4th Intl. Workshop on Product Family Engineering,
Bilbao, Spain, 2001.
8. Svein Hallsteinsen, Eric Swane. Handling the diversity of networked devices by means of
a product family approach. 4th Intl. Workshop on Product Family Engineering, Bilbao,
Spain, 2001.
9. Mehul Mehta, Nigel Drew, Chrostoph Nierdermeier. Reconfigurable terminals: An
overview of Architectural Solutions. IEEE Communications Magazine, August 2001.
10. Trygve Reenskaug with Per Wold and Odd Arild Lehne. Working with objects The
Ooram software engineering method. Manning Publications, 1996.Rob van Ommering.
Building product populations with software components. International Conference on
Software Engineering 2002, Orlando 2002.
11. Mark Klein and Rick Kazman. Attribute-based architectural styles. SEI Technical report
CMU/SEI-99-TR-022, 1999.
12. Rob van Ommering. Building product populations with software components.
International Conference on Software Engineering 2002, Orlando 2002.
... A PF invo the design of product platforms and related products based on product platforms target a range of pertinent markets, meeting market demands with low cost and ra development cycles. In 2001, Jiao proposed the concept of product family architec (PFA) on the basis of product families, which serves as an integrated platform extend the boundaries of product design to encompass a broader range, including man-mach interaction, information design, and market planning [17]. In the context of industrial sign, PFA refers to a collection of products with common characteristics [18]. ...
... A PF involves the design of product platforms and related products based on product platforms that target a range of pertinent markets, meeting market demands with low cost and rapid development cycles. In 2001, Jiao proposed the concept of product family architecture (PFA) on the basis of product families, which serves as an integrated platform extending the boundaries of product design to encompass a broader range, including man-machine interaction, information design, and market planning [17]. In the context of industrial design, PFA refers to a collection of products with common characteristics [18]. ...
Article
Full-text available
This study employs an innovative industrial design decision-making approach based on the notion of product family architecture and structural equation modeling. The aim is to enhance the product competitiveness of machine tool enterprises, which is crucial for their development. Key domains within machine tool industrial design were systematically analyzed, leading to the creation of a design evaluation criteria system. Through quantitative data, the importance order of indicators at all levels was determined to enhance the overall competitiveness of product industrial design. First, teachers of relevant majors and professionals from machine tool companies completed a Likert scale questionnaire to validate the PFA-SEM hypothesis model. Next, a subjective–objective integrated weighting method was introduced to guide the ranking of multiple design elements. The feasibility of this method was confirmed by applying the Entropy-Based Multi-Objective Decision-Making Method (Technique for Order Preference by Similarity to Ideal Solution). These approaches helped achieve industrial design improvements in Heatking induction vertical hardening machines. This research aids in optimizing machine tool design, guiding design iterations, and serving as a reference for the development and optimization of other machine tool design solutions.
... Security Architecture As previously mentioned, architectural design involves making sound tradeoffs between design alternatives in order to achieve sufficient product quality [2,6]. We base this work upon using architectural solutions (in the form of architecture tactics and patterns) as building blocks for software architectures, as previously described in [5], but also advocated by others, e.g. [1,3,6]. ...
... The architecture of a software system is important for the system's ability to satisfy its requirements [1][2][3][4][5][6][7]. In other words, if the architecture is carefully designed the resulting system has a better chance of meeting its expectations. ...
Article
Full-text available
Security is a cross-cutting concern in software intensive systems and should consequently be subject to careful architectural analysis and decision making. The requirements for costeffective product line development complicate this task. Two central research questions are addressed in this chapter (1) Is it viable to represent architectural security knowledge in a reference architecture? (2) If so, is such a reference architecture useful for security architecture design in software product lines? Initial evidence suggests that both questions can be affirmed. The main contribution of this chapter is a reference architecture that draws upon state-of-the-art techniques and practices from software product line engineering and information security and constitutes a decision support framework for security architecture design in software product lines. To validate the reference architecture, the chapter also presents our experiences from using it at three distinct companies.
... Perhaps surprisingly, the previous work does not that much describe how quality attribute differences are designed in the product-line architecture (RQ2). It has been proposed that quality attribute differences can be designed by introducing several variants of an architectural pattern [9,27] or tactic [21,22,14]. The challenge with varying patterns and tactics is that they may crosscut the architecture [10] and thus may be costly to implement, test, manage and derive. ...
Conference Paper
Within software product lines, customers may have different quality needs. To produce products with purposefully different quality attributes, several challenges must be addressed. First, one must be able to distinguish product quality attributes to the customers in a meaningful way. Second, one must create the desired quality attribute differences during product-line architecture design and derivation. To study how performance is varied purposefully in software product lines, we conducted a comparison and re-analysis of two industrial case studies in the telecommunication and mobile game domains. The results show that performance variants must be communicated to the customer in a way that links to customer value and her role. When performance or its adaptation are crucial for the customer, performance differences must be explicitly " designed in " with software or hardware means. Due to the emergent nature of performance, it is important to test performance and manage how other variability affects performance.
... Compared with the impact management realization , in which the performance differences emerge as an impact from the overall variability, a design tactic realization relies on a purposeful design mechanism using which performance can be altered. Varying architectural styles and patterns to vary quality attributes is also addressed elsewhere (Cavalcanti et al 2011; Hallsteinsen et al 2003). Two different kinds of design tactic realizations can be identified (seeTable 9). ...
Article
Full-text available
In the software product line research, product variants typically differ by their functionality and quality attributes are not purposefully varied. The goal is to study purposeful performance variability in software product lines, in particular, the motivation to vary performance, and the strategy for realizing performance variability in the product line architecture. The research method was a theory-building case study that was augmented with a systematic literature review. The case was a mobile network base station product line with capacity variability. The data collection, analysis and theorizing were conducted in several stages: the initial case study results were augmented with accounts from the literature. We constructed three theoretical models to explain and characterize performance variability in software product lines: the models aim to be generalizable beyond the single case. The results describe capacity variability in a base station product line. Thereafter, theoretical models of performance variability in software product lines in general are proposed. Performance variability is motivated by customer needs and characteristics, by trade-offs and by varying operating environment constraints. Performance variability can be realized by hardware or software means; moreover, the software can either realize performance differences in an emergent way through impacts from other variability or by utilizing purposeful varying design tactics. The results point out two differences compared with the prevailing literature. Firstly, when the customer needs and characteristics enable price differentiation, performance may be varied even with no trade-offs or production cost differences involved. Secondly, due to the dominance of feature modeling, the literature focuses on the impact management realization. However, performance variability can be realized through purposeful design tactics to downgrade the available software resources and by having more efficient hardware.
... In [26], considers variability in the modeling of architecture by the extension of UML models for architecture development. Reference [28] describes patterns in product line architecture design. Reference [29] proposes different architecture views to reduce the complexity of architecture by making the architecture manageable and tailoring the description of architectures to specific stakeholders. ...
Article
Full-text available
Software product line (SPL) engineering is an approach that develops and maintains families of products while taking advantage of their common aspects and predicted variabilities. Numerous SPL construction approaches are proposed. Different in nature, these approaches have nevertheless some common disadvantages. We have proceeded to an in-depth analysis of existing approaches for the construction of SPL within a comparison framework in order to identify their drawbacks. We suggest overcoming these drawbacks by an improvement of the tool support for these approaches and for their interactivity with their users. We propose an amelioration of this framework. We present also a flexible process to obtain a flexible SPL. This process deals with goal models to fulfill stakeholder goals, behavioral specifications, architectures and business processes. Our process is based on goal modeling, feature modeling and metamodels. It is possible to reconcile flexibility and efficiency during the SPL construction and product derivation.
... This is in contrast to the case study, which utilized dedicated mechanisms, both in hardware and software, that were mostly independent on other variants. There are some proposals to vary performance in a controlled way, including varying architectural patterns and transformations [21, 5], but they often imply architecture-wide variation, which creates additional complexity. To synthesize, at least two different kinds of software strategies for performance variability can be identified: downgrading and impact management. ...
Conference Paper
Full-text available
In the research on software product lines, product variants typically differ by their functionality, and quality attributes are more or less similar across products. To accumulate empirical evidence, this paper presents a descriptive case study of performance variability in a software product line of mobile network base stations. The goal is to study the motivation to vary performance, and the strategy for realizing performance variability in the product line architecture. The results highlight that the evolution of customer needs motivates performance variability; performance variability can be realized either with software or hardware variability strategy, with the latter often being prevailing; and the software strategy can be kept focused by downgrading performance.
Thesis
Full-text available
Software product line engineering is a plan-driven paradigm to produce varying software products. Software product lines typically differentiate the products by their functionality. However, customers may have different needs regarding performance, security, reliability, or other quality attributes. Building a software product line that is able to efficiently produce products with purposefully different quality attributes is a challenging task. The aim in this dissertation was to study why and how to vary quality attributes purposefully in a software product line. The study focused on two quality attributes, performance and security. We conducted a systematic literature review on quality attribute variability, conducted two case studies on performance variability, and constructed a design theory and artifacts addressing security variability. The results indicate that quality attributes can be purposefully varied to serve different customer needs, to conduct price differentiation, and to better balance product and design trade-offs. Additionally, quality attributes can be varied to adapt to varying operating environment constraints. The quality attribute differences can be communicated to the customers as observable product properties, as internal resources, or as the target operating environments. In particular, security can be distinguished as countermeasures. In the product line architecture, quality attribute differences can be designed through software or hardware design tactics or by relying on indirect variation. Just designing the differences may not be enough to ensure the product has given quality attributes, but the impact of other variability may need to be handled at the product-line or product level. Our contributions are as follows. Instead of focusing on how to represent quality attribute variability, we focused on understanding the phenomenon of how specific quality attributes vary. We identified several differences between performance and security variability, for example, that security is more difficult to distinguish to the customers but more straightforward to design and derive. We combined design and customer viewpoints: the reason to vary and the means to communicate to the customers should be analyzed both from the technical and non-technical viewpoints. Finally, we drew evidence-based generalizable knowledge from the industrial context.
Conference Paper
Product Line Architecture (PLA) design is a key activity for developing successful Software Product Line (SPL) projects. PLA design is a difficult task, mostly due to the complexity of the software systems that SPLs deal with, and their variabilities. Metamodels have been used to support the representation of assets that compose a PLA, SPL variability and the relationships among them. The goal of this study is to characterize the use of metamodeling on PLA design, aiming to identify the main characteristics of metamodels, the elements used for PLA and variability representation and trace the evolution of metamodels. We conducted a systematic literature review to identify the primary studies on the use of metamodels in PLA Design. Thirty-five studies that proposed metamodels to support PLA design were selected. The review main findings are: (i) it is difficult to identify the existence of research trends because the number of publication varies and metamodels lack standardization; (ii) several metamodels support feature representation; (iii) the majority of studies addressed variability representation with variation points in UML diagrams; and, (iv) five evolution lines that describe how metamodels evolved over the years were identified.
Article
Full-text available
Welcome to VaMoS'07 – the First International Workshop on Variability Modelling of Soft-ware-intensive Systems! The goal of VaMoS is to help the variability modelling community to more thoroughly under-stand how the different variability modelling approaches complement each other and how these approaches can be improved and integrated to better meet the needs of practitioners. To this end, VaMoS is planned to be a highly interactive event. Each session is organized in or-der to stimulate discussions among the participants (see page 4). The high number of submissions and the quality of the accepted papers show that variability modelling is an important field of research. We hope that VaMoS will stimulate work on new challenges in variability modelling and thus will help to shape the future of variability model-ling research. In total, we have received 38 papers for VaMoS, out of which 20 were accepted. Each paper was reviewed by at least three members of the programme committee. Based on the PC mem-bers' reviews, the final decision was taken by the organization committee during a two day meeting in Essen on the 1st and 2nd of December.
Conference Paper
Full-text available
This paper discusses the understanding of quality attributes and their application to the design of a software architecture. We present an approach to characterizing quality attributes and capturing architectural patterns that are used to achieve these attributes. For each pattern, it is important not only how the pattern achieves a quality attribute goal but also what impact the pattern has on other attributes. We embody this investigation of quality into the Attribute Driven Design Method for designing software architecture.
Conference Paper
This paper discusses the understanding of quality attributes and their application to the design of a software architecture. We present an approach to characterizing quality attributes and capturing architectural patterns that are used to achieve these attributes. For each pattern, it is important not only how the pattern achieves a quality attribute goal but also what impact the pattern has on other attributes. We embody this investigation of quality into the Attribute Driven Design Method for designing software architecture.
Conference Paper
Networked handheld devices are becoming an increasingly popular platform for accessing software based services, adding significantly to the diversity of requirements that distributed software products must cover. We argue this is a good case for the product family approach. These new challenges are mostly related to non domain specific issues, thus calling for common solutions. In this paper we present elements of a reference architecture addressing these challenges. The major feature of the proposed reference architecture is the ability to adapt applications, both in terms of functionality and the distribution of components between the client and server to the capabilities of the user device, the network connection and the user context and preferences.