870 likes | 1.05k Views
La personalización de productos como futuro en la industria del software. Dr. David Benavides Departamento de Lenguajes y Sistemas Informáticos ETSI Informática Universidad de Sevilla benavides@us.es. Where do we come from ? . Grupo de Ingeniería del Software Aplicada. SEVILLA.
E N D
La personalización de productoscomofuturo en la industria del software Dr. David Benavides Departamento de Lenguajes y Sistemas Informáticos ETSI Informática Universidad de Sevilla benavides@us.es
Where do we come from? Grupo de Ingeniería del Software Aplicada SEVILLA
Where do we come from? University of Sevilla Computer Engineering School • 65.000 students (3rd bigest) • 4.000 teaching staff • 500 years Applied Software Engineering Research Group www.isa.us.es
…ISA’s faces. Our Team PhD Joaquín Peña David Benavides Manuel Resinas Beatriz Bernárdez Octavio Martín Amador Durán Pablo Fernández Sergio Segura Carlos Müller Jose María García Pablo Trinidad Adela del Río Antonio Ruiz Cristina Cabanillas Jose Antonio Parejo Rafael Pastor Fabricia Ross Jesús García Jose Angel Galindo Ana Belén Sánchez
ISA’s DNA is collaborative: Joint publications with more than 23 groups Funded by competitive public and private grants Collaboration in FP7 Research Projects: SOA4ALL, DIVA, SLA@SOI, OPTIMIS ISA Activities
Transferable Results Spin-off And more at www.isa.us.es/tools
Software product lines Why a new software production paradigm?
Software product lines Communicate Reproduce Produce
Software product lines Software Product Line Engineering A new software production paradigm
Software product lines Industrial Trends
Software product lines No customization - one product Mass production producing efficiently a large amount of standardized products
Software product lines Customization - A set of products Mass customization “producing goods and services to meet individual customer's needs with near mass production efficiency“ [Tseng, M.M., Jiao, J. (2001)]
Software product lines Mass Customization of Software Products “producing software to meet individual customer's needs with near mass production efficiency“
Software product lines Common features Variable features Variability Model Media Alarm clock Games Calls Connectivity Messaging • Documents the variability of SPL • Enable managing the • variability
Software product lines Traditional Approach (mass production) Product 1 Product 2 Product 3 Product 4 Product 5 Product 6
Software product lines Product Lines Approach (mass customization) Product 2 Product 1 Product 3 Core Assets Product 4 Product 5 Product 6
Variability model SPL: Activities Product Requirements Application Engineering Products Assets Domain Engineering Domain Expertise
Software product lines VariabilityModelling/Analysis/Implementation Individual products Core assets
Is SPL incompatible with any software production methodology (e.g. agile approaches)?
Inside the model Taken from Modeling variability by UML use case diagrams by Von derMassen et al.
Inside the model Taken from La Rosa et al. (2010) Configurable multi-perspective business process models. Information Systems
Variability Model • Outside the model Requirements Design Components Base models
Positive variability Product Assets
Negative variability Product Base model
How to model variability Decision modelling Feature modelling Orthogonal variability modelling Techniques Ad-hoc solutions: tables, textual docs, ... COVAMOF UML-based
Feature models How to specify a particular product? FEATURE “An important part of something” “A prominent or distinctive characteristic of a software system”
Feature models How to specify an SPL? • “Feature Model: A hierarchically arranged set of features to represent all possible products of an SPL”
Feature models Feature Mandatory Optional Alternative (choose 1) Or 1+ Excludes Requires
Constraints Requires Excludes
CVL Taken from CVL Tutorial by ØysteinHaugen et al.
La personalización de productoscomofuturo en la industria del software Dr. David Benavides Departamento de Lenguajes y Sistemas Informáticos ETSI Informática Universidad de Sevilla benavides@us.es
¿Cómo implementar la variabilidad? • Técnicas basadas en motores de plantillas (templateengines, frames) • Se pueden definir como motores de “copy & paste” • Distintas alternativas