
Ingeniería de Software
Código: 106561Créditos: 6
| Titulación | Tipo | Curso |
|---|---|---|
| Inteligencia Artificial / Bachelor in Artificial Intelligence | OP | 3 |
Profesor/a de contacto
- Nombre :
- Marc Castello Torrellas
- Correo electrónico :
- marc.castello@uab.cat
Idiomas de los grupos
Puede consultar esta información al final del documento.
Prerrequisitos
Dado que la asignatura es una introducción a la ingeniería del software, se asumirá que el estudiante no posee conocimientos previos sobre la materia. Será responsabilidad de la propia asignatura proporcionar a los estudiantes los medios para adquirir los conocimientos descritos en el apartado de contenidos del curso (apartado 6 de esta guía). Sin embargo, se recomienda haber superado la asignatura de primer curso "Fundamentos de Programación".
Objetivos
Esta asignatura es introductoria al proceso de ingeniería del software. El objetivo general es ofrecer una visión global y ordenada del proceso de desarrollo del software que no se limite únicamente a la programación (la cual constituye solo una fase dentro de todo el proceso de la ingeniería del software). Se introducirán las actividades fundamentales que constituyen el proceso de desarrollo (análisis de requisitos, diseño, implementación, pruebas y mantenimiento), en particular aquellas relacionadas con la Inteligencia Artificial.
Se trata, por tanto, de que el alumno adquiera una visión general de qué es un proceso de desarrollo de software, cómo se modela este, qué herramientas se utilizan, cómo se gestiona la calidad y cómo se administra un proyecto. Más concretamente, los objetivos son:
-
Proporcionar una visión general del proceso de desarrollo del software, los paradigmas, las actividades y los objetivos de cada actividad.
-
Conocer qué es el modelado del software, la importancia y la dificultad de la especificación de requisitos y el diseño en sus diferentes vistas.
-
Aprender los conceptos básicos de UML para trabajar de manera práctica en el modelado del software.
-
Introducir al alumno/a en los principios, conceptos y técnicas que se aplican para administrar y controlar la calidad del software.
-
Dar a conocer las técnicas de administración requeridas para planificar, organizar, monitorizar y controlar proyectos de software.
-
Familiarizarse con el modelo SCRUM como el paradigma de desarrollo evolutivo más relevante.
Resultados de aprendizaje
- CM01 (Planificar e implementar proyectos de software en el ámbito de la inteligencia artificial que se ajusten a los requerimientos de la aplicación, abordando todas las fases de desarrollo del proyecto y siguiendo los principios y métodos estándares para la gestión y el desarrollo de proyectos de software) Planificar e implementar proyectos de software en el ámbito de la inteligencia artificial que se ajusten a los requerimientos de la aplicación, abordando todas las fases de desarrollo del proyecto y siguiendo los principios y métodos estándares para la gestión y el desarrollo de proyectos de software
- KM05 (Identificar los conceptos básicos de la programación estructurada y orientada a objetos y de la representación de información mediante estructuras de datos) Identificar los conceptos básicos de la programación estructurada y orientada a objetos y de la representación de información mediante estructuras de datos
- SM05 (Seleccionar las estructuras algorítmicas y de representación de datos y las técnicas de programación apropiadas para la resolución eficiente de problemas algorítmicos) Seleccionar las estructuras algorítmicas y de representación de datos y las técnicas de programación apropiadas para la resolución eficiente de problemas algorítmicos
- SM06 (Desarrollar el diseño, codificación, depuración y prueba de programas utilizando las herramientas adecuadas para garantizar la calidad del software) Desarrollar el diseño, codificación, depuración y prueba de programas utilizando las herramientas adecuadas para garantizar la calidad del software
Contenidos
BLOQUE 1. EL SOFTWARE Y LA INGENIERÍA DEL SOFTWARE
Tema 1. Principios de la ingeniería del software.
- Definición y objetivos de la IS: Definición, características, aplicaciones del software. Definición de IS y objetivos de la IS.
- Evolución del software: Etapas, crisis del software, problemas y causas.
- Proceso, método y herramienta: Definiciones, actividades en el proceso de desarrollo del software.
- Paradigmas del desarrollo del software: Modelo lineal secuencial (ciclo de vida clásico), modelo de prototipos, modelo evolutivo y modelo en espiral.
BLOQUE 2. ADMINISTRACIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE
Tema 2. SCRUM.
- Introducción, metodología Ágil de gestión de proyectos.
- SCRUM: Características e historia.
- Componentes de SCRUM: Roles, artefactos, procesos, escalabilidad y Scrum de Scrums.
- Herramientas de software.
- Otros modelos ágiles: Lean, Xtreme programming, Kanban.
- Un caso de estudio: Construcción de una ciudad con Lego utilizando Scrum.
BLOQUE 3. MODELADO DEL SOFTWARE
Tema 3. Análisis de Requisitos del Software.
- Introducción: Tipos de requisitos, tareas a realizar.
- Comprensión delproblema: Técnicas de comunicación, problemas asociados, principios del análisis.
- Especificación de requisitos: Propiedades deseables de una ER, estándares de IS, revisión y validación de la especificación.
Tema 4. Diseño del Software.
- Introducción: Proceso de diseño, diseño de datos, diseño arquitectónico, diseño de la interfaz, diseño procedimental y principios (objetivos) del diseño.
- Conceptos del diseño: Abstracción, modularidad y refinamiento.
- Diseño modular efectivo: Independencia funcional, cohesión, acoplamiento, heurísticas para un diseño modular efectivo.
- Diseño de Interfaces de Usuario.
Tema 5. UML (Unified Modeling Language)
- Evolución e historia de UML.
- Vistas de UML: Vista de casos de uso, vista lógica, vista de componentes y vista de despliegue.
BLOQUE 4. ADMINISTRACIÓN DE LA CALIDAD DEL SOFTWARE
Tema 6. Calidad del software.
- Introducción: Conceptos de calidad.
- Prueba del software: Estrategias de prueba, prueba de aplicaciones convencionales, prueba de aplicaciones web.
- Administración de la configuración del software.
Actividades formativas y Metodología
| Título | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|
| Tutoria | 15 | 0,6 | |
| Entrevistas tutorización caso práctico. | 15 | 0,6 | |
| Preparación y Estudio | 30 | 1,2 | |
| Trabajo práctico | 38 | 1,52 | |
| Seminarios/problemas | 14 | 0,56 | |
| Clases de teoría | 30 | 1,2 |
La asignatura de Ingeniería del Software tiene un fuerte componente aplicado, pero también requiere una parte teórica, fruto de la experiencia, a partir de la cual se implementan las decisiones prácticas. Por tanto, la asignatura no será puramente ABP (Aprendizaje Basado en Problemas), sino una combinación de ABP y método tradicional. Se propondrá al alumnado un caso práctico (problema genérico) de dimensión real, en torno al cual se estructurarán las sesiones de problemas y el trabajo práctico. El estudiante deberá asumir el rol de analista / arquitecto del software para tomar las decisiones adecuadas que conduzcan a la construcción de una propuesta de diseño del sistema planteado. El profesor asumirá el papel de tutor y, en determinadas situaciones, el de cliente, fomentando simulaciones de diálogo entre desarrollador y cliente.
La asignatura consta de 4 horas semanales presenciales. No se diferencian horarios entre teoría, problemas y prácticas de laboratorio. Durante las horas presenciales se alternarán clases de teoría, problemas o prácticas, según la planificación que se indicará el día de presentación de la asignatura. De forma general, la explicación de los contenidos teóricos fundamentales se concentrará en las primeras sesiones del curso (aproximadamente las primeras 6 semanas), aunque también se intercalarán progresivamente algunas sesiones de problemas y casos prácticos. Una vez impartidos los contenidos teóricos, todas las sesiones restantes se dedicarán al trabajo basado en problemas, identificando algunas sesiones de asistencia obligatoria donde se realizará la práctica (en equipos de n personas, cuyo número se indicará al inicio del curso) o se resolverán problemas que deberán entregarse al finalizar la sesión.
TEORIA
Consiste en clases magistrales con material multimedia disponible en el Campus Virtual de la UAB. El objetivo principal de estas clases es introducir las nociones básicas sobre los procesos, métodos y herramientas relativos a la visión del ciclo de vida del software desde un punto de vista de ingeniería. Se expondrán los principios y paradigmas de la Ingeniería del Software, las distintas actividades y las tareas que se deben llevar a cabo en cada una de ellas. Las clases teóricas deben permitir al alumnado adquirir una visión real del rigor, la planificación y la sistemática que requiere el desarrollo profesional del software.
SERMINARIOS /PROBLEMAS
Los seminarios son clases con trabajo participativo del alumnado. Tienen una doble función, enlazando por un lado con las clases magistrales y por otro con las sesiones prácticas sobre el problema a resolver en equipo. Por un lado, los seminarios complementarán los contenidos tecnológicos expuestos en las clases magistrales, completando su comprensión. Por otro lado, serán el marco de trabajo donde debatir, establecer las bases y desarrollar el problema guía. Se proporcionarán al estudiante los conocimientos necesarios para avanzar en el trabajo práctico o se le indicará dónde obtenerlos. En los seminarios se promueve principalmente la capacidad de análisis y síntesis, así como el razonamiento crítico y la toma de decisiones del estudiante ante la resolución del problema guía. Dado que se trata de una asignatura muy práctica y con contenidos teóricos de baja complejidad, se refuerza frecuentemente el trabajo práctico con resolución de problemas o actividades participativas. Los contenidos de los seminarios se coordinarán con las etapas del trabajo práctico.
SEGUIMIENTO DEL TRABAJO PRACTICO
No habrá sesiones presenciales de laboratorio. Los/las estudiantes resolverán el problema guía de forma autónoma en grupos reducidos, y el seguimiento se llevará a cabo durante las horas de clase en el horario regular. Las franjas de prácticas (12 horas durante el curso) constarán de dos partes. En primer lugar, cada equipo de prácticas presentará al resto de la clase el progreso de su trabajo (la persona encargada de la presentación será quien actúe como scrum master en esa iteración). En la segunda parte de la sesión, el/la tutor/a de prácticas tendrá una entrevista individual con cada equipo para hacer el seguimiento y la evaluación. Se sigue un desarrollo basado en SCRUM, donde cada incremento, denominado sprint, corresponde a una sesión.
La asistencia a las entrevistas de seguimiento será OBLIGATORIA para todos los/las estudiantes. La no asistencia afectará negativamente a la evaluación del trabajo práctico, impidiendo su superación si el número de ausencias supera el 15% de las sesiones. En caso de ausencia justificada, el profesorado considerará mecanismos de compensación. El tamaño de los equipos de prácticas se determinará al inicio del curso. De forma orientativa, serán equipos de 5 personas. Dado que la asistencia a las sesiones de seguimiento es obligatoria y se realiza durante elhorario presencial, es importante que todas las personas miembros de un equipo estén matriculadas y asistan en el mismo grupo.
TRABAJO PRACTICO
Se entregará al alumnado al inicio del curso un problema guía. Este problema tendrá dos funciones. En primer lugar, se utilizará como ejemplo en las clases de seminario, resolviendo aquellas partes que se correspondan con los contenidos de cada momento. En segundo lugar, puede entenderse como el enunciado de una práctica que se irá resolviendo por etapas a lo largo del curso. Los/las estudiantes se organizarán en equipos de trabajo. La resolución del trabajo se llevará a cabo de forma autónoma, con el seguimiento semanal previamente descrito.
Evaluación
Actividades de evaluación continuada
| Título | Peso | Horas | ECTS | Resultados de aprendizaje |
|---|---|---|---|---|
| Evaluación práctica | 60% | 4 | 0,16 | CM01, KM05, SM05, SM06 |
| Evaluación teórica | 40% | 4 | 0,16 | CM01, KM05, SM05 |
INDICADORES I VALORACION
Esta asignatura no contempla el sistema de evaluación única.
La evaluación se llevará a cabo en base al trabajo práctico desarrollado por el alumno e incluido en su portafolio (resolución final del problema guía, material generado en las actividades de los seminarios), el grado de implicación en los seminarios y los conocimientos tecnológicos adquiridos en la materia. Se contemplarán los siguientes instrumentos de evaluación:
- Avaluación Teórica (AT). Prueba escrita presencial para valorar el grado de conocimientos adquiridos por el alumno a nivel individual. Habrá dos pruebas parciales durante el curso que permitirán liberar materia siempre que la nota obtenida sea igual o superior a 4. La nota correspondiente a cada parcial tiene un peso del 50% en la nota final de la evaluación individual.
- Avaluación práctica (AP). Evalúa el rendimiento conjunto de los distintos grupos de trabajo para resolver el problema guía (proyecto) y las diferentes actividades presentadas en los seminarios (problemas). Consta de dos instrumentos:
Nota del Proyecto
Documentación entregada por el alumnado sobre su trabajo práctico. Se evaluará la resolución técnica del problema guía, la defensa del trabajo por parte de los alumnos en las entregas, el seguimiento de la evolución del trabajo y la participación activa en los seminarios.
Se evaluará a partir de entrevistas con el profesor, pruebas escritas breves, entregas o exposiciones de problemas y casos planteados en las actividades. Aunque este instrumento es de evaluación colectiva, a criterio del tutor/a, podrá ser calificado individualmente en casos donde la participación del alumno/a destaque (por exceso o defecto) respecto a su grupo.
Nota de los Problemas
Durante el curso el profesor pedirá al alumnado que resuelva algunos problemas por su cuenta, aparte de los que se resuelven conjuntamente en clase de problemas. Estas entregas son individuales.
La calificación final se obtendrá según la siguiente tabla:
| Nota | Nota Mínima | Nota media | Nota Mínima | Nota Media | ||||
| Parcial 1 | 4 | AT=0.5 Parcial_1+0.5 Parcial_2 | 5 | QF = 0.4 AT + 0.6 AP | ||||
| Parcial 2 | 4 | |||||||
| Problemas | 5 | AP=0.5 Problemas+0.5 Proyecto | 5 | |||||
| Proyecto | 5 |
En el momento de la publicación de cada evaluación se habilitará un período para revisar la nota. Se respetarán escrupulosamente los plazos de revisión de calificaciones; es decir, no se revisará ninguna calificación fuera de dicho período.
La asignatura será calificada como No Evaluable únicamente si el alumno no se ha presentado a ninguna de las pruebas de evaluación ni ha entregado, total o parcialmente, los trabajos.
En caso de no superar la asignatura porque alguna de las actividades de evaluación no alcanza la nota mínima requerida, la notanumérica en el expediente será el valor menor entre 4.5 y la media ponderada de las notas.
Se exceptúan los siguientes casos:
- Se otorgará la calificación de \"No evaluable\" a los/las estudiantes que no participen en ninguna actividad de evaluación.
- Se asignará la nota numérica de cero (0) si el/la estudiante ha cometido irregularidades en un acto de evaluación (por lo tanto, no será posible el aprobado por compensación).
Las Matrículas de Honor se otorgarán dentro de los límites establecidos por la normativa de la UAB (en función del número de matriculados) a las calificaciones más altas iguales o superiores a 9.
Para cada actividad de evaluación, se indicará un lugar, fecha y hora de revisión donde el/la estudiante podrá revisar la actividad con el profesor. En este contexto, se podrán presentar reclamaciones sobre la nota, que serán evaluadas por el profesorado responsable de la asignatura. Si el/la estudiante no se presenta a dicha revisión, no se revisará posteriormente la actividad.
Consulta el apartado \"PLAGIO\" para conocer las medidas aplicables en caso de irregularidades por copia o plagio en las actividades de evaluación.
RECUPERACIONES
- Evaluación Teórica (ET): Se realizarán dos exámenes parciales de teoría liberatorios durante el horario lectivo. Los alumnos que no superen una o ambas pruebas dispondrán de un examen de recuperación en la fecha de evaluación final programada por la titulación.
- Evaluación Práctica (EP): El trabajo práctico se evalúa mediante evaluación continua en las sesiones de seguimiento. Por tanto, no habrá ninguna actividad de recuperación al final del curso. No obstante, en relación con la resolución del proyecto, no entregar a tiempo o no superar alguna de las entregas intermedias puede recuperarse reprogramando la planificación del trabajo en sesiones posteriores, según acuerdo con el profesor.
FECHAS DE EVALUACIÓN
Las fechas de evaluación continua y entrega de trabajos se publicarán en el campus virtual y pueden estar sujetas a cambios por motivos de adaptación a posibles incidencias. Toda modificación se comunicará en el campus virtual, ya que se considera el medio habitual de comunicación entre profesorado y estudiantes.
ALUMNOS REPETIDORES
No se conservan calificaciones parciales (teoría o prácticas) de un curso para el siguiente. Sin embargo, a criterio del profesor y en función de las evaluaciones de cursos anteriores, se podrán establecer compensaciones.
PLAGIO
Sin perjuicio de otras medidas disciplinarias que se estimen oportunas, y de acuerdo con la normativa académica vigente, las irregularidades cometidas por un estudiante que puedan alterar la calificación se sancionarán con cero (0).
Por ejemplo, copiar, dejar copiar o plagiar en una actividad de evaluación supondrá suspenderla con un cero (0). Las actividades evaluadas de esta forma no serán recuperables. Si es necesario aprobar dicha actividad para superar la asignatura, esta quedará automáticamente suspendida con cero (0), sin posibilidad de recuperación en el mismo curso.
Estas irregularidades incluyen, entre otras:
- Copiar total o parcialmente una práctica,informe u otra actividad.
- Permitir que otros copien.
- Presentar un trabajo grupal que no haya sido elaborado íntegramente por los miembros del grupo.
- Presentar como propios materiales elaborados por terceros, incluso si son traducciones o adaptaciones, y en general, trabajos con elementos no originales ni exclusivos del estudiante.
- Tener dispositivos de comunicación (móviles, relojes inteligentes, etc.) accesibles durante exámenes o pruebas individuales.
Ninguna actividad evaluada por un estudiante que haya cometido irregularidades será convalidada.
En resumen: copiar, dejar copiar o plagiar equivale a un SUSPENSO con un cero (0), sin compensación ni convalidación en cursos posteriores.
USO DE TECNOLOGÍAS DE INTELIGENCIA ARTIFICIAL (IA)
El uso de tecnologías de IA como parte del desarrollo del trabajo está permitido, siempre que el resultado final refleje una contribución significativa del estudiante en el análisis y la reflexión personal. El estudiante deberá identificar claramente qué partes han sido generadas con IA, especificar las herramientas utilizadas e incluir una reflexión crítica sobre cómo estas han influido en el proceso y resultado de la actividad.
La falta de transparencia en el uso de la IA se considerará deshonestidad académica y podrá conllevar penalización en lacalificación de la actividad o sanciones mayores en casos graves.
ASISTENCIA OBLIGATORIA
La asistencia a las sesiones de seguimiento del proyecto es obligatoria. Estas sesiones forman parte del proceso de evaluación continua del trabajo práctico. La no asistencia injustificada a más del 15% de las sesiones de seguimiento podrá comportar no superar la evaluación del proyecto. En caso de ausencia justificada, el profesorado podrá establecer mecanismos de compensación adecuados.
REPROGRAMACIONES
Existe un protocolo de solicitud de reprogramación de actividades de evaluación según los casos especificados en los criterios e instrucciones de evaluación de la Escuela de Ingeniería. El alumnado que no pueda asistir a una actividad de evaluación por una causa justificada deberá realizar la solicitud correspondiente a la gestión académica de referencia. La reprogramación solo se aplicará en los supuestos previstos por la normativa y por los criterios de la Escuela.
ACLARACIÓN FINAL
La planificación detallada de las actividades, entregas y sesiones se publicará en el Campus Virtual, siempre dentro del marco establecido en esta guía docente.
Bibliografía
Pressman, R. S.; Maxim, B. R. Software Engineering: A Practitioner’s Approach. 9th edition. McGraw-Hill, 2020.
Sommerville, I. Software Engineering. 10th edition. Pearson, 2015.
IEEE Computer Society. Guide to the Software Engineering Body of Knowledge — SWEBOK Guide V4.0. 2024.
Schwaber, K.; Sutherland, J. The Scrum Guide. 2020.
Winters, T.; Manshreck, T.; Wright, H. Software Engineering at Google. O’Reilly, 2020.
ISO/IEC/IEEE 29119-1:2022. Software and systems engineering — Software testing — Part 1: General concepts.
NIST. Artificial Intelligence Risk Management Framework. 2023.
OWASP. OWASP Top 10 Web Application Security Risks. Versió vigent publicada pel projecte OWASP.
Software
Durante la asignatura se podrán utilizar herramientas de apoyo a la gestión de proyectos, el modelado, el prototipado y el desarrollo de software, como Jira, Trello, GitHub, GitLab, Miro, Figma, Balsamiq, draw.io, PlantUML o herramientas equivalentes.
No será necesario adquirir ningún software de pago. Siempre que sea posible, se utilizarán herramientas gratuitas, de código abierto o con licencias educativas. Se recomienda que el alumnado disponga de un ordenador portátil para el trabajo en equipo y el desarrollo del proyecto.
Software recomendado:
- Jira: https://www.atlassian.com/
- Miro: https://miro.com/
- Figma: https://www.figma.com/
- Balsamiq: https://balsamiq.com/
Grupos e idiomas de la asignatura
La información proporcionada es provisional hasta el 30 de noviembre. A partir de esta fecha, podrá consultar el idioma de cada grupo a través de este enlace. Para acceder a la información, será necesario introducir el CÓDIGO de la asignatura
| Tipo de docencia | Grupo | Idioma | Semestre | Turno |
|---|---|---|---|---|
| (TE) Teoría | 71 | Inglés | segundo cuatrimestre | tarde |
| (PAUL) Prácticas de aula | 711 | Inglés | segundo cuatrimestre | tarde |