Saltar al contingut Menu
Mapa
  • Inicio
  • Información
  • Contacto
  • Mapa

Ingeniería del Software II (ES2)

Créditos Dept.
9.0 (7.2 ECTS) ESSI

Profesores

Responsable:  (-)
Otros:(-)

Objectivos Generales

El objetivo principal de la asignatura es aprender a diseñar
(1) con orientación a objetos,
(2) usando patrones de diseño y
(3) usando como notación el lenguaje más apropiado,
sistemas de información
(1) con una arquitectura en capas,
(2) centralizados y distribuidos.

Objectivos Específicos

Conocimientos

  1. Conocer los principios del diseño orientado a objetos.
  2. Conocer el concepto de patrones de diseño y los patrones de diseño principales.
  3. Conocer los elementos del UML específicos del diseño.
  4. Conocer las características principales de los sistemas distribuidos.
  5. Conocer algún producto tecnológico concreto.
  6. Conocer la problemática de la asignación de responsabilidades a capas.

Habilidades

  1. Saber diseñar un sistema de información (centralizado o distribuido) con orientación a objetos y con una arquitectura en capas, partiendo de la especificación de sus requisitos (funcionales y no funcionales).
  2. Saber identificar los patrones que se pueden aplicar en un diseño y aplicarlos correctamente.
  3. Saber expresar el diseño usando los elementos correspondientes del UML.
  4. Saber asignar las responsabilidades determinadas en la especificación del sistema a las diferentes capas.
  5. Saber evaluar las propiedades principales de un diseño (orientado a objetos) concreto.

Competencias

  1. Capacidad para diseñar sistemas, componentes o procesos que se ajusten a unas necesidades, usando los métodos, técnicas y herramientas más adecuadas en cada caso.
  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 diversas fuentes, identificando cuándo la información recibida en clase no se suficiente y buscando información complementaria.
  4. Capacidad para aprender de forma autónoma.

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 al diseño. Arquitectura en capas. Principios del diseño orientado a objetos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
7,0 11,0 0 0 0 24,0 0 42,0

2. De la especificación del sistema a la especificación de las capas
T      P      L      Alt    L Ext. Est    O. Ext. Total 
4,0 8,0 0 0 0 10,0 0 22,0

3. Patrones de diseño
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 12,0 0 0 0 24,0 0 42,0
  • Actividades de laboratorio adicionales:
    Investigació d'altres patrons

4. Capa de presentación. Capa de datos
T      P      L      Alt    L Ext. Est    O. Ext. Total 
4,0 8,0 0 0 0 16,0 0 28,0

5. Diseño de sistemas distribuidos. Arquitecturas orientadas a servicios
T      P      L      Alt    L Ext. Est    O. Ext. Total 
6,0 8,0 0 0 0 24,0 0 38,0

6. Conocimiento de algún producto tecnológico concreto.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
1,0 0 0 0 0 0 0 1,0


Total por tipo T      P      L      Alt    L Ext. Est    O. Ext. Total 
28,0 47,0 0 0 0 98,0 0 173,0
Horas adicionales dedicadas a la evaluación 9,0
Total horas de trabajo para el estudiante 182,0

Metodología docente

La docencia de la asignatura está estructurada en clases de teoría y clases de problemas, aunque la distinción entre ambos tipos no sigue un patrón regular.

En las clases de teoría los profesores presentan los contenidos esenciales de la asignatura. Normalmente los profesores usan transparencias, que los estudiantes pueden (y deberían) obtener antes de las clases.

Otros contenidos de la asignatura no son presentados en clase, pero deben ser estudiados de manera autónoma por los propios estudiantes. Estos contenidos son tan "obligatorios" como los otros, simplemente que deben estudiarse de manera diferente. Los profesores indican en qué momento del curso se han de haber estudiado estos contenidos y los recursos docentes que se pueden utilizar. Muchas veces estos recursos están escritos en inglés.

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. Es fundamental para el correcto desarrollo del curso que los estudiantes preparen los problemas que los profesores encargan. Los alumnos deben siempre asegurarse que tienen acceso a la lista de problemas del tema en curso.

Método de evaluación

La asignatura consta de cuatro actos evaluatorios durante el curso y un examen final.

Los cuatro actos evaluatorios, P1, P2, P3 y P4, permiten aprobar por curso sin necesidad de examen final si se cumplen que la media ponderada según la fórmula F es mayor o igual que 5:

F = 10%P1 + 10%P2 + 40%P3 + 40%P4

Los alumnos que no aprueben por curso (F<5) han de presentarse al examen final. La nota final de ES2 se calcula según las reglas siguientes:
- si EF >= 5, entonces nota final = EF
- si EF < 5, entonces nota final = máximo(EF, F)

Los alumnos que, habiendo aprobado por curso, se presentan al examen final, se entiende que renuncian a la nota F.

La nota NP queda reservada para aquellos alumnos que no se presentan a ningún acto evaluatorio (exceptuando posiblemente P1 y P2) ni al examen final.

La participación del estudiante durante la clase puede ayudar a redondear por arriba la nota final de las actas.

Bibliografía básica

  • Erich Gamma ... [et al.] Design patterns : elements of reusable object-oriented software, Addison-Wesley, 1995.
  • Robert Cecil Martin Agile software development : principles, patterns, and practices, Prentice Hall, 2003.
  • Larman, Craig Applying UML and Patterns, Prentice-Hall, 2005.
  • Fowler, Martin Patterns of Enterprise Application Architecture, Addison-Wesley, 2003.

Bibliografía complementaria

  • Meyer, Bertrand Object-Oriented Software Construction, Prentice Hall, 1997.
  • James Rumbaugh, Ivar Jacobson, Grady Booch The Unified modeling language reference manual, Addison-Wesley, 2005.

Enlaces web

  1. http://hillside.net/patterns/


  2. http://www.omg.org/technology/uml/index.htm


Capacidades previas

1) Saber qué es una especificación (formal) en UML/OCL de los requisitos funcionales y no funcionales de un sistema.
2) Saber el contexto en que se puede hacer el diseño de un sistema y, en particular, cuáles son las actividades previas y siguientes.
3) Saber qué es la arquitectura del software, y qué estilos arquitectónicos hay (la arquitectura en capas -usada en el curso- es un de ellas).
4) Conocer a fondo la programación orientada a objetos y (al menos) un lenguaje de programación orientado a objetos.
5) Conocer el modelo relacional de datos y las funcionalidades principales de los sistemas de gestión de bases de datos relacionales.

A la vista de estas capacidades, se sugieren como prerrequisitos las asignaturas siguientes:
- Ingeniería del Software I
- Bases de datos
- Proyecto de Programación


Compartir

 
logo FIB © Facultad de Informática de Barcelona - Contacto - RSS
Esta web utiliza cookies propias para ofrecerle una mejor experiencia y servicio. Si continúa la navegación, entendemos que acepta nuestra política de cookies. Versión clássica Versión móvil