Accesos directos a las distintas zonas del curso

Ir a los contenidos

Ir a menú navegación principal

Ir a menú pie de página

ARQUITECTURAS PARA SISTEMAS SOFTWARE

Curso 2017/2018 / Cod.31105039

ARQUITECTURAS PARA SISTEMAS SOFTWARE

PRESENTACIÓN

 

Un informe publicado en 2004 por el Standish Group[1] revelaba que sólo el 29% de los proyectos software satisfacen los requisitos de los clientes, se entregan a tiempo y se ajustan a los presupuestos. El 53% acaban incumpliendo algún requisito, se entregan fuera de plazo o cuestan más de lo presupuestado. El 18% se cancelan antes de su finalización o jamás llegan a utilizarse. Sin duda, aún queda mucho por hacer en el desarrollo de software.

En los últimos 40 años, se han producido grandes avances en el terreno de la codificación: creación de compiladores e intérpretes eficientes, desarrollo de la algoritmia, aparición de nuevos paradigmas de programación, utilización de los sistemas de tipos para la prevención de errores... Sin embargo, a medida que crece el tamaño de las aplicaciones informáticas, se hace más evidente la necesidad de organizarlas correctamente. Es decir, la importancia de la codificación disminuye frente a la relevancia del diseño de software.

El presente curso pretende transmitir al alumno la enorme importancia del diseño en el desarrollo de software y ofrecerle una panorámica sobre las técnicas de diseño más aplicadas actualmente y, con mayor probabilidad, en el futuro. A parte del planteamiento introductorio sobre la relevancia del diseño y cómo afecta al ciclo de vida y a la propia ejecución del desarrollo de Software, se presentan los conceptos de Estilos Arquitectónicos y Directrices Arquitectónicas, haciendo un recorrido por los estilos más relevantes. El núcleo principal de la asignatura está constituido por el diseño arquitectónico y el diseño detallado. En lo que se refiere al diseño arquitectónico, su estudio se ilustra en el ámbito de las Arquitecturas Dirigidas por Modelos (MDA) por ser una propuesta en desarrollo, prometedora y con una buena proximidad al formalismo. En cuanto al diseño detallado, se utilizan los ‘patrones de diseño’ por su potencial para que el estudiante adquiera la madurez para resolver nuevos problemas de diseño a partir de soluciones eficaces y genéricas -los patrones-.

[1] The Standish Group. 2004 CHAOS Demographics and Project Resolution. http://www.standishgroup.com