=Paper=
{{Paper
|id=Vol-1294/paper11
|storemode=property
|title=Component-Based Specification of Software Product Line Architecture
|pdfUrl=https://ceur-ws.org/Vol-1294/paper11.pdf
|volume=Vol-1294
|dblpUrl=https://dblp.org/rec/conf/icaase/GuendouzB14
}}
==Component-Based Specification of Software Product Line Architecture==
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
Component-Based Specification of
Software Product Line Architecture
Amina Guendouz Djamal Bennouar
CS Department, Saad Dahlab University CS Department, Akli Mohand OulHadj University
Blida, Algeria Bouira Algeria
guendouz.amina@yahoo.fr dbennouar@gmail.com
Abstract – Software product lines have known an increasing use over the last years, taking advantage
from the important benefits they may bring to software development in terms of time, cost and effort.
However, product line approaches remain immature owing to the fact that they still base on traditional
design concepts of software engineering which are not adequate to the basic principles of software
product lines engineering. Considering that software product lines are inspired by industry where
production activity is based on assembling certified components, and in light of the recent progress in
Component-based development field, we believe that integrating these two approaches will bring
significant benefits to software development. This paper describes a new approach for Component-
Based Product Lines engineering focusing on the Component-Based specification of the Product Line
architecture. The aim is to overcome the shortcomings of traditional product lines by unifying the
strengths of two complementary approaches, and to facilitate the derivation process since applications
will be produced by the simple composition of existing components.
Keywords – Software Product Lines, Component-Based Development, Reuse, Components, Variability,
IASA.
Software Product Line approach intends to
1. INTRODUCTION adapt to the software development, the
principles that we find in the automotive,
Software Product Lines are emerging as a aeronautics and electronics industries.
viable and important development paradigm Production in these industries is organized into
allowing companies to realize order-of- ranges with similar parts and offering a
magnitude improvements in time to market, number of options. For example, in automotive
cost, productivity, quality, and other business industry, various car models come out the
drivers. A software product line (SPL) is “A set same assembling chains using the same
of software-intensive systems sharing a chassis, the same engines and the same test
common, managed set of features1 that satisfy plans. The aim is to improve productivity,
the specific needs of a particular market decrease time to market, and reduce
segment or mission and that are developed production, maintenance and test costs. The
from a common set of core assets 2 in a idea is to transpose the principles of
prescribed way” [1]. manufacturing of these industries in software
development, to benefit from the before-
1
mentioned advantages.
A feature is an end-user visible characteristic of a
system [4]. Although, the principles of software product
2
lines are inspired by industry where production
A reusable artifact or resource that is used in the activity is based on assembling certified
production of more than one product in a software components, most of software product lines
product line. A core asset may be an architecture, a today are based on traditional design concepts
software component, a domain model, a
of software engineering such as modular
requirements statement or specification, a
document, a plan, a test case, a process
design and object-oriented design. These
description, or any other useful element of a
design concepts are not able to support the
software production process [1]. assembly of certified components which
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 100
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
makes the derivation and maintenance while maintaining diversity between products.
processes difficult to perform. Furthermore, This is ensured by involving “Variability
both of software product lines and component management” activity along all the software
based development promote reuse; putting development process.
them together will bring significant benefits to
Introducing a new CBPL approach must take
software development.
into account these two aspects. It must be
SPL improve reuse while maintain diversity able to reconcile between the two
between products. In most cases, software development processes (component-based
components intended for reuse must be process and SPL process) on the one hand,
adapted to meet specific requirements of and enable the effective management of
customers. If flexibility is not considered since variability on the other hand. In next
the early development process phases, subsections we present how our approach
developers will meet lot of difficulties in considers these two aspects.
adaptation step, which lead them to leave
these components even they will have to 2.1. COMPONENT BASED PRODUCT LINE
redevelop components from scratch. SPL ENGINEERING
simplify adaptation phase by involving Software product line engineering relies on a
“Variability management” activity along all the fundamental distinction of development for
software development process.
reuse and development with reuse [3], [4].
However, traditional component-based Development for reuse or “Domain
approaches do not support variability engineering” consists in developing core
management. It becomes necessary to assets through the domain analysis, domain
establish new approaches or enhance existing design and domain implementation processes.
component-based approaches in order to Development with reuse or Application
allow an effective variability management. In engineering consists in developing the final
this paper, we propose an approach that products, using the core assets and the
integrates SPL engineering and component- specific requirements expressed by the
based engineering, aiming to unify the power customers.
of these two approaches. Firstly, we will
The development process of CBPL we
present the development process of propose (figure 1) is an integration of the
component-based SPL (CBPL). Then, we will development process of SPLs [4] and the
show the extension of a component-based
component-based development process [5].
approach (IASA [11]) in order to allow the
modeling of variability in CBPL. The proposed Unlike to the traditional SPL engineering, the
approach is, afterward, supported by a case base of core assets obtained from CBPL
study. engineering relies mainly on software
architecture (reference architecture,
The remainder of this paper is organized as
refinement of components and reusable
follows: Section 2 introduces the proposed
components...). While, its difference compared
approach. Section 3 shows the specification of to the traditional Component-based
a CBPL for e-Meeting applications. Section 4
development is the introduction of variability
reports the related work and comments on it, management activity. Since variability is
while Section 5 summarizes the paper and
handled from the early stages of development,
outlines future work. reusable components obtained from domain
engineering process do not have to be
2. COMPONENT BASED PRODUCT LINES adapted to the specific needs of final
applications, which make the step of
The crucial aim of introducing product line application assembly easier and faster.
approach in software engineering is to improve
reuse. SPL differs from traditional reusing Domain engineering consists of three activities
approaches in two ways: the first one is that that are Domain analysis, Product-line
SPL approach systematizes reuse throughout architecture design and Components
all the software development process: from implementation (Figure 1). The purpose of this
requirements engineering to the final code and sub-process is to produce the reusable core
test plans, in contrast of traditional software assets and to provide the effective means that
reuse approaches which exploit reuse only at help in using these core assets to build new
design and coding phases [2]. The SPL products within the SPL. The main outputs of
engineering process is thus decomposed into this process are: reference requirements,
two sub-processes (section 2.1): development reference architecture and reusable
for reuse and development with reuse [3], [4]. components.
The second one is that, SPL improve reuse
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 101
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
Figure 1: Component-Based Product Line engineering.
Application engineering consists in developing main objectives are: to make the variability
the final products, using the core assets and explicit in the early stages of the project, and
the specific requirements expressed by to reduce the complexity related to variability
customers. This sub-process consists of three management throughout the development
steps: Application analysis, Application process [2],[10].
architecture design for the specific application
and finally Application assembling. Each step For the modeling of variability in the
is facilitated by the reuse of the outputs from architecture view, we have chosen to extend
the previous process. The result of application the component-based model IASA (Integrated
engineering is an application ready to be used. Approach to Software Architecture) [11]. IASA
was used to realize complex e-Government
2.2. VARIABILITY MODELING IN CBPLs software system, and was proved as a clear
and easy specification language to design at a
Variability management is a key activity that high level of abstraction using Aspect Oriented
usually affects the degree to which a SPL is approach [12] [13].
successful [6]. Variability refers to the ability of
an artefact to be configured, customized, 2.2.1. Architecture design with IASA
extended, or changed for use in a specific
The design according to IASA approach uses
context [7], [8], [9]. This variability must be
a component-oriented process which proceeds
identified, represented, exploited,
implemented, evolved, etc. – in one word by successive refinement. An IASA
component is seen from the outside as a
managed – throughout software product line
engineering [3]. black-box that communicates with the external
world through Ports [14], which define the
After being identified, variability must be services it can provide or require. The internal
represented. The second step in managing view of a primitive component is inaccessible,
variability is to model it in all software while the structure of a composite component
artefacts. Modeling variability is a technique is well defined, it consists of three parts:
used firstly to document the variability and Operative Part, Aspect Part, and Control Part.
secondly to reason about the variability. Its Figure 2 sets out the basic notations of IASA.
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 102
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
Figure 2: Basic notations of IASA.
2.2.2. Variability modeling with IASA
Since IASA have not been developed to
capture all types of variability explicitly, we
propose to extend it in order to meet the needs
of SPL engineering. We define three types of
variability in architecture: Mandatory, Optional
and choice.
Mandatory and Optional elements: Each
element in the architecture can be mandatory
or optional according to the context in which it
will be used. In order to represent explicitly Figure 3: Component choice.
these types of variation, Components and
Connectors are annotated by: «Mdr» and The number of components that can be
«Opt» which means respectively: Mandatory supported by the connector is expressed by a
and Optional. cardinality [n..m], such as:
Considering that interfaces in the same n=m if the type of the relation is AND;
component can be optional if they are not m>=n if the type of the relation is OR;
needed in some contexts, variability in n=m=1 if the type of the relation is XOR or
interfaces is represented as follow: Alternative.
Mandatory provided interface
Mandatory required interface
Optional provided interface
Optional required interface
Choices: We distinguish between two types of
choices:
1. Component choice: When there are a
variety of implementations for the same
component, the variable component is
annotated by: «Choice» and related
through the same interface to all its variants
as shown in figure 3.
2. Connector choice: When a component is
related to a variable set of components, the
relation between these components
becomes a connector annotated by: Figure 4: Connector choice.
«Choice» and related with different
interfaces to each variant as shown in
figure 4.
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 103
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
Figure 5: Business feature diagram for e-Meeting product line.
between the SPL members. To document the
3. CASE STUDY: E-MEETING CBPL common and variable features of our product
line, we have used the Feature Model. The
In this section we apply our approach in a Feature Model is the first language dedicated
specific domain which is: E-Meeting to the modeling of variability; it was first
applications. E-meeting applications exhibit an introduced in the Feature-Oriented Domain
excellent solution to overcome the problems Analysis (FODA) method [15]. It has known a
that can occur when organizing a face to face broad use in the field of SPLE, since it is a
meeting namely: distance, costs and simple and easy to use language in
availability. Using online meeting technologies comparison with other more complex modeling
allow us to simplify the meeting organization languages such as: UML and BPMN. The
processes, save time and displacement feature model is generally described by a
expenses. hierarchy of the set of features of a system or
The concept of meeting can be found in what is called feature tree [4]. Figures 5 and 6
various fields. For instance: meetings for year- show a part of the feature model of our CBPL.
end deliberation, meetings of a Scientific For the notation, we must note that all of AND,
OR, XOR variability types are expressed
Council, meetings of elected members of an
APC3, APW 4 or APN5, meetings of business through cardinality (as shown in section 2) to
leader, etc. E-meeting applications designed avoid cluttering the diagram with more
for these various types of meetings share notations, for us cardinality is sufficient to
many similarities and are distinguished by represent all kinds of choices.
some particular aspects. It becomes very The constructed feature model is divided into
important to take advantage of similarities three diagrams according to the type of
between these applications to develop a family features it includes: Business features,
of e-meeting applications. This family of technical features, and implementation
product (SPL) once implemented is able to features. Features in the first diagram called
produce for each meeting type, the appropriate Business features (Figure 5), represent the
software in a very short time. In this case study Business functionalities provided by the
we will focus on the component-based system. This diagram shows that the main
specification of the e-Meeting SPL. Next sub- features of an e-Meeting application are
sections describe the artefacts obtained from “Create meeting” and “Manage meeting”.
Domain analysis and Product-line architecture
design steps. Each e-Meeting application must allow at least
the planning of a meeting and the generation
3.1. Domain analysis of reports. However, in some cases a prior
step can be needed before performing a
The goal of domain analysis is to extract and meeting which is: the discussion of the
document the similarities and variations meeting item, modeled by “Request for
meeting” in the Feature diagram.
3
An APC is the elected assembly which governs a “Management of recurring items” feature can
commune (baladiyah). be included if the customer is interested to the
4
An APW is the elected assembly which governs a
history of previously treated items, there
wilaya (province).
5
An APN is the national elected assembly.
results, statistics about them and so on.
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 104
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
Figure 6: Technical feature diagram for e-Meeting product line.
“Configuring” a Meeting is an optional feature “Meeting tools” might include “Attendance
that consist in preparing the application by management”, “Participation management”,
fixing the meeting type (video, audio, chat...), “Schedule manage”… the application can
in addition to the needed tools to run a eventually be extended by new tools if
meeting according to the user’s requirements. required.
Figure 7: Reference architecture of e-Meeting product line.
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 105
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
The second diagram Figure 6 represents the and audio files). Those features could be
technical features; it means features that do found in any e-Meeting application, but not all
not reflect the business aspect of e-Meeting of them are mandatory.
applications. Technical features encompass
features related to the application The third diagram represents the
implementation features of the system it
(configuration, UI management), features
means implementation details at lower levels.
related to users (Accounts management,
Roles management, Authentication), and We do not show this diagram in the paper
owing to space reasons.
features related to files (including: text, video
Figure 8: Variability model for “Meeting_Configuration” component.
3.2. Product-line architecture design assembly, configuration or might be delayed
until runtime, this leads developers to have
The purpose of Product-line architecture more flexible applications and thus better
design is to establish the generic software customer satisfaction.
architecture of the product line. Variability
identified during domain analysis must be
explicitly specified in the product-line 4. RELATED WORK
architecture. To design the reference
The most known approaches that integrate
architecture of our composite SPL we have Software Product Line engineering and
used the notation presented in section 2. The Component-based engineering are: Kobra [17]
reference architecture of our e-Meeting
and Koala [18] [19]. The basic goal of Kobra is
product line is reported in figure 7. The
to provide a systematic approach to the
mandatory components that must be included
development of component-based application
in each member of the SPL are annotated by
frameworks. Nevertheless, Kobra approach
«Mdr»(Meeting_Management,Meeting_Planni
interest to the internal structure of components
ng, Roles_Management…), while those which
for which it uses UML modeling. Therefore,
are optional are annotated by «Opt»
this approach cannot be compared to ours.
(Items_Management,
Meeting_Configuration…). Koala is a component model based on an
architectural description language used to
Figure 8 shows the refinement of the
build a large diversity of products from a
“Meeting_Configuration_Cmp”. This latter can
repository of components. Its aim is to manage
be connected to (can use) no or many tools
the growing complexity and diversity of
components(Attendance_Cmp,Participation_C
software in consumer electronics products.
mp, Schedule_Cmp, FilesManage_Cmp). The
Various concepts are used in the koala
choice connector “Meeting_tools_Cnt” allows
components models, like interfaces,
us to represent this type of variability. The
connectors, subcomponents and compound
binding time 6 of this variability can be: design,
6
Is an attribute of variation points and/or variability decisions to later stages in the software
technique used to delay the architectural design development process [16].
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 106
ICAASE'2014 Dealing with Deviations on Software Process Enactment : Comparison Framework
components. Koala allows the modeling of [4] P. Klaus, B. Günter and F. van der Linden,
variability related to interfaces (optional Software Product Line Engineering:
interfaces) and connections between Foundations, Principles, and Techniques,
interfaces (switch). However, the model Springer, 2005.
proposed by Koala does not cover all types of [5] S. Roger Pressman, “Software engineering:
variability that can be found and must be a practitioner’s approach”, Edition: 5,
explicitly defined in a SPL, such as: mandatory McGraw-Hill Higher Education, June 2000.
or optional components, AND, OR, XOR [6] L. Chen, M.A. Babar, A. Nour, “Variability
Management in Software Product Lines: A
relations… Furthermore, Koala consider
Systematic Review,” SPLC, San Francisco,
variability binding only at configuration time, California, 2009.
while SPL engineering allows several binding [7] B. Felix and C.C. Paul, “Variability in
times, according to the context, ranging from Software Product Lines”, technical report
design to configuration and runtime [16]. CMU/SEI, 2005.
[8] G. Jilles van, B. Jan, S. Mikael , “On the
Notion of Variability in Software Product
5. CONCLUSION Lines”, WICSA, 2001.
The work presented in this paper aims to [9] S. Mikael, G. Jilles van, and B. Jan, “A
reach a high level of reuse that can be taxonomy of variability realization
obtained through the integration of two techniques”, Software Practice and
approaches: Software product lines and Experience, 2005.
[10] M. Andreas, P. Klaus, H. Patrick, S. Pierre-
Component-based development. Each of
Yves, S. Germain, “Disambiguating the
these approaches promotes reuse at different Documentation of Variability in Software
granularity levels. Component-based Product Lines: A Separation of Concerns,
development supplies technologies for reuse Formalization and Automated Analysis”,
in the small, while Software product line 15th IEEE International In Requirements
approach intends reuse in the large. Putting Engineering Conference, 2007.
them together allow us to reach large scale [11] B. Djamal, “The Integrated Approach to
reuse and flexibility at the same time. Software Architecture”, Ph.D. Thesis, Ecole
Moreover, Component-based development Supérieure d’Informatique, Oued Smar,
can overcome the lack of maturity in SPL Algiers (in French), 2009.
engineering by providing efficient technologies [12] B. Djamal, S. Abdelfettah, “The Design of
of development. an eGovernment Application Using an
Aspect Oriented Software Architecture
Since our approach needs more space to be Approach”, AOSA conference, 2009.
well define, this paper presented the outlines [13] B. Djamal, H. Abderrezak, S. Abdelfettah,
of the proposed approach, mainly: the “The Design of A Complex Software System
development process and the Component- Using A Software Architecture Approach”,
based model. The paper presents also a case ACIT, 2008.
study for an ambitious field (e-Meeting) aiming [14] B. Djamal, T. Khammaci, H. Abderrezak, “A
to validate the proposed approach. The new approach for component’s port
designed e-Meeting reference architecture modeling in software architecture”, In:
represents a framework for all foreseeable e- Journal of System and Software, Elsevier,
Meeting applications and can be extended to Volume 83 Issue 8, August, 2010.
cover specific requirements if needed. Since, [15] K. Kang, S. Cohen, J. Hess, W. Nowak, and
software can be quickly derived from a CBPL S. Peterson, “Feature- Oriented Domain
by the simple composition of existing Analysis (FODA) Feasibility Study,”
components; the activity of deriving new Technical Report CMU/SEI-90-TR-21, 1990.
members in a CBPL can be greatly automated. [16] C. Rafael, B. Jan, “Binding Time and
Evolution, Systems and Software Variability
The automation of applications derivation step Management”, pp 57-73, Springer, 2013.
is an important perspective of our work. [17] A. Colin, B. Joachim, M. Dirk, “Component-
Based Product Line Development: The
KobrA Approach”, software Product Line
6. REFERENCES Conference, 2000.
[1] M. N. Linda, C. C. Paul, “A Framework for [18] O. Rob van, “The Koala component model
Software Product Line Practice”, Version for consumer electronics software”, Philips
5.0 (online), http://www.sei.cmu.edu/. Research Eindhoven, IEEE Computer
[2] C. Jean, “Les lignes de produits logiciels 33(3), MAR 2000.
Réutilisation et variabilité ”, Publication [19] A. Timo, S. Timo, and M. Tomi, “A Koala-
périodique de Smals, Juin 2009. Based Approach for Modelling and
[3] F. van der Linden, S. Klaus, R. Eelco, Deploying Configurable Software Product
“Software Product Lines in Action: The Best Families”, PFE-5, 2004.
Industrial Practice in Product Line
Engineering”, Springer, 2007.
International Conference on Advanced Aspects of Software Engineering
ICAASE, November, 2-4, 2014, Constantine, Algeria. 107