Vous êtes sur la page 1sur 27

Programacin Orientada a Objetos

Begoa Moros Valle

Contenido
Presentacin contenido terico Presentacin contenido prctico Introduccin a la Programacin Orientada a Objetos

TEORA
Programacin Orientada a Objetos Curso 2007 / 2008

Objetivos
Describir los conceptos que caracterizan el modelo OO Valorar en qu medida las tcnicas OO favorecen la calidad del software Contrastar cmo diferentes lenguajes (Eiffel, Java, C++, C#) reflejan los conceptos del paradigma OO

Programa de teora
TEMA1: CALIDAD DEL SOFTWARE
Modularidad Extensibilidad Reutilizacin Variacin de tipos Agrupar caractersticas Variacin de algoritmos y est. de datos Independencia de la representacin Factorizar comportamiento comn Ocultamiento de Informacin Principio Abierto-Cerrado Principio de Eleccin nica Fiabilidad Correccin Robustez ...

TEMA 2 Clases y Objetos


Genericidad Clase: estructura (ref) comportamiento (mens)

Niveles de acceso a propiedades

TEMA 3 Correccin y robustez

Asertos. Diseo por Contrato Excepciones

TEMA5 Herencia mltiple

TEMA4 Herencia Polimorfismo


Ligadura dinmica Clases diferidas Cdigo genrico

Evaluacin de la asignatura
Parcial tipo test eliminatorio del lenguaje Java
~ Semana 10

Exmenes teora Java:


12 febrero 27 junio 5 septiembre

NOTA = Teora * 04 + Java * 02 + Prcticas * 04 sii la nota en cada parte es 5 El aprobado del examen o las prcticas slo se guardar durante UN CURSO ACADMICO
Repetidores: segn el caso, mximo septiembre de 2008

Bibliografa bsica
TEMA 1 TEMA 2 TEMA 3 TEMA 4 TEMA 5

x x x x x x

x x

x x x x x

x x x

x x x

Horario de atencin alumnos Teora


Facultad de Informtica (2 planta): 2.37
Entrada al Depto

Martes: Mircoles:

11:30 a 13:30 16:30 a 20:30

PRCTICAS
Programacin Orientada a Objetos Curso 2007 / 2008

Objetivos
Aprender un LPOO: Java Dominar las libreras bsicas del lenguaje Practicar los conceptos de orientacin a objetos en Java Manejar un entorno de programacin Java: Eclipse

Programa de Prcticas
Totalmente ligado al programa de teora:
Criterios de calidad del software Modelo de objetos: abstraccin, modularidad, encapsulacin, herencia. Conceptos del paradigma OO: clase, objeto, herencia, polimorfismo, ligadura dinmica Principios de diseo modular y OO

Aplicamos estos conceptos en un LPOO concreto: Java


Sintaxis del lenguaje Manejo de las libreras bsicas (colecciones) Creacin y utilizacin de ficheros .jar

Metodologa
Seminarios semanales
En el aula de teora Metodologa basada en proyectos Resolucin de problemas de programacin Empieza el 11 de octubre

Prcticas laboratorio abierto


Presentacin en SUMA con las propiedades bsicas del entorno

3 4 entregas que de manera constructiva conformarn un proyecto de programacin Entrevistas de control y revisin de las entregas

Prctica
Grupos de 2 alumnos Desarrollo incremental de un videojuego
Proyecto Java en Eclipse Debe primar el diseo OO sobre la jugabilidad!!

Se mantiene la misma prctica para Junio/Septiembre


Salvo que no se hayan hecho ms de la mitad de las entregas

Entrega de prcticas en SUMA y algunas en papel


El formato se especificar en cada entrega

Evaluacin de las prcticas


Revisiones de las entregas parciales:
OBLIGATORIAS De manera escalonada
No se puede presentar una entrega sin haber corregido la anterior

En horas de tutoras o de prcticas En plazos amplios Bajo demanda de los alumnos

Evaluacin continua
Las correcciones de una entrega deben incluirse en la siguiente

Defensa de la prctica final


A criterio del profesor Individual o en grupo

Horario
Seminario en aula de teora:
Jueves de 12:00 13:00

Laboratorio 1.4:
Grupo 1: Lunes de 16:30 18:30 Grupo 2: Lunes de 18:30 20:30

Tutoras:
Martes: Mircoles: 11:30 a 13:30 16:30 a 20:30

Bibliografa Bsica
Gratuitos (versiones en PDF):
Curso de Java en espaol. Ivn Prraga Garca Thinking in Java, 4 edicin (ingls), en espaol en la biblioteca

Biblioteca:
Java 2. Vol I. Fundamentos. Cay S. Horstmann, Gary Cornell Java 2. Vol II. Caractersticas Avanzadas. Cay S. Horstmann, Gary Cornell El lenguaje de programacin Java, de J. Gosling Effective Java. Programming Language Guide.

INTRODUCCIN
Programacin Orientada a Objetos Curso 2007 / 2008

Qu significa Orientacin a Objetos?


El software se organiza como una coleccin de objetos que contienen tanto estructura como comportamiento.

Qu es el desarrollo OO?
Una nueva forma de pensar acerca del software basndose en abstracciones que existen en el mundo real.
Bombilla color encender() apagar()

Paradigma de programacin Coleccin de conceptos que guan el proceso de construccin de un programa, determinando su estructura. Estos conceptos controlan la forma en que pensamos y formulamos los programas. Un lenguaje de programacin refleja un paradigma.

PARADIGMA
Imperativo Funcional Lgico Orientado a Objetos

LENGUAJE
C, Pascal, Cobol, ... Lisp, Hope, Miranda, ... Prolog, Parlog, ... Smalltalk, C++, Eiffel, Java, ...

Marco Conceptual del paradigma OO


Programacin Orientada a Objetos Mtodos de Anlisis y Diseo OO

Modelo de Objetos
Abstraccin Encapsulacin Modularidad Herencia Polimorfismo

El futuro del paradigma OO

Bases de Datos OO

Desarrollo basado en componentes (CORBA COM, EJB, COM) Tecnologa de objetos distribuidos (CORBA, RMI, Plataforma .NET)

Titulacin Ingeniero en Informtica


(Plan 2002)

1 2 3 4 5

Metodologa y tecnologa de la programacin Algoritmos y estructuras de datos POO (3T+3P) Ingeniera de Requisitos Ingeniera de SI Intensificacin en Tecnologa del software: Ampliacin de bases de datos Desarrollo de aplicaciones distribuidas Desarrollo basado en componentes Arquitectura del software Anlisis y diseo del Software

Problemas en la creacin del software


A finales de los 60 se acu el trmino crisis del software:
Los proyectos no cumplan los plazos y presupuestos.

Dificultades inherentes a la naturaleza del software: Complejidad


dificultad de enumerar todos los estados posibles del programa dificultad de comunicacin entre los miembros del equipo

Conforme a otras interfaces Sujeto a continuos cambios El software es intangible, no tiene representacin grfica Especificacin de requisitos completa, precisa y correcta.

Problemas en la creacin del software

La construccin de software siempre ser una

tarea difcil. No hay bala de plata [Brooks, 1987] Soluciones:


Reutilizar componentes (Comprar y no construir) Prototipado Buenos programadores/diseadores

Historia de los LPOO


1964- SIMULA (Dahl y Nygaard):
comienzo de la OO Se identificaba como lenguaje de simulacin Ha influido en el desarrollo de otros LPOO

1972- SMALLTALK (Kay, Goldberg, Ingalls)


Simula + LISP (sin tipos) -> LPOO puro Caractersticas de un LPOO [Byte81]: Todo es un objeto.
Programa = cjto de objetos que se comunican mediante

mensajes
Todo objeto es instancia de una clase (tiene un tipo). La clase es el repositorio de comportamiento asociado con un objeto Las clases se organizan en jerarquas de herencia

Historia de los LPOO Aos 70-80


orientado a objetos era sinnimo de bueno. Soportar el concepto de objeto no es suficiente.
BASADO EN OBJETOS + clases + herencia de clases

Ada, Modula 2 (1979)

BASADO EN CLASES

CLU (1974)

ORIENTADO A OBJETOS Smalltalk (1972)

[Wegner87]

Historia de los LPOO - Aos 80


Proliferacin de LPOO Clasificacin atendiendo al origen:
 Hbridos: y Basados en C: o o y Basados en Pascal: o o y Basados en Lisp: o  Pros: o o C++ Objective-C 1985 1983 B. Stroustrup Brad Cox y Tom Love Apple con Wirth Digital y Olivetti

Object Pascal 1985 Modula-3 1988 CLOS Smalltalk Eiffel 1988 1972 1985

Alan Kay Bertrand Meyer

Historia de los LPOO Aos 90


Aplicaciones centradas en el web
1995 JAVA- SUN comportamiento en pginas HTML Tecnologa de implementacin: bytecode+MV 2000 C# - Microsoft Plataforma .NET Mquina virtual para conseguir la portabilidad Combina Java y C++ Son ms de 20 lenguajes los que estn en proceso de migrarse a la plataforma .NET

Vous aimerez peut-être aussi