SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
Metodología para el Análisis y Planteamiento del Problema
Objetivos de Aprendizaje
Al finalizar esta unidad, usted será capaz de:
1. Resolver problemas lógicos–matemáticos a través de la Metodología para el
Análisis y Planteamientos de problemas
2. Comprender la Metodología Orientada a Objeto para la construcción de
modelos computacionales
Contenidos
1. Metodología para el Análisis y Planteamientos de problemas:
1.1.Identificación del Problema.
1.2.Identificación de los datos necesarios (entradas).
1.3.Identificación de los datos a obtener (salidas).
1.4.Descripción de las operaciones a utilizar (cálculos).
1.5.Descripción de los pasos para llegar a la solución (procesos).
2. Fundamentos generales de la Orientación a Objetos como paradigma de
programación:
2.1.Definición y Ventajas.
2.2.Características.
2.3.Elementos: Clase, Objeto, Atributo, Método.
2.4.Propiedades: Abstracción, Encapsulamiento, Modularidad
3. Metodología Orientada a Objeto para la construcción de modelos
computacionales:
3.1.Análisis: Identificación de clase, atributos y métodos.
UNIDAD 4
3.2. Diseño: Representación gráfica de las clases.
3.3. Implementación: Construcción de modelos computacionales empleando
algoritmos.
Fuentes de Información
Textos:
Coto, E. (2002). Lenguaje Pseudoformal Para la Construcción de Algoritmos.
Universidad Central de Venezuela. Facultad de Ciencias. Escuela de
Computación.
Disponible:http://lcg.ciens.ucv.ve/~ernesto/nds/CotoND200208.pdf
Izquierdo, L. Introducción a la Programación Orientada a Objetos. . [Documento en
Línea]. Disponible: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
Joyanes, L. (2003). Fundamentos de Programación. Algoritmos, estructuras de
datos y objetos. Mc Graw Hill. 3da Edición.
Joyanes, L. (2003). PROGRAMACIÓN EN C++. Algoritmos, estructuras de datos
y objetos. Luis Mc Graw Hill. 2da Edición.
Oviedo, E. Lógica de Programación.
Sitios Web recomendados:
http://www.ciens.ucv.ve/algoritmosyprogramacion/index.html
http://www.rena.edu.ve/cuartaEtapa/Informatica/Tema12.html
https://sites.google.com/site/algoritmicapnfiuptaeb/
Conocimientos Previos
Cuando se desarrolla un algoritmo, los pasos a cumplir para dar solución a
un problema determinado deben tener coherencia y concatenación.
Con el propósito de que tengas éxito en el aprendizaje de estos temas, es
necesario que repases el contenido de la unidad 1, con respecto al concepto y
características de los algoritmos, y la unidad 3 sobre los datos y las entidades
primitivas, además de evaluar una expresión aritmética, ejercicios de desarrollo
de lógica. Se le recomienda hacer una revisión profunda, ya que de esto depende
la comprensión de esta unidad.
1. METODOLOGIA PARA EL ANALISIS Y PLANTEAMINETO DE PROBLEMAS
Introducción
El Análisis del problema es un paso fundamental en la correcta resolución de
una situación presentada, la cual viene determinada, en gran medida, por el
planteamiento inicial. Un planteamiento correcto evita perder tiempo en la
implementación de algoritmos. En este paso debemos hacer tres preguntas:
(a) ¿Qué entradas se nos ofrece?, (b) ¿Qué salida debemos generar?, (c) ¿Cuál
es el método que debemos usar para llegar hacia la solución deseada?, es así
como el diseño del algoritmo ayuda a darle la solución al problema.
Parte del reto de la programación, es que cada programador tiene
estrategias diferentes para proyectar las ciertas preguntas, sin importar el enfoque
de desarrollo del programa que utilice. Pero ¿Cómo dan solución a estos
problemas? ¿Qué método utilizan?, ¿En qué te ayudaría conocer? ¿Cómo
resolver problemas mediante una metodología? Para resolver estas interrogantes
necesariamente tienes que seguir un proceso al cual se conoce como metodología
de solución de problemas.
La metodología de solución de problemas es un conjunto o sistema de
métodos, principios y reglas que permiten enfrentar de manera sistemática el
desarrollo de una solución a un problema.
Esta metodología se estructura como una secuencia de pasos que parten de la
definición del problema y culminan con una solución del mismo.
1.1. IDENTIFICACIÓN DEL PROBLEMA
Es la primera fase de la metodología de solución de problemas. Esta etapa
se centra en la elaboración del texto que nos permitirá saber qué es lo que se
pretende solucionar, y nos proporcionará información útil para hallar la solución.
Esta fase está dada por el enunciado del problema, el cual debe ser claro y
completo. Es importante que conozcamos exactamente qué se desea, ya que
mientras no identifiquemos lo que se solucionará no tiene caso pasar a la
siguiente fase. Esto se logrará mediante una buena lectura del enunciado y el
análisis del mismo para poder identificar cada uno de los elementos (condiciones)
que afectan y/o crean el problema.
Veamos un ejemplo sencillo, en donde apliquemos la primera fase de la
metodología de solución de problemas. Ejemplo: Nuestro personaje está sentado
en su casa viendo la televisión. Afuera está lloviendo y como su techo está en mal
estado el agua se introduce a la habitación.
¿Cuál es su problema?
 El problema es que la televisión no se ve bien.
 El problema es que el sillón no es cómodo.
 El problema es que las gotas hacen ruido.
 El problema es que se está metiendo el agua a su casa.
