La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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

2 Introduction Software Product Lines Variability Modelling

3 Grupo de Ingeniería del Software Aplicada SEVILLA Where do we come from?

4 University of Sevilla Computer Engineering School Applied Software Engineering Research Group Where do we come from? students (3 rd bigest) teaching staff 500 years

5 Our Team

6 …ISAs faces. Amador Durán Joaquín PeñaDavid Benavides Beatriz BernárdezOctavio Martín Manuel Resinas Pablo FernándezSergio SeguraCarlos MüllerJose María GarcíaPablo Trinidad Adela del Río Cristina Cabanillas Jesús GarcíaJose Angel GalindoAna Belén Sánchez Antonio Ruiz Jose Antonio Parejo Rafael PastorFabricia Ross Our Team PhD

7 ISA Activities ISAs DNA is collaborative: –Joint publications with more than 23 groups Funded by competitive public and private grants Collaboration in FP7 Research Projects: SOA4ALL, DIVA, OPTIMIS

8 ISA Competences (Research Areas) Requirements Engineering Service Oriented Computing Software Product Lines Business Process Management

9 Requirements Engineering Service Oriented Computing Software Product Lines Business Process Management ISA Competences (Cross-Areas) Quality Aware M eta heuristics Software Process Automated Testing

10 Transferable Results REquirement Management tool used to guide the requirement elicitation and help the creation of a formal requirement documentation. REM Framework for the automated analyses of feature models integrating some of the most commonly used logic representations and solvers proposed in the literature. FAMA Framework for automated service trading (Deployed as a JBI- compliant component, JdA). FAST Tool suite for the definition and analysis of Process Performance Indicators (PPIs). PPINOT Software ecosystem to analyse and manage business processes from the data and resource perspectives. CRISTAL Framework for Metaheuristic Optimizations. It has been also applied as the domain for test bed in FAST. FOM / MOSES Statistical Analysis tool suite that comprises of: a web portal, a set of web services, plugins for Excel 2007 and 2011 STATSevices Tool for explaining the inconsistencies of SLA documents specified with WS-Agreement. ADA Tool for supporting the MaCMAS models and transformations. MACMAS Spin-off And more at And more at

11 Introduction Software Product Lines Variability Modelling

12 Software product lines Why a new software production paradigm?

13 Software product lines $ Communicate Reproduce Produce

14 Software product lines Software Product Line Engineering A new software production paradigm $

15 Project Centric Software Engineering Product Centric Software Engineering Organizations are evolving Variability goes from hardware to software Variations points grows by thousands Software variability constantly increasing: from ad-hoc to systematic Assets Reuse is shifting Industrial Trends Software product lines

16 Mass production producing efficiently a large amount of standardized products No customization - one product

17 Software product lines Mass customization producing goods and services to meet individual customer's needs with near mass production efficiency [Tseng, M.M., Jiao, J. (2001)] Customization - A set of products

18 Software product lines Subroutines 1960s Modules 1970s Objects 1980s Components & frameworks 1990s SPL 2000s Mass Customization of Software Products producing software to meet individual customer's needs with near mass production efficiency

19 Documents the variability of SPL Enable managing the variability Common features Alarm clock Variable features Media Games Connectivity Calls Messaging Variability Model Software product lines

20 Traditional Approach (mass production) Product 1Product 2Product 3 Product 5Product 4Product 6

21 Software product lines Core Assets Product Lines Approach (mass customization) Product 1 Product 2 Product 3 Product 5Product 4Product 6

22 SPL: Activities Assets Product Requirements Application Engineering Products Domain Expertise Domain Engineering Variability model

23 Software product lines Management Application Engineering Domain Engineering Core assets Individual products Variability Modelling/A nalysis/Impl ementation

24 SPL metaphors

25 Is SPL incompatible with any software production methodology (e.g. agile approaches)?

26 SPL transition approaches ProactiveReactive

27 Introduction Software Product Lines Variability modelling

28 Expressing variability Inside the base model Outside the model Positive variability Negative variability How to model variability

29 Inside the model Taken from Modeling variability by UML use case diagrams by Von der Massen et al.Modeling variability by UML use case diagrams

30 Inside the model Taken from La Rosa et al. (2010) Configurable multi-perspective business process models. Information Systems

31 RequirementsDesignComponents Base models Outside the model Variability Model

32 Positive variability Assets Product

33 Negative variability Base model Product

34 Orthogonal variability modelling Feature modelling COVAMOF Decision modelling UML-based Ad-hoc solutions: tables, textual docs,... Techniques How to model variability

35 Feature models How to specify a particular product? FEATURE An important part of something A prominent or distinctive characteristic of a software system

36 Feature models How to specify an SPL? Feature Model: A hierarchically arranged set of features to represent all possible products of an SPL

37 Mandatory Optional Alternative (choose 1) Or 1+ Excludes Requires Feature Feature models

38 OVM

39 Variation Points

40 Variants

41 Relationships

42 Constraints Excludes Requires

43 CVL Taken from CVL Tutorial by Øystein Haugen et al.

44 Conclusions SPL is a new software production paradigm SPL affects all levels of abstraction Variability management is essential

45 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

46 Índice Variability implementation Templates Compilación Preprocesamiento Cargadores de clases Modularización

47 Variabilidad

48 El alcance de una SPL

49 Índice Implementación de la variabilidad Plantillas Compilación Preprocesamiento Cargadores de clases Modularización DSL

