Actualizado el 21 de Marzo del 2018 (Publicado el 10 de Diciembre del 2017)
1.324 visualizaciones desde el 10 de Diciembre del 2017
2,2 MB
94 paginas
Creado hace 18a (08/09/2006)
INGENIERÍA INFORMÁTICA
Curso Académico 2005 / 2006
Proyecto de Fin de Carrera
MODELADO Y GESTIÓN DE
LA VARIABILIDAD
EN SISTEMAS SOFTWARE
Autor: Alejandro Sánchez Valdezate
Tutor: Rafael Capilla
3
Modelado y Gestión de la Variabilidad en Sistemas Software
INDICE
Introducción.............................................................................................................5
1.
2. Estado del Arte .......................................................................................................6
2.1. Patrones de Diseño Software ......................................................................6
2.2. Concepto de Arquitectura Software ............................................................8
2.2.1. Un ejemplo: Estilo de Capas o Niveles ............................................11
2.3. Procesos de Ingeniería de Dominio..........................................................13
2.3.1. Análisis del dominio .............................................................................14
2.3.2.
Ingeniería del Dominio y Variabilidad ...............................................16
FORM.....................................................................................................17
2.3.3.
2.4. Arquitecturas de Líneas de productos ......................................................19
2.4.1. Beneficios y costes de una línea de productos...............................21
3. Construcción de Componentes Core................................................................24
3.1.1. Personalización de Productos ...........................................................24
3.1.2. Concepto de Variabilidad....................................................................24
3.1.3. Representación de la Variabilidad.....................................................25
3.1.4. Binding Time.........................................................................................26
3.1.5. Gestión de la Variabilidad...................................................................27
4. Aplicación..............................................................................................................29
4.1. Descripción del problema ...........................................................................29
4.2. Análisis de Requisitos .................................................................................30
4.3. Arquitectura necesaria. ...............................................................................38
4.3.1. Apache...................................................................................................41
4.3.2. CSS........................................................................................................41
4.3.3. PHP ........................................................................................................41
4.3.4. MySQL ...................................................................................................42
4.3.5. PHPMyAdmin .......................................................................................42
4.3.6. AJAX ......................................................................................................42
Implementación y Pruebas .........................................................................49
4.4.1. Sesiones................................................................................................49
4.4.2. Multiidioma ............................................................................................50
4.4.3. Diseño y desarrollo a través de plantillas.........................................52
4.4.
Alejandro Sánchez Valdezate
Modelado y Gestión de la Variabilidad en Sistemas Software
4
4.4.4. Gestión de Variantes. ..........................................................................55
4.4.5. Gestión de Puntos de Variación........................................................56
4.4.6. Anexar código fuente a variantes y puntos de variación. ..............57
4.4.7. Gestión de Líneas de Productos .......................................................58
4.4.8. Configurar la línea de productos. ......................................................59
4.4.9. Cálculo del total de productos distintos generables .......................62
Restricciones dentro de una línea de productos.........................65
4.4.10.
4.4.11.
Gestión de Productos ......................................................................65
Configuración de un producto ........................................................66
4.4.12.
4.4.13.
Validación de las reglas de un producto ......................................68
Generación de documentos en PDF.............................................68
4.4.14.
Generación de código fuente .........................................................70
4.4.15.
4.4.16.
Apartado gráfico ...............................................................................74
HTML y Herramientas basadas en HTML/Javascript ................76
4.4.17.
5. Conclusiones ........................................................................................................79
6. Bibliografía ............................................................................................................81
7. Anexo I – Ficheros Fuente .................................................................................85
8. Anexo II – Herramientas de apoyo para desarrollar la aplicación. ..............90
8.1. Captura Imágenes .......................................................................................90
8.2. PHP MultiLang..............................................................................................91
Alejandro Sánchez Valdezate
Modelado y Gestión de la Variabilidad en Sistemas Software
5
1. Introducción
frecuente desarrollar varias veces
La tendencia actual de las empresas consiste en recortar costes de producción
de software y a la vez incrementar la calidad del mismo en el menor tiempo
posible. Por otra parte, dado que dentro del ámbito de negocio de las empresas
de software es muy
los mismos
componentes para distintos productos, el uso de componentes reutilizables es
uno de los factores clave en el ahorro de costes y de tiempo. Asimismo, el
desarrollo ágil de componentes software para productos similares con
características comunes es uno de los aspectos clave a considerar. Así por
ejemplo, los sistemas Web es un ejemplo claro de construcción de productos
con similares características en periodos cortos de tiempo y motivados por
requisitos de mercado.
Por estos motivos, el objetivo principal de este Proyecto Fin de Carrera
consiste en la creación y mantenimiento de familias de productos de
características semejantes que permitan elaborar todas las combinaciones de
puntos de variación con el fin de obtener todos los productos posibles a partir
de una línea de productos concreta.
Además, estudiaríamos los aspectos de variabilidad en los sistemas software
para elaborar distintas familias de productos con similares características, a
través de la elección de piezas (puntos de variación) que compondrán la familia
de productos.
El análisis de variabilidad realizado nos permite conocer el número total de
productos obtenibles a partir de una línea de productos concreta, así como
parametrizar la línea de productos de cara a definir restricciones, tal y como
ocurre en el mundo empresarial, por lo que este proyecto es directamente
aplicable a los árboles de decisión, cadenas de montaje y estrategias de
mercado, de forma que se obtenga un beneficio directo de la construcción y
uso de componentes reutilizables.
Alejandro Sánchez Valdezate
Modelado y Gestión de la Variabilidad en Sistemas Software
6
2. Estado del Arte
Antes de describir los aspectos de variabilidad de los sistemas en relación con
las arquitecturas de líneas de productos, vamos a mencionar las bases teóricas
que
resultan
imprescindibles en la construcción de sistemas similares.
las arquitecturas
fundamentan
software,
cuales
las
2.1. Patrones de Diseño Software
La similitud de muchas de las soluciones empleadas en los sistemas software
actuales y los problemas de mantenimiento existentes hacen que dichas
soluciones se repitan en los distintos productos software, tanto a nivel de
diseño como de implementación. De esta manera, los productos creados
comparten elementos y soluciones comunes. Por este motivo diversos autores
han propuesto el uso de patrones de diseño y patrones arquitectónicos como
solución a problemas que se repiten de forma habitual.
El uso de un patrón de diseño para dirigir la creación de software hace posible
que una empresa realice de manera eficiente una actividad determinada
(aquella en la que está especializada), poniendo especial interés en los
elementos definidos en el patrón a seguir. En términos generales, un patrón de
diseño software constituye una solución probada para un problema recurrente.
Según Buschmann [Buschmann et. al., 1996], un patrón desde el punto de vista
de la arquitectura software describe un problema de diseño particular que se
repite en un contexto de diseño específico, y presenta un esquema genérico
debidamente probado para su solución. El esquema de la solución está
especificado por la descripción de sus componentes, sus responsabilidades y
relaciones, y la forma en la que colaboran entre sí. Los estilos arquitectónicos
consisten en la descripción de los tipos d
Comentarios de: MODELADO Y GESTIÓN DE LA VARIABILIDAD EN SISTEMAS SOFTWARE (0)
No hay comentarios