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