SlideShare una empresa de Scribd logo
1 de 73
Programación Orientada a Objetos
POO
26/09/2013 1POO - AIGL
Unidad I:
El paradigma Orientado a Objetos.
1.1 Introducción, surgimiento y desarrollo del
paradigma Orientado a Objetos
1.2 Clases y Objetos
1.3 Encapsulamiento
1.4 Herencia
1.5 Polimorfismo
1.6 Sobrecarga de Operadores y Funciones
26/09/2013 2POO - AIGL
Crisis del Software
26/09/2013 3POO - AIGL
Crisis del Software
• Englobó a una serie de sucesos que se venían observando en los
proyectos de desarrollo de software:
• Los proyectos no terminaban en plazo.
• Los proyectos no se ajustaban al presupuesto inicial.
• Baja calidad del software generado.
• Software que no cumplía las especificaciones.
• Código inmantenible que dificultaba la gestión y evolución del
proyecto.
26/09/2013 4POO - AIGL
1.1.- INTRODUCCIÓN, SURGIMIENTOS Y DESARROLLO DEL PARADIGMA
ORIENTADO A OBJETO
Lenguaje = Idioma Artificial
• La palabra programación se define como el proceso de creación de un
programa de computadora, mediante la aplicación de procedimientos
lógicos, a través de los siguientes pasos:
– El desarrollo lógico del programa para resolver un problema en particular.
– Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa).
– Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina.
– Prueba y depuración del programa.
– Desarrollo de la documentación.
Qué es un paradigma de programación?
• Paradigma un conjunto de teorías, estándar y métodos que juntos representan
un medio de organización del conocimiento: es decir un medio de visualizar el
mundo.
IMPERATIVA
C 1972, PASCAL
LOGICO
PROLOG
FUNCIONAL
LISP
ORIENTADO A OBJETO
Visual NET , JAVA
PARADIGMAS DE PROGRAMACION
26/09/2013 5POO - AIGL
EL PARADIGMA IMPERATIVO
Este paradigma duro lo suficiente hasta que las compañías y
empresas tuvieron una explosión de sus actividades y pasaron de ser
locales a ser regionales y nacionales, aumentado su grado de
complejidad y manejo de información, este se agudizo cuando las
necesidades pasaron las fronteras de los países y las empresas
nacionales se trasformaron en compañías internacionales.
Programación Imperativa, los primeros lenguajes imperativo fueron los lenguajes
de máquina
26/09/2013 6POO - AIGL
EL PARADIGMA LÓGICO
• Orientado a la Inteligencia Artificial
• La programación lógica comprende dos paradigmas de programación: la
programación declarativa y la programación funcional.
– La programación declarativa gira en torno al concepto de predicado, o relación
entre elementos.
le_gusta_a(juan,maria).
valioso(oro).
Tiene(juan,libro).
da(juan,libro,maria).
– La programación funcional se basa en el concepto de función (que no es más
que una evolución de los predicados), de corte más matemático.
En cambio, la lógica matemática es la manera más
sencilla, para el intelecto humano, de expresar formalmente
problemas complejos y de resolverlos mediante la aplicación
de reglas, hipótesis y teoremas. De ahí que el concepto de
"programación lógica" resulte atractivo en diversos campos
donde la programación tradicional es un fracaso
26/09/2013 7POO - AIGL
….EL PARADIGMA LÓGICO
Campos de Aplicación
• Sistemas expertos, donde un sistema de información imita las
recomendaciones de un experto sobre algún dominio de
conocimiento.
• Demostración automática de teoremas, donde un programa genera
nuevos teoremas sobre una teoría existente.
• Reconocimiento de lenguaje natural, donde un programa es capaz
de comprender (con limitaciones) la información contenida en una
expresión lingüística humana.
26/09/2013 8POO - AIGL
El paradigma Funcional
• Los matemáticos desde hace un buen tiempo están resolviendo
problemas usando el concepto de función. Una función convierte
ciertos datos en resultados
• Lisp el más antiguo a mediado de los 50
Entrada Proceso Salida
26/09/2013 9POO - AIGL
El paradigma Funcional
• Los matemáticos desde hace un buen tiempo están resolviendo
problemas usando el concepto de función. Una función convierte
ciertos datos en resultados
• Lisp el más antiguo a mediado de los 50
Entrada Proceso Salida
26/09/2013 10POO - AIGL
El paradigma Orientado a Objetos
• Podemos afirmar que el paradigma orientado a objeto reina en las
metodologías actuales y pasaran varios años para que resulte un nuevo
paradigma para que la reemplace totalmente. La programación orientada
a objeto vino para quedarse y mejorar nuestras vidas.
• En POO, las entidades centrales son los objetos, que son tipos de datos
que encapsulan con el mismo nombre estructuras de datos y las
operaciones o algoritmos que manipulan esos datos.
En filosofía un objeto es aquello que puede ser observado, estudiado y
aprendido.
El término objeto tiene el mismo significado que un nombre o una frase
nominal. Es una persona, lugar o cosa.
Un objeto en POO representa alguna entidad de la vida real, es decir, alguno
de los objetos que pertenecen al negocio con que estamos trabajando o al
problema con el que nos estamos enfrentando, y con los que podemos
interactuar
26/09/2013 11POO - AIGL
Objeto del Mundo Real
• Objeto: Persona
• Atributos: Características que lo
describen (nombre, edad
raza, fecha de nacimiento.)
• Comportamiento: el cojunto de
cosas que puede hacer un
objeto, matar, llorar, trabajar
caminar.
26/09/2013 12POO - AIGL
• En síntesis los objetos conocen cosas y hacen cosas
– Las cosas que un objeto conoce son ___________
– Las cosas que hace un objetos es su ___________
Otros objetos
26/09/2013 13POO - AIGL
los objetos según Shlaer, Mellor y Coad/Yourdon pueden caer
dentro de las categorías:
• Cosas tangibles (camión, bicicleta, batería, motor, libro)
• Roles o papeles jugados o representados por personas (gerentes, operarios, usuarios cliente)
• Organizaciones o instituciones (Empresas división, departamento, equipo)
• Procesos u acciones que representan un suceso (evento) u ocurrencias, tales como llamada a un
servicio, juego, acción determinada, pueden ser física o real.
• Interacciones Generalmente implican un contrato, o transacción y relacionan dos o más objetos
del problema en cuestión
• Especificaciones muestran aplicaciones o plantillas de artículos, productos industriales
• Lugares oficinas, sala de estudio, aula, muelle de embarque.
• Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las
operaciones sobre ellos
26/09/2013 14POO - AIGL
¿Qué clase de cosas puede ser objetos en un programa OO? La
respuesta solo se limita a la imaginación. Ejemplos típicos:
Objetos Físicos
Aviones en un sistema de trafico aéreo.
Automóviles en un sistema de control de
trafico terrestre.
Casas.
Elementos de interfaces gráficos de usuario
Ventanas
Menús
Objetos gráficos
(cuadrados, triángulos, etc.)
Teclado
Cuadros de dialogo
Ratón.
Animales
Vertebrados
Invertebrados
Pescados
Tipos de datos definidos por el usuario
Datos complejos
Puntos de un sistema de coordenadas.
Alimentos
Carnes
Frutas
Pescados
Verduras
Pasteles
26/09/2013 15POO - AIGL
• Cuando hemos determinados los posibles objetos pasamos
a identificar los posibles atributos y las operaciones sobre
ellos
Objeto: Empleado
Atributos:
Nombre
Dirección
Ubicación
Nombre del
departamento
Nivel de estudio
Objeto: Película
Atributos: Nombre
Director
Genero
Duración
Color
26/09/2013 16POO - AIGL
• Dentro del contexto de un Lenguaje OO (LOO), un objeto encapsula datos
y los procedimientos/funciones (métodos) que manejan esos datos. La
notación grafica varia de una metodología a otras.
Nombre del objeto
Datos
Métodos
Notación grafica Yourdon / Coad
Nombre
Atributos
Métodos
Notación Grafica OMT
Atributos Datos o variables que caracterizan o
describen el estado del objeto.
Métodos Procedimientos o acciones que
cambian el estado de un objeto. Describen el
comportamiento asociado a un objeto.26/09/2013 17POO - AIGL
• Ejemplo.
Coche 1
Matricula
Marca
Precio
Año compra
Calcular_Precio_Actual
26/09/2013 18POO - AIGL
• Las clases se organizan en las siguiente relaciones:
Abstracción Encapsulamiento Modularidad Polimorfismo
• Los principios básicos orientados a objetos son:
26/09/2013 19POO - AIGL
Jerarquía
• Los cuatro elementos (propiedades) que ayudan a definir un objeto
son
Objetos como instancia de una clase MensajeMétodosAtributos
Herencia Agregación Asociación Uso
 Las características esenciales de un objeto, sin preocuparse de las restantes
