SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Fundamentos del Enfoque Orientado a Objetos
Objetivos de Aprendizaje
Al finalizar esta unidad, usted será capaz de:
1. Comprender la Metodología Orientada a Objeto para la construcción de
modelos computacionales
Contenidos
1.Fundamentos generales de la Orientación a Objetos como paradigma de
programación:
1.1.Definición y Ventajas.
1.2.Características.
1.3.Elementos: Clase, Objeto, Atributo, Método.
1.4.Propiedades: Abstracción, Encapsulamiento, Modularidad
2. Metodología Orientada a Objeto para la construcción de modelos
computacionales:
2.1.Análisis: Identificación de clase, atributos y métodos.
2.2. Diseño: Representación gráfica de las clases.
2.3. Implementación: codificación de las clases.
Fuentes de Información
Textos:
Izquierdo, L. Introducción a la Programación Orientada a Objetos. . [Documento en
Línea]. Disponible: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
UNIDAD 3
Joyanes, L. (2003). Fundamentos de Programación. Algoritmos, estructuras de
datos y objetos. Mc Graw Hill. 3da Edición.
1. FUNDAMENTOS GENERALES DE LA ORIENTACIÓN A OBJETOS COMO
PARADIGMA DE PROGRAMACIÓN
Introducción
La evolución de la programación puede sintetizarse en tres modelos o
paradigmas: (a) La programación mediante procedimientos, (b) La programación
estructurada, (c) La programación orientada a objetos.
Un paradigma es una forma establecida de pensar acerca de cómo hacer
algo. Es un conjunto de teorías, estándares y métodos que juntos representan un
medio de organización del conocimiento: es decir, un medio de visualizar el
mundo.
La abstracción es la capacidad mental superior que tiene todo ser humano
para poder deducir la esencia de un concepto o situación determinada. Definir
una abstracción significa describir una entidad del mundo real, no importa lo
compleja que pueda ser.
El Principito. (Antoine de Saint – Exupéry)
Le mostré mi obra de arte a las personas
mayores y les pregunté si mi dibujo las
asustaba.
Me respondieron:” ¿Por qué tendríamos
que tenerle miedo a un sombrero?”
Mi dibujo N° 1
Mi dibujo no representaba un sombrero.
Representaba una serpiente boa que
digería un elefante. Entonces dibujé el
interior de la serpiente boa para que las
personas mayores pudieran entender.
Mi dibujo N° 2
La relación entre abstracción y lenguaje de programación es doble: por un
lado se utiliza el lenguaje de programación para escribir un programa que es una
abstracción del mundo real; por otro lado se utiliza el lenguaje de programación
para describir de un modo abstracto el comportamiento físico de la computadora
que se está utilizando.
Programación Orientada a procedimientos: El mundo en que vivimos se halla
plagado de objetos: aviones, trenes, automóviles, teléfonos, libros, computadoras,
etcétera. Sin embargo, en este modelo las técnicas de programación utilizadas no
reflejaban esto. Lo procedural [procedimientos] fue el paradigma principal de la
programación, el cual define un programa como un algoritmo escrito en algún
lenguaje de programación.
Programación Estructurada: Las actividades de investigación en la década de
los sesenta dieron como resultado la evolución de la programación mediante
procedimientos a la programación estructurada, que es un método disciplinado
para escribir programas que fuesen más claros, fáciles de probar y corregir y más
fáciles de modificar que los no estructurados.
Estas mejoras de la programación mediante procedimientos condujeron a
nuevos conceptos como son: Estructuras de control, funciones y módulos. Las
tres formas de estructuras de control son: Secuencia, Selección y Repetición. Las
funciones permiten realizar tareas que se ejecutan repetidamente, o son
ejecutadas con ligeras variaciones, y que se reúnen en una entidad y se
reutilizan, en lugar de duplicar el código varias veces. Los módulos se refiere al
proceso de dividir un objeto en piezas más pequeñas, o módulos, con el fin de
lograr más fácilmente el objetivo (divide y vencerás).
Programación Orientada a Objeto: (POO u OOP según sus siglas en inglés) es
un paradigma de programación que usa los objetos y sus interacciones para
diseñar aplicaciones y programas de computadora. Facilita la creación de software
de calidad ya que potencia el mantenimiento, la extensión y la reutilización del
software generado bajo este paradigma.
1.1. DEFINICIÓN Y VENTAJAS
La programación orientada a objetos es una “filosofía”, un modelo de
programación, con su teoría y su metodología, es otra forma de descomponer
problemas, es la descomposición en objetos; vamos a fijarnos no en lo que hay
que hacer en el problema, sino en cuál es el escenario real del mismo, y vamos a
intentar simular ese escenario en nuestro programa.
La Programación Orientada a Objetos (POO) es una forma especial de
programar, más cercana a como expresaríamos las cosas en la vida real. Se basa
en la idea natural de la existencia de un mundo lleno de objetos, de modo que la
resolución del problema se realiza en términos de objetos.
Las ventajas más importantes de la programación orientada a objetos:
 Reusabilidad: Cuando hemos diseñado adecuadamente las clases, se pueden
usar en distintas partes del programa y en numerosos proyectos.
 Mantenibilidad: Debido a la sencillez para abstraer el problema, los programas
orientados a objetos son más sencillos de leer y comprender, pues nos permiten
ocultar detalles de implementación dejando visibles sólo aquellos detalles más
relevantes.
 Modificabilidad: La facilidad de añadir, suprimir o modificar nuevos objetos nos
permite hacer modificaciones de una forma muy sencilla.
 Fiabilidad: Al dividir el problema en partes más pequeñas podemos probarlas
