Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de...

20
Programación Orientada a Objetos Curso 2010 - 2011 Ingeniería Informática (9190) Ing. técnica en Informática de Gestión (9288) Ing. técnica en Informática de Sistemas (9363) Presentación de la Asignatura Versión 1.3 Pedro J. Ponce de León

Transcript of Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de...

Page 1: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

Programación Orientada a ObjetosCurso 2010 - 2011

Ingeniería Informática (9190)Ing. técnica en Informática de Gestión (9288)Ing. técnica en Informática de Sistemas (9363)

Presentación de la Asignatura

Versión 1.3

Pedro J. Ponce de León

Page 2: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

2

Propiedades Asignatura

TIPO Obligatoria en el plan de estudios del 2001 para

Ingeniería Informática (II) Ingeniería Técnica Informática Gestión (ITIG) Ingeniería Técnica Informática Sistemas (ITIS)

CRÉDITOS 4’5 (2.25 TEÓRICOS + 2,25 PRÁCTICOS)

15 sesiones de teoría (1 semanal durante uncuatrimestre) de 1,5 h cada una.

15 sesiones prácticas (1 semanal durante uncuatrimestre) de 1,5 h cada una.

Page 3: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

3

Prerrequisitos

FUNDAMENTOS DE PROGRAMACIÓN I FUNDAMENTOS DE PROGRAMACIÓN II ¡No se puede aprobar la asignatura si como muy tarde en la

misma convocatoria no están aprobados los prerrequisitos! ¡Ojo! Febrero y Junio se consideran convocatorias distintas donde

Febrero<Junio (i.e. si aprobáis un prerrequisito en Junio no se osguarda la nota de POO de Febrero, sino que tendríais que volver apresentaros en Julio)

Si hacéis el examen pero no aprobáis dichos prerrequisitos, en elexpediente os saldrá como INCOMPATIBLE (NO SE GUARDARÁ LA NOTA).

(La SEGUNDA convocatoria de Julio/Septiembre se considera la mismaconvocatoria)

Page 4: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

4

Departamento de Lenguajes ySistemas Informáticos (DLSI)

http://www.dlsi.ua.es

Page 5: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

5

Profesores y Tutorías

Pedro J. Ponce de León (Teoría y práctica (II))Coordinador Martes de 10:30 a 12:30 y Miércoles de 11:00 a 13:00 E.P.S. IV módulo 2 DESPACHO 18 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.

David Rizo Valero (Teoría y Prácticas (IG)) (Horario de tutorías por determinar) E.P.S. IV módulo 2 Lab.Invest-4 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.

Antonio Miguel Corbí Bellot (Prácticas) (Horario de tutorías por determinar) E.P.S. IV módulo 2 DESPACHO 08 (2º piso) TUTORÍAS ELECTRÓNICAS SÓLO A TRAVÉS DEL C.V.

Cita Previa: www.dlsi.ua.es (enlace ‘Reserva de Tutorias’)

Page 6: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

6

Horarios POO 2010Teoría (6 grupos)

Para teoría se aconseja acudir siempre al mismo turno

A: ITIG B: II + ITIS

Page 7: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

7

Horarios POO 2010Prácticas (5 + 7 turnos)

A: ITIGB: II + ITIS

Page 8: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

8

Gestión de Prácticas¿Cómo nos apuntamos?

Prácticas preferiblemente por parejas Las parejas tendrán preferencia en el sorteo de turnos. Si no hay ordenadores para todos se os asignará una pareja al azar.

Matriculación a través de la web de la EPS http://www.eps.ua.es

Selección de turno desde el 8 de Septiembre (Miércoles) a las 9:00 a.m. al 16 de Septiembre (Jueves) 9:00 p.m.

SORTEO: EL DÍA 17 DE SEPTIEMBRE. Resultados: saldrán en la web de la escuela a lo largo del día. Importante: Elegid más de una opción!!!! (máx. 4)

Page 9: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

9

Gestión de Prácticas¿Cómo nos apuntamos?

CAMBIOS Y REZAGADOS: Tutoría electrónica a Antonio Corbí A TRAVÉS DEL CV.

El día 20 de Septiembre saldrán los turnos con huecos libres en el C.V. Especificad en el correo el turno que preferís DE ENTRE LOS QUE TIENEN HUECOS. Se permitirán cambios hasta el 1 de Octubre

AQUELLOS ALUMNOS SIN TURNO A FECHA DE ENTREGA DE LA PRIMERAPRÁCTICA NO PODRÁN SER EVALUADOS

Page 10: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

10

Gestión de PrácticasAsistencia

ASISTENCIA OBLIGATORIA Se permiten 4 faltas sin justificar

Las prácticas comienzan el día 21 de Septiembre para todos los grupos.

Primeras clases: Seminario de C++. Podéis acudir al turno que queráis la primera semana Contenido:

Introducción a la librería STL Conceptos generales Herramientas de programación: makefile, tar, g++...

Test de autoevaluación en el CV

Durante el curso, e independientemente del turno asignado, podéis entraren cualquier turno DE VUESTRA TITULACIÓN siempre que queden huecoslibres tras haberse sentado aquéllos que tenían el turno reservado.

Page 11: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

11

Temario

Tema 1: Introducción al paradigma Orientado a Objetos (1 sesión) Principales Paradigmas de Programación El Paradigma OO

Motivación Características básicas Características opcionales Historia Metas

Tema 2: Fundamentos de la Programación Orientada a Objetos (3 sesiones) Clases Atributos Operaciones

Constructor, Constructor de Copia y Destructor

El concepto de interfaz El concepto de objeto El diseño de aplicaciones OO

