Você está na página 1de 15

Programacin Orientada a

Objetos

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

TEMA 2 Clases y Objetos


Variacin de tipos
Agrupar caractersticas
Variacin de algoritmos y est. de datos
Independencia de la representacin
Factorizar comportamiento comn

Genericidad
Clase: estructura (ref)
comportamiento (mens)

Ocultamiento de Informacin
Principio Abierto-Cerrado
Principio de Eleccin nica

Niveles de acceso a propiedades

Fiabilidad
Correccin
Robustez
...

TEMA5 Herencia mltiple

TEMA 3 Correccin y
robustez

Asertos. Diseo por Contrato


Excepciones

TEMA4 Herencia
Polimorfismo
Ligadura dinmica
Clases diferidas
Cdigo genrico

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 9 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

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)

Metodologa y tecnologa de la programacin

Algoritmos y estructuras de datos

3
4
5

POO (3T+3P)

Ingeniera de Requisitos

Anlisis y diseo del Software

Ingeniera de SI
Intensificacin en Tecnologa del software:
Ampliacin de bases de datos
Desarrollo de aplicaciones distribuidas
Desarrollo basado en componentes
Arquitectura 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

Ada, Modula 2
(1979)

BASADO EN
CLASES

CLU
(1974)

+ herencia de clases

ORIENTADO
A OBJETOS

Smalltalk
(1972)

[Wegner87]

Historia de los LPOO - Aos 80


Proliferacin de LPOO
Clasificacin atendiendo al origen:
Hbridos:
Basados en C:
o
o
Basados en Pascal:
o
o
Basados en Lisp:
o
Pros:
o
o

C++
Objective-C

1985
1983

Object Pascal 1985


Modula-3
1988
CLOS

1988

Smalltalk
Eiffel

1972
1985

B. Stroustrup
Brad Cox y Tom Love
Apple con Wirth
Digital y Olivetti

Alan Kay
Bertrand Meyer

Você também pode gostar