En el desarrollo de software, un modelo de características es una representación compacta de todos los productos de la Línea de productos de software (SPL) en términos de "características". Los modelos de características se representan visualmente mediante diagramas de características. Los modelos de características se usan ampliamente durante todo el proceso de desarrollo de la línea de productos y se usan comúnmente como entrada para producir otros activos, como documentos, definición de arquitectura o fragmentos de código. [ cita requerida ]
Un SPL es una familia de programas relacionados. Cuando las unidades de construcción del programa son características (incrementos en la funcionalidad o desarrollo del programa), cada programa en un SPL se identifica mediante una combinación única y legal de características, y viceversa.
Los modelos de características fueron introducidos por primera vez en el método de Análisis de dominio orientado a características (FODA) por Kang en 1990. [1] Desde entonces, la comunidad de líneas de productos de software ha adoptado ampliamente el modelado de características y se han propuesto varias extensiones.
Fondo
Una "característica" se define como un "aspecto, calidad o característica prominente o distintiva visible para el usuario de un sistema o sistema de software ". [1] El enfoque del desarrollo de SPL está en la creación sistemática y eficiente de programas similares. FODA es un análisis dedicado a la identificación de características en un dominio que debe cubrir un SPL en particular. [1]
Modelo
Un modelo de características es un modelo que define características y sus dependencias, típicamente en forma de diagrama de características + restricciones restantes (también conocidas como árboles cruzados). Pero también podría ser una tabla de posibles combinaciones. [ cita requerida ]
Diagrama
Un diagrama de características es una notación visual de un modelo de características, que es básicamente un árbol y-o. Existen otras extensiones: cardinalidades , clonación de características, atributos de características, que se analizan a continuación.
Configuración
Una configuración de características es un conjunto de características que describe a un miembro de una SPL: el miembro contiene una característica si y solo si la característica está en su configuración. Una configuración de características está permitida por un modelo de características si y solo si no viola las restricciones impuestas por el modelo.
Árbol de características
Un árbol de características (a veces también conocido como modelo de características o diagrama de características) es un diagrama jerárquico que describe visualmente las características de una solución en grupos de niveles de detalle crecientes. Los árboles de características son excelentes formas de resumir las características que se incluirán en una solución y cómo se relacionan de una manera visual simple. [2]
Notaciones de modelado de características
Las notaciones actuales de modelado de características se pueden dividir en tres grupos principales, a saber:
- Modelos de funciones básicas
- Modelos de características basados en cardinalidad
- Modelos de funciones ampliadas
Modelos de funciones básicas
Las relaciones entre una característica principal y sus características secundarias (o subfunciones) se clasifican como:
- Obligatorio: se requiere la función secundaria.
- Opcional: la función secundaria es opcional.
- O bien, debe seleccionarse al menos una de las subcaracterísticas.
- Alternativa (xor): se debe seleccionar una de las subcaracterísticas
Además de las relaciones parentales entre entidades, se permiten restricciones entre árboles. Los más comunes son:
- A requiere B - La selección de A en un producto implica la selección de B.
- A excluye B - A y B no pueden ser parte del mismo producto.
A modo de ejemplo, la figura siguiente ilustra cómo se pueden utilizar los modelos de características para especificar y construir sistemas de compra en línea configurables. El software de cada aplicación está determinado por las características que proporciona. La función raíz (es decir, E-Shop) identifica el SPL. Cada sistema de compras implementa un catálogo, módulos de pago, políticas de seguridad y opcionalmente una herramienta de búsqueda. Las tiendas electrónicas deben implementar una política de seguridad alta o estándar (elija una), y pueden proporcionar diferentes módulos de pago: transferencia bancaria, tarjeta de crédito o ambos. Además, una restricción entre árboles obliga a los sistemas de compras, incluido el módulo de pago con tarjeta de crédito, a implementar una política de alta seguridad.
Modelos de características basados en cardinalidad
Algunos autores proponen extender los modelos de características básicas con multiplicidades similares a UML de la forma [n, m], siendo n el límite inferior y m el límite superior. Se utilizan para limitar el número de subcaracterísticas que pueden formar parte de un producto siempre que se seleccione el padre. [3]
Si el límite superior es m, la característica se puede clonar tantas veces como queramos (siempre que se respeten las demás restricciones). Esta notación es útil para productos extensibles con un número arbitrario de componentes.
Modelos de funciones ampliadas
Otros sugieren agregar información extra funcional a las características usando "atributos". Estos se componen principalmente de un nombre, un dominio y un valor. [4]
Semántica
La semántica de un modelo de características es el conjunto de configuraciones de características que permite el modelo de características. El enfoque más común es utilizar la lógica matemática para capturar la semántica de un diagrama de características. [5] Cada característica corresponde a una variable booleana y la semántica se captura como una fórmula proposicional . Las valoraciones satisfactorias de esta fórmula corresponden a las configuraciones de características permitidas por el diagrama de características. Por ejemplo, si es una subcaracterística obligatoria de , la fórmula contendrá la restricción . [6]
La siguiente tabla proporciona una traducción de las primitivas básicas. La semántica de un diagrama es una conjunción de las traducciones de los elementos contenidos en el diagrama. Suponemos que el diagrama es un árbol enraizado.
Característica del diagrama primitivo | Semántica |
---|---|
es la característica raíz | |
subcaracterística opcional de | |
subcaracterística obligatoria de | |
subcaracterísticas alternativas de | |
o subcaracterísticas de | |
excluye | |
requiere |
Configurando productos
Un producto de SPL se especifica declarativamente seleccionando o deseleccionando funciones de acuerdo con las preferencias del usuario. Tales decisiones deben respetar las restricciones impuestas por el modelo de características. Un "configurador" es una herramienta que ayuda al usuario durante un proceso de configuración. Por ejemplo, seleccionando o deseleccionando automáticamente funciones que deben o no deben seleccionarse, respectivamente, para que la configuración se complete con éxito. Los enfoques actuales utilizan la propagación unitaria [7] y solucionadores de CSP . [4]
Propiedades y análisis
Un análisis de un modelo de características se centra en determinadas propiedades del modelo que son importantes para las estrategias de marketing o las decisiones técnicas. En la literatura se identifican varios análisis. [8] [9] Los análisis típicos determinan si un modelo de características es nulo (no representa productos), si contiene características muertas (características que no pueden ser parte de ningún producto) o la cantidad de productos de la línea de productos de software representada por el modelo. Otros análisis se centran en comparar varios modelos de características (por ejemplo, para comprobar si un modelo es una especialización o refactorización o generalización de otro). [10]
Ver también
- Análisis de dominio
- Ingeniería de dominio
- Programación orientada a funciones : un paradigma para la síntesis de líneas de productos de software
- Ingeniería de familia de productos
- Líneas de productos de software
Referencias
- ^ a b c Kang, KC y Cohen, SG y Hess, JA y Novak, WE y Peterson, AS, "Estudio de viabilidad de análisis de dominio orientado a funciones (FODA)", Informe técnico CMU / SEI-90-TR-021, SEI , Carnegie Mellon University, noviembre de 1990 descargar
- ^ "Árbol de características | BAwiki" .
- ^ Czarnecki, K. y Helsen, S. y Eisenecker, U., "Configuración por etapas usando modelos de características", Actas de la Tercera Conferencia Internacional sobre Líneas de Productos de Software (SPLC '04), volumen 3154 de Lecture Notes in Computer Science. Springer Berlin / Heidelberg, agosto de 2004. descargar .
- ^ Schobbens, P.-Y .; Heymans, P .; Trigaux, J.-C., " Feature Diagrams: A Survey and a Formal Semantics ", Requirements Engineering, 14th IEEE International Conference, vol., No., Pp.139-148, 11-15 de septiembre de 2006 descargar
- ^ Amador Durán, David Benavides, Sergio Segura, Pablo Trinidad y Antonio Ruiz-Cortés "FLAME: un marco formal para el análisis automatizado de líneas de productos de software validadas por pruebas de especificación automatizadas". Modelado de software y sistemas. 2015. descargar
- ^ Batory, D., "Modelos de funciones, gramáticas y fórmulas proposicionales", Actas de la novena conferencia internacional de línea de productos de software (SPLC '05) descargar [ enlace muerto permanente ]
- ^ T. Thuem, D. Batory y C. Kaestner. " Razonamiento sobre ediciones de modelos de características ". Congreso Internacional de Ingeniería de Software (ICSE), mayo de 2009.
enlaces externos
- Repositorio de modelos de funciones Wiki
- Ingeniería de línea de productos de software con modelos de funciones