The multi-threads and multi-paths are managed by
controllers. We identify three choice controllers
MT1, MT2 and CC1 corresponding respectively to
the multi-threads {C12, C5}, {C4, C3} and the
multi-path embodying the two alternatives paths
{C2, C3, C4} and {C12, C5}.
A sequence controller, identified in Figure 4 by MP1
is added to manage the multi-path composed of {C2,
C3, C4}. Once the PAC architecture is defined, the
interfaces of the controllers and the executors are
specified. The PAC hierarchy is then implemented
by a set of software components.
4 CONCLUSION
In our work, we use the requirements analysis as an
input to capture requirements variability and to
derive a component-based solution.
In our approach, we propose to capture the
variability at the requirements level using the multi-
thread and the multi-path topologies. The former
shows the different manners to satisfy the same goal
whereas the later captures the alternative paths
leading to the satisfaction of a goal.
The variability identified at the requirements level is
operationalised by a direct coupling between a
requirement (a section of a map) and a functionality
to achieve it.
Our approach is also driven by the component
paradigm, we introduce the concept of Customisable
Component that is a conceptual concept to describe
the variability captured at the requirements level, at
a conceptual level and to derive software component
based solutions.
The originality of our work consists of dealing
with variability from a requirements perspective.
However, our approach is a work in progress.
In the literature, there are few works addressing the
variability from a requirements perspective. We
distinguish the proposal of (Hui et al., 2003) where
the variability is captured through goal analysis
using the AND/OR decompositions. The alternative
goals (expressed by the OR links) help reasoning
about the alternative functionality to achieve a
parent goal. However, the exploration of the
alternative combinations of functionality across the
entire AND/OR goal graph is more difficult.
We find that maps, as means for describing
alternative complex assembly of functionality, can
help in this exploration. The multi-thread topology
of maps corresponds to the OR link in a goal graph.
In addition, the multi-path topology helps reasoning
about the alternative assemblies of functionality.
Our future work consists in (a) detailing the rules
to map a customisable component into a set of
software components and (b) providing the approach
to build systems using the customisable components.
REFERENCES
Bachmann et al., 2001. Managing variability in software
architecture. ACM Press, NY, USA, 2001.
Bosch et al., 2001. Variability issues in Software Product
Lines. 4th International Workshop on Product Family
Engineering (PEE-4), Bilbao, Spain, 2001.
Buschmann et al., 1996. A system of patterns. Pattern-
oriented software architecture. Wiley, 1996.
Halmans et al., 2003. Communicating the variability of a
software product family to customers. Software and
System Modeling, Springer-Verlag 2003.
Hui et al., 2003. Requirements Analysis for Customizable
software : A Goal-Skills-Preferences Framework. 11
th
International Requirement Engineering Conference,
2003.
Rolland C., 2000. Bridging the gap between
Organizational needs and ERP functionality.
Requirements Engineering journal, 2000.
Svahnberg et al., 2001. On the notion of variability in
Software Product Lines. Proceedings of the Working
IEEE/IFIP Conference on Software architecture, 2001.
Tawbi M.,2001. Crews L’Ecritoire : un guidage outillé du
processus d’Igenierie des besoins, PHD thesis, Paris1,
2001.
Van Gurp J., 2000. Variability in Software Systems, the
key to Software Reuse. Licentiate Thesis, University
of Groningen, Sweden, 2000.
CAPTURING REQUIREMENTS VARIABILITY INTO COMPONENTS: A goal driven approach
443