Main menu:

Asignaturas de Ingeniería del Software










Calidad de Software

Competencias desarrolladas:

  • Comprender el papel y la importancia, los principios y conceptos de la calidad del software.
  • Comprender cómo se desarrollan e integran los modelos y métricas de calidad.
  • Desarrollar un plan de aseguramiento de la calidad acorde a un proceso particular.
  • Ejecutar revisiones, inspecciones y auditorías de productos y procesos.

Desarrollo de software dirigido por modelos

Competencias desarrolladas:

  • Conocer diferentes tecnologías de modelado, metamodelado y transformación de modelos.
  • Saber definir lenguajes específicos de dominio (usando técnicas de metamodelado, ontologías, etc).
  • Conocer herramientas de generación de código OO a partir de modelos.

Diseño de software

Competencias desarrolladas:

  • Capacidad para diseñar soluciones apropiadas en distintos dominios de aplicación utilizando patrones de diseño.
  • Capacidad para identificar y analizar problemas, así como diseñar y desarrollar soluciones software de calidad, aplicando patrones de diseño.

Mantenimiento y evolución de software

Competencias desarrolladas:

  • Valorar y priorizar los cambios necesarios para satisfacer nuevos requisitos, reconciliando los objetivos en conflicto dentro de las limitaciones derivadas del coste, del tiempo y de la existencia de aplicaciones existentes.
  • Saber identificar, analizar, diseñar, desarrollar, verificar, planificar y documentar adecuadamente los cambios necesarios.
  • Saber evaluar los costes y gestionar riesgos potenciales asociados.

Métodos formales industriales

Competencias desarrolladas:

  • Conocer diferentes marcos y formalismos ágiles para expresar propiedades de programas.
  • Conocer y saber expresar en lógica temporal los principales tipos de propiedades de los sistemas reactivos: alcanzabilidad, seguridad, vivacidad y equidad.
  • Dominar las técnicas y herramientas de verificación algorítmica.
  • Saber especificar políticas de seguridad del código y conocer las principales técnicas de certificación del software.

Análisis, validación y depuración de software

Competencias desarrolladas:

  • Capacidad para aplicar técnicas de pruebas para asegurar la calidad del software.
  • Capacidad para validar soluciones software utilizando herramientas modernas para testeo de software.
  • Capacidad para identificar, evaluar y gestionar los riesgos potenciales asociados defectos que pudiera presentar el software desarrollado.

Análisis y especificación de requisitos

Competencias desarrolladas:

  • Capacidad para identificar, valorar, negociar y especificar requisitos de múltiples usuarios atendiendo a las restricciones de tiempo, coste y recursos disponibles.
  • Capacidad para identificar, evaluar y gestionar los riesgos potenciales asociados a defectos que pudiera presentar el software desarrollado.
  • Saber validar que los requisitos documentados se corresponden con los requisitos negociados; y gestionar la evolución de los requisitos.

Integración e interoperabilidad

Competencias desarrolladas:

  • Dominar los estándares, técnicas y estrategias actuales para llevar a cabo la integración de sistemas software.
  • Conocer las tecnologías de Comunicación entre Sistemas (Remoting/RMI, Mensajería (Colas de Mensajes), Servicios Web.
  • Conocimiento práctico de arquitecturas SOA, buses de servicios, adaptadores, formatos de Intercambio y patrones de diseño para la Integración.

Proceso de software

Competencias desarrolladas:

  • Conocer distintos “procesos software” a aplicar en el desarrollo o mantenimiento de un sistema.
  • Saber personalizar un “proceso software” en función de las características propias de la organización, del proyecto a realizar (objetivos, costes, plazos) y del equipo de desarrollo disponible.
  • Conocer cómo se realiza la identificación, evaluación y gestión de riesgos asociados a los requisitos identificados en una metodología ágil.

Proyecto de ingeniería de software

Competencias desarrolladas:

  • Saber acotar el proyecto de acuerdo con el tiempo y recursos disponibles.
  • Saber seleccionar las tecnologías de desarrollo y de implantación, haciendo uso de componentes, frameworks o soluciones existentes.
  • Saber elaborar modelos para especificar el diseño y evaluar alternativas, e implementar una solución.
  • Gestionar las estimaciones de tiempo y compromisos de funcionalidad con el cliente, teniendo presentes los riesgos (principalmente asociados a los desafíos tecnológicos) y detectar posibles desviaciones para tomar acciones correctivas.