Información general


Tipo de asignatura: obligatoria

Coordinador: Rosa Herrero Antón

trimestre: Tercer trimestre

Créditos: 4

Profesorado: 

Pedro Riera Martorell

Idiomas de impartición


  • Català

El idioma de impartición principal en clase es el catalán.

Sin embargo:

- Todo el código expuesto está en inglés
- Las herramientas usadas y material adicional están en inglés,
- Todo el código que se entregue debe estar en inglés. Exámenes y prácticas que consistan en redactar deben estar o en catalán o castellano 

Competencias


competencias básicas
  • B2_Que los estudiantes sepan aplicar sus conocimientos en su trabajo o vocación de una forma profesional y tengan las competencias que demuestran mediante la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio

  • B4_Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tan especializado como no especializado

  • B5_Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

Competencias específicas
  • EIS1_Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y que se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la ingeniería del software

  • EIS2_Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto, mediante la búsqueda de compromisos aceptables, dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones

  • EIS3_Capacidad para dar solución a problemas de integración en función de las estrategias, estándares y tecnología disponibles

  • EIS4_Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales

  • EIS5_Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que se puedan presentar

  • EIS6_Capacidad para diseñar soluciones apropiadas en uno o más dominios de aplicación, utilizando métodos de la ingeniería del software que integren aspectos éticos, sociales, legales y económicos

  • ESI2_Capacidad para determinar los requisitos de los sistemas de información y comunicación de una organización, atendiendo a aspectos de seguridad y cumplimiento de la normativa y legislación vigente

  • ESI3_Capacidad para participar activamente en la especificación, diseño, implementación y mantenimiento de los sistemas de información y comunicación

competencias transversales
  • T1_Que los estudiantes conozcan un tercer idioma, que será preferentemente el inglés, con un nivel adecuado de forma oral y por escrito, de acuerdo con las necesidades que tendrán las graduadas y graduados en cada titulación

  • T2_Que los estudiantes tengan capacidad para trabajar como miembros de un equipo interidisciplinar ya sea como un miembros más, o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles

Descripción


La asignatura de'Ingeniería del Software III del tercer trimestre de tercer curso, es la última de las tres asignaturas llamadas Ingeniería del Software. Su impartición está pensada a dedicar 3 ECTS en la parte de teoría y 1 ECTS a practicar los conceptos expuestos en teoría. 

En esta asignatura se explicarán nuevos Patronos de Diseño de Software y temas relacionados con la Ingeniería de Requisitos, poniendo el énfasis en las implicaciones de las técnicas Agile y Lean en el diseño y desarrollo de software.

Otro de los temas abordados en esta asignatura será el Testing, realizando una extensión de las técnicas ya vistas en Ingeniería del Software I y II, introduciendo diferentes estrategias y la depuración. El uso del Testing para mejorar la calidad del código y su mantenibilidad es clave. 

Contenidos


1.      Patrones de diseño de software

1.1. Programación funcional

1.2. High Cohesion / Low Coupling

1.3. UML drawings, relations, and dependency directions

1.4. plugin Architecture

1.5. patrón SOLID

1.6. Patrón Command.

1.7.  Patrón Observer. 

1.8. Patrón Event Target.

1.9. Event Bus.

1.10.  Patrón Modelo Vista Controlador.

2.      Pruebas del software

2.1.  Estrategias de prueba y técnicas. AAA & FIRST.

2.2.  Desarrollo impulsado por prueba

2.3. Code Coverage

2.4. Law of Demeter

2.5. dependency Injection

2.6. Lower 's' singleton pattern

2.7. Revisión de Código

2.8. Professionalism as emergence of Testing + Agile

3.      Ingeniería de Requisitos            

3.1.  Introducción.

3.2.  Método de captura de requisitos: Lean

3.3. Agile, la búsqueda de la confianza.

Sistema de evaluación


La nota final se calculará con las calificaciones de las actividades ponderadas de la forma siguiente:

·          Examen E1: 30%

·          Examen E2: 30%

·          Prácticas de la P1 en la P4: 40% (10% cada una de las prácticas)

La nota de la parte teórica, TR, es la media de los exámenes E1 y E2. La nota de la parte práctica, PR, es la media de las prácticas P1 a P4. Para poder superar la asignatura es necesario que tanto TR como PR sean iguales o superior a 5 (hay que aprobar teoría y práctica por separado) En este caso la nota de final NF será la ponderación según está descrito más arriba ( 40% PR, 30% E1 y 30% E2). De lo contrario será la mínima de ellas.

Sólo podrán recuperarse las pruebas E1 y E2 en una única prueba de toda la asignatura (las prácticas no se pueden recuperar). En caso de recuperación, el 60% de la nota final de la asignatura será la mayor entre el examen de recuperación ER y la obtenida en las pruebas E1 y E2.

Para poder realizar el examen de recuperación del estudiante deberá cumplir las tres condiciones siguientes:

-          La nota de la asignatura es inferior a cinco.

- Al menos uno de los E1 o E2 están por encima de 4 y el alumno se ha presentado a ambos.

-          Al menos tiene un 3 de nota de PS prácticas. 

Bibliografía


Básico

Clean Agile: Volver a lo básico
Robert C. Martin, Person, ISBN 9780135781869

Patrones de diseño: Elementos de software orientado a objetos reutilizable.

Gama, Eric et all. Addison-Wesley, golpe. 2003. ISBN 9788478290598.

Clean Architecture: En Craftman's Guide to Software Structure and Design
Robert C. Martin, Person, ISBN 9780134494166

Clean Craftsmanship: Disciplinas, Standards, and Ethics
Robert C. Martin, Person, ISBN 9780136915713

Complementario

Refactorización: mejora del diseño del código existente
Martin Fowler, Addison-Wesley Professional, ISBN 9780134757599

UML y patrones: una introducción al análisis y diseño orientado a objetos y el Proceso unificada.

Larman, CRAI Prentice Hall, golpe. 2003. ISBN 978 8420534382.