stringtranslate.com

Modelo de características

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 utilizan ampliamente durante todo el proceso de desarrollo de la línea de productos y se utilizan comúnmente como entrada para producir otros activos, como documentos, definición de arquitectura o fragmentos de código. [ cita requerida ]

Una SPL es una familia de programas relacionados. Cuando las unidades de construcción del programa son características (incrementos en la funcionalidad o el desarrollo del programa), cada programa de una 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, el modelado de características ha sido ampliamente adoptado por la comunidad de líneas de productos de software y se han propuesto varias extensiones.

Fondo

Una "característica" se define como un "aspecto, cualidad o característica prominente o distintiva visible para el usuario de un sistema o sistema de software". [1] El desarrollo de SPL se centra 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 se cubrirá con un SPL en particular. [1]

Modelo

Un modelo de características es un modelo que define las características y sus dependencias, generalmente en forma de un diagrama de características + restricciones sobrantes (también conocido como árbol cruzado). Pero también podría ser una tabla de combinaciones posibles. [ 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 de funciones 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 un miembro de un SPL: el miembro contiene una característica si y solo si la característica está en su configuración. Un modelo de características permite una configuración 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 representa visualmente las características de una solución en grupos con niveles de detalle cada vez mayores. 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 de modelado de características actuales se pueden dividir en tres grupos principales, a saber:

Un diagrama de características que representa un sistema de tienda electrónica configurable.

Modelos de funciones básicas

Las relaciones entre una característica principal y sus características secundarias (o subcaracterísticas) se clasifican de la siguiente manera:

Además de las relaciones parentales entre características, se permiten restricciones entre árboles. Las más comunes son:

Como ejemplo, la figura de la derecha ilustra cómo se pueden utilizar los modelos de características para especificar y crear sistemas de compra en línea configurables. El software de cada aplicación está determinado por las características que proporciona. La característica raíz (es decir, la tienda electrónica) identifica el SPL. Cada sistema de compra 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 de árbol cruzado obliga a los sistemas de compra que incluyen 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 las de UML de la forma [n,m] , donde n es el límite inferior y m el límite superior. Estas se utilizan para limitar la cantidad de subcaracterísticas que pueden formar parte de un producto cuando se selecciona el padre. [3]

Si el límite superior es *, 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 una cantidad arbitraria de componentes.

Modelos de funciones extendidas

Otros sugieren agregar información extrafuncional a las características mediante “atributos”, que 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 los primitivos básicos. Suponemos que el diagrama es un árbol con raíz con raíz . La semántica de un diagrama completo es un conjunto de las traducciones de los elementos contenidos en el diagrama. Por lo tanto, en caso de que todos los elementos estén escritos en forma normal conjuntiva (CNF), entonces los términos se pueden combinar fácilmente con AND lógico y toda la expresión lógica permanecerá en CNF.

Configurar productos

Un producto de la SPL se especifica de manera declarativa seleccionando o deseleccionando características según las preferencias del usuario. Tales decisiones deben respetar las restricciones impuestas por el modelo de características. Un "configurador" es una herramienta que asiste al usuario durante un proceso de configuración. Por ejemplo, seleccionando o deseleccionando automáticamente las características que deben o no deben seleccionarse, respectivamente, para que la configuración se complete con éxito. Los enfoques actuales utilizan propagación de unidades [7] y solucionadores 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 han identificado varios análisis. [8] [9] Los análisis típicos determinan si un modelo de características es nulo (no representa ningún producto), si contiene características inactivas (características que no pueden formar parte de ningún producto) o el número de productos de la línea de productos de software representados 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 , una refactorización o una generalización de otro). [10]

Véase también

Referencias

  1. ^ abc Kang, KC y Cohen, SG y Hess, JA y Novak, WE y Peterson, AS, "Estudio de viabilidad del análisis de dominio orientado a características (FODA)", Informe técnico CMU/SEI-90-TR-021, SEI, Carnegie Mellon University, noviembre de 1990 descargar
  2. ^ "Árbol de características | BAwiki".
  3. ^ Czarnecki, K. y Helsen, S. y Eisenecker, U., "Configuración por etapas mediante 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 Berlín/Heidelberg, agosto de 2004. descargar.
  4. ^ ab D. Benavides, P. Trinidad y A. Ruiz-Cortés. "Razonamiento automático sobre modelos de características". 17.ª Conferencia sobre Ingeniería de Sistemas de Información Avanzada (CAiSE'05). Porto, Portugal. 2005 descargar
  5. ^ Schobbens, P.-Y.; Heymans, P.; Trigaux, J.-C., "Diagramas de características: un estudio y una semántica formal [ vínculo muerto ] ", Ingeniería de requisitos, 14.ª Conferencia internacional del IEEE, vol., n.º, págs. 139-148, 11-15 de septiembre de 2006 descargar
  6. ^ 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 mediante pruebas de especificación automatizadas". Modelado de software y sistemas. 2015. descargar
  7. ^ Batory, D., "Modelos de características, gramáticas y fórmulas proposicionales", Actas de la 9.ª Conferencia internacional sobre líneas de productos de software (SPLC '05) descargar
  8. ^ D. Benavides, A.Ruiz-Cortés, P. Trinidad y S. Segura. "Una encuesta sobre los análisis automatizados de modelos de características". Jornadas de Ingeniería del Software y Bases de Datos (JISBD'06). Sitges, España. 2006
  9. ^ Benavides, David; Segura, Sergio; Ruiz Cortés, Antonio (2010). "Análisis automatizado de modelos de características 20 años después: una revisión de la literatura". Sistemas de información . 35 (6): 615–636. doi :10.1016/j.is.2010.01.001. hdl : 11441/24694 .
  10. ^ T. Thuem, D. Batory y C. Kaestner. "Razonamiento sobre modificaciones de modelos de características [ enlace muerto permanente ] ". Conferencia internacional sobre ingeniería de software (ICSE), mayo de 2009.

Enlaces externos