Diagrama de clases Relaciones entre objetos: asociación, todo-parte, dependencia Relaciones entre clases: herencia

Page 12: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

12

Temario

Tema 3: Herencia (3 sesiones) Motivación: la herencia como mecanismo de abstracción Caracterización de la herencia Herencia simple

Ppio de sustitución de Liskow Herencia de interfaz Herencia de implementación

Uso seguro de la herencia de implementación Clases abstractas

Herencia múltiple Beneficios y costes de la herencia Herencia vs. Todo-parte Resumen

Tema 4: Gestión de Errores (1 sesión) Excepciones

Motivación y objetivos Concepto de excepción Excepciones en C++

Page 13: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

13

Temario

Tema 5: Polimorfismo (4 sesiones) Motivación y objetivos Caracterización del polimorfismo:

Sobrecarga (Overloading) Basada en ámbito Basada en signaturas de tipo

Sobrecarga de operadores Sobrecarga en jerarquías de herencia Alternativas a la sobrecarga: coerción y conversión

Sobreescritura (Overriding) Variables polimórficas

Variable polimórfica simple Variable polimórfica como receptor de mensaje Downcasting (polimorfismo inverso) Variable polimórfica como argumento: Polimorfismo puro o método polimórfico

Genericidad (templates)

Page 14: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

14

Contextualización en la carrera

AESI/IS1 (MASI/DSS) (3º/4º) Proporcionan los conocimientos necesarios para diseñar la aplicación que aquí vais a

aprender a implementar

Diseño y Programación Avanzada de Aplicaciones (3º) Aúna conocimientos de AESI/IS1 y de Programación OO

FP1/FP2/PED/Algoritmia Avanzada (4º)/Diseño y Análisis de Algoritmos (3º) Proporcionan la base algorítmica para implementar determinados métodos /TAD’s

siguiendo la filosofía OO

PEI (opt) Aplica el paradigma OO al desarrollo de interfaces de usuario

BD1 / BD2 / HP / PC …

Page 15: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

15

Evaluación

Teoría: 50% de la nota final Examen final: test y/o ejercicios, según convocatoria.

Práctica: 50% de la nota final Dos prácticas, cada una aporta el 50% de la nota de

prácticas. Para hacer media, la nota de cada práctica debe ser >= 4

Las notas de teoría y práctica compensan a partir de 4. Si las notasno son compensables, la nota final de la asignatura será la menor deambas, en caso de haberse presentado al examen de teoría.

Si la nota de prácticas es >= 5, se guarda HASTA DICIEMBRE.

Si hay suspendido algún prerrequisito NO SE GUARDA LA NOTA.

Page 16: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

16

Evaluación de prácticas

Entrega obligatoria. Cada práctica consta de dos plazos de entrega obligatoria.

La práctica se evalúa en la primera entrega y se puntúa en la segunda entrega. La evaluaciónes completamente automática.

Antes del primer plazo se publica una batería de pruebas, llamada autocorrector.

Las prácticas se evalúan con cuatro tipos de pruebas: Pruebas unitarias del autocorrector (4 puntos) Prueba de documentación (en autocorrector) (1 punto) Prueba de memoria (en autocorrector) (1 punto) Pruebas unitarias adicionales de la primera entrega (4 puntos)

Para que se evalúe la práctica entregada con todas las pruebas, es requisito que funcionecorrectamente con todas las pruebas unitarias del autocorrector.

En caso contrario, la práctica tendrá nota inferior a 4. En la segunda entrega, la práctica se puntuará con el resultado de la evaluación en primera

entrega si y solo si La práctica funciona perfectamente con TODAS las pruebas realizadas. Esto significa que los fallos que se produzcan en la primera entrega deberán ser subsanados

para la segunda entrega.

Page 17: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

17

Evaluación: Entregas optativas(a sumar a nota TEO FEBR exclusivamente)

Trabajos optativos: HASTA 2 PUNTOS sobre el aprobado(valorable por el profesor en función tanto de la defensaque haga el alumno como de la síntesis, practicidad yrelevancia para la asignatura del trabajo) Obligatoria la defensa del trabajo en clase: presentación de 10-

15 minutos Ejemplos de trabajos:

Comparativa de lenguajes OO modernos Ejemplo de implementación de persistencia en C++ Conexión de C++ con Bases de Datos Concurrencia en lenguajes OO Implementación de prácticas en otros lenguajes OO (Java, C#, …)

Page 18: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

18

Bibliografía (Teoría)

BÁSICA Introducción a la programación orientada a Objetos. Cristina

Cachero, Pedro J. Ponce de León, Estela Saquete, 2006.Ed: Servicio de Publicaciones UA

An Introduction to Object-oriented Programming, 3rd Edition.Timothy Budd, 2001. Ed. Addison-Wesley

COMPLEMENTARIA Object Oriented Analysis and Design with Applications. Grady Booch. Ed.

Addison-Wesley Professional

Object-oriented Software Construction, Bertrand Meyer, 2000. Ed. PrenticeHall. (Disponible en castellano: Construcción de Software Orientado aObjetos)

Page 19: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

19

Bibliografía (Prácticas)

BÁSICA y COMPLEMENTARIA

El lenguaje de programación C++, edición especial. BjarneStroustrup. Ed. Addison-Wesley, Madrid.

Thinking in C++. 2nd Edition. Bruce Eckel. Libro electrónico gratuito.http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

• Effective C++ : 55 specific ways to improve your programs anddesigns. Scott Meyers. 2005. Addison-Wesley.

Page 20: Programación Orientada a Objetos Curso 2010 - 2011 · El diseño de aplicaciones OO Diagrama de clases ... Uso seguro de la herencia de implementación Clases abstractas

20

Más información