características (no esenciales)
 Centrado en la vista externa de un objeto, de modo que sirva para separar el
comportamiento esencial de un objeto de su implementación.
 Con énfasis al ¿Qué hace? Más al ¿Cómo lo hace?
 Permite disponer de las características de un objeto.
 Por ejemplo para un sistemas de matrícula del objeto persona
podemos obtener las características nombre, edad, dirección, estado
civil, etc.
 si lo requerimos para el área de biología, dentro de sus atributos quizá
tengamos, ADN, Tipo de Sangre, etc.
Abstracción
26/09/2013 20POO - AIGL
• Modelando una fracción, por ejemplo
La fracción será el objeto y tendrá dos propiedades, el numerador y el
denominador.
Luego podría tener varios métodos como simplificarse, sumarse con otra
fracción o número, restarse con otra fracción
…Abstracción
26/09/2013 21POO - AIGL
Fraccion
Numerador
Denominador
Simplificar()
Sumar()
Restar()
 Permite asegurar que el contenido de la información de un objeto está oculta
al mundo exterior: El contenido del objeto A está oculto al contenido del
objeto B.
 Conocida como la ocultación de la información.
 La encapsulación permite la división de un programa en módulos. Estos
módulos se implementan mediante clases, de forma que una clase representa
la encapsulación de una abstracción, en la práctica esto significa que cada
clase debe tener dos partes: un interfaz y una implementación.
 El interfaz de una clase captura solo su vista externa y la implementación