de manera independiente y aislar mucho más fácilmente los posibles errores que
puedan surgir.
1.2. CARACTERÍSTICAS
La POO se basa en la idea natural de la existencia de un mundo lleno de
Objetos, de modo que la resolución del problema se realiza en términos de
objetos. Estos objetos poseen características (atributos) y tiene un
comportamiento (métodos).
En el ámbito de la programación, un programa orientado a objetos está
constituido por un conjunto de objetos interactuando conjuntamente a través del
paso de mensajes, los cuales permiten hacer la entrada de datos, los cálculos
necesarios para resolver el problema y dar la salida de datos, convertidos en la
información solicitada.
1.3. ELEMENTOS
La programación orientada a objetos introduce nuevos conceptos
OBJETOS
En el mundo real, las personas identifican los objetos como las cosas que
pueden ser percibidas por los cinco sentidos. Por ejemplo: una computadora, un
teléfono celular, un árbol, un perro o un automóvil.
Los objetos son entidades provistas de un conjunto de propiedades,
atributos o características específicas o datos, tales como tamaño, color, forma,
textura… y también tienen ciertos comportamientos, funcionalidad o métodos que
los hacen diferentes a otros objetos. Por ejemplo: los automóviles tienen
características o atributos (marca, modelo, año, color, capacidad, placa, volante,
acelerador, frenos, switchera, palanca de cambios) y comportamiento (encender,
arrancar, acelerar, retroceder, cruzar izquierda, cruzar derecha, detenerse).
Se corresponde con los objetos reales del mundo que nos rodea, a objetos
internos del sistema o del programa. Un objeto tiene estado, exhibe algún
comportamiento bien definido, tiene una identidad única.
Un objeto tiene estado, los atributos del objeto expresados por las variables,
se refiere al conjunto de los valores de sus atributos en un momento dado. El
comportamiento de un objeto puede modificar el estado de este.
Un Objeto exhibe algún comportamiento bien definido, lo que el objeto
puede hacer, los métodos que componen el objeto respectivamente determinado
por las operaciones que éste puede realizar en respuesta a mensajes
(peticiones), que le son enviados por otros objetos.
Un objeto posee Identidad, que es la propiedad que permite a un objeto
diferenciarse de otros. Cada objeto es único en el mundo por más que haya otro
objeto con iguales atributos.
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.
CLASE
Una clase representa un conjunto de objetos que comparten una estructura
común y un comportamiento común, En otras palabras, una clase representa a un
conjunto de objetos que tienen en común las mismas características (atributos) y
el mismo comportamiento (métodos).
En el mundo real existen objetos del mismo tipo, por ejemplo tu cuenta de
ahorro en un banco, es solo una más de todas las cuentas de ahorro del banco.
Todas las cuentas de ahorro tienen los atributos: número, titular, fecha apertura,
saldo y algunos métodos como son: Aperturar, Depositar, Retirar y Cerrar. Por lo
tanto, se puede definir la clase “Cuenta_Ahorro”, que describe los atributos y
comportamiento de todas las cuentas.
Al referirse a una cuenta en particular, por ejemplo, tu cuenta de ahorro, se
puede decir que ella es un objeto de la clase “Cuenta_Ahorro”.
Las clases son modelos o plantillas que describen como se construyen uno
o más objetos del mismo tipo, es decir, define las variables y los métodos que son
comunes para todos los objetos de un cierto tipo. Cada vez que se construye un
objeto de una clase, se crea una instancia de esa clase, por lo tanto, una clase
puede tener muchas instancias y cada una es un objeto diferente.
Un objeto es un simple elemento. Una clase, por el contrario, describe una
familia de elementos similares. Cuando programamos un objeto y definimos sus
características y funcionalidades, en realidad lo que se está haciendo, es
programando una clase.
EJEMPLO 1
En el mundo real, normalmente tenemos muchos
objetos del mismo tipo. Por ejemplo, nuestro teléfono celular
es sólo uno de los miles que hay en el mundo. Si hablamos
en términos de la programación orientada a objetos, podemos
decir que nuestro objeto celular es una instancia de una clase
conocida como "celular". Los celulares tienen características
(marca, modelo, sistema operativo, pantalla, teclado) y
comportamientos (hacer y recibir llamadas, enviar mensajes
multimedia, transmisión de datos).
Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de
que los celulares comparten esas características comunes y construyen modelos
o plantillas comunes, para que a partir de esas se puedan crear muchos equipos
celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los
equipos que sacamos a partir de ella la llamamos OBJETOS.
Esto mismo se aplica a los objetos de software, se puede tener muchos
objetos del mismo tipo y mismas características.
EJEMPLO 2
Definamos una clase para una cuenta bancaria. Una cuenta bancaria consta
de atributos: tipo, titular y saldo. Además permite hacer las siguientes operaciones
o métodos: Depositar y Extraer. Veamos cómo quedaría
Plantilla de la clase: Cuenta Bancaria
MÉTODO
Un método es una función o subrutina asociada a un objeto o a una 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 objeto, o la generación de un
"evento" con un nuevo mensaje para otro objeto del Sistema.
Un evento es un suceso en el sistema (tal como una interacción del usuario
con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. También se puede definir
como evento, a la reacción que puede desencadenar un objeto, es decir la acción
que genera.
La interacción entre objetos se produce mediante mensajes. Un mensaje es
una petición dirigida a un objeto, que le ordena que ejecute uno de sus métodos
con ciertos parámetros asociados al evento que lo generó.
Un mensaje está compuesto por los siguientes elementos: el objeto receptor,
hacia el cual el mensaje es enviado; el nombre del método que el objeto receptor
del mensaje ejecutará; cualquier información adicional requerida por el objeto
receptor para ejecutar el método solicitado (parámetros).
ATRIBUTO
Propiedad o, contenedor de un tipo de datos asociados a un objeto (o a una
clase de objetos), que hace los datos visibles desde fuera del objeto y esto se
define como sus características predeterminadas, y cuyo valor puede ser alterado
por la ejecución de algún método.
Denota las características esenciales de
un objeto que lo distinguen de todos los
demás tipos de objetos, y proporciona así
fronteras conceptuales nítidamente
definidas respecto a la perspectiva del
observador.
1.4. PROPIEDADES
ABSTRACCIÓN
Es la técnica que permite reconocer los elementos esenciales para la
solución de un problema dejando al lado los detalles irrelevantes. La
abstracción consiste en captar las características esenciales de un objeto, así
como su comportamiento, al tiempo que se ignoran los detalles no esenciales.
Cada objeto en el sistema sirve como modelo de un "agente" abstracto que
puede realizar trabajos, informar y cambiar su estado, y "comunicarse" con otros
objetos en el sistema sin revelar cómo se implementan estas características.
Los procesos, las funciones o los métodos pueden también ser abstraídos.
Una abstracción es un medio que permite un mejor manejo de la
complejidad del problema, al permitir suprimir o posponer detalles irrelevantes
en cierto momento, y concentrarse más bien, en detalles verdaderamente
esenciales. El reconocer similitudes entre diferentes objetos también permite
simplificar el dominio del problema, pues hace posible enunciar
comportamientos o características generales que los describen, sin importar
detalles que podrían no ser importantes.
Una abstracción debe tener límites conceptuales bien definidos que
permitan la independencia funcional entre unas y otras. Así mismo, esos límites
deberán esclarecer la forma en que la abstracción será utilizada para resolver y
modelar el problema en cuestión. Es decir, al abstraer un objeto, debe quedar
claro cuál es su función y su relación con los demás objetos.
Una abstracción puede describir algo que no necesariamente existe en el
dominio real de la aplicación pero que su existencia resultaría tan útil para el
analista que termina siendo representada e incorporada en la solución
computacional del problema.
Nota: Abstracción se asocia con Clase, e intenta definir en qué forma se ve.
Ejemplos de abstracción
1. Aprender a manejar un automóvil implica saber si este es de transmisión
automática o estándar, sin embargo, NO necesitamos conocer como está
construida la transmisión automática o la estándar. Algunos detalles que si
interesan son los relacionados con la palanca y los pedales.
2. Al utilizar una computadora para elaborar un escrito nos interesa saber que la
información la introduciremos por teclado y la visualizamos por pantalla. Es decir,
distinguimos dispositivos de entrada y de salida, pero NO interesan los detalles
de los circuitos eléctricos que conforman a los dispositivos, ni el software (por
ejemplo: controladores y sistema operativo) que les permite realizar su tarea.
3. Cuando se habla de un árbol se piensa en hojas, raíces, clorofila; pero muy
probablemente NO se conozca (ni interese) como el árbol produce sus hojas, la
clorofila y oxígeno.
4. Al servir un café, requerimos un recipiente resistente al calor, fácil de sujetar
sin riesgo de quemaduras, que asiente de manera segura para que no se voltee.
Sin embargo, es casi seguro que desconozcamos cual es el material y el proceso
empleado para fabricar dicho recipiente.
5. Cuando estamos ante una araña, probablemente nos interese identificar si es
venenosa, empero, NO necesitaremos saber cómo produce su veneno, en que
Es el proceso de almacenar en un
mismo comportamiento, los
elementos de una abstracción y su
implementación.
cantidades, en qué periodo.
6. Si se tiene la posibilidad de elegir los ingredientes de una hamburguesa,
interesan detalles como si la carne es de soya o de res, el jamón de pavo o
pierna, el queso amarillo o blanco. Sin embargo, no nos ocuparemos de los
detalles de cómo se produce cada uno de estos productos.
ENCAPSULAMIENTO
Es la propiedad que permite agrupar junto en una única unidad de
programación, las características (atributos) y comportamiento (métodos) de un
objeto. En POO, las clases son la unidad de programación que encapsulan
atributos y métodos.
Significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Encapsular
significa agrupar y manejar el grupo resultante como tal, y no cada parte a su
vez.
Al decidir encapsular ciertas funciones o atributos, estos serán utilizados por
otros objetos para llevar a cabo alguna tarea. Sin embargo, un objeto debe
conocer de otro lo indispensable para que lo pueda utilizar, ni más ni menos. Si
se conoce más, entonces aumenta la cantidad de información que se maneja lo
que incrementa la complejidad, además de que hace más vulnerable el objeto
que se utiliza, y es más difícil garantizar su integridad y su correcto
funcionamiento. Por otro lado, si se esconden aspectos fundamentales, se estaría
perdiendo el sentido de la abstracción.
Encapsular consiste en ocultar los datos y detalles de los métodos de los objetos
y permitir su acceso a otros objetos sólo a través de los métodos mediante el uso
de mensajes.
Nota: Encapsulamiento se asocia con Objeto, e interesa definir qué deben
ver los demás.
Ejemplos de encapsulamiento
1. Al manejar un automóvil estándar si se presiona el clotch sin cambiar la
palanca de velocidades de posición, el auto no avanzará, independientemente de
si la palanca va al volante o es de piso.
2. El proceso de captura de un escrito a través de teclado registrará la pulsación
de la tecla A independientemente de si el teclado es un componente separado
(PC de escritorio), integrado (Laptop) o táctil (a través de la pantalla).
3. El proceso de producción de frutos en los árboles seguramente difiere
dependiendo del fruto, lo importante es que el fruto se produzca, sin importar si
este crece en las hojas, las ramas o el tronco.
PRINCIPIO DE OCULTACIÓN DE DATOS
Cada objeto está aislado del exterior, y cada tipo de objeto expone una
interfaz a otros objetos que especifica cómo pueden interactuar con los objetos
de la clase. El aislamiento protege a las propiedades de un objeto contra su
modificación por quien no tenga derecho a acceder a ellas; solamente los propios
métodos internos del objeto pueden acceder a su estado. Esto asegura que otros
objetos no pueden cambiar el estado interno de un objeto de maneras
inesperadas, eliminando efectos secundarios e interacciones inesperadas.
Los atributos (datos) de un objeto deben ser privados, es decir, no pueden
Es la propiedad que tiene un
sistema que ha sido
descompuesto en un conjunto de
módulos cohesivos y débilmente
acoplados.
ser modificados ni obtenidos por otros objetos, solamente pueden ser
manipulados por los propios métodos internos del objeto.
MODULARIDAD
Un programa crece en forma exponencial con respecto a su tamaño. Si se
tiene un programa grande, su complejidad será mucho mayor que la suma de la
complejidad de varios programas más pequeños que cumplan el mismo objetivo.
Si se pudiera tomar un programa grande y dividirlo en subprogramas según
ciertos criterios, la complejidad resultante sería mucho menor.
Se espera que cada módulo pueda ser desarrollado con cierta
independencia de los demás, y que incluso sea compilado en forma separada.
Con esto se busca lograr una mayor productividad al desarrollar software en gran
escala, en donde los módulos son asignados a las personas que componen el
equipo de trabajo y los desarrollan en forma independiente y paralela. Cada
módulo debe estar bien definido, y su acoplamiento con los demás debería ser el
mínimo posible. Entre menos dependencias existan entre ellos, más mantenible
será la aplicación final.
Nota: Modularidad se entiende como agrupación de abstracciones u objetos.
Ejemplos de modularidad
1. En un automóvil estándar reubicar la palanca de velocidades NO debe afectar
el comportamiento de la transmisión.
2. Adaptar un teclado para idioma griego NO debe requerir la construcción de
una computadora nueva.
3. Permitir que un sistema de nómina de empleados de confianza y operarios,
incorpore la funcionalidad de préstamos, NO debe requerir la reescritura del
programa completo.
POLIMORFISMO
Es una propiedad que permite que diversos objetos respondan de modo
diferente al mismo mensaje. No sera tratado en este curso.
HERENCIA
. Es la propiedad que permite definir nuevas clases a partir de una clase base
ya existente. Las nuevas clases creadas se denominan clases derivadas (clases
hijos o subclases) y heredan los atributos y métodos de la clase base (clase
padre o superclase), además, estas clases derivadas pueden tener otros atributos
y métodos propios, adicionales. No sera tratado en este curso.
Resumen
La clase es un modelo o prototipo que define las variables y métodos
comunes a todos los objetos de cierta clase. También se puede decir que una
clase es una plantilla genérica para un conjunto de objetos de similares
características. Una instancia es un objeto de una clase en particular.
Para entender cómo funciona el paradigma de la programación orientada a
objetos es necesario ver al programa como una colección de objetos que
interactúan entre sí enviándose mensajes y cambiando su estado durante la
ejecución.
Resolver un problema bajo el paradigma de la programación orientada a
objetos implica determinar y caracterizar los diferentes objetos que intervienen en
el problema, definir sus propiedades y métodos y ponerlos a interactuar.
2. METODOLOGÍA ORIENTADA A OBJETO PARA LA CONSTRUCCIÓN DE
MODELOS COMPUTACIONALES
Introducción
“El mundo está lleno de objetos, animados e inanimados, concretos y
abstractos, árboles y tablas, automóviles y casas. La Orientación a Objeto busca
modelar esos objetos del mundo real e implementarlos por medio de los
programas informáticos. Estos programas representan un serie de interacciones
entre un conjunto de objetos.” La Metodología Orientada a Objeto comprende tres
fases: Análisis, Diseño, Desarrollo o Implementación. (Joyanes, Luis.
Programación Orientada a Objeto. 1996.)
2.1. FASE ANÁLISIS ORIENTADO A OBJETO (AOO)
ANÁLISIS: Identificación de clase, atributos y métodos. Consiste en separar las
partes de un problema con la finalidad de estudiar su naturaleza, su función y/o su
significado. Pretende responder a la pregunta ¿Qué hace?, encontrar los tipos de
objetos del mundo real que están presentes en el dominio del problema,
determinando sus características (atributos), su comportamiento (métodos) e
interacciones (con otras clases de objetos). Esta fase se compone de 4 pasos o
etapas: Subrayado de nombres y verbos; Asignación de Responsabilidades
determinando atributos y métodos; Definir la lógica de programación de los
métodos; Caracterizar las relaciones entre clases y objetos.
1. Subrayado de nombres y verbos: La técnica utilizada en esta fase es: (a) leer
la definición o descripción del problema y (b) subrayar los nombres o frases con
nombres y los verbos o frases con verbos. Los nombres son buenos candidatos a
Clases o atributos de clases. Los verbos son buenos candidatos a Métodos.
Criterios para clasificar objetos:
 Cosas Tangibles: mesa, carro, teléfono, avión.
 Interacciones: matrimonio, ventas, compras.
 Roles: gerente, empleado, propietario, cliente.
 Incidentes : viaje, transacción, llegada, accidente, vuelo
 Organizaciones: empresas, departamento, divisiones, direcciones, áreas
 Lugares geográficos: país, ciudad, muelle de carga, sala de embarque
 Especificaciones: descripciones, estándares
2. Asignación de Responsabilidades: Este paso comienza con la asignación de
responsabilidades a cada clase. Las responsabilidades se dividen en 2 grupos: La
información que debe tener (atributos) y Las operaciones que debe realizar
(métodos).
3. Descripción de los métodos de cálculo: En esta parte se determina el tipo de
estructura de control que se utilizará en la lógica de programación y se describen
los métodos de cálculo. Las estructuras de control que utilizaremos en este curso
serán de tres tipos: Secuenciales, Selectivas y Repetitivas.
4. Caracterización de Relaciones: En este paso se analizan las relaciones entre
clases y el modo en que éstas se convierten en una implementación. Para los
efectos de este curso analizaremos únicamente las relaciones de asociación de
clases.
Una Asociación es una relación, en las que un objeto realiza llamadas a los
servicios (métodos) de otro, interactuando de esta forma con él. Establece una
cardinalidad o multiplicidad. Una asociación define una relación de pertenencia. La
dirección de la asociación puede ser de 2 tipos: Unidireccional o Bidireccional.
La cardinalidad expresa el número de instancias de una clase (objetos) que
se asocian con instancias de la clase asociada, pudiendo ser:
1. Una a Una
2. Una a Muchas / Muchas a Una
3. Muchas a Muchas
Para establecer las relaciones de asociación es necesario dar respuesta a
frases como: “… pertenece a …”; “… es miembro de …”; “… está asociado con
…”; “… estudia en …”
2.2. FASE DISEÑO ORIENTADO A OBJETO (DOO)
DISEÑO: Representación gráfica de las clases. Es el proceso de configuración
mental previo, en la búsqueda de la solución a un problema. Pretende responder a
la pregunta ¿Cómo lo hace?
Se debe establecer el tipo de dato a que corresponden los atributos de las
clases, si los métodos deben retornar un valor o si necesitan de datos adicionales
(parámetros) para cumplir con su responsabilidad. Recordar que los tipos de datos
básicos son: entero, real, alfanumérico y lógico. También se pueden utilizar los
datos definidos por el usuario, como son las clases.
Una vez determinada esta información se vacía en una plantilla de diseño de
clase.
2.3 FASE IMPLEMENTACIÓN ORIENTADA A OBJETO (IOO)
IMPLEMENTACIÓN: Construcción de modelos computacionales empleando
algoritmos. Es el proceso de transcribir un algoritmo utilizando un lenguaje de
programación. Consiste en traducir el modelo construido en las fases de Análisis y
NombreClase
Tipo Atributo_1
Tipo Atributo_2
*
Tipo Atributo_N
Tipo Método_1(parámetros )
Tipo Método_2(parámetros )
*
Tipo Métdo_N(parámetros )Plantillas de clases
Diseño en el programa que dará solución al problema planteado. En nuestro caso,
para la implementación de la solución se utilizará el Pseudolenguaje.
EJERCICIOS DE ABSTRACCIÓN, Modelar “Orientado a Objeto” el siguiente
problema:
1. Dado un estudiante se desea saber cuál es su nota definitiva, calculada en
base a la suma de sus tres notas parciales.
Solución
a) Para ello debemos identificar la clase, los atributos y sus métodos.
Clase : Estudiante
Atributo(s) : Nota1, Nota2, Nota3
Método (s) : Calcular Nota Definitiva
b) Una vez caracterizado el objeto (la clase) debemos construir la Plantilla de la
clase.
Clase Estudiante
2. De un empleado se conoce su nombre, el número de Horas Trabajadas y la
Tarifa por Horas. Se pide calcular el sueldo del empleado.
Solución
Clase : Empleado
Atributo(s) : Horas Trabajadas, Tarifa por Horas
Método (s) : Calcular el Sueldo ( )
Clase Empleados
EJERCICIO UTILIZANDO LA
METODOLOGÍA OO, Realizar el siguiente ejercicio aplicando la metodología
orientada a objeto: Una calculadora acepta 2 números enteros, calcular la suma.
FASE 1. ANÁLISIS ORIENTADO A OBJETO
Paso 1. Subrayar nombres y verbos.
Una calculadora acepta 2 números enteros (numero1 y numero2), calcular la
suma (para nuestro caso: Sumar).
Paso 2. Asignar responsabilidades.
¿Quién será un objeto: número, entero o calculadora?
Para ser un objeto, un candidato debe poseer atributos y comportamiento. Entero
es un tipo de dato e identifica a un atributo.
Qué atributos y métodos se le pueden asignar a “Número”
“Número” es identificado por “entero” por lo que puede calificar como atributo. Así
pues, configuramos el siguiente listado de responsabilidades:
Elemento Responsabilidad
Calculadora -------- > Clase
Numero1 -------- > Atributo de Calculadora
Numero2 -------- > Atributo de Calculadora
Sumar() -------- > Método de Calculadora.
AsignarNumero1 -------- > Método de Calculadora.
ObtenerNumero1 -------- > Método de Calculadora.
AsignarNumero2 -------- > Método de Calculadora.
ObtenerNumero2 -------- > Método de Calculadora.
Paso 3. Lógica de programación y definición de métodos de cálculo
Estructuras de Control: Secuencial para procesar los objetos, ya que nos dan la
información de una sola calculadora. Para el cálculo también se utiliza una
estructura Secuencial.
Sumar: Método de Calculadora que tiene como función calcular la suma de dos
números enteros. La secuencia lógica es:
1. Leer los atributos del objeto // Secuencial
2. Realizar la suma de los dos atributos // Secuencial
3. Retornar el resultado // Secuencial
Donde:
Suma = Numero1 + Numero2
Paso 4. Caracterización de Relaciones
Como definimos una sola clase, no existen relaciones.
FASE2. DISEÑO ORIENTADO A OBJETO
Calculadora
entero Numero1
entero Numero2
AsignarNumero1(entero)
entero ObtenerNumero1()
AsignarNumero2(entero)
entero ObtenerNumero2()
entero Sumar()
FASE 3. IMPLEMENTACIÓN ORIENTADA A OBJETO
(Revisar la guía del Pseudolenguaje POO)
Definición de clases
clase Calculadora
inicio
privado:
entero Numero1, Numero2
publico:
AsignarNumero1 (entero Num1)
entero ObtenerNumero1 ( )
AsignarNumero2 (entero Num2)
entero ObtenerNumero2 ( )
entero Sumar ( )
fin
Implementación de Métodos de clases
Calculadora AsignarNumero1 (entero Valor) // Yo sólo manejo N1
inicio
Numero1 ← Valor // A Numero1 se le asigna lo que contiene Valor
fin
entero Calculadora ObtenerNumero1( )
inicio
retornar Numero1 // Devuelve el contenido almacenado en el atributo Numero1
fin
Calculadora AsignarNumero2 (entero Valor)
inicio
Numero2 ← Valor // A Numero2 se le asigna lo que contiene Valor
fin
entero Calculadora ObtenerNumero2 ( )
inicio
retornar Numero2 // Devuelve el contenido almacenado en el atributo Numero2
fin
entero Calculadora Sumar ( )
inicio
entero Resultado // esta es una variable local del método
Sumar Resultado ← Numero1 + Numero2 //se suma el valor de los 2 atributos
retornar Resultado
fin
// Notar que la variable local a retornar “Resultado” debe ser del mismo tipo
(entero) que el valor que retorna el método (definido como entero en su
encabezado)
Implementación de la Aplicación
La aplicación es la que interactúa con el usuario, leyendo datos (desde el teclado)
y mostrando resultados (por la pantalla o impresora). Toda aplicación tiene una
secuencia lógica, a saber:
1. Creación de los objetos
2. Darle vida a los objetos, agregándole la información a sus atributos
3. Poner a Interactuar los objetos, entre ellos y con la aplicación
4. Mostrar el resultado de la interacción.
principal ( )
inicio
Calculadora Cal // Creación del objeto
IECalculadora (Cal) // Interfaz de Entrada, con la que se le da vida a losobjetos
entero Resultado //Es una variable de la aplicación
Resultado ←Cal.Sumar( ) //La aplicación interactuando con el objeto
InterfazSalida (Resultado) //Para mostrar el Resultado
fin
Implementación de los métodos de la Aplicación
IECalculadora (Calculadora Cal) //Interfaz de Entrada para laCalculadora
inicio
entero Valor //Revisar el uso de N1, N2
escribir (“Ingrese el 1er Número:”) //muestra el mensaje vía pantalla
leer (Valor) //Guarda lo tecleado en Valor
Cal.AsignarNumero1(Valor) //Asignamos la información del atributo
escribir (“Ingrese el 2do Número:”) //muestra el mensaje vía pantalla
leer (Valor) //Guarda lo tecleado en Valor
Cal.AsignarNumero2(Valor) //Asignamos la información del atributo
fin
InterfazSalida (entero Resultado)
inicio
escribir (“La Suma de los números dados es: ” , Resultado) //muestra vía pantalla
fin

