líneas de producto de software modelo de variabilidad ...isis4715/dokuwiki/... · elemento...

31
Líneas de Producto de Software – Modelo de Variabilidad Ortogonal Rubby Casallas Departamento de Sistemas y Computación Universidad de los Andes, Bogotá

Upload: others

Post on 13-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Líneas de Producto de Software –

Modelo de Variabilidad

Ortogonal

Rubby Casallas

Departamento de Sistemas y Computación

Universidad de los Andes, Bogotá

Page 2: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Referencias

[Pohl 2010] Capítulo 4.

Pohl K., Böckle G., van der Linden F., Software Product Line Engineering -

Fundamentals, Principles, and Techniques. Berlin. Springer, 2010

2

Page 3: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Agenda

Manejo de Variabilidad

Definiciones:

Puntos de variación y variantes

3

Page 4: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Manejo de Variabilidad

Se define en los procesos de ingeniería de

dominio y se utiliza en los procesos de

ingeniería de la aplicación.

Actividades para:

Definir variabilidad

Administrar artefactos variables

Resolver variabilidad

Recolectar, almacenar y administrar información

de rastreo que de soporte a las actividades

anteriores

4

Page 5: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Subject/Object

Tema de variación (variability subject):

Elemento variable o una propiedad variable de un

elemento en el mundo real

Objeto de variación (variability object):

Una instancia o valor de lo que varia

5

Page 6: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ejemplo 1: Subject/Object

Subject: Mecanismo de Identificación en las

casas inteligentes.

Por qué varía:

Estándares de seguridad

Necesidades/preferencias del propietario

Objects:

Identificación por código

Identificación por huella

6

Page 7: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ejemplo 1 (cont.): Subject/Object

Cambiar el mecanismo de identificación de

las puertas impacta otros componentes como

la base de datos, la interfaz usuario.

7

Page 8: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Puntos de variación y variantes

Punto de variación: lo que varía en un

contexto dado

Variante: un posible valor para un punto de

variación

Ejemplo:

Color: azul, verde

En el contexto de un carro:

Color del carro es un punto de variación

Carro azul, carro verde son variantes

8

Page 9: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ejemplo 2: Subject/Object

Subject: Formas de comunicación entre los

sistemas

Por qué varía:

Estándares de redes

Precios, disponibilidad, preferencias

Objects:

Red LAN, wireless, Bluetooth

9

Page 10: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ejemplo 2 (cont.):

Punto de variación: Tipo de red de la casa

inteligente

Variantes:

Red LAN

Wireless

Ambas variantes son obligatorias, puede haber en

el futuro otras variantes

10

Page 11: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Commonality (Puntos comunes)

Denota características que están presentes

en todas las aplicaciones en exactamente la

misma forma:

Ejemplo: variabilidad en la interfaz usuario:

Los clientes del sistema de casas inteligentes

pueden decidir el idioma en el que quieren la

interfaz del usuario antes de ser instalado

Por un precio adicional se puede ofrecer un

sistema multi-lengua para que el usuario cambie

de idioma cuando así lo quiera.

11

Page 12: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Commonality (cont.) (Puntos

comunes) Ejemplo: commonality en la interfaz usuario:

Siempre se ofrece un sistema multi-lengua para

que el usuario cambie de idioma cuando así lo

quiera.

12

Page 13: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Proceso base de identificación de

variabilidad 1. Identificar los elementos en el mundo real

que varían (subject)

2. Definir los puntos de variación dentro del

contexto de la línea

3. Definir las variantes

13

Page 14: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Variabilidad externa e interna

Los constituyentes (stakeholders) perciben

de manera diferente lo que es variable

Variabilidad externa:

Es la variabilidad de los artefactos del dominio

visible para los clientes.

Ellos pueden escoger las variantes que necesitan

Variabilidad interna:

Es la variabilidad de los artefactos del dominio

escondida para los clientes

Responsabilidad de los desarrolladores de la

línea 14

Page 15: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Variabilidad externa e interna

Variabilidad externa:

El cliente de una aplicación de casa inteligente puede