contiene la representación de la abstracción, así como los mecanismos que
realizan el comportamiento deseado.
Encapsulamiento
26/09/2013 22POO - AIGL
• ocultamiento del estado, es decir, de los datos miembro, de un objeto de
manera que sólo se puede cambiar mediante las operaciones definidas
para ese objeto.
• Ejemplos
• Cuando vemos televisión no nos preocupamos del modo como éste
funciona, o lo que hace para cambiar de canal o aumentar de volumen
26/09/2013 23POO - AIGL
• La encapsulación se encarga de mantener ocultos los procesos
internos que necesita para hacer lo que sea que haga, dándole al
programador acceso sólo a lo que necesita
• Esto da dos ventajas iniciales:
– Lo que hace el usuario puede ser controlado internamente (incluso
sus errores), evitando que todo colapse por una intervención
indeseada
26/09/2013 POO - AIGL 24
Te imaginas a tu mamá que no tiene ni
idea de electrónica desarme el televisor
y juegue con los circuitos para cambiar
manualmente?? o.O
26/09/2013 POO - AIGL 25
La segunda ventaja es que, al hacer que la mayor parte del código
esté oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo
como los usuarios van a utilizar tu código. Sólo tienes que mantener
igual la forma de acceder a él
en el caso del control de la tele, que los
botones sigan siendo los mismos y que el
botón de “apagado” no cambie el volumen
Estas puertas de acceso que das a los usuarios son lo que se conoce
como interfaz.
El encapsulamiento consiste en unir en la Clase
las características y comportamientos, esto es,
las variables y métodos.
Una de las premisas de POO, es que la mayoría, sino todos, los atributos
de un objeto deben ser privados, esto para tener seguridad sobre los
valores del objeto, pero entonces...¿cómo acceder a los atributos de una
clase?, la respuesta, encapsulamiento, los métodos de encapsulamiento se
utilizan sólo cuando es apropiado entregar los datos a otro objeto que
solicite la información.
Piensa en tus atributos, tienes nombres, apellidos, etc , todos esos
atributos son privados, ¿pero si son privados...porque la gente me llama
por mi nombre? fácil, por los métodos de encapsulamiento que permiten
al objeto entregar la información que sea solicitada por otro objeto...
Encapsulamiento
26/09/2013 26POO - AIGL
te encuentras en un Bar, a lo lejos en la penumbra vez
una sombra que se acerca a tu mesa, estás sólo era de
esperarse porque nadie te quiere...
(sí estás leyendo esto es porque eres programador, los
programadores no tienen amigos, eso todo el mundo lo
sabe)...
…Encapsulamiento
26/09/2013 27POO - AIGL
pero la sombra se sigue acercando, cuando la
reducida luz que se encuentra sobre tu
persona, alcanza a iluminar ligeramente a la
persona desconocida vez que es lo que estabas
esperando, es la mujer más hermosa del
mundo y te tiene ganas,
ella atravesó todo el bar para conocer tu
atributo privado nombre, tu utilizas tú método
de des-encapsulamiento para entregarle a la
desconocida ese valor...
…Encapsulamiento
26/09/2013 28POO - AIGL
pfff entonces, ¿para qué encapsulo si al final voy a entregar el valor a cualquier
desconocido?.
Imagina la misma escena, sólo que esta vez no
es el amor de tu vida sino un ladrón que te va
a hacer el paso millonario y que esta vez no
está interesado en tu nombre sino en tu PIN de
la tarjeta, ¿tu se lo entregas?, NO! por eso es
importante encapsular los atributos de una
clase, para que los objetos sólo puedan
entregar los valores que sean programados por
ti y no por nadie más.
…Encapsulamiento
26/09/2013 29POO - AIGL
(ocultamiento de la información) es la idea
de empacar juntas en una Unidad de
programación una colección de miembros
de datos y sus funciones (Operaciones) bien
definida.
…Encapsulamiento
26/09/2013 30POO - AIGL
(ocultamiento de la información) es la idea
de empacar juntas en una Clase de
programación una colección de miembros
de datos y sus funciones (Operaciones) bien
definida.
26/09/2013 POO - AIGL 31
Existen tres niveles de acceso:
· público: funciones de toda clase pueden acceder a los datos o
métodos de una clase que se define con el nivel de acceso público. Este
es el nivel de protección de datos más bajo
· protegido: el acceso a los datos está restringido a las funciones de
clases heredadas, es decir, las funciones miembro de esa clase y todas
las subclases
· privado: el acceso a los datos está restringido a los métodos de
esa clase en particular. Este es nivel más alto de protección de
datos (10)
…Encapsulamiento
26/09/2013 32POO - AIGL
La Clase es, por otro lado, una encapsulación porque constituye una cápsula o
saco que encierra y amalgama de forma clara tanto los datos de que constan
los objetos como los procedimientos que permiten manipularlos. Las Clases se
constituyen, así, en abstracciones encapsuladas
• Una clase es la descripción de un conjunto de objetos; consta de métodos y datos que
resumen características comunes de un conjunto de objetos. Una clase puede definir un
numero virtualmente infinito de objetos, y cada objeto es denominado una instancia de
la clase.
• Por consiguiente, los objetos no son mas que instancias de una clase. Una instancia es
una variable de tipo objeto.
• Ejemplo:
Carro
Año
Pasajeros
Color
Modelo
Encender
Apagar
26/09/2013 33POO - AIGL
CLASES
Clases
• Una descripción abstracta de un conjunto de objetos, cada uno de los
cuales se diferencia por su estado específico y por la posibilidad del objeto
de realizar una serie de operaciones.
• Una clase en términos coloquiales, es el plano de un objeto, es donde se
deben definir todas las características de los objetos de la vida real o de
objetos abstractos
CLASES
26/09/2013 34POO - AIGL
Las clases son una descripción abstracta, ideal de un grupo de
objetos, cada uno de los cuales se diferencia por un estado especifico y es
capaz de realizar una serie de operaciones.
• 1.- Carlos Mejía Godoy, Katia Cardenal, José Manuel Espinoza pertenecen
a la clase “cantantes de Nicaragüenses”
• 2.- Jeff, Alejandra, Moisés, Alejandro pertenecen a la clase de “Estudiantes
del 2M4-Co
• 3.- Carlos Andrés Pérez, Violeta Barrios, Bill Clinton, pertenecen a la clase
“Ex presidentes de América”
Clases
26/09/2013 35POO - AIGL
Clases
26/09/2013 36POO - AIGL
Clase Posibles atributos Posible Comportamiento
Bicicleta Modelo
Velocidades
color
Frenar
Cambiar velocidades
Naranja Dulzura
Color
tipo
Pelar
Pudrirse
Exprimir
Edificio Temperatura
Número de pisos
Número de habitaciones
Abrir
Cerrar
Calefacción
Estudiante Nombre
Dirección
Numero de Carne
Año de estudio
Cambiar clases
Matricular
Graduar
Inscribir materias
26/09/2013 37POO - AIGL
Clase:
Trabajadores
UNI
• Es la propiedad que permite subdividir una aplicación en partes mas pequeñas
(llamadas módulos), cada una las cuales debe ser tan independiente como sea
posible de la aplicación en si y de las restantes partes.
• Por su parte Bárbara Liskov establece que "modularización consiste en dividir un
programa en módulos que pueden ser compilados de forma separada, pero que
tienen conexiones con otros módulos"2
…Modularidad
26/09/2013 38POO - AIGL
Métodos
26/09/2013 39POO - AIGL
Algoritmo asociado a un objeto (o Clase de
objetos), cuya ejecución se desencadena tras la
recepción de un mensaje.
Desde el punto de vista del comportamiento, es lo
que el objeto puede hacer.
Un método puede producir un cambio en las
propiedades del objetos.
Mensajes
26/09/2013 40POO - AIGL
– Los objetos de un programa interactúan y se
comunican entre ellos por medio de mensajes
– A veces el objeto que recibe el mensaje necesita
más información Esta información se pasa junto
con el mensaje en forma de parámetro.
– Partes del mensaje
El objeto al cual se manda el mensaje
El método o función
Los parámetros que necesita ese
método
Herencia
26/09/2013 41POO - AIGL
– La herencia es la propiedad que permite a los
objetos ser construidos a partir de otros
objetos., es decir la capacidad de un objeto para
utilizar las estructuras de datos y los métodos
previstos en antepasados o ascendientes. El
objetivo final es la reutilización o reutilizabilidad
es decir reutilizar código anteriormente ya
desarrollado.
…Herencia
26/09/2013 42POO - AIGL
La idea de herencia parte de la experiencia de la
vida real las clases básicas o fundamentales se
dividen en subclases
Seres Humanos
Varones Mujeres
Animales
Vertebrados Invertebrados
Automóviles
Lujo Carrera Carga
…Herencia
26/09/2013 43POO - AIGL
los objetos con propiedades comunes se agrupan en una clase
las clases con propiedades comunes se agrupan en una superclase
Las clases que se derivan de una superclase son las subclases.
Herencia Simple O Jerárquica
Un objeto (clase) puede tener
solo un ascendiente, o dicho
de otro modo, una subclase
puede heredar datos y
métodos de una única clase,
así como añadir o quitar
comportamientos de la clase
base.
SuperClase
…Herencia
26/09/2013 44POO - AIGL
Herencia Múltiple o en Malla
Es la propiedad de una clase de poder tener más de un ascendiente inmediato, o lo que
es igual, adquirir datos y métodos de más de una clase.
Trabajador
Investigador Conserje CPFProfesor
Profesor UNI
Relaciones entre Las Clases
26/09/2013 45POO - AIGL
• Las relaciones entre clases son tres:
1. Relación de asociación
2. Relación de agregación
3. Relación de generalización.
Relacion de Asociación
• Representa una dependencia entre clase
• Es preciso buscar frase tales como: pertenece a, es
miembro de, esta asociado con, trabaja para, etc.
• Una propiedad importante intrínseca a la relación de
asociación o multiplicidad es la cardinalidad o
multiplicidad.
– Una a una
– Una a muchas
– Muchas a muchas
26/09/2013 POO - AIGL 46
Relaciones de Asociación
Relacion de Asociación
• Una a Una:
• Notacion
___________ Una a Una
26/09/2013 POO - AIGL 47
Relaciones de Asociación
Ciudad Capital
Venta Pago
Relacion de Asociación
• Una a Muchas:
• Notacion
___________ Una a muchas
1..n, 1-m Una a muchas
26/09/2013 POO - AIGL 48
Relaciones de Asociación
País Ciudad
Cliente Facturas
1 n
1 n
1 n
Relacion de Asociación
• Muchas a Muchas:
• Notacion
___________ Muchas a muchas
m..n, m-n Muchas a muchas
26/09/2013 POO - AIGL 49
Relaciones de Asociación
Profesor Alumno
Estudiante Asignatura
n M
Relacion de Asociación
26/09/2013 POO - AIGL 50
Relaciones de Agregación o Composición
M
• Es un concepto que se utiliza para expresar tipos de relaciones entre
objetos: parte-de o tiene-un.
Relacion de Asociación
51
Relación de Generalización
• Representa una relación “ un tipo de “. Por ejemplo, una rosa es un tipo de
flor, significando que una rosa es una subclase especializada de la clase
general, flor.
Vehículo
Relacion de Asociación
52
Polimorfismo
• Que una entidad tome muchas formas.
• Permite referirse a objetos de clases diferentes mediante el mismo
elemento de programa y realizar la misma operación de diferentes
formas, según sea el objeto que se referencia en ese momento.
• Permite que una misma función se comporte de diferente formas según
sea la clase sobre la que se aplica.
• un mismo identificador puede tener distintas formas (distintos cuerpos de
función, distintos comportamientos) dependiendo del contexto en el que
se halle.
Relacion de Asociación
53
Polimorfismo y Sobrecarga
• uso del mismo identificador u operador en distintos contextos y con
distintos significados.
• La sobrecarga de métodos hace que un mismo nombre pueda representar
distintos métodos con distinto tipo y número de parámetros, manejados
dentro de la misma clase. En el ámbito de la POO, la sobrecarga de
métodos se refiere a la posibilidad de tener dos o más métodos con el
mismo nombre pero distinta funcionalidad. Es decir, dos o más métodos
con el mismo nombre realizan acciones diferentes y el compilador usará
una u otra dependiendo de los parámetros usados. Esto también se aplica
a los constructores (de hecho, es la aplicación más habitual de la
sobrecarga).
Relacion de Asociación
54
Polimorfismo
Relacion de Asociación
55
Polimorfismo
• Sobrecarga:
• uso del mismo identificador u operador en distintos contextos y con
distintos significados.
Relacion de Asociación
56
Polimorfismo
• La función dibujar se aplica igualmente a un círculo, a un cuadrado o a un
triángulo, y el objeto ejecutará el código apropiado dependiendo del tipo
específico
• Figura
Color
Area()
Cuadrado
Lado
Area()
Circulo
Radio
Area()
Polimorfismo del método Area
CLASE Figura
int x,y;
Mover ();
Área ();
CLASE Círculo Hereda de Figura
int radio;
Área (); donde Área = pi * radio * radio
CLASE Cuadrado Hereda de Figura
int lado;
Área (); donde Área = lado * lado
Abstracción: Visión simplificada de la realidad
Objeto: Modelado del software del mundo real
Clase: Estructura de software que definen los objetos
Herencia de la Clase: Heredan los atributos y/o métodos de sus padres (o
Jerarquización de clases)
Polimorfismo: Elemento de programa que realiza operación de distintas
formas.
26/09/2013 POO - AIGL 57
• Realizar un ensayo en su cuaderno sobre la
Crisis del Software.
• Cuadro comparativo de los paradigmas de
programación
• Utilizando Notación Grafica OMT represente
10 objeto sus atributos a encapsular y sus
métodos
• Glosario de Términos desconocido
26/09/2013 58POO - AIGL
• Investigar sobre categorías de métodos
26/09/2013 59POO - AIGL
Relacion de Asociación
60
II Unidad: Metodologías de análisis y
Diseño Orientado a Objetos.
• En programación Orientada a objetos , un programa describe un sistema de objetos
que interactúan entre si
• Existen numerosos métodos de desarrollo orientado a objetos:
– Booch, Yourdon/Coad,
– Martin,
– Shlaer & Mellor,
– Rumbaugh, etc.
• En general, al igualque en cualquier proyecto estructurado, un proyecto completo
OO se compondrá de las siguientes etapas:
– Análisis orientado a objetos AOO.
– Diseño orientado a objetos DOO.
– Programación Orientada a Objetos.
Relacion de Asociación
61
II Unidad: Metodologías de análisis y
Diseño Orientado a Objetos.
• El método Booch considera que las etapas del denominado microproceso en un
desarrollo orientado a objetos:
– Identificar las clases y objetos en un nivel dado de abstracción
– Identificar la semántica de estas clases y objetos.
– Identificar las relaciones entre clases y objetos.
– Especificar el interfaz y la implementación de estas clases y objetos.
• Otros métodos de diseño orientado a objetos contienen las etapas siguientes:
1. Identificar clases y objetos.
2. Asignar atributos y comportamientos
3. Encontrar relaciones entre clases.
4. Organizar las clases en jerarquías
5. Implementar las especificaciones de diseño
Figura
Relacion de Asociación
62
II Unidad: Metodologías de análisis y
Diseño Orientado a Objetos.
Auto
Relación entre clase tiene Un
Secretaria
Empleado
Persona Relación entre clase Es Un
3 Encontrar Relaciones entre clases
Relacion de Asociación
63
II Unidad: Metodologías de análisis y
Diseño Orientado a Objetos.
• 4 Interfaz e implementación de las Clases: La interfaz de la clase se puede dividir en tres
partes
– Pública
– Protegida
– Privada
• Las características esenciales que debe seguir en el diseño del interfaz de cada clase son:
– Identificar las operaciones requeridas por usuarios de casa en clase. Estas
operaciones definen el interfaz público de la clase.
– Identificar las posibles funciones de ayuda requeridas por la clase para soportar las
operaciones de su interfaz público. Estas operaciones serán privadas o protegidas en
una jerarquía de clases
– En el caso de una jerarquía de clases, identificar operaciones que son dependientes
del tipo: éstas serán el conjunto de funciones virtuales dentro de la jerarquía.
– Identificar la representación de cada clase.
64
• Notaciones Gráficas: Booch
26/09/2013 POO - AIGL 65
Gerente
Vicepresidente Empleado Director Dpto
SecretariaFotocopiadora
1
3
1
1
1 n
Agregación Yourdan
26/09/2013 POO - AIGL 66
Persona
Estudiante Profesor
Generalización Yourdon
26/09/2013 POO - AIGL 67
Coche
Ruedas Puertas
Notacion Rumbaugh
26/09/2013 POO - AIGL 68
Vehículo
Vehículo
Terrestre
Vehículo Marino
Llantas Boomper hélices Timón
Notacion Rumbaugh OMT
26/09/2013 POO - AIGL 69
Relacion de Asociación
• Una a Una:
• Notacion
___________ Una a Una
26/09/2013 POO - AIGL 70
Relaciones de Asociación
Ciudad Capital
Venta Pago
Relacion de Asociación
• Una a Muchas:
• Notacion
___________ Una a muchas
1..n, 1-m Una a muchas
26/09/2013 POO - AIGL 71
Relaciones de Asociación
País Ciudad
Cliente Facturas
1 n
1 n
1 n
Relacion de Asociación
• Muchas a Muchas:
• Notacion
___________ Muchas a muchas
m..n, m-n Muchas a muchas
26/09/2013 POO - AIGL 72
Relaciones de Asociación
Profesor Alumno
Estudiante Asignatura
n M
• http://algonzalezpoo.wordpress.com/encapsul
amiento/
26/09/2013 POO - AIGL 73