Más contenido relacionado

La actualidad más candente

Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la POOLibertad25
 
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 básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetosFundamentos básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetosALGLYS RAMIREZ
 
U.T. 3.- Programación Orientada a Objetos. Programación JAVA
U.T. 3.- Programación Orientada a Objetos. Programación JAVAU.T. 3.- Programación Orientada a Objetos. Programación JAVA
U.T. 3.- Programación Orientada a Objetos. Programación JAVAiessanjuanbosco
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - librotaninof
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosGabriel Mondragón
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objetocesar
 
Conceptos de programación orientada a objetos
Conceptos de programación orientada a objetosConceptos de programación orientada a objetos
Conceptos de programación orientada a objetosGabriel Mondragón
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSJonathan Hidalgo Nolasco
 
Que es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosQue es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosBeydasanchezhernandez
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 

La actualidad más candente (20)

Introduccion a la POO
Introduccion a la POOIntroduccion a la POO
Introduccion a la 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 Objetos
 
Trabajo poo
Trabajo poo Trabajo poo
Trabajo poo
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Fundamentos básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetosFundamentos básicos de la programación orientada a objetos
Fundamentos básicos de la programación orientada a objetos
 
U.T. 3.- Programación Orientada a Objetos. Programación JAVA
U.T. 3.- Programación Orientada a Objetos. Programación JAVAU.T. 3.- Programación Orientada a Objetos. Programación JAVA
U.T. 3.- Programación Orientada a Objetos. Programación JAVA
 