Un análisis profundo de la situación (y un poco de sentido común) podemos
determinar que en realidad el problema consiste en que se está metiendo el
agua a la casa: nuestro personaje tiene una gotera, pero no quiera la gotera.
1.2. IDENTIFICACIÓN DE LOS DATOS NECESARIOS (ENTRADAS)
Luego de determinar el problema, se debe reconocer los datos que nos
hacen falta y con base en éstos se puede determinar la solución. Debemos dejar
claro cuál es la información útil que se nos proporciona en el enunciado del
problema y que nos ayudará en la solución del mismo. Aquí también se tiene
disponible toda la información (teoría) que se conoce en relación al problema. En
el caso de nuestro ejemplo sería:
 Datos de entrada de entrada: Se está metiendo el agua a la casa del personaje
 Datos adicionales: Reemplazar o reparar el techo cuando presentan filtración
1.3. IDENTIFICACIÓN DE LOS DATOS A OBTENER (SALIDAS)
Se consideran los datos o resultados que se espera obtener. (Información a
mostrar). Siguiendo con nuestro ejemplo, los datos de salida: El techo del
personaje está en mal estado
1.4. DESCRIPCIÓN DE LAS OPERACIONES A UTILIZAR (CÁLCULOS)
Dentro de este método de análisis y planteamiento del problema, se llega a
obtener una estructura clara y eficaz por medio de una serie de pasos para
alcanzar la solución del problema, esto también cuenta con operaciones dentro de
los algoritmos que podemos llamar cálculos. Estos cálculos están íntimamente
conectados con el tipo de dato de entrada que se espera recibir y la salida que
nos interesa obtener, todo previamente planificado según el caso, se formulan
operaciones precisas ya sean lógicas o aritméticas representadas como
instrucciones a seguir.
1.5. DESCRIPCIÓN DE LOS PASOS PARA LLEGAR A LA SOLUCIÓN
(PROCESOS)
Se define como proceso una serie de expresiones matemáticas y lógicas
que nos permitirán obtener los datos de salida. En algunas ocasiones un mismo
problema podrá ser resuelto de varias formas, por lo tanto tendrá varios procesos
de solución.
Resumen
Entendido el problema, para resolverlo es preciso analizar los datos o
resultados que se esperan, los datos de entrada que nos suministran, el proceso
al que se requiere someter esos datos a fin de obtener los resultados esperados,
áreas de trabajo, fórmulas y otros recursos necesarios.
Se puede establecer una serie de preguntas acerca de lo que establece el
problema, para poder determinar si se cuenta con los elementos suficientes para
llevar a cabo la solución del mismo. Para la solución de problemas, algunas
preguntas son como:
1. ¿Con qué datos cuento? Es importante conocer si los datos que se tienen son
suficientes para dar solución al problema.
2. ¿Qué hago con esos datos? Una vez que tenemos todos los datos que
necesitamos, debemos determinar qué hacer con ellos, es decir, qué fórmulas,
cálculos, qué proceso o transformación deben seguir los datos para convertirse en
resultados.
3. ¿Qué se espera obtener? ¿Qué información deseamos obtener con el proceso
de datos y de qué forma presentarla? En caso de que la información obtenida no
sea la deseada, replantear nuevamente un análisis en los puntos anteriores.
2. 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)
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.
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
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.
2.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.
2.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.
2.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
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.
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.
2.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
Es el proceso de almacenar en un
mismo comportamiento, los
elementos de una abstracción y su
implementación.
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
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
Es la propiedad que tiene un
sistema que ha sido
descompuesto en un conjunto de
módulos cohesivos y débilmente
acoplados.
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
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
programacompleto.
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.
3. 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.)
3.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 …”
3.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.
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
3.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
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 manejoN1
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 atributoNumero1
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 la Calculadora
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
Evaluación del Aprendizaje
Lee con atención los siguientes planteamientos y coloca dentro del paréntesis de
la izquierda la letra de la opción que contesta correctamente cada uno de ellos.
1. ( ) Al conjunto de cuestiones que se plantean para ser resueltas se le llama...
a) Situación
b) Restricción
c) Información
d) Problema
2. ( ) Para comprender un problema se deben extraer...
a) Datos
b) Criterios
c) Dominios
d) Clasificaciones
3. ( ) Al conjunto de valores que un dato puede tener se le conoce como...
a) Métodos
b) Criterios
c) Dominios
d) Clasificaciones
4. ( )
A un objeto simbólico que se utiliza para representar datos se le conoce
como...
a) Objeto
b) Identificador
c) Componente
d) Término
5. ( ) Identificador que guarda el valor de un dato que no cambia, se le llama...
a) Constante
b) Objeto
c) Variable
d) Diferencia
6. Anota dentro del paréntesis una V si es verdadero o una F si es falso el
enunciado sobre las características del algoritmo.
( ) Es un conjunto ordenado e infinito de instrucciones.
( ) La secuencia son pasos que se realizan en un orden estricto.
( ) La utilización de variables o constantes no son necesarias.
( ) Describe la transformación de cada entrada en la salida.
( ) Debe tener un solo punto de inicio y varios de finalización.
7. Menciona en orden las tres partes importantes para la creación de un algoritmo
1:
2:
3:
Lee con atención los planteamientos y elabora un algoritmo para cada problema.
8. Calcula la superficie de un triángulo dada su base, considerando que la
superficie se calcula mediante la fórmula: superficie = base * altura / 2
9. Dado como dato la calificación de un alumno, escribe “APROBADO” si su
calificación es mayor o igual a 12 y “REPROBADO” si su calificación es de 0 a 11.
10. Calcula la velocidad de un auto si se considera la distancia recorrida y el
tiempo que tarda, mediante la fórmula: V = d / t
Donde:
v = velocidad
d = distancia
t = tiempo
11. Dada cinco calificaciones de un alumno, obtén y muestra su promedio.
Lee con atención los siguientes planteamientos y coloca dentro del paréntesis de
la izquierda la letra de la opción que contesta correctamente cada uno de ellos.
12. ( ) A la forma gráfica de representar un problema por medio de símbolos
se le llama...
a)algoritmo.
b)pseudocódigo.
c)diagrama de flujo.
d)top down.
13. ( ) Al elaborar un diagrama de flujo se debe construir...
a)de derecha a izquierda.
b)abajo hacia arriba.
c)horizontalmente.
d)arriba hacia abajo.
14. ( ) El algoritmo es un conjunto ordenado que representa una serie de
pasos para resolver un problema cuyas partes son:
a)Introducción - Proceso - Conclusión.
b)Dato - Desarrollo - Resultado.
c)Entrada - Proceso - Salida.
d)Problema - Hipótesis - Respuesta.
15. ( ) Dado como dato el sueldo de un trabajador, aplica el aumento del 15% si
su sueldo supera los Bs. 1000,00
a) Obtener valor de sueldo.
Si el sueldo es mayor o igual a Bs1000,00 incrementarlo en un 15%.
b) Obtener valor de sueldo.
Si el sueldo es menor o igual a Bs1000,00 incrementarlo en un 15%.
a)Variable
b)Pseudocódigo
c) Algoritmo
d)Análisis
e)Proceso
c) Obtener valor de sueldo.
Si el sueldo es menor a Bs1000,00 incrementarlo en un 15%.
d) Obtener valor de sueldo.
Si el sueldo es mayor a Bs1000,00 incrementarlo en un 15%.
16. Relaciona la columna de las características de algoritmo con la columna de
conceptos y escribe dentro del paréntesis la letra que corresponda.
( )
Conjunto ordenado y finito de pasos que dan
como resultado la solución de un problema.
( )
( )
Falso lenguaje de programación que imita de
manera abreviada las instrucciones.
( ) Es la acción de diferenciar en un problema la
entrada, proceso y salida de datos.
( ) Nombre genérico asignado a un identificador cuyo
valor cambia constantemente
Clave de Respuestas
Pregunta Respuesta
1 d
2 a
3 c
4 b
5 a
6
F
V
F
V
F
7 Entrada
Proceso
Salida
8 Inicio
Obtener valor de base
Obtener valor de altura
Calcular base * altura / 2
Escribir valor de superficie
Fin
9 Inicio
Obtener calificación.
Si calificación >= 12 escribir
“APROBADO”.
Si calificación <= 12
escribir "REPROBADO”
Fin
10 Inicio
Obtener distancia
Obtener tiempo
Calcular d / t
Escribir valor de
velocidad.
Fin
11 Inicio
Obtener calificación 1
Obtener calificación 2
Obtener calificación 3
Obtener calificación 4
Obtener calificación 5
Sumar calificaciones 1, 2,
3, 4 y 5
Calcular el promedio
dividiendo el resultado
anterior entre 5
Escribir el promedio
Fin
12 c
13 d
14 c
15 d
16
c
b
d
a
Si tuviste problemas para acertar las respuestas, te sugiero que leas y
repases el material de estudio

