Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Líneas de Producto de Software –
Modelo de Variabilidad
Ortogonal
Rubby Casallas
Departamento de Sistemas y Computación
Universidad de los Andes, Bogotá
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
Agenda
Manejo de Variabilidad
Definiciones:
Puntos de variación y variantes
3
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
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
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
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
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
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
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
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
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
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
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
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
Pirámide de variabilidad
16
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
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
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
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
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
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
Restricciones entre los elementos de
variabilidad
23
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
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
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
Ortogonalidad con los artefactos
27
Ejemplo: Use cases
28
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
30
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