Metodologia orientada a objeto - libro
Metodologia orientada a objeto -  libroMetodologia orientada a objeto -  libro
Metodologia orientada a objeto - libro
 
Programacion orientada a objetos Java
Programacion orientada a objetos JavaProgramacion orientada a objetos Java
Programacion orientada a objetos Java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
 
Conceptos de programación orientada a objetos
Conceptos de programación orientada a objetosConceptos de programación orientada a objetos
Conceptos de programación orientada a objetos
 
Poo
PooPoo
Poo
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programacion 1 primera unidad
Programacion 1 primera unidadProgramacion 1 primera unidad
Programacion 1 primera unidad
 
Que es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosQue es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetos
 
Semana 6
Semana 6Semana 6
Semana 6
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
POO
POOPOO
POO
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 

Similar a Fundamentos OO

Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A ObjetosAndrés
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosJuan Carlos Riva
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .netcampus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónFacultad de Ciencias y Sistemas
 
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 objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1Scott Chavez
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosbrandonhh10
 
La programación orientada a objetos
La programación orientada a objetosLa programación orientada a objetos
La programación orientada a objetosDigna Mejia
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetosjohnny herrera
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2warmab
 

Similar a Fundamentos OO (20)

Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Guía Teórica POO
Guía Teórica POOGuía Teórica POO
Guía Teórica POO
 
Tema nº 1
Tema nº 1Tema nº 1
Tema nº 1
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Introducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la ProgramaciónIntroducción a la P.O.O en Introducción a la Programación
Introducción a la P.O.O en Introducción a la Programación
 
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 objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1
 
Poo
PooPoo
Poo
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Poo
PooPoo
Poo
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Tarea 1. traduccion
Tarea 1. traduccionTarea 1. traduccion
Tarea 1. traduccion
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Poovb
PoovbPoovb
Poovb
 
La programación orientada a objetos
La programación orientada a objetosLa programación orientada a objetos
La programación orientada a objetos
 
ESTUDIANTE
ESTUDIANTEESTUDIANTE
ESTUDIANTE
 
2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos2983238 programacion-orientada-a-objetos
2983238 programacion-orientada-a-objetos
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2
 

Más de sullinsan

Guía cinco disciplinas de un coaching exitoso
Guía cinco disciplinas de un coaching exitosoGuía cinco disciplinas de un coaching exitoso
Guía cinco disciplinas de un coaching exitososullinsan
 
Tendencias Gerenciales infografía
Tendencias Gerenciales infografíaTendencias Gerenciales infografía
Tendencias Gerenciales infografíasullinsan
 
Principios de la gerencia
Principios de la gerenciaPrincipios de la gerencia
Principios de la gerenciasullinsan
 