50 ¿Cómo implementar la variabilidad? Técnicas basadas en motores de plantillas ( template engines, frames ) Se pueden definir como motores de copy & paste Distintas alternativas

51 Proceso general interface Exp { void print(); } class Lit implements Exp { public int value; Lit(int v) { value = v; } public void print() { System.out.print(value); } } class Add implements Exp { public Exp left, right; Add(Exp l, Exp r) { left = l; right = r; } public void print() { left.print(); System.out.print('+'); right.print(); } Puntos de variación Template Processor Especificación template Template instanciada

52 XVCL XML-based Variant Configuration Language Stanislaw Jarzabek (Universidad de Singapur) Basado en tecnología de marcos ( frames ) Complemento a lenguaje de programación convencional

53 XVCL Funcionamiento: X-frames X-framework Puntos de variación Comandos

54 XVCL Tenemos el siguiente x-framework:

55 XVCL Ejecución – paso 1

56 XVCL Ejecución – paso 2

57 XVCL Ejecución – paso 3

58 XVCL Ejecución – paso 4

59 XVCL Ejecución – paso 5

60 Índice Implementación de la variabilidad Plantillas Compilación Preprocesamiento Cargadores de clases Modularización

61 Técnicas de compilación Algunas herramienta como make, ant, maven,... se pueden usar para implementar la variabilidad en tiempo de compilación make tool build script Parámetros del producto Implementación del producto

62 Técnicas de compilación Ventajas Son fáciles de implementar y útiles cuándo hay puntos simples de variación Desventajas Implementar todas las variantes de una SPL en un solo script puede resultar muy tedioso si no directamente imposible, especialmente cuándo haya muchas variantes

63 Índice Implementación de la variabilidad Plantillas Compilación Preprocesamiento Cargadores de clases Modularización

64 Preprocesamiento Directivas del compilador para incluir o no ciertos fragmentos de código Es la primera y más antigua técnica para soportar variabilidad Está soportada por lenguajes como C, pero también se pueden introducir en Java Ventajas Simple, viene por defecto en algunos lenguajes y compiladores. Desventajas Parecida a las desventajas de las plantillas, incluso más graves.

65 Índice Implementación de la variabilidad Plantillas Compilación Preprocesamiento Cargadores de clases Modularización

66 Cargadores de clases Classloader Forma parte del JRE estándar de Java Se cargan de manera dinámica clases en la JVM Se proporciona un cargador de clases por defecto Este cargador se puede refinar y/o extender. Driver dBDriver = (Driver) Class.forName(driverName).newInstance(); DriverManager.registerDriver(dBDriver);

67 Cargadores de clases Ventajas Son una manera flexible de implementar variabilidad en tiempo de ejecución Desventajas Implementar un cargador de clases no es una tarea trivial Solo funciona para programas escritos en lenguajes que soporten reflexión La legibilidad del código no es trivial

68 Índice Implementación de la variabilidad Plantillas Compilación Preprocesamiento Cargadores de clases Modularización

69 Técnicas de modularización Hay muchos lenguajes de programación que se proponen para solventar los problemas de los lenguajes OO El punto clave es la granularidad Se parte de la constatanción de que una clase es muy pequeña para construir un sistema si a este sistema hay que añadirle incrementos de funcionalidad. aspects open classes mixins open modules traits classboxes composition filters units hyperspaces object teams classpects features changes

70 Bibliografía

71

72 How to automatically analyse variability models How to model variability

73 Analysis process Analysis result Operations Variability Model How to automatically analyse variability models Computer-aided, extraction of useful information from feature models [info]

74 Analysis process TranslationSolver Logic Analysis result Model Operations

75 Mapping to Propositional Logic

76 14 How many products? Automated analysis of feature models: Computer-aided extraction of information from FMs

77 Yes, feature Basic is dead Any error? Automated analysis of feature models: Computer-aided extraction of information from FMs

78 Automated analysis of feature models: Computer-aided extraction of information from FMs THE BASE FOR BULDING CONFIGURATORS

79 Example of a configurator

80 Automated analysis of SPL: Computer-aided, extraction of useful information from SPL models 30 analysis operations foundCSP, SAT, BDD, DL, ad-hocPerformance testingFormal methods

81 Automated Analysis of Feature Models with attributes David Benavides, Pablo Trinidad Martín-Arroyo, Antonio Ruiz Cortés: Automated Reasoning on Feature Models. CAiSE 2005: Pablo Trinidad Martín-ArroyoAntonio Ruiz CortésCAiSE 2005 F Roos-Frantz, D Benavides, A Ruiz-Cortés, A Heuer, K Lauenroth Quality-aware analysis in product line engineering with the orthogonal variability model. Software Quality Journal Quality-aware analysis in product line engineering with the orthogonal variability model

82 No Is valid? Root A B R1 R5 R2 EF R4 CD R3 R6 R7 Explanations on the Automated analysis of SPL Pablo Trinidads PhD Deductive reasoning Why not? R5R5 R7R7 Explanations Abductive reasoning Pablo Trinidad, Antonio Ruiz Cortés: Abductive Reasoning and Automated Analysis of Feature Models: How are they connected?.VaMoS 2009: Antonio Ruiz CortésVaMoS 2009

83 Explanations on the Automated analysis of SPL Deductive Reasoning Deduction Conclusions Is valid? No

84 Explanations on the Automated analysis of SPL Abduction + Facts Observation Hypotheses Explanation Abductive Reasoning

85 Ch 3.1 with feature models

86 Ch 3.1 with configurations

87 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google