Está en la página 1de 14

Tema 1.

1 Introduccin al paradigma de Orientacin a Objetos


Programacin II (2011/2012)

Algunos errores mticos de software


Transferencia inadecuada del Bank of New York (1985)
Contador de 16 bits activado por error (overflow) 32.000 millones de dlares 5 millones de dlares diarios en intereses hasta que se arregl el problema.

Accidente de un F18 (1986)


U Una expresin i condicional di i l if-then if th sin i else l . Giro descontrolado en el avin que se estrell; el piloto sali a tiempo.

Avin derribado por error por la fragata USS Vincennes (1988)


El sistema de radar confundi a un Airbus comercial con un avin de combate b t F-14 F 14 Imposibilidad de establecer comunicacin con el avin 290 fallecidos

Explosin del Ariane 5 (1996)


El sistema crey que se sala de su curso e intent corregir la trayectoria 1800 millones de dlares en prdidas por la prdida del cohete + 4 satlites que transportaba t t b

El error del milenio Y2K (2000)

Programacin II (2011/2012)

Caractersticas de un sistema complejo


9 Estructura jerrquica 9 Relatividad en la definicin de componente elemental 9 Separacin de aspectos (no independiente) 9 Existencia de patrones comunes 9 Evolucin temporal: sistemas intermedios estables

Programacin II (2011/2012)

Abstraccin Objeto y clases

Definimos objeto como un concepto, abstraccin o cosa que tiene lmites precisos y un significado para el problema que se aborda. Los objetos tienen estado, comportamiento e identidad Los objetos sirven para dos propsitos: estimulan la comprensin del mundo real y proporcionan i una base b prctica ti para la l implementacin i l t i informtica. i f ti
Programacin II (2011/2012)

Clases y objetos
Para definir un objeto habr que dar respuesta espuesta a t tres es p preguntas: egu tas
Quin soy? Empleado
fechaDeIngreso =22/05/2010 fechaDeNacimiento = 10/12/1978 Departamento = comercial nmeroEmpleado =23456 Nombre =Jos Lpez p Daz getNombre() getID(); getCumpleaos()

Una clase describe un conjunto de objetos que se han a espec especificado cado de la a misma s a forma o a Todos los objetos de una misma clase comparten t caractersticas, t ti semntica y las restricciones que existen sobre ellos
Empleado
fechaDeIngreso fechaDeNacimiento Departamento nmeroEmpleado Nombre getNombre() getID(); getCumpleaos()

Qu s?

Qu puedo hacer?

Un clase es un patrn o plantilla definitoria

Un objeto es una instancia de dicho patrn

Programacin II (2011/2012)

Encapsulacin
Ocultar los detalles de implementacin tras una interfaz que filtra el acceso directo se conoce como encapsulacin

Empleado Los mtodos asociados de un objeto slo se pueden invocar mediante una llamada vlida Qu permito hacer a otros?
fechaDeIngreso fechaDeNacimiento Departamento nmeroEmpleado Nombre getNombre() getID(); getCumpleaos()

Los datos de un objeto j pueden ser accedidos p p por sus propias funciones (mtodos) Qu puedo hacer?

Los datos de un objeto se ocultan en su interior (atributos) Qu s s?

Programacin II (2011/2012)

Herencia: generalizacin generalizacin-especializacin


gener ralizacin espe ecializaci n Empleado
fechaDeIngreso fechaDeNacimiento Departamento nmeroEmpleado nombre

Una superclase cuenta con caractersticas generales que heredarn todas las subclases

Smbolo de generalizacin

EmpleadoPagoMensual
salarioMensual

EmpleadoPagadoPorHoras
precioHora horasTrabajadas

EmpleadoPagoSemanal
salarioSemanal

Cada subclase consta de caractersticas especializadas, nicas para ella

Aadir una nueva subclase no requiere cambios en la estructura general

Programacin II (2011/2012)

Polimorfismo
Capacidad de aparecer de varias formas desacoplamiento de los sistemas

La cantidad fija mensual a cobrar depender slo de la categora t del d l empleado l d


2a: calcularNmina() ::EmpleadoTiempoCompleto

2b: calcularNmina() :ImprimirNminaMensual 1: obtenerPagoTotal() 2c: calcularNmina() ::EmpleadoTemporal ::EmpleadoTiempoParcial

La cantidad variable mensual a cobrar depender de la categora g y de las horas trabajadas

La cantidad fija mensual a cobrar depender de la categora y no se le aplican retenciones para el plan de pensiones Programacin II (2011/2012)

Orgenes de la programacin OO
Lenguajes de primera generacin (1954--1958) FORTRAN I (expresiones matemticas) Lenguajes de segunda generacin (1959--1961) FORTRAN II (subrutinas) ( )
COBOL (gestin de datos y ficheros) LISP (punteros, gestin de listas)

Programacin II (2011/2012)

Orgenes de la programacin OO
Lenguajes de primera generacin (1954--1958) FORTRAN I (expresiones matemticas) Lenguajes de segunda generacin (1959--1961) FORTRAN II (subrutinas) ( )
COBOL (gestin de datos y ficheros) LISP (punteros, gestin de listas)

Lenguajes g j de tercera g generacin ( (1962--1970) )


PASCAL (subrutinas, estructura en bloques)

Programacin II (2011/2012)

Orgenes de la programacin OO

Lenguajes de primera generacin (1954--1958) FORTRAN I (expresiones matemticas) Lenguajes de segunda generacin (1959--1961) FORTRAN II (subrutinas)
COBOL (gestin de datos y ficheros) LISP (punteros, gestin de listas)

Lenguajes de tercera generacin (1962--1970)


PASCAL (subrutinas, estructura en bloques)

Lenguajes de cuarta generacin (1970--1980) C (eficiencia)

Programacin II (2011/2012)

Orgenes de la programacin OO
Lenguajes con orientacin a objetos (1980--1990)
C++, Smalltalk 80, Eiffel

Surgimiento de entornos de trabajo (1990-- hoy)


Lenguajes: Visual Basic, Java, Python, Entornos: J2EE, .NET, etc.

Programacin II (2011/2012)

UML: Unified Modeling Language


Notacin grfica para plasmar diagramas de conceptos t software. ft Estndar de-facto en la industria
Prestigio de sus creadores (Grady Booch, Ivar Jacobson y Jim Rumbaugh) Fusin de diferentes tcnicas Intercambio de modelos entre diferentes herramientas CASE (Computer Aided Software Engineering)

Un modelo representa un sistema desde una perspectiva, la totalidad ofrece la visin de conjunto:
Diagramas de clases, de objetos, de secuencia, de colaboracin, de estado.
Programacin II (2011/2012)

Tema 1. 1 Introduccin al paradigma de Orientacin a Objetos


Programacin II (2011/2012)

También podría gustarte