Comparacion gerencia y liderazgo
Comparacion gerencia y liderazgoComparacion gerencia y liderazgo
Comparacion gerencia y liderazgosullinsan
 
La Retroalimentación en el Aula Virtual
La Retroalimentación en el Aula VirtualLa Retroalimentación en el Aula Virtual
La Retroalimentación en el Aula Virtualsullinsan
 
La retroalimentación en el aula virtual
La retroalimentación en el aula virtualLa retroalimentación en el aula virtual
La retroalimentación en el aula virtualsullinsan
 
Piele072103 IN1101-b Calificaciones
Piele072103 IN1101-b CalificacionesPiele072103 IN1101-b Calificaciones
Piele072103 IN1101-b Calificacionessullinsan
 
Protocolo Presentación Publica Virtual PSTII
Protocolo Presentación Publica Virtual PSTIIProtocolo Presentación Publica Virtual PSTII
Protocolo Presentación Publica Virtual PSTIIsullinsan
 
Representante Institucional
Representante InstitucionalRepresentante Institucional
Representante Institucionalsullinsan
 
Evaluación Docente de Aula Fase II
Evaluación Docente de Aula Fase IIEvaluación Docente de Aula Fase II
Evaluación Docente de Aula Fase IIsullinsan
 
Evaluación Tutor Asesor Fase II
Evaluación  Tutor Asesor Fase IIEvaluación  Tutor Asesor Fase II
Evaluación Tutor Asesor Fase IIsullinsan
 
Defensa de Código Programación II
Defensa de Código  Programación IIDefensa de Código  Programación II
Defensa de Código Programación IIsullinsan
 
Baremo Defensa de Código Programación
Baremo Defensa de Código ProgramaciónBaremo Defensa de Código Programación
Baremo Defensa de Código Programaciónsullinsan
 
Planificacion de entregables proyecto II fase 2 lapso II 2021
Planificacion de entregables  proyecto II  fase 2 lapso II 2021Planificacion de entregables  proyecto II  fase 2 lapso II 2021
Planificacion de entregables proyecto II fase 2 lapso II 2021sullinsan
 
Plan de Clases Fase II Lapso II 2021
Plan de Clases Fase II Lapso II 2021Plan de Clases Fase II Lapso II 2021
Plan de Clases Fase II Lapso II 2021sullinsan
 
Planificación PER Ingeniería del Software I Biliannys Medina
Planificación PER Ingeniería del Software I Biliannys MedinaPlanificación PER Ingeniería del Software I Biliannys Medina
Planificación PER Ingeniería del Software I Biliannys Medinasullinsan
 
Planificación PER Ingeniería del Software I Escarlet Silva
Planificación PER Ingeniería del Software I Escarlet SilvaPlanificación PER Ingeniería del Software I Escarlet Silva
Planificación PER Ingeniería del Software I Escarlet Silvasullinsan
 
Planificación PER Ingeniería del Software I Gerson Ballesteros
Planificación PER Ingeniería del Software I Gerson BallesterosPlanificación PER Ingeniería del Software I Gerson Ballesteros
Planificación PER Ingeniería del Software I Gerson Ballesterossullinsan
 
Planificación PER Ingeniería del Software I Rosbely Guedez
Planificación PER Ingeniería del Software I Rosbely GuedezPlanificación PER Ingeniería del Software I Rosbely Guedez
Planificación PER Ingeniería del Software I Rosbely Guedezsullinsan
 
Planificación PER Ingeniería del Software I Valeria Figueroa
Planificación PER Ingeniería del Software I Valeria FigueroaPlanificación PER Ingeniería del Software I Valeria Figueroa
Planificación PER Ingeniería del Software I Valeria Figueroasullinsan
 

Más de sullinsan (20)

Guía cinco disciplinas de un coaching exitoso
Guía cinco disciplinas de un coaching exitosoGuía cinco disciplinas de un coaching exitoso
Guía cinco disciplinas de un coaching exitoso
 
Tendencias Gerenciales infografía
Tendencias Gerenciales infografíaTendencias Gerenciales infografía
Tendencias Gerenciales infografía
 
Principios de la gerencia
Principios de la gerenciaPrincipios de la gerencia
Principios de la gerencia
 
Comparacion gerencia y liderazgo
Comparacion gerencia y liderazgoComparacion gerencia y liderazgo
Comparacion gerencia y liderazgo
 
La Retroalimentación en el Aula Virtual
La Retroalimentación en el Aula VirtualLa Retroalimentación en el Aula Virtual
La Retroalimentación en el Aula Virtual
 
La retroalimentación en el aula virtual
La retroalimentación en el aula virtualLa retroalimentación en el aula virtual
La retroalimentación en el aula virtual
 
Piele072103 IN1101-b Calificaciones
Piele072103 IN1101-b CalificacionesPiele072103 IN1101-b Calificaciones
Piele072103 IN1101-b Calificaciones
 
Protocolo Presentación Publica Virtual PSTII
Protocolo Presentación Publica Virtual PSTIIProtocolo Presentación Publica Virtual PSTII
Protocolo Presentación Publica Virtual PSTII
 
Representante Institucional
Representante InstitucionalRepresentante Institucional
Representante Institucional
 
Evaluación Docente de Aula Fase II
Evaluación Docente de Aula Fase IIEvaluación Docente de Aula Fase II
Evaluación Docente de Aula Fase II
 
Evaluación Tutor Asesor Fase II
Evaluación  Tutor Asesor Fase IIEvaluación  Tutor Asesor Fase II
Evaluación Tutor Asesor Fase II
 
Defensa de Código Programación II
Defensa de Código  Programación IIDefensa de Código  Programación II
Defensa de Código Programación II
 
Baremo Defensa de Código Programación
Baremo Defensa de Código ProgramaciónBaremo Defensa de Código Programación
Baremo Defensa de Código Programación
 
Planificacion de entregables proyecto II fase 2 lapso II 2021
Planificacion de entregables  proyecto II  fase 2 lapso II 2021Planificacion de entregables  proyecto II  fase 2 lapso II 2021
Planificacion de entregables proyecto II fase 2 lapso II 2021
 
Plan de Clases Fase II Lapso II 2021
Plan de Clases Fase II Lapso II 2021Plan de Clases Fase II Lapso II 2021
Plan de Clases Fase II Lapso II 2021
 
Planificación PER Ingeniería del Software I Biliannys Medina
Planificación PER Ingeniería del Software I Biliannys MedinaPlanificación PER Ingeniería del Software I Biliannys Medina
Planificación PER Ingeniería del Software I Biliannys Medina
 
Planificación PER Ingeniería del Software I Escarlet Silva
Planificación PER Ingeniería del Software I Escarlet SilvaPlanificación PER Ingeniería del Software I Escarlet Silva
Planificación PER Ingeniería del Software I Escarlet Silva
 
Planificación PER Ingeniería del Software I Gerson Ballesteros
Planificación PER Ingeniería del Software I Gerson BallesterosPlanificación PER Ingeniería del Software I Gerson Ballesteros
Planificación PER Ingeniería del Software I Gerson Ballesteros
 
Planificación PER Ingeniería del Software I Rosbely Guedez
Planificación PER Ingeniería del Software I Rosbely GuedezPlanificación PER Ingeniería del Software I Rosbely Guedez
Planificación PER Ingeniería del Software I Rosbely Guedez
 
Planificación PER Ingeniería del Software I Valeria Figueroa
Planificación PER Ingeniería del Software I Valeria FigueroaPlanificación PER Ingeniería del Software I Valeria Figueroa
Planificación PER Ingeniería del Software I Valeria Figueroa
 

Último

Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 

Último (20)

Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 