Weitere ähnliche Inhalte

Was ist angesagt?

03 Intro Programacion C
03 Intro Programacion C03 Intro Programacion C
03 Intro Programacion CEdwinRicardo
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
ParadigmasdeprogramacionVictor Zapata
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primeroVictor Zapata
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosAlexandra Ochoa
 
Los algoritmos, definición y flujograma
Los algoritmos, definición y flujogramaLos algoritmos, definición y flujograma
Los algoritmos, definición y flujogramaAnibal carrasquel
 
Algoritmos computacionales conceptos básicos
Algoritmos computacionales   conceptos básicosAlgoritmos computacionales   conceptos básicos
Algoritmos computacionales conceptos básicosYahaira Fernández Segura
 
Presentacion wilfredo nadales(29946762)
Presentacion wilfredo nadales(29946762)Presentacion wilfredo nadales(29946762)
Presentacion wilfredo nadales(29946762)LuisJoseJimenez
 
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Lesly Gonzalez
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Lesly Gonzalez
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y SolucionesVideoconferencias UTPL
 
Logica computacional conceptos basicos
Logica computacional conceptos basicosLogica computacional conceptos basicos
Logica computacional conceptos basicosmoni26011993
 

Was ist angesagt? (19)

03 Intro Programacion C
03 Intro Programacion C03 Intro Programacion C
03 Intro Programacion C
 
