Publicado el 14 de Enero del 2017
1.236 visualizaciones desde el 14 de Enero del 2017
623,1 KB
28 paginas
Creado hace 13a (31/01/2012)
Programación Orientada a Objetos
Conceptos teóricos
Programación Orientada a Objetos
Profesor: David Contreras Bárcena
1
2
Contenido del Curso (I)
1.- Introducción a la Tecnología Orientada a
Objetos
– 1.1.- Historia
– 1.2.- Lenguajes
– 1.3.- Impacto en la Ingeniería del Software
– 1.4.- Conclusión
David Contreras Bárcena - ICAI
Programación Orientada a Objetos
Conceptos teóricos
Contenido del Curso (II)
2.- Programación Orientada a Objetos
– 2.1.- ¿Qué es la POO?
• 2.1.1.- Origen
• 2.1.2.- Introducción
• 2.1.3.- Conceptos Fundamentales
– Objetos, métodos, mensajes y clases
– 2.2.- Paradigmas de la POO
• 2.2.1.- Abstracción de Datos
• 2.2.2.- Encapsulamiento
• 2.2.3.- Ocultamiento
• 2.2.4.- Herencia
• 2.2.5.- Polimorfismo
David Contreras Bárcena - ICAI
Contenido del Curso (y III)
– 2.3.- Reusabilidad
– 2.4.- Ejemplos
David Contreras Bárcena - ICAI
3
4
Programación Orientada a Objetos
Conceptos teóricos
Capítulo 1
Introducción a la Tecnología
Orientada a Objetos
Simula-67
C ++
SmallTalk 80
David Contreras Bárcena - ICAI
5
1.1- Historia
Nace en los años 60 aplicado a simulaciones de
sistemas físicos.
Diseño del programa paralelamente al sistema
físico.
Reduce la complejidad de las modificaciones:
modificación sistema modificación en el modelo
Motor
Dirección
Coche
Llantas
Ruedas
Neumáticos
Carrocería
N componentes
David Contreras Bárcena - ICAI
N módulos
6
Programación Orientada a Objetos
Conceptos teóricos
1.1- Historia (cont.)
Ventajas de estos modelos
– Forma natural de afrontar un programa muy complejo:
• Algo obvio si se parte de la correspondencia entre el sistema y
el modelo
– Mantenimiento pasaba a ser controlable:
• Cambio de componentes sin necesidad de variar el resto del
modelo si no se varía el interfaz (parte visible del objeto).
• Simplifica las distintas variaciones sobre el modelo original.
REUSABILIDAD
David Contreras Bárcena - ICAI
7
1.2- Lenguajes
Estas ideas se implementaron mediante SIMULA
67.
En 1970 surge Smalltalk como entorno de
programación.
En 1980 aparece un híbrido entre C y SmallTalk :
C++.
En 1990 nace OAK, posteriormente se llamará *7.
Actualmente se le conoce como JAVA (También
influenciado por SmallTalk /V).
David Contreras Bárcena - ICAI
8
Programación Orientada a Objetos
Conceptos teóricos
1.2- Lenguajes (cont.)
Hoy en día todos los lenguajes de programación
tienen su versión orientada a objeto:
– Cobol
– Fortran
– CLOS (Lisp OO)
– C++
David Contreras Bárcena - ICAI
9
1.2- Lenguajes (cont.)
FORTRAN
Algol
LISP
Sketchpad
Simula-67
SmallTalk 70
PASCAL
SmallTalk 80
C
Modula-2
Ada
60
70
80
CLOS
SmallTalk /V
Objetive-C
C ++
Object Pascal
Eiffel
Java
David Contreras Bárcena - ICAI
.NET
10
Programación Orientada a Objetos
Conceptos teóricos
1.3- Impacto en la Ingeniería del
Software
Los principales autores de metodologías
estructuradas se han pasado a la orientación a
objetos (Yourdon, Mellor, Martin,..).
En el entorno de las bases de datos se está
desarrollando el estándar SQL orientado a objetos:
SQL-3.
En los sistemas operativos: NeXTstep, Windows
2000, Pink y FOOIS (Freedows).
David Contreras Bárcena - ICAI
11
1.3- Características del Software
La complejidad es una característica intrínseca al
software.
Sujeto a cambios.
Soluciones para minimizar la complejidad.
– Lenguaje de alto nivel.
– Entornos de programación.
– Lenguajes de 4º Generación (4GL).
– Programación Orientada a Objeto (POO).
– Programación Visual.
David Contreras Bárcena - ICAI
12
Programación Orientada a Objetos
Conceptos teóricos
1.3- Complejidad del Software
Grado de
complejidad
COMPLEJIDAD
PROGRESO
L. Alto Nivel
4GL
....
POO
David Contreras Bárcena - ICAI
13
1.4 - Conclusión
El software cada vez es más voluminoso y
complejo.
El mantenimiento representa más del 70% del
coste del software, correspondiendo el 40% a
modificaciones producidas por nuevas
especificaciones del usuario.
Gracias a ciertos mecanismos la OO ofrece una
alta reusablidad del código que genera.
Los lenguajes más importantes en la actualidad
emplean esta tecnología.
David Contreras Bárcena - ICAI
14
Programación Orientada a Objetos
Conceptos teóricos
Capítulo 2
Programación Orientada a Objetos
David Contreras Bárcena - ICAI
15
2.1.1 - Origen
Antecedentes:
– Tipos abstractos de datos (encapsulamiento,
ocultamiento, abstracción).
– Inteligencia artificial (herencia).
Primer lenguaje:
– Simula 67, construido para simulación de sistemas de
telefonía.
– Smalltalk (1980), materializa conceptos como la
herencia.
David Contreras Bárcena - ICAI
16
Programación Orientada a Objetos
Conceptos teóricos
2.1.2 - Introducción
Todo se agrupa como objetos.
Simplificación de la realidad reflejando todo lo
que nos interesa de ella en forma de objetos.
Grado de abstracción del modelo vendrá definido
por el analista del sistema.
Objetivo: productos software de calidad.
David Contreras Bárcena - ICAI
17
2.1.3 - ¿Qué es un objeto?
Cualquier ente real o abstracto.
Identidad única.
Nos interesa su estado y comportamiento.
“un objeto es cualquier cosa real o abstracta del
cual nos interesa su comportamiento y tiene una
identidad única que le distingue de los demás”
David Contreras Bárcena - ICAI
18
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 - Ejemplo de objeto
“un objeto es cualquier cosa real o abstracta del
cual nos interesa su comportamiento y tiene una
identidad única que le distingue de los demás”
David Contreras Bárcena - ICAI
19
2.1.3 - Análisis de un problema
IDENTIFICACIÓN Y
ESTUDIO DEL
PROBLEMA
GRADO DE
ABSTRACCIÓN
IDENTIFICACIÓN DE
LOS OBJETOS
GRADO DE
ABSTRACCIÓN
INFORMACIÓN QUE
REVELE SU ESTADO
Y COMPORTAMIENTO
20
David Contreras Bárcena - ICAI
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 – Atributos y métodos de un objeto
OBJETO
Atributos
Métodos
Datos - Variables Miembro
Operaciones - Funciones Miembro
Información que posee cada
objeto que le identifica y
diferencia del resto de objetos
del mismo tipo. A estos datos
sólo se puede acceder haciendo
referencia al propio objeto.
Son acciones que van a
manipular los datos. Los
denominaremos métodos.
Van a ser los únicos que
tengan acceso a los datos.
David Contreras Bárcena - ICAI
21
2.1.3 - Caso práctico de un objeto
Modelo Físico
Botón para mostrar la Hora
Botón para mostrar el Día
Modelo Informático
reloj
Atributos
hora (horas, min, seg)
día (dia, mes, año)
modelo
numSerie
Métodos
getHora
getDía
incrementarHora
incrementarDía
limpiarPantalla
traducirFrecuencia
...
22
David Contreras Bárcena - ICAI
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 - Estructura de un objeto
OBJETO
Métodos u
Operaciones
Operaciones
permitidas.
Pueden estar o no
ocultas para el
usuario.
métodoUno
métodoDos
atributoUno
atributoDos
….
atributoN
...
métodoN
Atributos o
Datos
Estructura
encapsulada de
los datos.
Lo que realmente nos interesa de un objeto es su estado, que viene dada por
su información.
David Contreras Bárcena - ICAI
23
2.1.3 - Estructura de un objeto
reloj
getHora
hora
día
numSerie
modelo
getDía
incrementarDía:
incrementarHora:
traducirFrecuencia
limpiarPantalla
David Contreras Bárcena - ICAI
24
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 - Métodos
La única manera de acceder a los datos del objeto
es a través de métodos.
Son un conjunto de instrucciones, como una rutina,
al cual se le pueden pasar también argumentos y/o
devolver un resultado.
No debe hacer referencia a los datos de otro objeto.
Cada método manipulará los atributos del objeto
donde se ejecute.
Tiene carácter local, no global. Cualquier variable
creada en él dejará de existir al finalizar dicho
método.
25
David Contreras Bárcena - ICAI
2.1.3 - Métodos
En la definición de métodos, se seguirá la
siguiente nomenclatura:
– getNombreAtributo(): Método que devuelve el valor del
atributo.
– setNombreAtributo(valor): Asigna un valor al atributo.
– isNombreAtributo(): Devuelve un valor booleano.
David Contreras Bárcena - ICAI
26
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 - Formato de los Mensajes
OBJETO MÉTODO
(ARGUMENTO)
Mensaje
Objeto
Los métodos pueden recibir argumentos o no, dependiendo de su naturaleza
La nomenclatura puede variar dependiendo del lenguaje que utilicemos
SmallTalk /V
Java
C ++
objeto metodo: argumento
objeto.metodo (argumento) objeto.metodo (argumento)
David Contreras Bárcena - ICAI
27
2.1.3 - Métodos
int getDía()
{
return día;
}
getDía()
reloj
getHora()
hora
día
numSerie
modelo
void incrementarDía(n)
{
día = día + n;
}
incrementarDía()
incrementarHora()
traducirFrecuencia()
limpiarPantalla()
David Contreras Bárcena - ICAI
28
denominan mensajes.
Programación Orientada a Objetos
Conceptos teóricos
2.1.3 - Mensajes
Las solicitudes que invocan los métodos se
Un mensaje va dirigido para realizar una
operación concreta sobre un objeto determinado.
Son el único modo de referirse a un objeto.
Objeto
Origen
Dame tu nombre
Mensajes
Toma mi nombre
Objeto
Destino
David Contreras Bárcena - ICAI
29
2.1.3 - Mensajes
Los mensajes que nosotros mandemos al reloj,
llevados a la vida real, serán apretar cada uno de
los botones.
Botón para mostrar
Comentarios de: Curso de Orientación a Objetos (0)
No hay comentarios