Fundamentos OO

  • 1. Fundamentos del Enfoque Orientado a Objetos Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: 1. Comprender la Metodología Orientada a Objeto para la construcción de modelos computacionales Contenidos 1.Fundamentos generales de la Orientación a Objetos como paradigma de programación: 1.1.Definición y Ventajas. 1.2.Características. 1.3.Elementos: Clase, Objeto, Atributo, Método. 1.4.Propiedades: Abstracción, Encapsulamiento, Modularidad 2. Metodología Orientada a Objeto para la construcción de modelos computacionales: 2.1.Análisis: Identificación de clase, atributos y métodos. 2.2. Diseño: Representación gráfica de las clases. 2.3. Implementación: codificación de las clases. Fuentes de Información Textos: Izquierdo, L. Introducción a la Programación Orientada a Objetos. . [Documento en Línea]. Disponible: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf UNIDAD 3
  • 2. Joyanes, L. (2003). Fundamentos de Programación. Algoritmos, estructuras de datos y objetos. Mc Graw Hill. 3da Edición. 1. FUNDAMENTOS GENERALES DE LA ORIENTACIÓN A OBJETOS COMO PARADIGMA DE PROGRAMACIÓN Introducción La evolución de la programación puede sintetizarse en tres modelos o paradigmas: (a) La programación mediante procedimientos, (b) La programación estructurada, (c) La programación orientada a objetos. Un paradigma es una forma establecida de pensar acerca de cómo hacer algo. Es un conjunto de teorías, estándares y métodos que juntos representan un medio de organización del conocimiento: es decir, un medio de visualizar el mundo. La abstracción es la capacidad mental superior que tiene todo ser humano para poder deducir la esencia de un concepto o situación determinada. Definir una abstracción significa describir una entidad del mundo real, no importa lo compleja que pueda ser. El Principito. (Antoine de Saint – Exupéry) Le mostré mi obra de arte a las personas mayores y les pregunté si mi dibujo las asustaba. Me respondieron:” ¿Por qué tendríamos que tenerle miedo a un sombrero?” Mi dibujo N° 1 Mi dibujo no representaba un sombrero. Representaba una serpiente boa que digería un elefante. Entonces dibujé el interior de la serpiente boa para que las personas mayores pudieran entender. Mi dibujo N° 2
  • 3. La relación entre abstracción y lenguaje de programación es doble: por un lado se utiliza el lenguaje de programación para escribir un programa que es una abstracción del mundo real; por otro lado se utiliza el lenguaje de programación para describir de un modo abstracto el comportamiento físico de la computadora que se está utilizando. Programación Orientada a procedimientos: El mundo en que vivimos se halla plagado de objetos: aviones, trenes, automóviles, teléfonos, libros, computadoras, etcétera. Sin embargo, en este modelo las técnicas de programación utilizadas no reflejaban esto. Lo procedural [procedimientos] fue el paradigma principal de la programación, el cual define un programa como un algoritmo escrito en algún lenguaje de programación. Programación Estructurada: Las actividades de investigación en la década de los sesenta dieron como resultado la evolución de la programación mediante procedimientos a la programación estructurada, que es un método disciplinado para escribir programas que fuesen más claros, fáciles de probar y corregir y más fáciles de modificar que los no estructurados. Estas mejoras de la programación mediante procedimientos condujeron a nuevos conceptos como son: Estructuras de control, funciones y módulos. Las tres formas de estructuras de control son: Secuencia, Selección y Repetición. Las funciones permiten realizar tareas que se ejecutan repetidamente, o son ejecutadas con ligeras variaciones, y que se reúnen en una entidad y se reutilizan, en lugar de duplicar el código varias veces. Los módulos se refiere al proceso de dividir un objeto en piezas más pequeñas, o módulos, con el fin de lograr más fácilmente el objetivo (divide y vencerás). Programación Orientada a Objeto: (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Facilita la creación de software
  • 4. de calidad ya que potencia el mantenimiento, la extensión y la reutilización del software generado bajo este paradigma. 1.1. DEFINICIÓN Y VENTAJAS La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, es otra forma de descomponer problemas, es la descomposición en objetos; vamos a fijarnos no en lo que hay que hacer en el problema, sino en cuál es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa. La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real. Se basa en la idea natural de la existencia de un mundo lleno de objetos, de modo que la resolución del problema se realiza en términos de objetos. Las ventajas más importantes de la programación orientada a objetos:  Reusabilidad: Cuando hemos diseñado adecuadamente las clases, se pueden usar en distintas partes del programa y en numerosos proyectos.  Mantenibilidad: Debido a la sencillez para abstraer el problema, los programas orientados a objetos son más sencillos de leer y comprender, pues nos permiten ocultar detalles de implementación dejando visibles sólo aquellos detalles más relevantes.  Modificabilidad: La facilidad de añadir, suprimir o modificar nuevos objetos nos permite hacer modificaciones de una forma muy sencilla.  Fiabilidad: Al dividir el problema en partes más pequeñas podemos probarlas de manera independiente y aislar mucho más fácilmente los posibles errores que puedan surgir. 1.2. CARACTERÍSTICAS La POO se basa en la idea natural de la existencia de un mundo lleno de Objetos, de modo que la resolución del problema se realiza en términos de objetos. Estos objetos poseen características (atributos) y tiene un
  • 5. comportamiento (métodos). En el ámbito de la programación, un programa orientado a objetos está constituido por un conjunto de objetos interactuando conjuntamente a través del paso de mensajes, los cuales permiten hacer la entrada de datos, los cálculos necesarios para resolver el problema y dar la salida de datos, convertidos en la información solicitada. 1.3. ELEMENTOS La programación orientada a objetos introduce nuevos conceptos OBJETOS En el mundo real, las personas identifican los objetos como las cosas que pueden ser percibidas por los cinco sentidos. Por ejemplo: una computadora, un teléfono celular, un árbol, un perro o un automóvil. Los objetos son entidades provistas de un conjunto de propiedades, atributos o características específicas o datos, tales como tamaño, color, forma, textura… y también tienen ciertos comportamientos, funcionalidad o métodos que los hacen diferentes a otros objetos. Por ejemplo: los automóviles tienen características o atributos (marca, modelo, año, color, capacidad, placa, volante, acelerador, frenos, switchera, palanca de cambios) y comportamiento (encender, arrancar, acelerar, retroceder, cruzar izquierda, cruzar derecha, detenerse).
  • 6. Se corresponde con los objetos reales del mundo que nos rodea, a objetos internos del sistema o del programa. Un objeto tiene estado, exhibe algún comportamiento bien definido, tiene una identidad única. Un objeto tiene estado, los atributos del objeto expresados por las variables, se refiere al conjunto de los valores de sus atributos en un momento dado. El comportamiento de un objeto puede modificar el estado de este. Un Objeto exhibe algún comportamiento bien definido, lo que el objeto puede hacer, los métodos que componen el objeto respectivamente determinado por las operaciones que éste puede realizar en respuesta a mensajes (peticiones), que le son enviados por otros objetos. Un objeto posee Identidad, que es la propiedad que permite a un objeto diferenciarse de otros. Cada objeto es único en el mundo por más que haya otro objeto con iguales atributos. 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. CLASE Una clase representa un conjunto de objetos que comparten una estructura común y un comportamiento común, En otras palabras, una clase representa a un conjunto de objetos que tienen en común las mismas características (atributos) y el mismo comportamiento (métodos).
  • 7. En el mundo real existen objetos del mismo tipo, por ejemplo tu cuenta de ahorro en un banco, es solo una más de todas las cuentas de ahorro del banco. Todas las cuentas de ahorro tienen los atributos: número, titular, fecha apertura, saldo y algunos métodos como son: Aperturar, Depositar, Retirar y Cerrar. Por lo tanto, se puede definir la clase “Cuenta_Ahorro”, que describe los atributos y comportamiento de todas las cuentas. Al referirse a una cuenta en particular, por ejemplo, tu cuenta de ahorro, se puede decir que ella es un objeto de la clase “Cuenta_Ahorro”. Las clases son modelos o plantillas que describen como se construyen uno o más objetos del mismo tipo, es decir, define las variables y los métodos que son comunes para todos los objetos de un cierto tipo. Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase, por lo tanto, una clase puede tener muchas instancias y cada una es un objeto diferente. Un objeto es un simple elemento. Una clase, por el contrario, describe una familia de elementos similares. Cuando programamos un objeto y definimos sus características y funcionalidades, en realidad lo que se está haciendo, es programando una clase. EJEMPLO 1 En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo, nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en términos de la programación orientada a objetos, podemos decir que nuestro objeto celular es una instancia de una clase conocida como "celular". Los celulares tienen características (marca, modelo, sistema operativo, pantalla, teclado) y comportamientos (hacer y recibir llamadas, enviar mensajes
  • 8. multimedia, transmisión de datos). Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares comparten esas características comunes y construyen modelos o plantillas comunes, para que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS. Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo tipo y mismas características. EJEMPLO 2 Definamos una clase para una cuenta bancaria. Una cuenta bancaria consta de atributos: tipo, titular y saldo. Además permite hacer las siguientes operaciones o métodos: Depositar y Extraer. Veamos cómo quedaría Plantilla de la clase: Cuenta Bancaria
  • 9. MÉTODO Un método es una función o subrutina asociada a un objeto o a una 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 objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del Sistema. Un evento es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera. La interacción entre objetos se produce mediante mensajes. Un mensaje es una petición dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Un mensaje está compuesto por los siguientes elementos: el objeto receptor, hacia el cual el mensaje es enviado; el nombre del método que el objeto receptor del mensaje ejecutará; cualquier información adicional requerida por el objeto receptor para ejecutar el método solicitado (parámetros). ATRIBUTO Propiedad o, contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
  • 10. Denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objetos, y proporciona así fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador. 1.4. PROPIEDADES ABSTRACCIÓN Es la técnica que permite reconocer los elementos esenciales para la solución de un problema dejando al lado los detalles irrelevantes. La abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento, al tiempo que se ignoran los detalles no esenciales. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajos, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos. Una abstracción es un medio que permite un mejor manejo de la complejidad del problema, al permitir suprimir o posponer detalles irrelevantes en cierto momento, y concentrarse más bien, en detalles verdaderamente esenciales. El reconocer similitudes entre diferentes objetos también permite simplificar el dominio del problema, pues hace posible enunciar comportamientos o características generales que los describen, sin importar detalles que podrían no ser importantes.
  • 11. Una abstracción debe tener límites conceptuales bien definidos que permitan la independencia funcional entre unas y otras. Así mismo, esos límites deberán esclarecer la forma en que la abstracción será utilizada para resolver y modelar el problema en cuestión. Es decir, al abstraer un objeto, debe quedar claro cuál es su función y su relación con los demás objetos. Una abstracción puede describir algo que no necesariamente existe en el dominio real de la aplicación pero que su existencia resultaría tan útil para el analista que termina siendo representada e incorporada en la solución computacional del problema. Nota: Abstracción se asocia con Clase, e intenta definir en qué forma se ve. Ejemplos de abstracción 1. Aprender a manejar un automóvil implica saber si este es de transmisión automática o estándar, sin embargo, NO necesitamos conocer como está construida la transmisión automática o la estándar. Algunos detalles que si interesan son los relacionados con la palanca y los pedales. 2. Al utilizar una computadora para elaborar un escrito nos interesa saber que la información la introduciremos por teclado y la visualizamos por pantalla. Es decir, distinguimos dispositivos de entrada y de salida, pero NO interesan los detalles de los circuitos eléctricos que conforman a los dispositivos, ni el software (por ejemplo: controladores y sistema operativo) que les permite realizar su tarea. 3. Cuando se habla de un árbol se piensa en hojas, raíces, clorofila; pero muy probablemente NO se conozca (ni interese) como el árbol produce sus hojas, la clorofila y oxígeno. 4. Al servir un café, requerimos un recipiente resistente al calor, fácil de sujetar sin riesgo de quemaduras, que asiente de manera segura para que no se voltee. Sin embargo, es casi seguro que desconozcamos cual es el material y el proceso empleado para fabricar dicho recipiente. 5. Cuando estamos ante una araña, probablemente nos interese identificar si es venenosa, empero, NO necesitaremos saber cómo produce su veneno, en que
  • 12. Es el proceso de almacenar en un mismo comportamiento, los elementos de una abstracción y su implementación. cantidades, en qué periodo. 6. Si se tiene la posibilidad de elegir los ingredientes de una hamburguesa, interesan detalles como si la carne es de soya o de res, el jamón de pavo o pierna, el queso amarillo o blanco. Sin embargo, no nos ocuparemos de los detalles de cómo se produce cada uno de estos productos. ENCAPSULAMIENTO Es la propiedad que permite agrupar junto en una única unidad de programación, las características (atributos) y comportamiento (métodos) de un objeto. En POO, las clases son la unidad de programación que encapsulan atributos y métodos. Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Encapsular significa agrupar y manejar el grupo resultante como tal, y no cada parte a su vez. Al decidir encapsular ciertas funciones o atributos, estos serán utilizados por otros objetos para llevar a cabo alguna tarea. Sin embargo, un objeto debe conocer de otro lo indispensable para que lo pueda utilizar, ni más ni menos. Si se conoce más, entonces aumenta la cantidad de información que se maneja lo
  • 13. que incrementa la complejidad, además de que hace más vulnerable el objeto que se utiliza, y es más difícil garantizar su integridad y su correcto funcionamiento. Por otro lado, si se esconden aspectos fundamentales, se estaría perdiendo el sentido de la abstracción. Encapsular consiste en ocultar los datos y detalles de los métodos de los objetos y permitir su acceso a otros objetos sólo a través de los métodos mediante el uso de mensajes. Nota: Encapsulamiento se asocia con Objeto, e interesa definir qué deben ver los demás. Ejemplos de encapsulamiento 1. Al manejar un automóvil estándar si se presiona el clotch sin cambiar la palanca de velocidades de posición, el auto no avanzará, independientemente de si la palanca va al volante o es de piso. 2. El proceso de captura de un escrito a través de teclado registrará la pulsación de la tecla A independientemente de si el teclado es un componente separado (PC de escritorio), integrado (Laptop) o táctil (a través de la pantalla). 3. El proceso de producción de frutos en los árboles seguramente difiere dependiendo del fruto, lo importante es que el fruto se produzca, sin importar si este crece en las hojas, las ramas o el tronco. PRINCIPIO DE OCULTACIÓN DE DATOS Cada objeto está aislado del exterior, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Los atributos (datos) de un objeto deben ser privados, es decir, no pueden
  • 14. Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados. ser modificados ni obtenidos por otros objetos, solamente pueden ser manipulados por los propios métodos internos del objeto. MODULARIDAD Un programa crece en forma exponencial con respecto a su tamaño. Si se tiene un programa grande, su complejidad será mucho mayor que la suma de la complejidad de varios programas más pequeños que cumplan el mismo objetivo. Si se pudiera tomar un programa grande y dividirlo en subprogramas según ciertos criterios, la complejidad resultante sería mucho menor. Se espera que cada módulo pueda ser desarrollado con cierta independencia de los demás, y que incluso sea compilado en forma separada. Con esto se busca lograr una mayor productividad al desarrollar software en gran escala, en donde los módulos son asignados a las personas que componen el equipo de trabajo y los desarrollan en forma independiente y paralela. Cada módulo debe estar bien definido, y su acoplamiento con los demás debería ser el mínimo posible. Entre menos dependencias existan entre ellos, más mantenible será la aplicación final. Nota: Modularidad se entiende como agrupación de abstracciones u objetos.
  • 15. Ejemplos de modularidad 1. En un automóvil estándar reubicar la palanca de velocidades NO debe afectar el comportamiento de la transmisión. 2. Adaptar un teclado para idioma griego NO debe requerir la construcción de una computadora nueva. 3. Permitir que un sistema de nómina de empleados de confianza y operarios, incorpore la funcionalidad de préstamos, NO debe requerir la reescritura del programa completo. POLIMORFISMO Es una propiedad que permite que diversos objetos respondan de modo diferente al mismo mensaje. No sera tratado en este curso. HERENCIA . Es la propiedad que permite definir nuevas clases a partir de una clase base ya existente. Las nuevas clases creadas se denominan clases derivadas (clases hijos o subclases) y heredan los atributos y métodos de la clase base (clase padre o superclase), además, estas clases derivadas pueden tener otros atributos y métodos propios, adicionales. No sera tratado en este curso. Resumen La clase es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase. También se puede decir que una clase es una plantilla genérica para un conjunto de objetos de similares características. Una instancia es un objeto de una clase en particular. Para entender cómo funciona el paradigma de la programación orientada a objetos es necesario ver al programa como una colección de objetos que interactúan entre sí enviándose mensajes y cambiando su estado durante la ejecución. Resolver un problema bajo el paradigma de la programación orientada a
  • 16. objetos implica determinar y caracterizar los diferentes objetos que intervienen en el problema, definir sus propiedades y métodos y ponerlos a interactuar. 2. METODOLOGÍA ORIENTADA A OBJETO PARA LA CONSTRUCCIÓN DE MODELOS COMPUTACIONALES Introducción “El mundo está lleno de objetos, animados e inanimados, concretos y abstractos, árboles y tablas, automóviles y casas. La Orientación a Objeto busca modelar esos objetos del mundo real e implementarlos por medio de los programas informáticos. Estos programas representan un serie de interacciones entre un conjunto de objetos.” La Metodología Orientada a Objeto comprende tres fases: Análisis, Diseño, Desarrollo o Implementación. (Joyanes, Luis. Programación Orientada a Objeto. 1996.) 2.1. FASE ANÁLISIS ORIENTADO A OBJETO (AOO) ANÁLISIS: Identificación de clase, atributos y métodos. Consiste en separar las partes de un problema con la finalidad de estudiar su naturaleza, su función y/o su significado. Pretende responder a la pregunta ¿Qué hace?, encontrar los tipos de objetos del mundo real que están presentes en el dominio del problema, determinando sus características (atributos), su comportamiento (métodos) e interacciones (con otras clases de objetos). Esta fase se compone de 4 pasos o etapas: Subrayado de nombres y verbos; Asignación de Responsabilidades determinando atributos y métodos; Definir la lógica de programación de los métodos; Caracterizar las relaciones entre clases y objetos. 1. Subrayado de nombres y verbos: La técnica utilizada en esta fase es: (a) leer la definición o descripción del problema y (b) subrayar los nombres o frases con nombres y los verbos o frases con verbos. Los nombres son buenos candidatos a Clases o atributos de clases. Los verbos son buenos candidatos a Métodos.
  • 17. Criterios para clasificar objetos:  Cosas Tangibles: mesa, carro, teléfono, avión.  Interacciones: matrimonio, ventas, compras.  Roles: gerente, empleado, propietario, cliente.  Incidentes : viaje, transacción, llegada, accidente, vuelo  Organizaciones: empresas, departamento, divisiones, direcciones, áreas  Lugares geográficos: país, ciudad, muelle de carga, sala de embarque  Especificaciones: descripciones, estándares 2. Asignación de Responsabilidades: Este paso comienza con la asignación de responsabilidades a cada clase. Las responsabilidades se dividen en 2 grupos: La información que debe tener (atributos) y Las operaciones que debe realizar (métodos). 3. Descripción de los métodos de cálculo: En esta parte se determina el tipo de estructura de control que se utilizará en la lógica de programación y se describen los métodos de cálculo. Las estructuras de control que utilizaremos en este curso serán de tres tipos: Secuenciales, Selectivas y Repetitivas. 4. Caracterización de Relaciones: En este paso se analizan las relaciones entre clases y el modo en que éstas se convierten en una implementación. Para los efectos de este curso analizaremos únicamente las relaciones de asociación de clases. Una Asociación es una relación, en las que un objeto realiza llamadas a los servicios (métodos) de otro, interactuando de esta forma con él. Establece una cardinalidad o multiplicidad. Una asociación define una relación de pertenencia. La dirección de la asociación puede ser de 2 tipos: Unidireccional o Bidireccional. La cardinalidad expresa el número de instancias de una clase (objetos) que se asocian con instancias de la clase asociada, pudiendo ser:
  • 18. 1. Una a Una 2. Una a Muchas / Muchas a Una 3. Muchas a Muchas Para establecer las relaciones de asociación es necesario dar respuesta a frases como: “… pertenece a …”; “… es miembro de …”; “… está asociado con …”; “… estudia en …” 2.2. FASE DISEÑO ORIENTADO A OBJETO (DOO) DISEÑO: Representación gráfica de las clases. Es el proceso de configuración mental previo, en la búsqueda de la solución a un problema. Pretende responder a la pregunta ¿Cómo lo hace? Se debe establecer el tipo de dato a que corresponden los atributos de las clases, si los métodos deben retornar un valor o si necesitan de datos adicionales (parámetros) para cumplir con su responsabilidad. Recordar que los tipos de datos básicos son: entero, real, alfanumérico y lógico. También se pueden utilizar los datos definidos por el usuario, como son las clases. Una vez determinada esta información se vacía en una plantilla de diseño de clase. 2.3 FASE IMPLEMENTACIÓN ORIENTADA A OBJETO (IOO) IMPLEMENTACIÓN: Construcción de modelos computacionales empleando algoritmos. Es el proceso de transcribir un algoritmo utilizando un lenguaje de programación. Consiste en traducir el modelo construido en las fases de Análisis y NombreClase Tipo Atributo_1 Tipo Atributo_2 * Tipo Atributo_N Tipo Método_1(parámetros ) Tipo Método_2(parámetros ) * Tipo Métdo_N(parámetros )Plantillas de clases
  • 19. Diseño en el programa que dará solución al problema planteado. En nuestro caso, para la implementación de la solución se utilizará el Pseudolenguaje. EJERCICIOS DE ABSTRACCIÓN, Modelar “Orientado a Objeto” el siguiente problema: 1. Dado un estudiante se desea saber cuál es su nota definitiva, calculada en base a la suma de sus tres notas parciales. Solución a) Para ello debemos identificar la clase, los atributos y sus métodos. Clase : Estudiante Atributo(s) : Nota1, Nota2, Nota3 Método (s) : Calcular Nota Definitiva b) Una vez caracterizado el objeto (la clase) debemos construir la Plantilla de la clase. Clase Estudiante 2. De un empleado se conoce su nombre, el número de Horas Trabajadas y la Tarifa por Horas. Se pide calcular el sueldo del empleado. Solución Clase : Empleado Atributo(s) : Horas Trabajadas, Tarifa por Horas
  • 20. Método (s) : Calcular el Sueldo ( ) Clase Empleados EJERCICIO UTILIZANDO LA METODOLOGÍA OO, Realizar el siguiente ejercicio aplicando la metodología orientada a objeto: Una calculadora acepta 2 números enteros, calcular la suma. FASE 1. ANÁLISIS ORIENTADO A OBJETO Paso 1. Subrayar nombres y verbos. Una calculadora acepta 2 números enteros (numero1 y numero2), calcular la suma (para nuestro caso: Sumar). Paso 2. Asignar responsabilidades. ¿Quién será un objeto: número, entero o calculadora? Para ser un objeto, un candidato debe poseer atributos y comportamiento. Entero es un tipo de dato e identifica a un atributo. Qué atributos y métodos se le pueden asignar a “Número” “Número” es identificado por “entero” por lo que puede calificar como atributo. Así pues, configuramos el siguiente listado de responsabilidades: Elemento Responsabilidad Calculadora -------- > Clase Numero1 -------- > Atributo de Calculadora Numero2 -------- > Atributo de Calculadora Sumar() -------- > Método de Calculadora. AsignarNumero1 -------- > Método de Calculadora. ObtenerNumero1 -------- > Método de Calculadora. AsignarNumero2 -------- > Método de Calculadora.
  • 21. ObtenerNumero2 -------- > Método de Calculadora. Paso 3. Lógica de programación y definición de métodos de cálculo Estructuras de Control: Secuencial para procesar los objetos, ya que nos dan la información de una sola calculadora. Para el cálculo también se utiliza una estructura Secuencial. Sumar: Método de Calculadora que tiene como función calcular la suma de dos números enteros. La secuencia lógica es: 1. Leer los atributos del objeto // Secuencial 2. Realizar la suma de los dos atributos // Secuencial 3. Retornar el resultado // Secuencial Donde: Suma = Numero1 + Numero2 Paso 4. Caracterización de Relaciones Como definimos una sola clase, no existen relaciones. FASE2. DISEÑO ORIENTADO A OBJETO Calculadora entero Numero1 entero Numero2
  • 22. AsignarNumero1(entero) entero ObtenerNumero1() AsignarNumero2(entero) entero ObtenerNumero2() entero Sumar() FASE 3. IMPLEMENTACIÓN ORIENTADA A OBJETO (Revisar la guía del Pseudolenguaje POO) Definición de clases clase Calculadora inicio privado: entero Numero1, Numero2 publico: AsignarNumero1 (entero Num1) entero ObtenerNumero1 ( ) AsignarNumero2 (entero Num2) entero ObtenerNumero2 ( ) entero Sumar ( ) fin Implementación de Métodos de clases Calculadora AsignarNumero1 (entero Valor) // Yo sólo manejo N1 inicio Numero1 ← Valor // A Numero1 se le asigna lo que contiene Valor fin entero Calculadora ObtenerNumero1( ) inicio retornar Numero1 // Devuelve el contenido almacenado en el atributo Numero1 fin Calculadora AsignarNumero2 (entero Valor)
  • 23. inicio Numero2 ← Valor // A Numero2 se le asigna lo que contiene Valor fin entero Calculadora ObtenerNumero2 ( ) inicio retornar Numero2 // Devuelve el contenido almacenado en el atributo Numero2 fin entero Calculadora Sumar ( ) inicio entero Resultado // esta es una variable local del método Sumar Resultado ← Numero1 + Numero2 //se suma el valor de los 2 atributos retornar Resultado fin // Notar que la variable local a retornar “Resultado” debe ser del mismo tipo (entero) que el valor que retorna el método (definido como entero en su encabezado) Implementación de la Aplicación La aplicación es la que interactúa con el usuario, leyendo datos (desde el teclado) y mostrando resultados (por la pantalla o impresora). Toda aplicación tiene una secuencia lógica, a saber: 1. Creación de los objetos 2. Darle vida a los objetos, agregándole la información a sus atributos 3. Poner a Interactuar los objetos, entre ellos y con la aplicación 4. Mostrar el resultado de la interacción. principal ( ) inicio Calculadora Cal // Creación del objeto IECalculadora (Cal) // Interfaz de Entrada, con la que se le da vida a losobjetos
  • 24. entero Resultado //Es una variable de la aplicación Resultado ←Cal.Sumar( ) //La aplicación interactuando con el objeto InterfazSalida (Resultado) //Para mostrar el Resultado fin Implementación de los métodos de la Aplicación IECalculadora (Calculadora Cal) //Interfaz de Entrada para laCalculadora inicio entero Valor //Revisar el uso de N1, N2 escribir (“Ingrese el 1er Número:”) //muestra el mensaje vía pantalla leer (Valor) //Guarda lo tecleado en Valor Cal.AsignarNumero1(Valor) //Asignamos la información del atributo escribir (“Ingrese el 2do Número:”) //muestra el mensaje vía pantalla leer (Valor) //Guarda lo tecleado en Valor Cal.AsignarNumero2(Valor) //Asignamos la información del atributo fin InterfazSalida (entero Resultado) inicio escribir (“La Suma de los números dados es: ” , Resultado) //muestra vía pantalla fin