escoger entre tres variantes del sistema de

identificación de la puerta:

Teclado con código, tarjeta magnética, autenticación de

huella

Variabilidad interna:

El protocolo de comunicación ofrece dos modos

distintos:

optimizado para anchos de banda grandes u optimizado para

corrección de errores.

El instalador de la aplicación decide con base en la calidad de

la comunicación 15

Page 16: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Pirámide de variabilidad

16

Page 17: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Modelo de variabilidad ortogonal

Variabilidad es ortogonal a los artefactos del

dominio

Modelo de puntos de variación y variantes

Modelos de artefactos (requerimientos,

arquitectura, componentes, pruebas)

Establecer dependencias entre el modelo de

puntos de variación y variantes y los

artefactos

17

Page 18: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Conceptos del (meta) modelo (1a)

Conceptos principales:

• Punto de Variación (externo o Interno)

• Variante

Restricciones:

• Cada punto de variación debe estar asociado con al menos una variante

• Cada variante debe estar asociada con al menos un punto de variación

• Un punto de variación puede ofrecer más de una variante

• Una variante puede estar asociada con diferentes puntos de variación

18

Page 19: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Conceptos del (meta) modelo (1b)

Dependencias:

• Opcional: establece que dicha variante para ese punto de variación puede ser

parte o no del producto.

Se puede escoger una de las

variantes, ninguna o cualquier

combinación de las tres

19

Page 20: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Conceptos del (meta) modelo (1c)

Dependencias:

• Obligatoria: establece que dicha variante debe ser seleccionada si y solo si el

punto de variación es parte del producto.

La variante 128 bits debe ser

seleccionada en los productos

que incluyen comunicación

remota y el punto de variación

“longitud de las lleves de

encripción”

20

Page 21: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Conceptos del (meta) modelo (2)

Escogencias alternativas:

• Aplica a las variantes opcionales

• Establece el mínimo y máximo numero de variantes opcionales que deben ser

seleccionadas

Las variantes CD-R y CD-RW

del punto de variación CDType

son opcionales pero

Mínimo una de las dos debe ser

escogida

Máximo una de las dos debe

ser escogida

21

Page 22: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Restricciones entre los elementos de

variabilidad Establecer que para que una variante V1

funcione correctamente se requiere que:

la variante V2 (de otro punto de variación) sea

seleccionada.

la variante V2 NO sea seleccionada

Establecer que si una variante de un punto

de variación PV1 es seleccionada implique

que un PV2 sea parte de la aplicación

22

Page 23: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Restricciones entre los elementos de

variabilidad

23

Page 24: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Restricciones entre los elementos de

variabilidad Establecer que para que una variante V1

funcione correctamente se requiere que:

la variante V2 (de otro punto de variación) sea

seleccionada.

24

Page 25: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Restricciones entre los elementos de

variabilidad Establecer que para que una variante V1

funcione correctamente se requiere que:

la variante V2 NO sea seleccionada

25

Page 26: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Restricciones entre los elementos de

variabilidad Establecer que si

una variante de

un punto de

variación PV1 es

seleccionada

implique que un

PV2 sea parte de

la aplicación

26

Page 27: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ortogonalidad con los artefactos

27

Page 28: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Ejemplo: Use cases

28

Page 29: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Manejo de complejidad en los

modelos de variabilidad Un modelo de variabilidad puede convertirse

en algo muy complejo con miles de

elementos

Predefinir (análisis de dominio) subsistemas

(packages)

Al escoger los subsistemas se restringen las

variaciones

29

Page 30: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

30

Page 31: Líneas de Producto de Software Modelo de Variabilidad ...isis4715/dokuwiki/... · Elemento variable o una propiedad variable de un ... Cambiar el mecanismo de identificación de

Documentación de la Variabilidad

Qué varia?

Definir las propiedades variables de los distintos

artefactos

Por qué varia?

Variabilidad externa o interna

Cómo varia?

Relacionar las variantes con artefactos concretos

Para quién se documenta?

Variabilidad externa o interna

31