El objetivo principal de la asignatura es el de proporcionar una visión general de la ingeniería del software, haciendo especial énfasis en las etapas de especificación y de diseño. Se pretende que al terminar la asignatura el alumno sea capaz de especificar un sistema sencillo mediante la notación UML y de diseñarlo usando la misma notación y aplicando el patrón arquitectónico domain model y
alguno de los patrones de diseño más conocidos.
Profesorado
Responsable
Ernest Teniente Lopez (
)
Otros
Dolors Costal Costa (
)
José Francisco Crespo Sanjusto (
)
Manuel Rello Saltor (
)
Xavier Oriol Hilari (
)
Horas semanales
Teoría
2
Problemas
2
Laboratorio
0
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias Técnicas
Competencias técnicas comunes
CT2 - Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
CT2.1
- Demostrar conocimiento y capacidad de aplicación de los principios, metodologías y ciclos de vida de ingeniería de software.
CT2.3
- Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
CT2.4
- Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los Sistemas de información, incluidos los basados en web.
CT3 - Demostrar conocimiento y comprensión del contexto organizativo, económico y legal en el que desarrolla su trabajo (Conocimiento adecuado del concepto de empresa, marco institucional y jurídico de la empresa, organización y gestión de empresas.)
CT3.3
- Saber encontrar e interpretar la información básica que permite evaluar el entorno económico de la organización.
CT5 - Analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, escogiendo el paradigma y los lenguajes de programación más adecuados.
CT5.5
- Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
CT6.1
- Demostrar conocimiento y tener capacidad para administrar y mantener sistemas, servicios y aplicaciones informáticas.
CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
CT7.1
- Demostrar conocimiento de las métricas de calidad y saber utilizarlas.
CT8 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
CT8.1
- Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
CT8.2
- Asumir los roles y las funciones del jefe del proyecto y aplicar, en el ámbito de las organizaciones las técnicas de gestión y programación del tiempo, de los costes y de los aspectos financieros, de los recursos humanos y del riesgo.
CT8.3
- Demostrar conocimiento y saber aplicar las técnicas apropiadas para modelar y analizar los diferentes tipos de decisiones.
CT8.4
- Elaborar el pliego de condiciones técnicas de una instalación informática que cumpla los estándares y la normativa vigente.
CT8.5
- Gestionar y resolver los problemas y conflictos gracias a la capacidad de generar alternativas o escenarios de futuro convenientemente analizados, integrando los aspectos de incertidumbre y los múltiples objetivos a considerar.
CT8.6
- Demostrar comprensión de la importancia de la negociación, de los hábitos de trabajo efectivos, del liderazgo y de las habilidades de comunicación en todos los entornos de desarrollo de software.
CT8.7
- Controlar versiones y configuraciones del proyecto.
Competencias Transversales
Comunicación eficaz oral y escrita
G4 [Avaluable] - Comunicar de forma oral y escrita con otras personas conocimientos, procedimientos, resultados e ideas. Participar en debates sobre temas propios de la actividad del ingeniero técnico en informática.
G4.2
- Utilizar estrategias para preparar y llevar a cabo las presentaciones orales y redactar textos y documentos con un contenido coherente, una estructura y un estilo adecuados y un buen nivel ortográfico y gramatical. Hacer una presentación oral ante un auditorio restringido. Escoger adecuadamente los contenidos, el estilo, la temporización y el formato de la presentación. Capacidad de comunicación efectiva con el usuario en un lenguaje no técnico así como de comprender sus necesidades.
Objetivos
Tener una visión general del proceso de la ingeniería del software
Competencias relacionadas:
CT2.1,
CT6.1,
CT8.2,
CT3.3,
Ser capaces de entender los requisitos de un sistema software y relacionarlos con partes de las especificaciones
Competencias relacionadas:
CT8.3,
CT8.6,
CT8.5,
CT3.3,
Ser capaces de escribir las especificaciones de un sistema software en UML
Competencias relacionadas:
CT8.1,
CT8.3,
G4.2,
CT8.5,
CT8.7,
CT3.3,
CT5.5,
CT2.3,
Conocer las propiedades deseables de las especificaciones de un sistema software
Competencias relacionadas:
CT7.1,
CT8.4,
Ser capaces de analizar la completitud y la consistencia de las especificaciones
Competencias relacionadas:
CT8.1,
CT8.3,
CT7.1,
CT5.5,
CT2.3,
Conocer los principios generales de la arquitectura del software y del modelo de diseño orientado a objetos en UML
Competencias relacionadas:
CT8.1,
CT8.5,
Comprender la estructura lógica en capas de un sistema de información: capa de presentación, de dominio y de gestión de datos
Competencias relacionadas:
CT8.1,
CT8.3,
CT2.4,
Saber transformar un modelo de especificación UML en uno de diseño
Competencias relacionadas:
G4.2,
CT5.5,
CT2.4,
Conocer el concepto de patrón de diseño y dominar el uso de algunos de los patrones más conocidos
Competencias relacionadas:
CT2.1,
CT8.1,
CT8.3,
G4.2,
CT2.3,
Conocer los conceptos básicos de la prueba del software
Competencias relacionadas:
CT2.1,
CT8.3,
CT7.1,
CT8.4,
CT5.5,
Contenidos
Introducción a la ingeniería del software
Requisitos de un sistema software y su especificación
El Modelo de Casos de Uso en UML
Especificación de sistemas software con UML
- El esquema estructural de los datos
- El esquema del comportamiento
- Los diagramas de estado
Introducción al diseño de software
Diseño orientado a objetos con UML
Actividades
ActividadActo evaluativo
Estudio de la introducción a la ingeniería del software
Se evaluarán parte de los objetivos 1 a 5 Objetivos:12345 Semana:
6 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h
Control del modelo del comportamiento en UML
Se evaluarán parte de los objetivos 1 a 5 Objetivos:2345 Semana:
9 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h
Control del diseño de software
Se evaluarán parte de los objetivos 6 a 10 Objetivos:678910 Semana:
15 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Metodología docente
La docencia de la asignatura está estructurada en clases de teoría y clases de problemas.
En las clases de teoría los profesores presentan los contenidos esenciales de la asignatura. Normalmente los profesores usan transparencias, que los estudiantes pueden obtener, y deberían hacerlo, antes de las clases.
En las clases de problemas se practican los contenidos de la asignatura (los presentados en clase y los adquiridos autónomamente) mediante la realización de problemas. A veces se requiere que los problemas se hayan resuelto (o al menos intentado resolver) antes de la clase, y entonces la clase se destina a analizar y discutir colectivamente las mejores soluciones. Otras veces, el problema se plantea y se ha de resolver en la misma clase.
Método de evaluación
Durante el curso se harán tres actos evaluatorios: un examen en horario de clase (C1) y dos exámenes fuera del horario de clase (FHC1 y FHC2). Para el cálculo de la nota final también se tendrà en cuenta la participación activa en clase. La distribución secuencial de estos actos evaluatorios y la su contribución a la nota final de la assignatura vienen definidos por la fórmula siguiente:
Nota Final = 40% FHC1 + 15% C2 + 40% FHC2 + 5% partticipación
teniendo en cuenta que:
La nota de participación se consigue entregando un mínimo del 75% de los ejercicios propuestos y participando activamente en clase.
Nota Final = NP si el alumno no se presenta a la FHC2 y su nota final acumulada es <4.
No hay examen final.
Además de la nota de la asignatura, habrá una nota a parte de la competencia genérica asignada a la asignatura, con valores A, B, C, D o NA donde:
o A indica que la competencia se ha superado con un nivel de excelencia
o B indica que la competencia se ha superado con el nivel deseado
o C indica que la competencia se ha superado con un nivel suficiente
o D indica que la competencia no se ha superado
o NA indica que la competencia no se ha evaluado