Tipos de algoritmos
Tipos de algoritmosTipos de algoritmos
Tipos de algoritmos
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
Paradigmasdeprogramacion
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primero
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
02 examen parcial n°1-informática ii-vacio
02 examen parcial n°1-informática ii-vacio02 examen parcial n°1-informática ii-vacio
02 examen parcial n°1-informática ii-vacio
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
Los algoritmos, definición y flujograma
Los algoritmos, definición y flujogramaLos algoritmos, definición y flujograma
Los algoritmos, definición y flujograma
 
Algoritmos computacionales conceptos básicos
Algoritmos computacionales   conceptos básicosAlgoritmos computacionales   conceptos básicos
Algoritmos computacionales conceptos básicos
 
Presentacion wilfredo nadales(29946762)
Presentacion wilfredo nadales(29946762)Presentacion wilfredo nadales(29946762)
Presentacion wilfredo nadales(29946762)
 
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Logica computacional conceptos basicos
Logica computacional conceptos basicosLogica computacional conceptos basicos
Logica computacional conceptos basicos
 
Unidad 1 margie
Unidad 1 margieUnidad 1 margie
Unidad 1 margie
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Ähnlich wie Guia didáctica unidad 4 metodología para el análisis y planteamiento del problema

Ähnlich wie Guia didáctica unidad 4 metodología para el análisis y planteamiento del problema (20)

Metodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del ProblemaMetodología para el Análisis y Planteamiento del Problema
Metodología para el Análisis y Planteamiento del Problema
 
Metodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problemaMetodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problema
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)Actividad n° 3 (cuestionario)
Actividad n° 3 (cuestionario)
 
Jhonny
JhonnyJhonny
Jhonny
 
Exposicion
ExposicionExposicion
Exposicion
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Exposición
ExposiciónExposición
Exposición
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1 Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Elaboracion de un_programa
Elaboracion de un_programaElaboracion de un_programa
Elaboracion de un_programa
 
Domingo García 4A
Domingo García 4ADomingo García 4A
Domingo García 4A
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Fanny
FannyFanny
Fanny
 

Mehr von Leany González

Plan evaluacionvirtual fase ii-2021- leany gonzález
Plan evaluacionvirtual fase ii-2021- leany gonzálezPlan evaluacionvirtual fase ii-2021- leany gonzález
Plan evaluacionvirtual fase ii-2021- leany gonzálezLeany González
 
Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++Leany González
 
Guía didáctica estructura secuenciales
Guía didáctica estructura secuencialesGuía didáctica estructura secuenciales
Guía didáctica estructura secuencialesLeany González
 