Más contenido relacionado

La actualidad más candente

Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacionMaria Garcia
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad IILuis Caiza
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de usoTensor
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.nayis2010
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datosMaria Barrios
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blancaStudentPc
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 

La actualidad más candente (20)

Alice 6
Alice 6Alice 6
Alice 6
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Programacion orientada a objetos Java
Programacion orientada a objetos JavaProgramacion orientada a objetos Java
Programacion orientada a objetos Java
 
Alice 8
Alice 8Alice 8
Alice 8
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Alice 1
Alice 1Alice 1
Alice 1
 
DIAGRAMA DE COMPONENTES
DIAGRAMA DE COMPONENTESDIAGRAMA DE COMPONENTES
DIAGRAMA DE COMPONENTES
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
Greenfoot 1
Greenfoot 1Greenfoot 1
Greenfoot 1
 
Diagramas de caso de uso
Diagramas de caso de usoDiagramas de caso de uso
Diagramas de caso de uso
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.Modelo Entidad Relación Extendido.
Modelo Entidad Relación Extendido.
 
Ejercicios de base de datos
Ejercicios de base de datosEjercicios de base de datos
Ejercicios de base de datos
 
Software caja negra y caja blanca
Software caja negra y caja blancaSoftware caja negra y caja blanca
Software caja negra y caja blanca
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 

Destacado

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
MAPEO OBJETO RELACIONAL
MAPEO OBJETO RELACIONAL MAPEO OBJETO RELACIONAL
MAPEO OBJETO RELACIONAL Poro Punk
 
