This document discusses using composite feature models to support agile software product line evolution. It proposes separating a software product line into multiple feature models, one for each domain concept, and using a model to define relationships between the concepts and feature models. This approach aims to make the feature models easier to evolve independently while still representing dependencies. Refactoring scripts could then support automated evolution driven by a community in an agile manner. Validation on other use cases and automation of vocabulary alignment are mentioned as future work.
Using Composite Feature Models to Support Agile Software Product Line Evolution
1. Using Composite Feature
Models to Support Agile
Software Product Line Evolution
Simon Urli, Mireille Blay-Fornarino,
Philippe Collet, Sébastien Mosser
urli@i3s.unice.fr
I3S Laboratory, Université de Nice-Sophia Antipolis
Models and Evolution 2012 1
3. Plan
• Usecase: ease the creation of customized
information broadcasting system
Models and Evolution 2012 2
4. Plan
• Usecase: ease the creation of customized
information broadcasting system
• Why a SPL is adapted to our usecase?
Models and Evolution 2012 2
5. Plan
• Usecase: ease the creation of customized
information broadcasting system
• Why a SPL is adapted to our usecase?
• Why is it difficult to evolve this SPL?
Models and Evolution 2012 2
6. Plan
• Usecase: ease the creation of customized
information broadcasting system
• Why a SPL is adapted to our usecase?
• Why is it difficult to evolve this SPL?
• How a composition of feature models can help
us?
Models and Evolution 2012 2
7. Plan
• Usecase: ease the creation of customized
information broadcasting system
• Why a SPL is adapted to our usecase?
• Why is it difficult to evolve this SPL?
• How a composition of feature models can help
us?
• How to manage the evolution of the different
feature models independently?
Models and Evolution 2012 2
8. YourCast: to ease the creation of
information broadcasting systems
Models and Evolution 2012 3
9. YourCast: to ease the creation of
information broadcasting systems
Models and Evolution 2012 4
10. ... and the customization for different users.
Models and Evolution 2012 5
11. ... and the customization for different users.
Models and Evolution 2012 5
17. Requirements
• One must be able to choose among all the
avalaible elements: need of Variability
Models and Evolution 2012 7
18. Requirements
• One must be able to choose among all the
avalaible elements: need of Variability
• A community must be able to contribute to
the system: need of Evolutivity
Models and Evolution 2012 7
19. Requirements
• One must be able to choose among all the
avalaible elements: need of Variability
• A community must be able to contribute to
the system: need of Evolutivity
• One must be able to configure a valid
system at any time: need of Agility
Models and Evolution 2012 7
21. Software Product Line
• Mass production of reliables and
personalized softwares
Models and Evolution 2012 8
22. Software Product Line
• Mass production of reliables and
personalized softwares
• Generation of softwares from
configurations and assets
Models and Evolution 2012 8
23. Software Product Line
• Mass production of reliables and
personalized softwares
• Generation of softwares from
configurations and assets
• Configurations created by end-users from
variability models
Models and Evolution 2012 8
25. Feature Model
Key
Source Mandatory
feature
Optional
feature
InfoKind Criteria XOR
OR
Implies
PictureAlbum Announces Sort Filter Excludes
Picasa FlickR Announcement
Models and Evolution 2012 9
26. A first kernel...
Key
BroadcastingSystem
Mandatory
feature
Optional
feature
Layout Source Renderer XOR
OR
Implies
Classic InfoKind SupportInfo Excludes
Announces Announces
Announcement SimpleAnnounces
Models and Evolution 2012 10
27. ... which becomes difficult to evolve
BroadcastingSystem
AboutKey domain objects for now.
80
Mandatory
feature
About 280Optional features if we
000
feature
Layout Source Renderer
represent them in one FM
XOR
OR
Implies
Excludes
Classic IRSAM InfoKind SupportInfo
Calendar PictureAlbum Announces Announces PictureAlbum Calendar
HyperCal
AlbumMosaic CalendarByDay
FlickR Menu AgendaSession
Picasa
Announcement CalendarByMonth
SimpleAnnounces AlbumSlide
ICalReader
SimpleMenu
Models and Evolution 2012 11
29. Idea: composite feature models
• Use a composition of feature models to
keep things separated
Models and Evolution 2012 12
30. Idea: composite feature models
• Use a composition of feature models to
keep things separated
• Manage the evolution of each domain
objects separately
Models and Evolution 2012 12
31. Idea: composite feature models
• Use a composition of feature models to
keep things separated
• Manage the evolution of each domain
objects separately
• Manage the evolution of dependencies in
abstracting them
Models and Evolution 2012 12
42. From domain objects to FMs by merging
Source Source Source
TypeInfo TypeInfo TypeInfo
PictureAlbum PictureAlbum Tweet
FlickR Picasa Twitter
Models and Evolution 2012 19
43. From domain objects to FMs by merging
Source Source Source
TypeInfo TypeInfo TypeInfo
PictureAlbum PictureAlbum Tweet
FlickR Picasa Twitter
∪ FlickR
Source
TypeInfo
PictureAlbum
Picasa
Tweet
Twitter
Models and Evolution 2012 19
44. Evolution driven by a
community requires refactoring
Source Source Source
InfoKind Criteria InfoKind Criteria InfoKind Criteria
...
Announces Sort PictureAlbum Sort PictureAlbum Sort
Announcement Date FlickR DateTime Picasa ByDate
Models and Evolution 2012 20
45. Evolution driven by a community requires
refactoring
Source Source Source
InfoKind Criteria InfoKind Criteria InfoKind Criteria
...
Announces Sort PictureAlbum Sort PictureAlbum Sort
Announcement Date FlickR DateTime Picasa ByDate
Models and Evolution 2012 21
46. Evolution driven by a community requires
refactoring
Source Source Source
InfoKind Criteria InfoKind Criteria InfoKind Criteria
...
Announces Sort PictureAlbum Sort PictureAlbum Sort
Announcement Date FlickR DateTime Picasa ByDate
Models and Evolution 2012
=
21
47. Use refactoring scripts to
support agile evolution
// renaming
renameFeature sourcePicasa.DateTime as "Date"
rootname = strConcat rootname "."
foreach (t in s) do
fname = name t
newname = strConcat rootname fname
renameFeature t newname
end
// remove/insert
removeFeature sourcePicasa.Date
insert fmPartiel into fm1.fmroot with MAND
FAMILIAR: FeAture Model scrIpt Language for manIpulation and
Automatic Reasoning
Models and Evolution 2012 22
50. Conclusion
Need of tools to agile management of
feature models evolution
Separation in many feature models
23
51. Conclusion
Need of tools to agile management of
feature models evolution
Separation in many feature models
Definition of a model to link concepts
23
52. Conclusion
Need of tools to agile management of
feature models evolution
Separation in many feature models
Definition of a model to link concepts
Expression of dependencies in the model
23
53. Conclusion
Need of tools to agile management of
feature models evolution
Separation in many feature models
Definition of a model to link concepts
Expression of dependencies in the model
Creation of feature models in a bottom-up
approach using a merge operator
23
55. ... and perspectives!
‣ Validation of our approach on other
usecases:
Models and Evolution 2012 24
56. ... and perspectives!
‣ Validation of our approach on other
usecases:
‣ Internet-of-Things: Sens-App project
Models and Evolution 2012 24
57. ... and perspectives!
‣ Validation of our approach on other
usecases:
‣ Internet-of-Things: Sens-App project
‣ Scientific Workflows: refactoring of an
existing work
Models and Evolution 2012 24
58. ... and perspectives!
‣ Validation of our approach on other
usecases:
‣ Internet-of-Things: Sens-App project
‣ Scientific Workflows: refactoring of an
existing work
‣ Automatization of vocabulary alignment:
towards ontology
Models and Evolution 2012 24
Présenté tout de suite le pb. Complexité\n
Présenté tout de suite le pb. Complexité\n
Présenté tout de suite le pb. Complexité\n
Transition avec les features models : capture de la variabilité dans les modèles pour simplifier la manipulation ou définitions séparées de la variabilité. \n
Transition avec les features models : capture de la variabilité dans les modèles pour simplifier la manipulation ou définitions séparées de la variabilité. \n
Transition avec les features models : capture de la variabilité dans les modèles pour simplifier la manipulation ou définitions séparées de la variabilité. \n
\n
Kernel ? \n
Pb à la fois humain et calculatoire + communauté qui fait évoluer\n