NO EXISTEN CAMBIOS
La guía de la asignatura ha sido actualizada con los cambios que aquí se mencionan.
Ya en 2004, un informe publicado por el Standish Group[1] revelaba que solo el 29% de los proyectos software satisfacían los requisitos de los clientes, se entregaban a tiempo o 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 habían 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 tipado 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, así como ofrecerle una panorámica sobre las técnicas de diseño y de organización arquitectónica, las 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-. Esta 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 no 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 (acceso privado). httpss://www.standishgroup.com
La formación previa que deberían tener los alumnos para el adecuado seguimiento de esta asignatura son los propios de ingreso al posgrado, haciendo especial recomendación en acceder a ella desde una titulación universitaria de grado, o superior, en informática. Esta recomendación se enfatiza con relación a los conocimientos matemáticos y tecnológicos en materias de:
- Experiencia avanzada en programación y, concretamente, en el paradigma de la orientación a objetos.
- Estadística, algoritmia y especificación formal.
- Lectura y comprensión de textos en inglés técnico.
En la metodología a distancia de la UNED, los foros del curso virtual son el principal recurso de atención colectiva los estudiantes. La comunicación a través de los foros tiene una doble vertiente en el aprendizaje: el enriquecimiento en el ejercicio de la dialéctica y del diálogo entre los estudiantes, y la exposición del profesor a todos los alumnos (atención colectiva), junto con el debate que ello pueda suscitar.
En la atención colectiva en los foros del curso virtual, ante cualquier cuestión concreta, planteada sobre los contenidos o el funcionamiento de la asignatura, la respuesta será inferior a 5 días del calendario lectivo. Si es necesario, también están habilitados los recursos para concertar reuniones colectivas a través de webconferencia (AVIP+) o MS Teams.
En cuanto a la atención individual, el equipo docente dará respuesta a través del teléfono (en el horario lectivo indicado) y, en horario laboral peninsular, de miércoles a viernes lectivos, por correo electrónico o concertado por Skype:
Horario de atención presencial y telefónica (guardia):
Lunes lectivos de 16:00 a 20:00 h.
Profesorado:
José Félix Estívariz López.
Telf.: +34 91398 7792
Correo y Skype (Empresarial): jose.estivariz@issi.uned.es
Correo asignatura: softwarch@issi.uned.es
Dirección postal:
ETS de Ingeniería Informática de la UNED
Dpto. de Ingeniería de Software y Sistemas Informáticos. Despacho 2.20.
C/ Juan del Rosal, 16
28040 Madrid
Competencias Básicas:
CB6 - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
CB7 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
CB8 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
CB9 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades
CB10 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
Competencias Generales:
CG01 - Saber aplicar los conocimientos adquiridos y la capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y multidisciplinares relacionados con la Ingeniería de Sistemas y la Ingeniería de Software.
CG02 - Demostrar una comprensión sistemática del campo de estudio de la Ingeniería de Software o de la Ingeniería de Sistemas, y el dominio de las habilidades y métodos de investigación relacionados con dicho campo.
CG03 - Demostrar la capacidad de concebir, diseñar, poner en práctica y adoptar un proceso sustancial de investigación con seriedad académica.
CG04 - Ser capaz de realizar un análisis crítico, evaluación y síntesis de ideas nuevas y complejas.
CG05 - Saber comunicar sus conclusiones -y los conocimientos y razones últimas que las sustentan- a públicos especializados y no especializados, a sus colegas, a la comunidad académica en su conjunto y a la sociedad, de un modo claro y sin ambigüedades.
CG06 - Ser capaz de fomentar, en contextos académicos y profesionales, el avance tecnológico dentro de una sociedad basada en el conocimiento.
CG07 - Ser capaz de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
CG08 - Realizar una contribución a través de una investigación original que amplíe las fronteras del conocimiento desarrollando un corpus sustancial, del que parte merezca la publicación referenciada a nivel nacional o internacional.
CG09 - Poseer las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
Competencias Específicas:
CE01 - Incorporar mejoras cualitativas sustanciales, bien sea en la elaboración de software o bien en el desarrollo e implantación de sistemas robóticos.
CE02 - Concebir, implementar implantar y supervisar nuevas soluciones a los problemas específicos que se le planteen en el ámbito de la investigación, innovación y desarrollo de software o de la robótica.
Los resultados de aprendizaje que se espera alcanzar con esta asignatura por parte del estudiante son:
- Conocer los Estilos Arquitectónicos, Arquitecturas y Directrices Arquitectónicas de uso más común en el desarrollo de Software.
- Saber aplicar un estilo arquitectónico a un problema de desarrollo, diseñar con componentes o construir patrones y utilizarlos en el diseño.
- Analizar herramientas, entornos y aplicaciones enfocadas al desarrollo de software y evaluar cuál es la más adecuada para el problema planteado.
- Capacidad para desarrollar software mejorando su calidad y el rendimiento productivo.
- Saber aprovechar técnicas, metodologías y arquitecturas de desarrollo para disminuir los costes de desarrollo y de mantenimiento.
Tema 1. Introducción a la arquitectura del software: definición y relevancia.
- Definición de arquitectura de software.
- El problema del diseño en software complejo y de altas prestaciones.
- El punto de vista arquitectónico como solución para mejorar la comprensión de sistemas complejos.
Tema 2. Principios básicos del diseño arquitectónico.
- Tendencias en las tecnologías de desarrollo. Software procedimental, orientación a objetos y desarrollo con componentes.
- Tecnologías propietarias, abiertas y comerciales. Uso de estándares.
Tema 3. Estilos arquitectónicos.
- Estilos arquitectónicos comunes.
- Arquitecturas de componentes.
- Arquitecturas de agentes.
Tema 4. Directrices arquitectónicas.
- El modelo de negocio.
- El modelo de la información.
- El modelo computacional.
- El modelo de ingeniería.
- El modelo tecnológico.
Tema 5. Diseño arquitectónico. MDA
- Conflictos entre el producto final y los aspectos técnicos de su desarrollo.
- La especificación de la arquitectura MDA, de OMG.
Tema 6. Diseño detallado. Patrones de diseño.
- Generalización de problemas en el diseño.
- El patrón de diseño como solución a una familia de problemas.
- Estudiar algunos problemas de diseño y el patrón solución correspondiente.
La docencia de esta asignatura se impartirá a distancia, siguiendo el modelo educativo propio de la UNED adaptado al EEES. Este modelo no se puede identificar con la formación on-line, pero sí se caracteriza por ser continuo, muy estable y persistente. El principal instrumento docente será un curso virtual dentro de las plataformas educativas para la enseñanza a distancia de esta Universidad, complementado con la asistencia personalizada del equipo docente y su tutela presencial y telemática.
Dentro del curso virtual el alumnado dispondrá de:
- Página de bienvenida y 'Plan de trabajo', donde se indica el concepto general de la asignatura y se presenta el desarrollo de sus contenidos.
- Calendario, donde se establece el orden temporal de actividades y sugerencias sobre el reparto temporal de la materia, para que el estudiante los adapte a su disponibilidad y necesidades. Estas actividades formativas consisten en:
- Actividades de contenido teórico: lectura de las orientaciones generales; lectura comprensiva de la bibliografía, material didáctico e información temática; e intercambio de información y consulta de dudas con el equipo docente. (75 horas de dedicación)
- Actividades de contenido práctico: manejo de herramientas informáticas y de ayuda a la presentación de resultados; intercambio de información con otros compañeros sobre aspectos prácticos y participación, argumentación y aportación constructiva en los debates en foros. (35 horas de dedicación)
- Trabajo autónomo: búsqueda de herramientas e información adicional en biblioteca, Internet, etc.; selección de la información útil; actividades, que el estudiante realiza de manera autónoma, orientadas a resolver trabajos que se plantean específicamente en la realización de memorias y desarrollos utilizados, también, en la evaluación de la asignatura. (115 horas de dedicación)
- Materiales:
- Información complementaria del curso, donde se establecen los objetivos concretos y los puntos de interés.
- Programa, donde se especifica la división del contenido por capítulos.
- Procedimiento, donde se sugieren al alumno las tareas que debe realizar.
- Comunicación:
- Correo para comunicaciones individuales.
- Foros de Debate donde se intercambian conocimientos (foros temáticos) y se resuelven dudas de tipo académico general.
- Evaluación:
- Programa de actividades de evaluación.
- Enunciado y objetivos de cada actividad de evaluación.
Fuera del curso virtual el estudiante también tendrá acceso a realizar consultas al equipo docente a través del correo (softwarch@issi.uned.es), teléfono y presencialmente en los horarios establecidos para estas actividades. También se podrán organizar videoconferencias si las necesidades docentes lo hicieran preciso.
Todos los materiales a disposición del alumnado, también se pueden obtener en la Página Web de la Asignatura —https://www.issi.uned.es/Master_ISSI/softwarch/index.htm—.
TIPO DE PRIMERA PRUEBA PRESENCIAL
|
Tipo de examen |
Tipo de examen |
No hay prueba presencial |
TIPO DE SEGUNDA PRUEBA PRESENCIAL
|
Tipo de examen |
Tipo de examen |
No hay prueba presencial |
CARACTERÍSTICAS DE LA PRUEBA PRESENCIAL Y/O LOS TRABAJOS |
CARACTERÍSTICAS DE LA PRUEBA PRESENCIAL Y/O LOS TRABAJOS
|
Requiere Presencialidad |
Requiere Presencialidad |
No |
Descripción |
Descripción |
- Trabajo de diseño arquitectónico. Consistirá en una prospección, selección, documentación, instalación y análisis de varias herramientas de desarrollo orientado a MDA. Se trata de hacer una comparativa con las recomendaciones de MDA y cada herramienta, analizar sus posibilidades en cuanto a la flexibilidad que permite en los desarrollos y reflejar las conclusiones obtenidas.
- Trabajo de diseño con patrones. Consistirá en el análisis y documentación de la aplicación de los patrones de diseño a un desarrollo software a su alcance –propio o de su entorno profesional— o bien a librerías estándar de Java del tipo JUnit.
Ambos se pueden realizar, y entregar, en cualquier momento a lo largo del semestre y se califican al final de la convocatoria correspondiente (junio o septiembre).
|
Criterios de evaluación |
Criterios de evaluación |
- Trabajo de diseño arquitectónico. Se evalúa la destreza para obtener información útil, el rigor en el uso de los criterios de selección, comparación y evaluación de las herramientas, la ética y honestidad al mostrar las capacidades individuales para manejar las ideas de MDA, junto a las de las arquitecturas del software revisadas hasta el Tema 5, y concluir, personalmente, la manera de obtener una utilidad en los desarrollos de software a los que se enfrente, mediante la aplicación de esos conceptos o su reutilización. Así mismo, también se evalúa la capacidad para argumentar y transmitir las ideas adecuadamente.
- Trabajo de diseño con patrones. Se trata de un ejercicio práctico en el que se evalúan las capacidades, habilidades y destrezas personales para mejorar el software mediante su diseño. Igualmente, se evalúan las mismas competencias transversales que en el trabajo anterior.
Ambos se pueden realizar, y entregar, en cualquier momento a lo largo del semestre y se califican al final de la convocatoria correspondiente (junio o septiembre).
|
Ponderación de la prueba presencial y/o los trabajos en la nota final |
Ponderación de la prueba presencial y/o los trabajos en la nota final |
Cada trabajo representará un 40% de la calificación final en la convocatoria. Para superar la asignatura, es imprescindible aprobar los dos trabajos. En el caso de superar sólo uno de ellos en la convocatoria ordinaria (junio), se mantiene su calificación para la convocatoria extraordinaria (septiembre). |
Fecha aproximada de entrega |
Fecha aproximada de entrega |
(17/02/2025, recomendado para el trabajo de MDA) y 09/06/2025 en la convocatoria ordinaria. 08/09/2025 en la convocatoria extraordinaria. |
Comentarios y observaciones |
Comentarios y observaciones |
Para superar la asignatura, es imprescindible aprobar los dos trabajos. En el caso de superar sólo uno de ellos en la convocatoria ordinaria (junio), se mantiene su calificación para la convocatoria extraordinaria (septiembre).
|
PRUEBAS DE EVALUACIÓN CONTINUA (PEC) |
PRUEBAS DE EVALUACIÓN CONTINUA (PEC)
|
¿Hay PEC? |
¿Hay PEC? |
No |
Descripción |
Descripción |
|
Criterios de evaluación |
Criterios de evaluación |
|
Ponderación de la PEC en la nota final |
Ponderación de la PEC en la nota final |
|
Fecha aproximada de entrega |
Fecha aproximada de entrega |
|
Comentarios y observaciones |
Comentarios y observaciones |
|
OTRAS ACTIVIDADES EVALUABLES
|
¿Hay otra/s actividad/es evaluable/s? |
¿Hay otra/s actividad/es evaluable/s? |
Si,no presencial |
Descripción |
Descripción |
Participación en los foros y grupos de discusión, temáticos, del curso virtual.
|
Criterios de evaluación |
Criterios de evaluación |
Se evaluará el grado de participación, actitud constructiva y capacidad innovadora de las intervenciones y aportaciones. También se valorará la capacidad de expresión y la habilidad para argumentar ideas propias y aprovechar argumentos ajenos para deducir planteamientos nuevos.
|
Ponderación en la nota final |
Ponderación en la nota final |
Representará; un 20% de la calificación final. La calificación de esta actividad se realiza, únicamente, en lo que se refiere a la participación hasta la convocatoria de junio. Si no se supera la asignatura en dicha convocatoria, la calificación obtenida se aplica en septiembre, sin modificaciones. |
Fecha aproximada de entrega |
Fecha aproximada de entrega |
09/06/2025 |
Comentarios y observaciones |
Comentarios y observaciones |
La calificación de esta actividad se realiza, únicamente, en lo que se refiere a la participación hasta la convocatoria de junio. Si no se supera la asignatura en dicha convocatoria, la calificación obtenida se aplica en septiembre, sin modificaciones.
Si hay participación, la calificación siempre es >= 5. En caso contrario, es 0.
No es obligatoria la realización de esta actividad ni es imprescindible para superar la asignatura.
|
¿Cómo se obtiene la nota final?
|
TR1: Calificación del 'Trabajo de diseño arquitectónico'. Aprobado si TR1 >= 5.
TR2: Calificación del 'Trabajo de diseño con patrones'. Aprobado si TR2 >= 5.
PF: Calificación de la 'Participación en los foros temáticos'. Si hay participación en los foros temáticos, la calificación siempre es PF >= 5. En caso contrario, es 0.
NF: Calificación final en la asignatura.
Únicamente si se cumple la condición TR1 >= 5 y TR2 >= 5, se aplica el algoritmo:
NF = 0'4 x TR1 + 0'4 x TR2 + 0'2 x PF
Si PF = 0, TR1 >= 5 y TR2 >= 5 pero, de la aplicación de la fórmula anterior, resulta que 4 <= NF < 5, entonces NF = 5.
La asignatura está superada si NF >= 5.
|
Para el Tema 1 y el punto 1 del Tema 3: DAVID GARLAN AND MARY SHAW. An Introduction to Software Architecture. 1994. Tecnical Report CMU/SEI-94-TR-021 https://www-2.cs.cmu.edu/afs/cs/project/able/ftp/intro_softarch/intro_softarch.pdf (Visitado en 27/04/2023)
Para los Temas 2 y 4: Capítulo 2 y 3 de Raphael C. Malveau, Thomas J. Mowbray. Software Architect Bootcamp: A Programmer's Field Manual. Primera edición 2000. Prentice Hall. ISBN 10: 0130274070 / 0-13-027407-0. ISBN 13: 9780130274076.
En la segunda edición de este libro, le correspondería la lectura del capítulo 2, 3 y 4. La referencia es: Raphael C. Malveau, Thomas J. Mowbray. Software Architect Bootcamp. Segunda edición 2003. Prentice Hall. ISBN 10: 0-13-141227-2. ISBN-13: 978-0-13-141227-9.
El texto se puede leer en Software Architect Bootcamp (visitado en 27/04/2023), como libro electrónico, a través de Biblioteca UNED y la matrícula activa (ver instrucciones aquí).
Para el Tema 6: Bert Bates, Kathy Sierra, Eric Freeman, Elisabeth Robson. Head First Design Patterns. O'Reilly Media Inc.; 1ª Edición (4 de noviembre de 2004). ISBN 10: 0596007124. ISBN 13: 978-0596007126.
En relación con los materiales de aprendizaje propuestos, a partir del Tema 3 del programa de contenidos, la asignatura se plantea como una exposición panorámica de diversas líneas de uso y aplicación relacionadas con el diseño arquitectónico y detallado; proponiendo al estudiante que profundice en aquellas que sean de su interés. Por ello, en ningún caso dichos materiales son vinculantes y se pueden sustituir por otros de mayor vigencia, o especialización, en el ámbito que más le interese al estudiante.
Por otro lado, los estudiantes con matrícula activa disponen de acceso a casi la totalidad de la bibliografía que se propone para esta asignatura, como material electrónico, a través de la Biblioteca UNED (requiere identificación válida).
Para el punto 2 del Tema 3: Clemens Szyperski; Gruntz, D. y Murer, S. Component Software - Beyond Object-Oriented Programming. Addison-Wesley Professional. Segunda edición, 2002. ISBN 10: 0201745720. ISBN 13: 978-0201745726.
Para el Tema 5:
- Model Driven Architecture. https://www.omg.org/mda/.
- Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise. MDA Distilled. Addison-Wesley Professional (March 3, 2004). ISBN 10: 0201788918. ISBN 13: 978-0201788914.
Para el Tema 6: Erich Gamma, Kent Beck. JUnit: A Cook's Tour. Libro electrónico httpss://curlunit.sourceforge.net/doc/cookstour/cookstour.htm. (Visitado 27/04/2023)
En el curso virtual se facilitarán los recursos de estudio (bibliografía recomendada) cuya distribución esté permitida; así como el acceso (a través de los servicios de documentación de la Biblioteca UNED) al resto de materiales.
Además, el equipo docente mantiene una página web en la que se mantienen esos contenidos, información y materiales: la Página Web de la Asignatura —https://www.issi.uned.es/Master_ISSI/softwarch/index.htm—.
En relación a los materiales de aprendizaje propuestos, a partir del Tema 3 del programa de contenidos, la asignatura se plantea como una exposición panorámica de diversas líneas de uso y aplicación. Por ello, en ningún caso dichos materiales son vinculantes y se pueden sustituir por otros de mayor vigencia o especialización en el ámbito que le interese al estudiante. Por otro lado, los estudiantes con matrícula activa disponen de acceso a casi la totalidad de la bibliografía que se propone para esta asignatura, como material electrónico, a través de la Biblioteca UNED.