Curso java inicial 1 poo
Curso java inicial   1 pooCurso java inicial   1 poo
Curso java inicial 1 pooHerman Vargas
 
COMPILADOR G++
COMPILADOR G++COMPILADOR G++
COMPILADOR G++HM47
 
POO Programación Orientada a Objeto(s)
POO Programación Orientada a Objeto(s)POO Programación Orientada a Objeto(s)
POO Programación Orientada a Objeto(s)Cambiar una estructura
 
Programacion Orienta A Objetos
Programacion Orienta A ObjetosProgramacion Orienta A Objetos
Programacion Orienta A ObjetosDavid
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividadesTerryJoss
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre ObjetosEmilio Aviles Avila
 
Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Grupo PHP Argentina
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 

Destacado (20)

Estructuras y clases
Estructuras y clasesEstructuras y clases
Estructuras y clases
 
POO
POOPOO
POO
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1Programación Orientada Objetos Java Unidad 1
Programación Orientada Objetos Java Unidad 1
 
MAPEO OBJETO RELACIONAL
MAPEO OBJETO RELACIONAL MAPEO OBJETO RELACIONAL
MAPEO OBJETO RELACIONAL
 
Curso java inicial 1 poo
Curso java inicial   1 pooCurso java inicial   1 poo
Curso java inicial 1 poo
 
COMPILADOR G++
COMPILADOR G++COMPILADOR G++
COMPILADOR G++
 
POO Programación Orientada a Objeto(s)
POO Programación Orientada a Objeto(s)POO Programación Orientada a Objeto(s)
POO Programación Orientada a Objeto(s)
 
Programacion Orienta A Objetos
Programacion Orienta A ObjetosProgramacion Orienta A Objetos
Programacion Orienta A Objetos
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Poo
PooPoo
Poo
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
POO
POOPOO
POO
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 

Similar a Clases poo

Paradigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a ObjetosParadigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a ObjetosJose Sanchez
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OOsullinsan
 
Introducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfIntroducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfEnrique137614
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetosvloor
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A ObjetosAndrés
 
Guia flash
Guia flashGuia flash
Guia flashnatalia
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosEdna Rheiner
 
Importancia Diseño Orientado a Objetos
Importancia Diseño Orientado a ObjetosImportancia Diseño Orientado a Objetos
Importancia Diseño Orientado a ObjetosRonald Bello
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Christian Castro
 
Programación Orientada a Objetos.pptx
Programación Orientada a Objetos.pptxProgramación Orientada a Objetos.pptx
Programación Orientada a Objetos.pptxJoseBarazarte4
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a ObjetosJoseBarazarte4
 

Similar a Clases poo (20)

Programacion o o
Programacion o oProgramacion o o
Programacion o o
 
Paradigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a ObjetosParadigma de Programación Orientada a Objetos
Paradigma de Programación Orientada a Objetos
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OO
 
Teoría POO JAva.pdf
Teoría POO JAva.pdfTeoría POO JAva.pdf
Teoría POO JAva.pdf
 
Introducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdfIntroducción a la Programación Orientada a Objetos.pdf
Introducción a la Programación Orientada a Objetos.pdf
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
ESTUDIANTE
ESTUDIANTEESTUDIANTE
ESTUDIANTE
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Lenguajes de programacion.
Lenguajes de programacion.Lenguajes de programacion.
Lenguajes de programacion.
 
Guia flash
Guia flashGuia flash
Guia flash
 
Programación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentosProgramación orientada a objetos, fundamentos
Programación orientada a objetos, fundamentos
 
Importancia Diseño Orientado a Objetos
Importancia Diseño Orientado a ObjetosImportancia Diseño Orientado a Objetos
Importancia Diseño Orientado a Objetos
 
Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++Programacion Orientada a Obejtos C++
Programacion Orientada a Obejtos C++
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
POO
POOPOO
POO
 
Presentación poo
Presentación pooPresentación poo
Presentación poo
 
