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 2019/2020/Subject's code31105039

ARQUITECTURAS PARA SISTEMAS SOFTWARE

NAME SUBJECT ARQUITECTURAS PARA SISTEMAS SOFTWARE
CODE 31105039
SESSION 2019/2020
DEGREE IN WHICH IT IS OFFERED MÁSTER UNIVERSITARIO EN INVESTIGACIÓN EN INGENIERÍA DE SOFTWARE Y SISTEMAS INFORMÁTICOS
TYPE CONTENIDOS
ECTS 9
HOURS 225.0
PERIOD ANUAL
OFFER LANGUAGES CASTELLANO

PRESENTACIÓN Y CONTEXTUALIZACIÓN

 

Ya en 2004, un informe publicado por el Standish Group[1] revelaba que sólo el 29% de los proyectos software satisfacían los requisitos de los clientes, se entregaban a tiempo y se ajustaban a los presupuestos. Así, el 53% acababan incumpliendo algún requisito, se entregaban fuera de plazo o costaban más de lo presupuestado. El 18% se cancelaban antes de su finalización o jamás han llegado a utilizarse. Aunque el informe sea antiguo algunos de esos datos no han cambiado significativamente y, sin duda, aún queda mucho por hacer en el desarrollo de software.

En los últimos 50 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, proliferación de frameworks de servicios de desarrollo que integran la perspectiva de una o varias tecnologías... 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, y de organización arquitectónica, aplicadas tradicionalmente, cuya esencia ha motivado las que se emplean actualmente y, muy posiblemente, las que se utilicen en el futuro. Aparte 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 su repercusión en 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 con una buena proximidad al formalismo y una prometedora proyección. 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-. Ésta es, por tanto, una asignatura en la que se maneja el código intensivamente, aunque más desde la perspectiva de su organización que desde la de su implementación.

La asignatura “Arquitecturas para Sistemas Software” se encuentra integrada en el Máster en Ingeniería de Software y Sistemas Informáticos dentro del bloque de “Ingeniería de Software”. Es una asignatura de contenidos, muy práctica, de 9 ECTS y se estima que requiere una dedicación de 225 horas. Concretamente, “Arquitecturas para Sistemas Software” es una de las seis asignaturas que forman la materia “Ingeniería del Desarrollo de Software” y sus contenidos están directamente enfocados a ese desarrollo, aunque se especializa en ningún campo concreto. Las otras cinco asignaturas son “Especificación de los Sistemas Software”, “Desarrollo de Software Seguro”, “Generación Automática de Código”, “Desarrollo de Líneas de Producto Software mediante un Enfoque Generativo” y “Arquitecturas Orientadas a Servicios”.

También es importante resaltar que, en cualquiera de las asignaturas del bloque de “Ingeniería de Sistemas Informáticos”, se ofrecen campos de desarrollo de Software, diferenciados y específicos, para aplicar y ejercitar las conclusiones, enseñanzas y capacidades adquiridas en este módulo.

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