Pnfi programa analitico algoritmica y programacion
Pnfi   programa analitico algoritmica y programacionPnfi   programa analitico algoritmica y programacion
Pnfi programa analitico algoritmica y programacionLeany González
 
Plan evaluacion algoritmica y programacion lapso i 2021
Plan evaluacion algoritmica y programacion  lapso i 2021Plan evaluacion algoritmica y programacion  lapso i 2021
Plan evaluacion algoritmica y programacion lapso i 2021Leany González
 
Material de apoyo unidad 3. datos y entidades primitivas
Material de apoyo unidad 3.  datos y entidades primitivasMaterial de apoyo unidad 3.  datos y entidades primitivas
Material de apoyo unidad 3. datos y entidades primitivasLeany González
 
Material de apoyo unidad 2. estandares en el diseño de algoritmos
Material de apoyo unidad 2. estandares en el diseño de algoritmosMaterial de apoyo unidad 2. estandares en el diseño de algoritmos
Material de apoyo unidad 2. estandares en el diseño de algoritmosLeany González
 
Material de apoyo de unidad 1. algoritmos y programas
Material de apoyo de unidad 1. algoritmos y programasMaterial de apoyo de unidad 1. algoritmos y programas
Material de apoyo de unidad 1. algoritmos y programasLeany González
 
Plan evaluacion idiomas i lapso i 2021
Plan evaluacion idiomas i lapso i 2021Plan evaluacion idiomas i lapso i 2021
Plan evaluacion idiomas i lapso i 2021Leany González
 
Lineamientos internos ultima revision
Lineamientos internos ultima revisionLineamientos internos ultima revision
Lineamientos internos ultima revisionLeany González
 

Mehr von Leany González (11)

Plan evaluacionvirtual fase ii-2021- leany gonzález
Plan evaluacionvirtual fase ii-2021- leany gonzálezPlan evaluacionvirtual fase ii-2021- leany gonzález
Plan evaluacionvirtual fase ii-2021- leany gonzález
 
De algoritmo a_c++
De algoritmo a_c++De algoritmo a_c++
De algoritmo a_c++
 
Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++
 
Guía didáctica estructura secuenciales
Guía didáctica estructura secuencialesGuía didáctica estructura secuenciales
Guía didáctica estructura secuenciales
 
Pnfi programa analitico algoritmica y programacion
Pnfi   programa analitico algoritmica y programacionPnfi   programa analitico algoritmica y programacion
Pnfi programa analitico algoritmica y programacion
 
Plan evaluacion algoritmica y programacion lapso i 2021
Plan evaluacion algoritmica y programacion  lapso i 2021Plan evaluacion algoritmica y programacion  lapso i 2021
Plan evaluacion algoritmica y programacion lapso i 2021
 
Material de apoyo unidad 3. datos y entidades primitivas
Material de apoyo unidad 3.  datos y entidades primitivasMaterial de apoyo unidad 3.  datos y entidades primitivas
Material de apoyo unidad 3. datos y entidades primitivas
 
Material de apoyo unidad 2. estandares en el diseño de algoritmos
Material de apoyo unidad 2. estandares en el diseño de algoritmosMaterial de apoyo unidad 2. estandares en el diseño de algoritmos
Material de apoyo unidad 2. estandares en el diseño de algoritmos
 
Material de apoyo de unidad 1. algoritmos y programas
Material de apoyo de unidad 1. algoritmos y programasMaterial de apoyo de unidad 1. algoritmos y programas
Material de apoyo de unidad 1. algoritmos y programas
 
Plan evaluacion idiomas i lapso i 2021
Plan evaluacion idiomas i lapso i 2021Plan evaluacion idiomas i lapso i 2021
Plan evaluacion idiomas i lapso i 2021
 
Lineamientos internos ultima revision
Lineamientos internos ultima revisionLineamientos internos ultima revision
Lineamientos internos ultima revision
 

Kürzlich hochgeladen

LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Kürzlich hochgeladen (20)

LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 

