Aumentar letras   Inicio   Información   Contactar   Mapa
Català   English

Ingeniería del Software I (ES1)

Créditos Dept. Tipo Requisitos
7.5 (6.0 ECTS) LSI
  • Obligatoria para la EI
  • Obligatoria para la ETIG
  • Optativa para la ETIS
PRED - Precorrequisito para la EI , ETIG
PS - Prerequisito para la ETIS

Profesores

Responsable:  Ernest Teniente Lopez (teniente@lsi.upc.edu)
Otros:Anna Queralt Calafat (aqueralt@lsi.upc.edu)
Maria Dolors Costal Costa (dolors@lsi.upc.edu)
Maria Ribera Sancho Samso (ribera@lsi.upc.edu)
Ruth Raventos Pages (raventos@lsi.upc.edu)

Objectivos Generales

El objetivo principal de la asignatura es el de aprender a especificar un sistema de información siguiendo el enfoque de la orientación a objetos y mediante la notación UML y OCL. También se pretende que el alumno conozca las metodologías más actuales de desarrollo de software, el concepto de prueba del software a nivel de especificación y que tenga unas nociones preliminares de la etapa de diseño de software.

Objectivos Específicos

Conocimientos

  1. Tener una visión general del proceso de la ingeniería del software.
  2. Conocer las propiedades deseables de la especificación.
  3. Conocer los elementos de UML y de OCL propios de la especificación.
  4. Conocer las propiedades de la arquitectura del software, algunos patrones de diseño arquitectónico y la actividad de normalizar el esquema conceptual de especificación.
  5. Conocer las metodologías más importantes de desarrollo de software.
  6. Conocer los conceptos básicos de las pruebas en la especificación.

Habilidades

  1. Saber distinguir las diversas etapas que componen todo proceso de ingeniería del software.
  2. Saber relacionar los requisitos con partes de la especificación.
  3. Saber especificar un sistema de información con orientación a objetos, en los lenguajes UML y OCL, a partir de sus requisitos.
  4. Saber definir el diagrama de clases de diseño a partir del esquema conceptual de datos de la especificación.
  5. Saber diseñar las pruebas de la especificación a realizar para un sistema concreto.

Competencias

  1. Capacidad para crear y utilizar modelos de la realidad.
  2. Saber aplicar el ciclo de resolución de problemas típico de la ciencia y la ingeniería: especificación, generación de ideas y alternativas, diseño de una estrategia de solución, ejecución de la estrategia, validación, interpretación y evaluación de los resultados. Capacidad para analizar el proceso una vez finalizado.
  3. Capacidad para estudiar de varias fuentes, identificando cuándo la información recibida a clase no es suficiente y buscando información complementaria.
  4. Capacidad para aprender de forma autónoma.
  5. Capacidad de iniciativa: ser resolutivo, saber tomar decisiones y actuar para solucionar un problema.

Contenidos

Horas estimadas de:

T P L Alt L Ext. Est O. Ext.
Teoria Problemas Laboratorio Otras actividades Laboratorio externo Estudio Otras horas fuera del horario fijado

1. Introducción a la ingeniería del software
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 4,0 0 6,0

2. Requisitos del software (funcionales y no funcionales)
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 6,0 0 8,0

3. Especificación en UML: El esquema conceptual de datos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 10,0 0 0 0 22,0 0 38,0

4. Especificación en UML: El lenguaje OCL
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 4,0 0 0 0 8,0 0 14,0

5. Especificación en UML: El modelo de casos de uso
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 2,0 0 0 0 4,0 0 8,0

6. Especificación en UML: El modelo de comportamiento y el modelo de los estados
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 8,0 0 0 0 20,0 0 34,0

7. Introducción al diseño de software
T      P      L      Alt    L Ext. Est    O. Ext. Total 
4,0 4,0 0 0 0 8,0 0 16,0
El objetivo de este tema es el de conocer las propiedades de la arquitectura del software, algunos patrones de diseño arquitectónico y la actividad de normalizar el esquema conceptual de especificación.

8. Diseño de pruebas a partir de la especificación de un sistema software
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 2,0 0 0 0 6,0 0 10,0

9. Metodologías de desarrollo de software
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 6,0 0 8,0


Total por tipo T      P      L      Alt    L Ext. Est    O. Ext. Total 
28,0 30,0 0 0 0 84,0 0 142,0
Horas adicionales dedicadas a la evaluación 8,0
Total horas de trabajo para el estudiante 150,0

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 cuatro actos evaluatorios (P1, ..., P4) que, conjuntamente con la participación, permiten aprobar el curso sin necesidad de hacer el examen final. La nota de evaluación continuada (EC) se calculará mediante la siguiente fórmula:

AC = 15% P1 + 30% P2 + 15% P3 + 30% P4 + 10% participació

Para aprobar por curso sin necesidad de hacer el examen final es necesario que EC>=5 y que como mínimo tres de los actos evaluatorios (P1 a P4) tengan una nota >=4.

Los alumnos que no aprueben por curso deberán hacer el examen final (EF). Entonces, la nota final de la asignatura se calculará de la siguiente manera:
- Si EF<5 i AC>=5, entonces nota final = máximo(EF, 4.5)
- En los otros casos, nota final = máximo(EF, AC)

Si un alumno que aprueba por curso se presenta al examen final, entonces su nota final de la asignatura = máximo(AC,EF).

Bibliografía básica

  • Larman, Craig. Applying UML and Patterns (3rd edition), Prentice Hall, 2004.
  • Rumbaugh, James; Jacobson, Ivar; Booch, Grady The Unified Modeling Language Reference Manual (2nd edition), Addison-Wesley , 2004.
  • F.Buschmann, R.Meunier, H.Rohnert, P.Sommerlad, M.Stal A System of Patterns. Pattern-oriented Software Architecture, John Wiley & Sons, 1996.
  • Pressman, Roger. S. Software Engineering. A Practitioner's Approach (6th edition), McGraw-Hill, 2004.

Bibliografía complementaria

  • Binder Testing Object-Oriented Systems. Models, Patterns and Tools, Addison-Wesley, 2000.
  • Jacobson, Ivar; Booch, Grady; Rumbaugh, James The Unified Software Development Process, Addison-Wesley, 1999.
  • Pender, Tom UML Bible, Wiley, 2004.

Capacidades previas

Los alumnos deberían tener conocimientos suficientes de estructuras de datos y algoritmos y de programación cuando empiecen Ingeniería del Software.



 
logo FIB © Facultad de Informática de Barcelona - webmaster@fib.upc.edu - RSS RSS