Programación Orientada a Objetos.pptx
Programación Orientada a Objetos.pptxProgramación Orientada a Objetos.pptx
Programación Orientada a Objetos.pptx
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Guía Teórica POO
Guía Teórica POOGuía Teórica POO
Guía Teórica POO
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Clases poo

  • 1. Programación Orientada a Objetos POO 26/09/2013 1POO - AIGL
  • 2. Unidad I: El paradigma Orientado a Objetos. 1.1 Introducción, surgimiento y desarrollo del paradigma Orientado a Objetos 1.2 Clases y Objetos 1.3 Encapsulamiento 1.4 Herencia 1.5 Polimorfismo 1.6 Sobrecarga de Operadores y Funciones 26/09/2013 2POO - AIGL
  • 4. Crisis del Software • Englobó a una serie de sucesos que se venían observando en los proyectos de desarrollo de software: • Los proyectos no terminaban en plazo. • Los proyectos no se ajustaban al presupuesto inicial. • Baja calidad del software generado. • Software que no cumplía las especificaciones. • Código inmantenible que dificultaba la gestión y evolución del proyecto. 26/09/2013 4POO - AIGL
  • 5. 1.1.- INTRODUCCIÓN, SURGIMIENTOS Y DESARROLLO DEL PARADIGMA ORIENTADO A OBJETO Lenguaje = Idioma Artificial • La palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: – El desarrollo lógico del programa para resolver un problema en particular. – Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). – Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. – Prueba y depuración del programa. – Desarrollo de la documentación. Qué es un paradigma de programación? • Paradigma un conjunto de teorías, estándar y métodos que juntos representan un medio de organización del conocimiento: es decir un medio de visualizar el mundo. IMPERATIVA C 1972, PASCAL LOGICO PROLOG FUNCIONAL LISP ORIENTADO A OBJETO Visual NET , JAVA PARADIGMAS DE PROGRAMACION 26/09/2013 5POO - AIGL
  • 6. EL PARADIGMA IMPERATIVO Este paradigma duro lo suficiente hasta que las compañías y empresas tuvieron una explosión de sus actividades y pasaron de ser locales a ser regionales y nacionales, aumentado su grado de complejidad y manejo de información, este se agudizo cuando las necesidades pasaron las fronteras de los países y las empresas nacionales se trasformaron en compañías internacionales. Programación Imperativa, los primeros lenguajes imperativo fueron los lenguajes de máquina 26/09/2013 6POO - AIGL
  • 7. EL PARADIGMA LÓGICO • Orientado a la Inteligencia Artificial • La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. – La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. le_gusta_a(juan,maria). valioso(oro). Tiene(juan,libro). da(juan,libro,maria). – La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático. En cambio, la lógica matemática es la manera más sencilla, para el intelecto humano, de expresar formalmente problemas complejos y de resolverlos mediante la aplicación de reglas, hipótesis y teoremas. De ahí que el concepto de "programación lógica" resulte atractivo en diversos campos donde la programación tradicional es un fracaso 26/09/2013 7POO - AIGL
  • 8. ….EL PARADIGMA LÓGICO Campos de Aplicación • Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto sobre algún dominio de conocimiento. • Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente. • Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana. 26/09/2013 8POO - AIGL
  • 9. El paradigma Funcional • Los matemáticos desde hace un buen tiempo están resolviendo problemas usando el concepto de función. Una función convierte ciertos datos en resultados • Lisp el más antiguo a mediado de los 50 Entrada Proceso Salida 26/09/2013 9POO - AIGL
  • 10. El paradigma Funcional • Los matemáticos desde hace un buen tiempo están resolviendo problemas usando el concepto de función. Una función convierte ciertos datos en resultados • Lisp el más antiguo a mediado de los 50 Entrada Proceso Salida 26/09/2013 10POO - AIGL
  • 11. El paradigma Orientado a Objetos • Podemos afirmar que el paradigma orientado a objeto reina en las metodologías actuales y pasaran varios años para que resulte un nuevo paradigma para que la reemplace totalmente. La programación orientada a objeto vino para quedarse y mejorar nuestras vidas. • En POO, las entidades centrales son los objetos, que son tipos de datos que encapsulan con el mismo nombre estructuras de datos y las operaciones o algoritmos que manipulan esos datos. En filosofía un objeto es aquello que puede ser observado, estudiado y aprendido. El término objeto tiene el mismo significado que un nombre o una frase nominal. Es una persona, lugar o cosa. Un objeto en POO representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando, y con los que podemos interactuar 26/09/2013 11POO - AIGL
  • 12. Objeto del Mundo Real • Objeto: Persona • Atributos: Características que lo describen (nombre, edad raza, fecha de nacimiento.) • Comportamiento: el cojunto de cosas que puede hacer un objeto, matar, llorar, trabajar caminar. 26/09/2013 12POO - AIGL
  • 13. • En síntesis los objetos conocen cosas y hacen cosas – Las cosas que un objeto conoce son ___________ – Las cosas que hace un objetos es su ___________ Otros objetos 26/09/2013 13POO - AIGL
  • 14. los objetos según Shlaer, Mellor y Coad/Yourdon pueden caer dentro de las categorías: • Cosas tangibles (camión, bicicleta, batería, motor, libro) • Roles o papeles jugados o representados por personas (gerentes, operarios, usuarios cliente) • Organizaciones o instituciones (Empresas división, departamento, equipo) • Procesos u acciones que representan un suceso (evento) u ocurrencias, tales como llamada a un servicio, juego, acción determinada, pueden ser física o real. • Interacciones Generalmente implican un contrato, o transacción y relacionan dos o más objetos del problema en cuestión • Especificaciones muestran aplicaciones o plantillas de artículos, productos industriales • Lugares oficinas, sala de estudio, aula, muelle de embarque. • Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos 26/09/2013 14POO - AIGL
  • 15. ¿Qué clase de cosas puede ser objetos en un programa OO? La respuesta solo se limita a la imaginación. Ejemplos típicos: Objetos Físicos Aviones en un sistema de trafico aéreo. Automóviles en un sistema de control de trafico terrestre. Casas. Elementos de interfaces gráficos de usuario Ventanas Menús Objetos gráficos (cuadrados, triángulos, etc.) Teclado Cuadros de dialogo Ratón. Animales Vertebrados Invertebrados Pescados Tipos de datos definidos por el usuario Datos complejos Puntos de un sistema de coordenadas. Alimentos Carnes Frutas Pescados Verduras Pasteles 26/09/2013 15POO - AIGL
  • 16. • Cuando hemos determinados los posibles objetos pasamos a identificar los posibles atributos y las operaciones sobre ellos Objeto: Empleado Atributos: Nombre Dirección Ubicación Nombre del departamento Nivel de estudio Objeto: Película Atributos: Nombre Director Genero Duración Color 26/09/2013 16POO - AIGL
  • 17. • Dentro del contexto de un Lenguaje OO (LOO), un objeto encapsula datos y los procedimientos/funciones (métodos) que manejan esos datos. La notación grafica varia de una metodología a otras. Nombre del objeto Datos Métodos Notación grafica Yourdon / Coad Nombre Atributos Métodos Notación Grafica OMT Atributos Datos o variables que caracterizan o describen el estado del objeto. Métodos Procedimientos o acciones que cambian el estado de un objeto. Describen el comportamiento asociado a un objeto.26/09/2013 17POO - AIGL
  • 18. • Ejemplo. Coche 1 Matricula Marca Precio Año compra Calcular_Precio_Actual 26/09/2013 18POO - AIGL
  • 19. • Las clases se organizan en las siguiente relaciones: Abstracción Encapsulamiento Modularidad Polimorfismo • Los principios básicos orientados a objetos son: 26/09/2013 19POO - AIGL Jerarquía • Los cuatro elementos (propiedades) que ayudan a definir un objeto son Objetos como instancia de una clase MensajeMétodosAtributos Herencia Agregación Asociación Uso
  • 20.  Las características esenciales de un objeto, sin preocuparse de las restantes características (no esenciales)  Centrado en la vista externa de un objeto, de modo que sirva para separar el comportamiento esencial de un objeto de su implementación.  Con énfasis al ¿Qué hace? Más al ¿Cómo lo hace?  Permite disponer de las características de un objeto.  Por ejemplo para un sistemas de matrícula del objeto persona podemos obtener las características nombre, edad, dirección, estado civil, etc.  si lo requerimos para el área de biología, dentro de sus atributos quizá tengamos, ADN, Tipo de Sangre, etc. Abstracción 26/09/2013 20POO - AIGL
  • 21. • Modelando una fracción, por ejemplo La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción …Abstracción 26/09/2013 21POO - AIGL Fraccion Numerador Denominador Simplificar() Sumar() Restar()
  • 22.  Permite asegurar que el contenido de la información de un objeto está oculta al mundo exterior: El contenido del objeto A está oculto al contenido del objeto B.  Conocida como la ocultación de la información.  La encapsulación permite la división de un programa en módulos. Estos módulos se implementan mediante clases, de forma que una clase representa la encapsulación de una abstracción, en la práctica esto significa que cada clase debe tener dos partes: un interfaz y una implementación.  El interfaz de una clase captura solo su vista externa y la implementación contiene la representación de la abstracción, así como los mecanismos que realizan el comportamiento deseado. Encapsulamiento 26/09/2013 22POO - AIGL
  • 23. • ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto. • Ejemplos • Cuando vemos televisión no nos preocupamos del modo como éste funciona, o lo que hace para cambiar de canal o aumentar de volumen 26/09/2013 23POO - AIGL
  • 24. • La encapsulación se encarga de mantener ocultos los procesos internos que necesita para hacer lo que sea que haga, dándole al programador acceso sólo a lo que necesita • Esto da dos ventajas iniciales: – Lo que hace el usuario puede ser controlado internamente (incluso sus errores), evitando que todo colapse por una intervención indeseada 26/09/2013 POO - AIGL 24 Te imaginas a tu mamá que no tiene ni idea de electrónica desarme el televisor y juegue con los circuitos para cambiar manualmente?? o.O
  • 25. 26/09/2013 POO - AIGL 25 La segunda ventaja es que, al hacer que la mayor parte del código esté oculto, puedes hacer cambios y/o mejoras sin que eso afecte el modo como los usuarios van a utilizar tu código. Sólo tienes que mantener igual la forma de acceder a él en el caso del control de la tele, que los botones sigan siendo los mismos y que el botón de “apagado” no cambie el volumen Estas puertas de acceso que das a los usuarios son lo que se conoce como interfaz. El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos.
  • 26. Una de las premisas de POO, es que la mayoría, sino todos, los atributos de un objeto deben ser privados, esto para tener seguridad sobre los valores del objeto, pero entonces...¿cómo acceder a los atributos de una clase?, la respuesta, encapsulamiento, los métodos de encapsulamiento se utilizan sólo cuando es apropiado entregar los datos a otro objeto que solicite la información. Piensa en tus atributos, tienes nombres, apellidos, etc , todos esos atributos son privados, ¿pero si son privados...porque la gente me llama por mi nombre? fácil, por los métodos de encapsulamiento que permiten al objeto entregar la información que sea solicitada por otro objeto... Encapsulamiento 26/09/2013 26POO - AIGL
  • 27. te encuentras en un Bar, a lo lejos en la penumbra vez una sombra que se acerca a tu mesa, estás sólo era de esperarse porque nadie te quiere... (sí estás leyendo esto es porque eres programador, los programadores no tienen amigos, eso todo el mundo lo sabe)... …Encapsulamiento 26/09/2013 27POO - AIGL pero la sombra se sigue acercando, cuando la reducida luz que se encuentra sobre tu persona, alcanza a iluminar ligeramente a la persona desconocida vez que es lo que estabas esperando, es la mujer más hermosa del mundo y te tiene ganas, ella atravesó todo el bar para conocer tu atributo privado nombre, tu utilizas tú método de des-encapsulamiento para entregarle a la desconocida ese valor...
  • 28. …Encapsulamiento 26/09/2013 28POO - AIGL pfff entonces, ¿para qué encapsulo si al final voy a entregar el valor a cualquier desconocido?. Imagina la misma escena, sólo que esta vez no es el amor de tu vida sino un ladrón que te va a hacer el paso millonario y que esta vez no está interesado en tu nombre sino en tu PIN de la tarjeta, ¿tu se lo entregas?, NO! por eso es importante encapsular los atributos de una clase, para que los objetos sólo puedan entregar los valores que sean programados por ti y no por nadie más.
  • 29. …Encapsulamiento 26/09/2013 29POO - AIGL (ocultamiento de la información) es la idea de empacar juntas en una Unidad de programación una colección de miembros de datos y sus funciones (Operaciones) bien definida.
  • 30. …Encapsulamiento 26/09/2013 30POO - AIGL (ocultamiento de la información) es la idea de empacar juntas en una Clase de programación una colección de miembros de datos y sus funciones (Operaciones) bien definida.
  • 31. 26/09/2013 POO - AIGL 31 Existen tres niveles de acceso: · público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el nivel de acceso público. Este es el nivel de protección de datos más bajo · protegido: el acceso a los datos está restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases · privado: el acceso a los datos está restringido a los métodos de esa clase en particular. Este es nivel más alto de protección de datos (10)
  • 32. …Encapsulamiento 26/09/2013 32POO - AIGL La Clase es, por otro lado, una encapsulación porque constituye una cápsula o saco que encierra y amalgama de forma clara tanto los datos de que constan los objetos como los procedimientos que permiten manipularlos. Las Clases se constituyen, así, en abstracciones encapsuladas
  • 33. • Una clase es la descripción de un conjunto de objetos; consta de métodos y datos que resumen características comunes de un conjunto de objetos. Una clase puede definir un numero virtualmente infinito de objetos, y cada objeto es denominado una instancia de la clase. • Por consiguiente, los objetos no son mas que instancias de una clase. Una instancia es una variable de tipo objeto. • Ejemplo: Carro Año Pasajeros Color Modelo Encender Apagar 26/09/2013 33POO - AIGL CLASES
  • 34. Clases • Una descripción abstracta de un conjunto de objetos, cada uno de los cuales se diferencia por su estado específico y por la posibilidad del objeto de realizar una serie de operaciones. • Una clase en términos coloquiales, es el plano de un objeto, es donde se deben definir todas las características de los objetos de la vida real o de objetos abstractos CLASES 26/09/2013 34POO - AIGL
  • 35. Las clases son una descripción abstracta, ideal de un grupo de objetos, cada uno de los cuales se diferencia por un estado especifico y es capaz de realizar una serie de operaciones. • 1.- Carlos Mejía Godoy, Katia Cardenal, José Manuel Espinoza pertenecen a la clase “cantantes de Nicaragüenses” • 2.- Jeff, Alejandra, Moisés, Alejandro pertenecen a la clase de “Estudiantes del 2M4-Co • 3.- Carlos Andrés Pérez, Violeta Barrios, Bill Clinton, pertenecen a la clase “Ex presidentes de América” Clases 26/09/2013 35POO - AIGL
  • 36. Clases 26/09/2013 36POO - AIGL Clase Posibles atributos Posible Comportamiento Bicicleta Modelo Velocidades color Frenar Cambiar velocidades Naranja Dulzura Color tipo Pelar Pudrirse Exprimir Edificio Temperatura Número de pisos Número de habitaciones Abrir Cerrar Calefacción Estudiante Nombre Dirección Numero de Carne Año de estudio Cambiar clases Matricular Graduar Inscribir materias
  • 37. 26/09/2013 37POO - AIGL Clase: Trabajadores UNI
  • 38. • Es la propiedad que permite subdividir una aplicación en partes mas pequeñas (llamadas módulos), cada una las cuales debe ser tan independiente como sea posible de la aplicación en si y de las restantes partes. • Por su parte Bárbara Liskov establece que "modularización consiste en dividir un programa en módulos que pueden ser compilados de forma separada, pero que tienen conexiones con otros módulos"2 …Modularidad 26/09/2013 38POO - AIGL
  • 39. Métodos 26/09/2013 39POO - AIGL Algoritmo asociado a un objeto (o Clase de objetos), cuya ejecución se desencadena tras la recepción de un mensaje. Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objetos.
  • 40. Mensajes 26/09/2013 40POO - AIGL – Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes – A veces el objeto que recibe el mensaje necesita más información Esta información se pasa junto con el mensaje en forma de parámetro. – Partes del mensaje El objeto al cual se manda el mensaje El método o función Los parámetros que necesita ese método
  • 41. Herencia 26/09/2013 41POO - AIGL – La herencia es la propiedad que permite a los objetos ser construidos a partir de otros objetos., es decir la capacidad de un objeto para utilizar las estructuras de datos y los métodos previstos en antepasados o ascendientes. El objetivo final es la reutilización o reutilizabilidad es decir reutilizar código anteriormente ya desarrollado.
  • 42. …Herencia 26/09/2013 42POO - AIGL La idea de herencia parte de la experiencia de la vida real las clases básicas o fundamentales se dividen en subclases Seres Humanos Varones Mujeres Animales Vertebrados Invertebrados Automóviles Lujo Carrera Carga
  • 43. …Herencia 26/09/2013 43POO - AIGL los objetos con propiedades comunes se agrupan en una clase las clases con propiedades comunes se agrupan en una superclase Las clases que se derivan de una superclase son las subclases. Herencia Simple O Jerárquica Un objeto (clase) puede tener solo un ascendiente, o dicho de otro modo, una subclase puede heredar datos y métodos de una única clase, así como añadir o quitar comportamientos de la clase base. SuperClase
  • 44. …Herencia 26/09/2013 44POO - AIGL Herencia Múltiple o en Malla Es la propiedad de una clase de poder tener más de un ascendiente inmediato, o lo que es igual, adquirir datos y métodos de más de una clase. Trabajador Investigador Conserje CPFProfesor Profesor UNI
  • 45. Relaciones entre Las Clases 26/09/2013 45POO - AIGL • Las relaciones entre clases son tres: 1. Relación de asociación 2. Relación de agregación 3. Relación de generalización.
  • 46. Relacion de Asociación • Representa una dependencia entre clase • Es preciso buscar frase tales como: pertenece a, es miembro de, esta asociado con, trabaja para, etc. • Una propiedad importante intrínseca a la relación de asociación o multiplicidad es la cardinalidad o multiplicidad. – Una a una – Una a muchas – Muchas a muchas 26/09/2013 POO - AIGL 46 Relaciones de Asociación
  • 47. Relacion de Asociación • Una a Una: • Notacion ___________ Una a Una 26/09/2013 POO - AIGL 47 Relaciones de Asociación Ciudad Capital Venta Pago
  • 48. Relacion de Asociación • Una a Muchas: • Notacion ___________ Una a muchas 1..n, 1-m Una a muchas 26/09/2013 POO - AIGL 48 Relaciones de Asociación País Ciudad Cliente Facturas 1 n 1 n 1 n
  • 49. Relacion de Asociación • Muchas a Muchas: • Notacion ___________ Muchas a muchas m..n, m-n Muchas a muchas 26/09/2013 POO - AIGL 49 Relaciones de Asociación Profesor Alumno Estudiante Asignatura n M
  • 50. Relacion de Asociación 26/09/2013 POO - AIGL 50 Relaciones de Agregación o Composición M • Es un concepto que se utiliza para expresar tipos de relaciones entre objetos: parte-de o tiene-un.
  • 51. Relacion de Asociación 51 Relación de Generalización • Representa una relación “ un tipo de “. Por ejemplo, una rosa es un tipo de flor, significando que una rosa es una subclase especializada de la clase general, flor. Vehículo
  • 52. Relacion de Asociación 52 Polimorfismo • Que una entidad tome muchas formas. • Permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento. • Permite que una misma función se comporte de diferente formas según sea la clase sobre la que se aplica. • un mismo identificador puede tener distintas formas (distintos cuerpos de función, distintos comportamientos) dependiendo del contexto en el que se halle.
  • 53. Relacion de Asociación 53 Polimorfismo y Sobrecarga • uso del mismo identificador u operador en distintos contextos y con distintos significados. • La sobrecarga de métodos hace que un mismo nombre pueda representar distintos métodos con distinto tipo y número de parámetros, manejados dentro de la misma clase. En el ámbito de la POO, la sobrecarga de métodos se refiere a la posibilidad de tener dos o más métodos con el mismo nombre pero distinta funcionalidad. Es decir, dos o más métodos con el mismo nombre realizan acciones diferentes y el compilador usará una u otra dependiendo de los parámetros usados. Esto también se aplica a los constructores (de hecho, es la aplicación más habitual de la sobrecarga).
  • 55. Relacion de Asociación 55 Polimorfismo • Sobrecarga: • uso del mismo identificador u operador en distintos contextos y con distintos significados.
  • 56. Relacion de Asociación 56 Polimorfismo • La función dibujar se aplica igualmente a un círculo, a un cuadrado o a un triángulo, y el objeto ejecutará el código apropiado dependiendo del tipo específico • Figura Color Area() Cuadrado Lado Area() Circulo Radio Area() Polimorfismo del método Area CLASE Figura int x,y; Mover (); Área (); CLASE Círculo Hereda de Figura int radio; Área (); donde Área = pi * radio * radio CLASE Cuadrado Hereda de Figura int lado; Área (); donde Área = lado * lado
  • 57. Abstracción: Visión simplificada de la realidad Objeto: Modelado del software del mundo real Clase: Estructura de software que definen los objetos Herencia de la Clase: Heredan los atributos y/o métodos de sus padres (o Jerarquización de clases) Polimorfismo: Elemento de programa que realiza operación de distintas formas. 26/09/2013 POO - AIGL 57
  • 58. • Realizar un ensayo en su cuaderno sobre la Crisis del Software. • Cuadro comparativo de los paradigmas de programación • Utilizando Notación Grafica OMT represente 10 objeto sus atributos a encapsular y sus métodos • Glosario de Términos desconocido 26/09/2013 58POO - AIGL
  • 59. • Investigar sobre categorías de métodos 26/09/2013 59POO - AIGL
  • 60. Relacion de Asociación 60 II Unidad: Metodologías de análisis y Diseño Orientado a Objetos. • En programación Orientada a objetos , un programa describe un sistema de objetos que interactúan entre si • Existen numerosos métodos de desarrollo orientado a objetos: – Booch, Yourdon/Coad, – Martin, – Shlaer & Mellor, – Rumbaugh, etc. • En general, al igualque en cualquier proyecto estructurado, un proyecto completo OO se compondrá de las siguientes etapas: – Análisis orientado a objetos AOO. – Diseño orientado a objetos DOO. – Programación Orientada a Objetos.
  • 61. Relacion de Asociación 61 II Unidad: Metodologías de análisis y Diseño Orientado a Objetos. • El método Booch considera que las etapas del denominado microproceso en un desarrollo orientado a objetos: – Identificar las clases y objetos en un nivel dado de abstracción – Identificar la semántica de estas clases y objetos. – Identificar las relaciones entre clases y objetos. – Especificar el interfaz y la implementación de estas clases y objetos. • Otros métodos de diseño orientado a objetos contienen las etapas siguientes: 1. Identificar clases y objetos. 2. Asignar atributos y comportamientos 3. Encontrar relaciones entre clases. 4. Organizar las clases en jerarquías 5. Implementar las especificaciones de diseño Figura
  • 62. Relacion de Asociación 62 II Unidad: Metodologías de análisis y Diseño Orientado a Objetos. Auto Relación entre clase tiene Un Secretaria Empleado Persona Relación entre clase Es Un 3 Encontrar Relaciones entre clases
  • 63. Relacion de Asociación 63 II Unidad: Metodologías de análisis y Diseño Orientado a Objetos. • 4 Interfaz e implementación de las Clases: La interfaz de la clase se puede dividir en tres partes – Pública – Protegida – Privada • Las características esenciales que debe seguir en el diseño del interfaz de cada clase son: – Identificar las operaciones requeridas por usuarios de casa en clase. Estas operaciones definen el interfaz público de la clase. – Identificar las posibles funciones de ayuda requeridas por la clase para soportar las operaciones de su interfaz público. Estas operaciones serán privadas o protegidas en una jerarquía de clases – En el caso de una jerarquía de clases, identificar operaciones que son dependientes del tipo: éstas serán el conjunto de funciones virtuales dentro de la jerarquía. – Identificar la representación de cada clase.
  • 64. 64
  • 65. • Notaciones Gráficas: Booch 26/09/2013 POO - AIGL 65 Gerente Vicepresidente Empleado Director Dpto SecretariaFotocopiadora 1 3 1 1 1 n
  • 66. Agregación Yourdan 26/09/2013 POO - AIGL 66 Persona Estudiante Profesor
  • 67. Generalización Yourdon 26/09/2013 POO - AIGL 67 Coche Ruedas Puertas
  • 68. Notacion Rumbaugh 26/09/2013 POO - AIGL 68 Vehículo Vehículo Terrestre Vehículo Marino Llantas Boomper hélices Timón
  • 70. Relacion de Asociación • Una a Una: • Notacion ___________ Una a Una 26/09/2013 POO - AIGL 70 Relaciones de Asociación Ciudad Capital Venta Pago
  • 71. Relacion de Asociación • Una a Muchas: • Notacion ___________ Una a muchas 1..n, 1-m Una a muchas 26/09/2013 POO - AIGL 71 Relaciones de Asociación País Ciudad Cliente Facturas 1 n 1 n 1 n
  • 72. Relacion de Asociación • Muchas a Muchas: • Notacion ___________ Muchas a muchas m..n, m-n Muchas a muchas 26/09/2013 POO - AIGL 72 Relaciones de Asociación Profesor Alumno Estudiante Asignatura n M