Guia didáctica unidad 4 metodología para el análisis y planteamiento del problema

  • 1. Metodología para el Análisis y Planteamiento del Problema Objetivos de Aprendizaje Al finalizar esta unidad, usted será capaz de: 1. Resolver problemas lógicos–matemáticos a través de la Metodología para el Análisis y Planteamientos de problemas 2. Comprender la Metodología Orientada a Objeto para la construcción de modelos computacionales Contenidos 1. Metodología para el Análisis y Planteamientos de problemas: 1.1.Identificación del Problema. 1.2.Identificación de los datos necesarios (entradas). 1.3.Identificación de los datos a obtener (salidas). 1.4.Descripción de las operaciones a utilizar (cálculos). 1.5.Descripción de los pasos para llegar a la solución (procesos). 2. Fundamentos generales de la Orientación a Objetos como paradigma de programación: 2.1.Definición y Ventajas. 2.2.Características. 2.3.Elementos: Clase, Objeto, Atributo, Método. 2.4.Propiedades: Abstracción, Encapsulamiento, Modularidad 3. Metodología Orientada a Objeto para la construcción de modelos computacionales: 3.1.Análisis: Identificación de clase, atributos y métodos. UNIDAD 4
  • 2. 3.2. Diseño: Representación gráfica de las clases. 3.3. Implementación: Construcción de modelos computacionales empleando algoritmos. Fuentes de Información Textos: Coto, E. (2002). Lenguaje Pseudoformal Para la Construcción de Algoritmos. Universidad Central de Venezuela. Facultad de Ciencias. Escuela de Computación. Disponible:http://lcg.ciens.ucv.ve/~ernesto/nds/CotoND200208.pdf Izquierdo, L. Introducción a la Programación Orientada a Objetos. . [Documento en Línea]. Disponible: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf Joyanes, L. (2003). Fundamentos de Programación. Algoritmos, estructuras de datos y objetos. Mc Graw Hill. 3da Edición. Joyanes, L. (2003). PROGRAMACIÓN EN C++. Algoritmos, estructuras de datos y objetos. Luis Mc Graw Hill. 2da Edición. Oviedo, E. Lógica de Programación. Sitios Web recomendados: http://www.ciens.ucv.ve/algoritmosyprogramacion/index.html http://www.rena.edu.ve/cuartaEtapa/Informatica/Tema12.html https://sites.google.com/site/algoritmicapnfiuptaeb/ Conocimientos Previos Cuando se desarrolla un algoritmo, los pasos a cumplir para dar solución a un problema determinado deben tener coherencia y concatenación. Con el propósito de que tengas éxito en el aprendizaje de estos temas, es necesario que repases el contenido de la unidad 1, con respecto al concepto y características de los algoritmos, y la unidad 3 sobre los datos y las entidades primitivas, además de evaluar una expresión aritmética, ejercicios de desarrollo
  • 3. de lógica. Se le recomienda hacer una revisión profunda, ya que de esto depende la comprensión de esta unidad. 1. METODOLOGIA PARA EL ANALISIS Y PLANTEAMINETO DE PROBLEMAS Introducción El Análisis del problema es un paso fundamental en la correcta resolución de una situación presentada, la cual viene determinada, en gran medida, por el planteamiento inicial. Un planteamiento correcto evita perder tiempo en la implementación de algoritmos. En este paso debemos hacer tres preguntas: (a) ¿Qué entradas se nos ofrece?, (b) ¿Qué salida debemos generar?, (c) ¿Cuál es el método que debemos usar para llegar hacia la solución deseada?, es así como el diseño del algoritmo ayuda a darle la solución al problema. Parte del reto de la programación, es que cada programador tiene estrategias diferentes para proyectar las ciertas preguntas, sin importar el enfoque de desarrollo del programa que utilice. Pero ¿Cómo dan solución a estos problemas? ¿Qué método utilizan?, ¿En qué te ayudaría conocer? ¿Cómo resolver problemas mediante una metodología? Para resolver estas interrogantes necesariamente tienes que seguir un proceso al cual se conoce como metodología de solución de problemas. La metodología de solución de problemas es un conjunto o sistema de métodos, principios y reglas que permiten enfrentar de manera sistemática el desarrollo de una solución a un problema. Esta metodología se estructura como una secuencia de pasos que parten de la definición del problema y culminan con una solución del mismo. 1.1. IDENTIFICACIÓN DEL PROBLEMA Es la primera fase de la metodología de solución de problemas. Esta etapa se centra en la elaboración del texto que nos permitirá saber qué es lo que se pretende solucionar, y nos proporcionará información útil para hallar la solución.
  • 4. Esta fase está dada por el enunciado del problema, el cual debe ser claro y completo. Es importante que conozcamos exactamente qué se desea, ya que mientras no identifiquemos lo que se solucionará no tiene caso pasar a la siguiente fase. Esto se logrará mediante una buena lectura del enunciado y el análisis del mismo para poder identificar cada uno de los elementos (condiciones) que afectan y/o crean el problema. Veamos un ejemplo sencillo, en donde apliquemos la primera fase de la metodología de solución de problemas. Ejemplo: Nuestro personaje está sentado en su casa viendo la televisión. Afuera está lloviendo y como su techo está en mal estado el agua se introduce a la habitación. ¿Cuál es su problema?  El problema es que la televisión no se ve bien.  El problema es que el sillón no es cómodo.  El problema es que las gotas hacen ruido.  El problema es que se está metiendo el agua a su casa. Un análisis profundo de la situación (y un poco de sentido común) podemos determinar que en realidad el problema consiste en que se está metiendo el agua a la casa: nuestro personaje tiene una gotera, pero no quiera la gotera. 1.2. IDENTIFICACIÓN DE LOS DATOS NECESARIOS (ENTRADAS) Luego de determinar el problema, se debe reconocer los datos que nos hacen falta y con base en éstos se puede determinar la solución. Debemos dejar claro cuál es la información útil que se nos proporciona en el enunciado del problema y que nos ayudará en la solución del mismo. Aquí también se tiene disponible toda la información (teoría) que se conoce en relación al problema. En el caso de nuestro ejemplo sería:  Datos de entrada de entrada: Se está metiendo el agua a la casa del personaje  Datos adicionales: Reemplazar o reparar el techo cuando presentan filtración
  • 5. 1.3. IDENTIFICACIÓN DE LOS DATOS A OBTENER (SALIDAS) Se consideran los datos o resultados que se espera obtener. (Información a mostrar). Siguiendo con nuestro ejemplo, los datos de salida: El techo del personaje está en mal estado 1.4. DESCRIPCIÓN DE LAS OPERACIONES A UTILIZAR (CÁLCULOS) Dentro de este método de análisis y planteamiento del problema, se llega a obtener una estructura clara y eficaz por medio de una serie de pasos para alcanzar la solución del problema, esto también cuenta con operaciones dentro de los algoritmos que podemos llamar cálculos. Estos cálculos están íntimamente conectados con el tipo de dato de entrada que se espera recibir y la salida que nos interesa obtener, todo previamente planificado según el caso, se formulan operaciones precisas ya sean lógicas o aritméticas representadas como instrucciones a seguir. 1.5. DESCRIPCIÓN DE LOS PASOS PARA LLEGAR A LA SOLUCIÓN (PROCESOS) Se define como proceso una serie de expresiones matemáticas y lógicas que nos permitirán obtener los datos de salida. En algunas ocasiones un mismo problema podrá ser resuelto de varias formas, por lo tanto tendrá varios procesos de solución. Resumen Entendido el problema, para resolverlo es preciso analizar los datos o resultados que se esperan, los datos de entrada que nos suministran, el proceso al que se requiere someter esos datos a fin de obtener los resultados esperados, áreas de trabajo, fórmulas y otros recursos necesarios. Se puede establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para
  • 6. llevar a cabo la solución del mismo. Para la solución de problemas, algunas preguntas son como: 1. ¿Con qué datos cuento? Es importante conocer si los datos que se tienen son suficientes para dar solución al problema. 2. ¿Qué hago con esos datos? Una vez que tenemos todos los datos que necesitamos, debemos determinar qué hacer con ellos, es decir, qué fórmulas, cálculos, qué proceso o transformación deben seguir los datos para convertirse en resultados. 3. ¿Qué se espera obtener? ¿Qué información deseamos obtener con el proceso de datos y de qué forma presentarla? En caso de que la información obtenida no sea la deseada, replantear nuevamente un análisis en los puntos anteriores. 2. 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.
  • 7. El Principito. (Antoine de Saint – Exupéry) 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. 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
  • 8. 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. 2.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
  • 9. 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. 2.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. 2.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
  • 10. 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.
  • 11. 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
  • 12. 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.
  • 13. 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
  • 14. 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. 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. 2.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
  • 15. 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
  • 16. Es el proceso de almacenar en un mismo comportamiento, los elementos de una abstracción y su implementación. 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 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
  • 17. 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
  • 18. Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados. 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 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
  • 19. 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 programacompleto. 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.
  • 20. 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. 3. 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.) 3.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.
  • 21. 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
  • 22. 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 …” 3.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. 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
  • 23. 3.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 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.
  • 24. 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
  • 25. 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.
  • 26. 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 manejoN1 inicio Numero1 ← Valor // A Numero1 se le asigna lo que contiene Valor fin
  • 27. entero Calculadora ObtenerNumero1( ) inicio retornar Numero1 // Devuelve el contenido almacenado en el atributoNumero1 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.
  • 28. 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 la Calculadora 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
  • 29. Evaluación del Aprendizaje Lee con atención los siguientes planteamientos y coloca dentro del paréntesis de la izquierda la letra de la opción que contesta correctamente cada uno de ellos. 1. ( ) Al conjunto de cuestiones que se plantean para ser resueltas se le llama... a) Situación b) Restricción c) Información d) Problema 2. ( ) Para comprender un problema se deben extraer... a) Datos b) Criterios c) Dominios d) Clasificaciones 3. ( ) Al conjunto de valores que un dato puede tener se le conoce como... a) Métodos b) Criterios c) Dominios d) Clasificaciones 4. ( ) A un objeto simbólico que se utiliza para representar datos se le conoce como... a) Objeto b) Identificador c) Componente d) Término 5. ( ) Identificador que guarda el valor de un dato que no cambia, se le llama... a) Constante b) Objeto c) Variable d) Diferencia
  • 30. 6. Anota dentro del paréntesis una V si es verdadero o una F si es falso el enunciado sobre las características del algoritmo. ( ) Es un conjunto ordenado e infinito de instrucciones. ( ) La secuencia son pasos que se realizan en un orden estricto. ( ) La utilización de variables o constantes no son necesarias. ( ) Describe la transformación de cada entrada en la salida. ( ) Debe tener un solo punto de inicio y varios de finalización. 7. Menciona en orden las tres partes importantes para la creación de un algoritmo 1: 2: 3: Lee con atención los planteamientos y elabora un algoritmo para cada problema. 8. Calcula la superficie de un triángulo dada su base, considerando que la superficie se calcula mediante la fórmula: superficie = base * altura / 2 9. Dado como dato la calificación de un alumno, escribe “APROBADO” si su calificación es mayor o igual a 12 y “REPROBADO” si su calificación es de 0 a 11. 10. Calcula la velocidad de un auto si se considera la distancia recorrida y el tiempo que tarda, mediante la fórmula: V = d / t Donde: v = velocidad d = distancia t = tiempo 11. Dada cinco calificaciones de un alumno, obtén y muestra su promedio.
  • 31. Lee con atención los siguientes planteamientos y coloca dentro del paréntesis de la izquierda la letra de la opción que contesta correctamente cada uno de ellos. 12. ( ) A la forma gráfica de representar un problema por medio de símbolos se le llama... a)algoritmo. b)pseudocódigo. c)diagrama de flujo. d)top down. 13. ( ) Al elaborar un diagrama de flujo se debe construir... a)de derecha a izquierda. b)abajo hacia arriba. c)horizontalmente. d)arriba hacia abajo. 14. ( ) El algoritmo es un conjunto ordenado que representa una serie de pasos para resolver un problema cuyas partes son: a)Introducción - Proceso - Conclusión. b)Dato - Desarrollo - Resultado. c)Entrada - Proceso - Salida. d)Problema - Hipótesis - Respuesta. 15. ( ) Dado como dato el sueldo de un trabajador, aplica el aumento del 15% si su sueldo supera los Bs. 1000,00 a) Obtener valor de sueldo. Si el sueldo es mayor o igual a Bs1000,00 incrementarlo en un 15%. b) Obtener valor de sueldo. Si el sueldo es menor o igual a Bs1000,00 incrementarlo en un 15%.
  • 32. a)Variable b)Pseudocódigo c) Algoritmo d)Análisis e)Proceso c) Obtener valor de sueldo. Si el sueldo es menor a Bs1000,00 incrementarlo en un 15%. d) Obtener valor de sueldo. Si el sueldo es mayor a Bs1000,00 incrementarlo en un 15%. 16. Relaciona la columna de las características de algoritmo con la columna de conceptos y escribe dentro del paréntesis la letra que corresponda. ( ) Conjunto ordenado y finito de pasos que dan como resultado la solución de un problema. ( ) ( ) Falso lenguaje de programación que imita de manera abreviada las instrucciones. ( ) Es la acción de diferenciar en un problema la entrada, proceso y salida de datos. ( ) Nombre genérico asignado a un identificador cuyo valor cambia constantemente
  • 33. Clave de Respuestas Pregunta Respuesta 1 d 2 a 3 c 4 b 5 a 6 F V F V F 7 Entrada Proceso Salida 8 Inicio Obtener valor de base Obtener valor de altura Calcular base * altura / 2 Escribir valor de superficie Fin 9 Inicio Obtener calificación. Si calificación >= 12 escribir “APROBADO”. Si calificación <= 12 escribir "REPROBADO” Fin 10 Inicio Obtener distancia Obtener tiempo Calcular d / t Escribir valor de velocidad. Fin 11 Inicio Obtener calificación 1 Obtener calificación 2 Obtener calificación 3 Obtener calificación 4 Obtener calificación 5 Sumar calificaciones 1, 2, 3, 4 y 5
  • 34. Calcular el promedio dividiendo el resultado anterior entre 5 Escribir el promedio Fin 12 c 13 d 14 c 15 d 16 c b d a Si tuviste problemas para acertar las respuestas, te sugiero que leas y repases el material de estudio