![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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.net/reader034/viewer/2022042215/5ebb4c610fa53a0d0b176ca0/html5/thumbnails/31.jpg)
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