Sie sind auf Seite 1von 34

UNIDAD 4

Metodologa para el Anlisis y Planteamiento del Problema


Objetivos de Aprendizaje
Al finalizar esta unidad, usted ser capaz de:
1. Resolver problemas lgicosmatemticos a travs de la Metodologa para el
Anlisis y Planteamientos de problemas
2. Comprender la Metodologa Orientada a Objeto para la construccin de
modelos computacionales

Contenidos
1. Metodologa para el Anlisis y Planteamientos de problemas:
1.1. Identificacin del Problema.
1.2. Identificacin de los datos necesarios (entradas).
1.3. Identificacin de los datos a obtener (salidas).
1.4. Descripcin de las operaciones a utilizar (clculos).
1.5. Descripcin de los pasos para llegar a la solucin (procesos).
2. Fundamentos generales de la Orientacin a Objetos como paradigma de
programacin:
2.1. Definicin y Ventajas.
2.2. Caractersticas.
2.3. Elementos: Clase, Objeto, Atributo, Mtodo.
2.4. Propiedades: Abstraccin, Encapsulamiento, Modularidad
3. Metodologa

Orientada

Objeto

para

la

construccin

computacionales:
3.1. Anlisis: Identificacin de clase, atributos y mtodos.

de

modelos

3.2. Diseo: Representacin grfica de las clases.


3.3. Implementacin: Construccin de modelos computacionales empleando
algoritmos.
Fuentes de Informacin
Textos:
Coto, E. (2002). Lenguaje Pseudoformal Para la Construccin de Algoritmos.
Universidad Central de Venezuela. Facultad de Ciencias. Escuela de
Computacin.
Disponible:http://lcg.ciens.ucv.ve/~ernesto/nds/CotoND200208.pdf
Izquierdo, L. Introduccin a la Programacin Orientada a Objetos. . [Documento en
Lnea]. Disponible: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
Joyanes, L. (2003). Fundamentos de Programacin. Algoritmos, estructuras de
datos y objetos. Mc Graw Hill. 3da Edicin.
Joyanes, L. (2003). PROGRAMACIN EN C++. Algoritmos, estructuras de datos
y objetos. Luis Mc Graw Hill. 2da Edicin.
Oviedo, E. Lgica de Programacin.
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 solucin a
un problema determinado deben tener coherencia y concatenacin.
Con el propsito 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
caractersticas de los algoritmos, y la unidad 3 sobre los datos y las entidades
primitivas, adems de evaluar una expresin aritmtica, ejercicios de desarrollo

de lgica. Se le recomienda hacer una revisin profunda, ya que de esto depende


la comprensin de esta unidad.

1. METODOLOGIA PARA EL ANALISIS Y PLANTEAMINETO DE PROBLEMAS

Introduccin
El Anlisis del problema es un paso fundamental en la correcta resolucin de
una situacin presentada, la cual viene determinada, en gran medida, por el
planteamiento inicial. Un planteamiento correcto evita perder tiempo en la
implementacin de algoritmos. En este paso debemos hacer tres preguntas:
(a) Qu entradas se nos ofrece?, (b) Qu salida debemos generar?, (c) Cul
es el mtodo que debemos usar para llegar hacia la solucin deseada?, es as
como el diseo del algoritmo ayuda a darle la solucin al problema.
Parte del reto de la programacin, es que cada programador tiene
estrategias diferentes para proyectar las ciertas preguntas, sin importar el enfoque
de desarrollo del programa que utilice. Pero Cmo dan solucin a estos
problemas? Qu mtodo utilizan?, En qu te ayudara conocer? Cmo
resolver problemas mediante una metodologa? Para resolver estas interrogantes
necesariamente tienes que seguir un proceso al cual se conoce como metodologa
de solucin de problemas.
La metodologa de solucin de problemas es un conjunto o sistema de
mtodos, principios y reglas que permiten enfrentar de manera sistemtica el
desarrollo de una solucin a un problema.
Esta metodologa se estructura como una secuencia de pasos que parten de la
definicin del problema y culminan con una solucin del mismo.
1.1. IDENTIFICACIN DEL PROBLEMA
Es la primera fase de la metodologa de solucin de problemas. Esta etapa
se centra en la elaboracin del texto que nos permitir saber qu es lo que se
pretende solucionar, y nos proporcionar informacin til para hallar la solucin.

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
anlisis 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
metodologa de solucin de problemas. Ejemplo: Nuestro personaje est sentado
en su casa viendo la televisin. Afuera est lloviendo y como su techo est en mal
estado el agua se introduce a la habitacin.

Cul es su problema?

El problema es que la televisin no se ve bien.

El problema es que el silln no es cmodo.

El problema es que las gotas hacen ruido.

El problema es que se est metiendo el agua a su casa.


Un anlisis profundo de la situacin (y un poco de sentido comn) 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. IDENTIFICACIN 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 solucin. Debemos dejar
claro cul es la informacin til que se nos proporciona en el enunciado del
problema y que nos ayudar en la solucin del mismo. Aqu tambin se tiene
disponible toda la informacin (teora) que se conoce en relacin al problema. En
el caso de nuestro ejemplo sera:
Datos de entrada de entrada: Se est metiendo el agua a la casa del personaje
Datos adicionales: Reemplazar o reparar el techo cuando presentan filtracin

1.3. IDENTIFICACIN DE LOS DATOS A OBTENER (SALIDAS)


Se consideran los datos o resultados que se espera obtener. (Informacin a
mostrar). Siguiendo con nuestro ejemplo,

los datos de salida: El techo del

personaje est en mal estado

1.4. DESCRIPCIN DE LAS OPERACIONES A UTILIZAR (CLCULOS)


Dentro de este mtodo de anlisis y planteamiento del problema, se llega a
obtener una estructura clara y eficaz por medio de una serie de pasos para
alcanzar la solucin del problema, esto tambin cuenta con operaciones dentro de
los algoritmos que podemos llamar clculos. Estos clculos estn ntimamente
conectados con el tipo de dato de entrada que se espera recibir y la salida que
nos interesa obtener, todo previamente planificado segn el caso, se formulan
operaciones precisas ya sean lgicas o aritmticas representadas como
instrucciones a seguir.
1.5. DESCRIPCIN DE LOS PASOS PARA LLEGAR A LA SOLUCIN
(PROCESOS)
Se define como proceso una serie de expresiones matemticas y lgicas
que nos permitirn obtener los datos de salida. En algunas ocasiones un mismo
problema podr ser resuelto de varias formas, por lo tanto tendr varios procesos
de solucin.

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, frmulas 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 solucin del mismo. Para la solucin de problemas, algunas


preguntas son como:
1. Con qu datos cuento? Es importante conocer si los datos que se tienen son
suficientes para dar solucin 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 frmulas,
clculos, qu proceso o transformacin deben seguir los datos para convertirse en
resultados.
3. Qu se espera obtener? Qu informacin deseamos obtener con el proceso
de datos y de qu forma presentarla? En caso de que la informacin obtenida no
sea la deseada, replantear nuevamente un anlisis en los puntos anteriores.
2. FUNDAMENTOS GENERALES DE LA ORIENTACIN A OBJETOS COMO
PARADIGMA DE PROGRAMACIN

Introduccin
La evolucin de la programacin puede sintetizarse en tres modelos o
paradigmas: (a) La programacin mediante procedimientos, (b) La programacin
estructurada, (c) La programacin orientada a objetos.
Un paradigma es una forma establecida de pensar acerca de cmo hacer
algo. Es un conjunto de teoras, estndares y mtodos que juntos representan un
medio de organizacin del conocimiento: es decir, un medio de visualizar el
mundo.
La abstraccin es la capacidad mental superior que tiene todo ser humano
para poder deducir la esencia de un concepto o situacin determinada. Definir
una abstraccin significa describir una entidad del mundo real, no importa lo
compleja que pueda ser.

Le mostr mi obra de arte a las personas


mayores y les pregunt si mi dibujo las
asustaba.
Me respondieron: Por qu tendramos
que tenerle miedo a un sombrero?

Mi dibujo N 1
Mi dibujo no representaba un sombrero.
Representaba una serpiente boa que
digera un elefante. Entonces dibuj el
interior de la serpiente boa para que las
personas mayores pudieran entender.

Mi dibujo N 2

El Principito. (Antoine de Saint Exupry)

La relacin entre abstraccin y lenguaje de programacin es doble: por un


lado se utiliza el lenguaje de programacin para escribir un programa que es una
abstraccin del mundo real; por otro lado se utiliza el lenguaje de programacin
para describir de un modo abstracto el comportamiento fsico de la computadora
que se est utilizando.

Programacin Orientada a procedimientos: El mundo en que vivimos se halla


plagado de objetos: aviones, trenes, automviles, telfonos, libros, computadoras,
etctera. Sin embargo, en este modelo las tcnicas de programacin utilizadas no
reflejaban esto. Lo procedural [procedimientos] fue el paradigma principal de la
programacin, el cual define un programa como un algoritmo escrito en algn
lenguaje de programacin.

Programacin Estructurada: Las actividades de investigacin en la dcada de


los sesenta dieron como resultado la evolucin de la programacin mediante
procedimientos a la programacin estructurada, que es un mtodo disciplinado
para escribir programas que fuesen ms claros, fciles de probar y corregir y ms
fciles de modificar que los no estructurados.

Estas mejoras de la programacin mediante procedimientos condujeron a


nuevos conceptos como son: Estructuras de control, funciones y mdulos. Las
tres formas de estructuras de control son: Secuencia, Seleccin y Repeticin. Las
funciones permiten realizar tareas que se ejecutan repetidamente, o son
ejecutadas con ligeras variaciones, y que se renen en una entidad y se
reutilizan, en lugar de duplicar el cdigo varias veces. Los mdulos se refiere al
proceso de dividir un objeto en piezas ms pequeas, o mdulos, con el fin de
lograr ms fcilmente el objetivo (divide y vencers).

Programacin Orientada a Objeto: (POO u OOP segn sus siglas en ingls) es


un paradigma de programacin que usa los objetos y sus interacciones para
disear aplicaciones y programas de computadora. Facilita la creacin de software
de calidad ya que potencia el mantenimiento, la extensin y la reutilizacin del
software generado bajo este paradigma.
2.1. DEFINICIN Y VENTAJAS
La programacin orientada a objetos es una filosofa, un modelo de
programacin, con su teora y su metodologa, es otra forma de descomponer
problemas, es la descomposicin en objetos; vamos a fijarnos no en lo que hay
que hacer en el problema, sino en cul es el escenario real del mismo, y vamos a
intentar simular ese escenario en nuestro programa.
La Programacin Orientada a Objetos (POO) es una forma especial de
programar, ms cercana a como expresaramos 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
resolucin del problema se realiza en trminos de objetos.
Las ventajas ms importantes de la programacin orientada a objetos:
Reusabilidad: Cuando hemos diseado 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 ms sencillos de leer y comprender, pues nos permiten

ocultar detalles de implementacin dejando visibles slo aquellos detalles ms


relevantes.
Modificabilidad: La facilidad de aadir, suprimir o modificar nuevos objetos nos
permite hacer modificaciones de una forma muy sencilla.
Fiabilidad: Al dividir el problema en partes ms pequeas podemos probarlas
de manera independiente y aislar mucho ms fcilmente los posibles errores que
puedan surgir.
2.2. CARACTERSTICAS
La POO se basa en la idea natural de la existencia de un mundo lleno de
Objetos, de
objetos.

modo que la resolucin del problema se realiza en trminos de

Estos

objetos

poseen

caractersticas

(atributos)

tiene

un

comportamiento (mtodos).
En el mbito de la programacin, un programa

orientado a objetos est

constituido por un conjunto de objetos interactuando conjuntamente a travs del


paso de mensajes, los cuales permiten hacer la entrada de datos, los clculos
necesarios para resolver el problema y dar la salida de datos, convertidos en la
informacin solicitada.

2.3. ELEMENTOS
La programacin 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
telfono celular, un rbol, un perro o un automvil.
Los objetos son entidades provistas de un conjunto de propiedades,
atributos o caractersticas especficas o datos, tales como tamao, color, forma,
textura y tambin tienen ciertos comportamientos, funcionalidad o mtodos que
los hacen diferentes a otros objetos. Por ejemplo: los automviles tienen

caractersticas o atributos (marca, modelo, ao, 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 algn
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 algn comportamiento bien definido, lo que el objeto
puede hacer, los mtodos 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 ms 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
comn y un comportamiento comn, En otras palabras, una clase representa a un
conjunto de objetos que tienen en comn las mismas caractersticas (atributos) y
el mismo comportamiento (mtodos).

En el mundo real existen objetos del mismo tipo, por ejemplo tu cuenta de
ahorro en un banco, es solo una ms de todas las cuentas de ahorro del banco.
Todas las cuentas de ahorro tienen los atributos: nmero, titular, fecha apertura,
saldo y algunos mtodos 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 ms objetos del mismo tipo, es decir, define las variables y los mtodos 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

caractersticas 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 telfono celular
es slo uno de los miles que hay en el mundo. Si hablamos
en trminos de la programacin orientada a objetos, podemos
decir que nuestro objeto celular es una instancia de una clase
conocida como "celular". Los celulares tienen caractersticas
(marca, modelo, sistema operativo, pantalla, teclado) y
comportamientos (hacer y recibir llamadas, enviar mensajes
multimedia, transmisin de datos).
Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de
que los celulares comparten esas caractersticas 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 caractersticas.

EJEMPLO 2
Definamos una clase para una cuenta bancaria. Una cuenta bancaria consta
de atributos: tipo, titular y saldo. Adems permite hacer las siguientes operaciones
o mtodos: Depositar y Extraer. Veamos cmo quedara

Plantilla de la clase: Cuenta Bancaria

MTODO
Un mtodo es una funcin o subrutina asociada a un objeto o a una clase de
objetos cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde
el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo
puede producir un cambio en las propiedades del objeto, o la generacin de un
"evento" con un nuevo mensaje para otro objeto del Sistema.
Un evento es un suceso en el sistema (tal como una interaccin del usuario
con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir
como evento, a la reaccin que puede desencadenar un objeto, es decir la accin
que genera.
La interaccin entre objetos se produce mediante mensajes. Un mensaje es
una peticin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos
con ciertos parmetros 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 mtodo que el objeto receptor
del mensaje ejecutar; cualquier informacin adicional requerida por el objeto

receptor para ejecutar el mtodo solicitado (parmetros).

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 caractersticas predeterminadas, y cuyo valor puede ser alterado
por la ejecucin de algn mtodo.
2.4. PROPIEDADES
ABSTRACCIN
Denota las caractersticas esenciales de
un objeto que lo distinguen de todos los
dems tipos de objetos, y proporciona as
fronteras

conceptuales

ntidamente

definidas respecto a la perspectiva del


observador.

Es la tcnica que permite reconocer los elementos esenciales para la


solucin

de un problema dejando al lado los

detalles irrelevantes. La

abstraccin consiste en captar las caractersticas 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 cmo se implementan estas caractersticas.
Los procesos, las funciones o los mtodos pueden tambin ser abstrados.
Una abstraccin 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 ms bien, en detalles verdaderamente


esenciales. El reconocer similitudes entre diferentes objetos tambin permite
simplificar

el

dominio

del

problema,

pues

hace

posible

enunciar

comportamientos o caractersticas generales que los describen, sin importar


detalles que podran no ser importantes.
Una abstraccin debe tener lmites conceptuales bien definidos que
permitan la independencia funcional entre unas y otras. As mismo, esos lmites
debern esclarecer la forma en que la abstraccin ser utilizada para resolver y
modelar el problema en cuestin. Es decir, al abstraer un objeto, debe quedar
claro cul es su funcin y su relacin con los dems objetos.
Una abstraccin puede describir algo que no necesariamente existe en el
dominio real de la aplicacin pero que su existencia resultara tan til para el
analista que termina siendo representada e incorporada en la solucin
computacional del problema.
Nota: Abstraccin se asocia con Clase, e intenta definir en qu forma se ve.
Ejemplos de abstraccin
1. Aprender a manejar un automvil implica saber si este es de transmisin
automtica

o estndar, sin embargo, NO necesitamos conocer como est

construida la transmisin automtica o la estndar. 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
informacin 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 elctricos 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, races, clorofila; pero muy
probablemente NO se conozca (ni interese) como el rbol produce sus hojas, la
clorofila y oxgeno.
4. Al servir un caf, requerimos un recipiente resistente al calor, fcil de sujetar

sin riesgo de quemaduras, que asiente de manera segura para que no se voltee.
Sin embargo, es casi seguro que desconozcamos cual es el material y el proceso
empleado para fabricar dicho recipiente.
5. Cuando estamos ante una araa, probablemente nos interese identificar si es
venenosa, empero, NO necesitaremos saber cmo 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 jamn de pavo o
pierna, el queso amarillo o blanco. Sin embargo, no nos ocuparemos de los
detalles de cmo se produce cada uno de estos productos.
ENCAPSULAMIENTO

Es el proceso de almacenar en un
mismo

comportamiento,

los

elementos de una abstraccin y su


implementacin.

Es la propiedad que permite agrupar junto en una nica unidad de


programacin, las caractersticas (atributos) y comportamiento (mtodos) de un
objeto. En POO, las clases son la unidad de programacin que encapsulan
atributos y mtodos.
Significa

reunir

todos los elementos que

pueden

considerarse

pertenecientes a una misma entidad, al mismo nivel de abstraccin. 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 sern 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 ms ni menos. Si
se conoce ms, entonces aumenta la cantidad de informacin que se maneja lo
que incrementa la complejidad, adems de que hace ms vulnerable el objeto
que se utiliza, y es ms difcil garantizar

su integridad y su correcto

funcionamiento. Por otro lado, si se esconden aspectos fundamentales, se estara


perdiendo el sentido de la abstraccin.
Encapsular consiste en ocultar los datos y detalles de los mtodos de los objetos
y permitir su acceso a otros objetos slo a travs de los mtodos mediante el uso
de mensajes.
Nota: Encapsulamiento se asocia con Objeto, e interesa definir qu deben
ver los dems.
Ejemplos de encapsulamiento
1. Al manejar un automvil estndar si se presiona el clotch sin cambiar la
palanca de velocidades de posicin, 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 travs de teclado registrar la pulsacin
de la tecla A independientemente de si el teclado es un componente separado
(PC de escritorio), integrado (Laptop) o tctil (a travs de la pantalla).
3. El proceso de produccin 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 OCULTACIN DE DATOS


Cada objeto est aislado del exterior, y cada tipo de objeto expone una
interfaz a otros objetos que especifica cmo pueden interactuar con los objetos
de la clase. El aislamiento protege a las propiedades de un objeto contra su

modificacin por quien no tenga derecho a acceder a ellas; solamente los propios
mtodos 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 mtodos internos del objeto.


MODULARIDAD

Es la propiedad que tiene un


sistema

que

ha

sido

descompuesto en un conjunto de
mdulos cohesivos y dbilmente
acoplados.

Un programa crece en forma exponencial con respecto a su tamao. Si se


tiene un programa grande, su complejidad ser mucho mayor que la suma de la
complejidad de varios programas ms pequeos que cumplan el mismo objetivo.
Si se pudiera tomar un programa grande y dividirlo en subprogramas segn
ciertos criterios, la complejidad resultante sera mucho menor.
Se espera que cada mdulo pueda ser desarrollado con cierta
independencia de los dems, 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 mdulos son asignados a las personas que componen el
equipo de trabajo y los desarrollan en forma independiente y paralela. Cada

mdulo debe estar bien definido, y su acoplamiento con los dems debera ser el
mnimo posible. Entre menos dependencias existan entre ellos, ms mantenible
ser la aplicacin final.
Nota: Modularidad se entiende como agrupacin de abstracciones u objetos.

Ejemplos de modularidad
1. En un automvil estndar reubicar la palanca de velocidades NO debe afectar
el comportamiento de la transmisin.
2. Adaptar un teclado para idioma griego NO debe requerir la construccin de
una computadora nueva.
3. Permitir que un sistema de nmina de empleados de confianza y operarios,
incorpore la funcionalidad de prstamos, NO debe requerir la reescritura del
programa completo.

POLIMORFISMO
Es una propiedad que permite que diversos objetos respondan de modo
diferente al mismo mensaje. No sera tratado en este curso.

HERENCIA
.

Es la propiedad que permite definir nuevas clases a partir de una clase base

ya existente. Las nuevas clases creadas se denominan clases derivadas (clases


hijos o subclases) y heredan los atributos y mtodos de la clase base (clase
padre o superclase), adems, estas clases derivadas pueden tener otros atributos
y mtodos propios, adicionales. No sera tratado en este curso.
Resumen
La clase es un modelo o prototipo que define las variables y mtodos
comunes a todos los objetos de cierta clase. Tambin se puede decir que una
clase es una plantilla genrica para un conjunto de objetos de similares
caractersticas. Una instancia es un objeto de una clase en particular.

Para entender cmo funciona el paradigma de la programacin orientada a


objetos es necesario ver al programa como una coleccin de objetos que
interactan entre s envindose mensajes y cambiando su estado durante la
ejecucin.
Resolver un problema bajo el paradigma de la programacin orientada a
objetos implica determinar y caracterizar los diferentes objetos que intervienen en
el problema, definir sus propiedades y mtodos y ponerlos a interactuar.
3. METODOLOGA ORIENTADA A OBJETO PARA LA CONSTRUCCIN DE
MODELOS COMPUTACIONALES
Introduccin
El mundo est lleno de objetos, animados e inanimados, concretos y
abstractos, rboles y tablas, automviles y casas. La Orientacin a Objeto busca
modelar esos objetos del mundo real e implementarlos por medio de los
programas informticos. Estos programas representan un serie de interacciones
entre un conjunto de objetos. La Metodologa Orientada a Objeto comprende tres
fases:

Anlisis,

Diseo,

Desarrollo

Implementacin.

(Joyanes,

Luis.

Programacin Orientada a Objeto. 1996.)

3.1. FASE ANLISIS ORIENTADO A OBJETO (AOO)


ANLISIS: Identificacin de clase, atributos y mtodos. Consiste en separar las
partes de un problema con la finalidad de estudiar su naturaleza, su funcin y/o su
significado. Pretende responder a la pregunta Qu hace?, encontrar los tipos de
objetos del mundo real que estn presentes en el dominio del problema,
determinando sus caractersticas (atributos), su comportamiento (mtodos) e
interacciones (con otras clases de objetos). Esta fase se compone de 4 pasos o
etapas: Subrayado de nombres y verbos; Asignacin de Responsabilidades
determinando atributos y mtodos; Definir la lgica de programacin de los
mtodos; Caracterizar las relaciones entre clases y objetos.

1. Subrayado de nombres y verbos: La tcnica utilizada en esta fase es: (a) leer
la definicin o descripcin 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 Mtodos.

Criterios para clasificar objetos:


Cosas Tangibles: mesa, carro, telfono, avin.
Interacciones: matrimonio, ventas, compras.
Roles: gerente, empleado, propietario, cliente.
Incidentes : viaje, transaccin, llegada, accidente, vuelo
Organizaciones: empresas, departamento, divisiones, direcciones, reas
Lugares geogrficos: pas, ciudad, muelle de carga, sala de embarque
Especificaciones: descripciones, estndares
2. Asignacin de Responsabilidades: Este paso comienza con la asignacin de
responsabilidades a cada clase. Las responsabilidades se dividen en 2 grupos: La
informacin que debe tener (atributos) y Las operaciones que debe realizar
(mtodos).

3. Descripcin de los mtodos de clculo: En esta parte se determina el tipo de


estructura de control que se utilizar en la lgica de programacin y se describen
los mtodos de clculo. Las estructuras de control que utilizaremos en este curso
sern de tres tipos: Secuenciales, Selectivas y Repetitivas.

4. Caracterizacin de Relaciones: En este paso se analizan las relaciones entre


clases y el modo en que stas se convierten en una implementacin. Para los
efectos de este curso analizaremos nicamente las relaciones de asociacin de
clases.
Una Asociacin es una relacin, en las que un objeto realiza llamadas a los
servicios (mtodos) de otro, interactuando de esta forma con l. Establece una

cardinalidad o multiplicidad. Una asociacin define una relacin de pertenencia. La


direccin de la asociacin puede ser de 2 tipos: Unidireccional o Bidireccional.
La cardinalidad expresa el nmero 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 asociacin es necesario dar respuesta a


frases como: pertenece a ; es miembro de ; est asociado con
; estudia en
3.2. FASE DISEO ORIENTADO A OBJETO (DOO)
DISEO: Representacin grfica de las clases. Es el proceso de configuracin
mental previo, en la bsqueda de la solucin a un problema. Pretende responder a
la pregunta Cmo lo hace?
Se debe establecer el tipo de dato a que corresponden los atributos de las
clases, si los mtodos deben retornar un valor o si necesitan de datos adicionales
(parmetros) para cumplir con su responsabilidad. Recordar que los tipos de datos
bsicos son: entero, real, alfanumrico y lgico. Tambin se pueden utilizar los
datos definidos por el usuario, como son las clases.
Una vez determinada esta informacin se vaca en una plantilla de diseo de
clase.

NombreClase
Tipo Atributo_1
Tipo Atributo_2
*
Tipo Atributo_N

Plantillas de clases

Tipo Mtodo_1(parmetros )
Tipo Mtodo_2(parmetros )
*
Tipo Mtdo_N(parmetros )

3.3 FASE IMPLEMENTACIN ORIENTADA A OBJETO (IOO)


IMPLEMENTACIN: Construccin de modelos computacionales empleando
algoritmos. Es el proceso de transcribir un algoritmo utilizando un lenguaje de
programacin. Consiste en traducir el modelo construido en las fases de Anlisis y
Diseo en el programa que dar solucin al problema planteado. En nuestro caso,
para la implementacin de la solucin se utilizar el Pseudolenguaje.
EJERCICIOS DE ABSTRACCIN, Modelar Orientado a Objeto el siguiente
problema:
1. Dado un estudiante se desea saber cul es su nota definitiva, calculada en
base a la suma de sus tres notas parciales.
Solucin
a) Para ello debemos identificar la clase, los atributos y sus mtodos.
Clase

: Estudiante

Atributo(s)

: Nota1, Nota2, Nota3

Mtodo (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 nmero de Horas Trabajadas y la


Tarifa por Horas. Se pide calcular el sueldo del empleado.

Solucin
Clase

: Empleado

Atributo(s)

: Horas Trabajadas, Tarifa por Horas

Mtodo (s)

: Calcular el Sueldo ( )

Clase Empleados

EJERCICIO UTILIZANDO LA METODOLOGA OO, Realizar el siguiente ejercicio


aplicando la metodologa orientada a objeto: Una calculadora acepta 2 nmeros
enteros, calcular la suma.

FASE 1. ANLISIS ORIENTADO A OBJETO


Paso 1. Subrayar nombres y verbos.
Una calculadora acepta 2 nmeros enteros (numero1 y numero2), calcular la
suma (para nuestro caso: Sumar).
Paso 2. Asignar responsabilidades.
Quin ser un objeto: nmero, 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 mtodos se le pueden asignar a Nmero
Nmero 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()

-------- >

Mtodo de Calculadora.

AsignarNumero1

-------- >

Mtodo de Calculadora.

ObtenerNumero1

-------- >

Mtodo de Calculadora.

AsignarNumero2

-------- >

Mtodo de Calculadora.

ObtenerNumero2

-------- >

Mtodo de Calculadora.

Paso 3. Lgica de programacin y definicin de mtodos de clculo


Estructuras de Control: Secuencial para procesar los objetos, ya que nos dan la
informacin de una sola calculadora. Para el clculo tambin se utiliza una
estructura Secuencial.

Sumar: Mtodo de Calculadora que tiene como funcin calcular la suma de dos
nmeros enteros. La secuencia lgica 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. Caracterizacin de Relaciones


Como definimos una sola clase, no existen relaciones.

FASE2. DISEO ORIENTADO A OBJETO

Calculadora
entero Numero1
entero Numero2
AsignarNumero1(entero)
entero ObtenerNumero1()
AsignarNumero2(entero)
entero ObtenerNumero2()
entero Sumar()

FASE 3. IMPLEMENTACIN ORIENTADA A OBJETO


(Revisar la gua del Pseudolenguaje POO)
Definicin de clases
clase Calculadora
inicio
privado:
entero Numero1, Numero2
publico:
AsignarNumero1 (entero Num1)
entero ObtenerNumero1 ( )
AsignarNumero2 (entero Num2)
entero ObtenerNumero2 ( )
entero Sumar ( )
fin
Implementacin de Mtodos de clases
Calculadora AsignarNumero1 (entero Valor) // Yo slo manejo N1
inicio
Numero1 Valor
// A Numero1 se le asigna lo que contiene Valor
fin

entero Calculadora ObtenerNumero1( )


inicio
retornar Numero1

// Devuelve el contenido almacenado en el atributo Numero1

fin
Calculadora AsignarNumero2 (entero Valor)
inicio
Numero2 Valor
// A Numero2 se le asigna lo que contiene Valor
fin
entero Calculadora ObtenerNumero2 ( )
inicio
retornar Numero2 // Devuelve el contenido almacenado en el atributo Numero2
fin
entero Calculadora Sumar ( )
inicio
entero Resultado
// esta es una variable local del mtodo
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 mtodo (definido como entero en su
encabezado)
Implementacin de la Aplicacin
La aplicacin es la que interacta con el usuario, leyendo datos (desde el teclado)
y mostrando resultados (por la pantalla o impresora). Toda aplicacin tiene una
secuencia lgica, a saber:
1. Creacin de los objetos
2. Darle vida a los objetos, agregndole la informacin a sus atributos
3. Poner a Interactuar los objetos, entre ellos y con la aplicacin
4. Mostrar el resultado de la interaccin.

principal ( )
inicio
Calculadora Cal

// Creacin del objeto

IECalculadora (Cal)

// Interfaz de Entrada, con la que se le da vida a los objetos

entero Resultado
//Es una variable de la aplicacin
Resultado Cal.Sumar( ) //La aplicacin interactuando con el objeto
InterfazSalida (Resultado)
//Para mostrar el Resultado
fin

Implementacin de los mtodos de la Aplicacin


IECalculadora (Calculadora Cal) //Interfaz de Entrada para la Calculadora
inicio
entero Valor //Revisar el uso de N1, N2
escribir (Ingrese el 1er Nmero:)
//muestra el mensaje va pantalla
leer (Valor)

//Guarda lo tecleado en Valor

Cal.AsignarNumero1(Valor)

//Asignamos la informacin del atributo

escribir (Ingrese el 2do Nmero:)

//muestra el mensaje va pantalla

leer (Valor)

//Guarda lo tecleado en Valor

Cal.AsignarNumero2(Valor)
fin

//Asignamos la informacin del atributo

InterfazSalida (entero Resultado)


inicio
escribir (La Suma de los nmeros dados es: , Resultado) //muestra va pantalla
fin

Evaluacin del Aprendizaje


Lee con atencin los siguientes planteamientos y coloca dentro del parntesis de
la izquierda la letra de la opcin que contesta correctamente cada uno de ellos.
1.

Al conjunto de cuestiones que se plantean para ser resueltas se le llama...


a) Situacin
b) Restriccin
c) Informacin
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) Mtodos
b) Criterios
c) Dominios
d) Clasificaciones
A un objeto simblico que se utiliza para representar datos se le conoce

4.

como...
a) Objeto
b) Identificador
c) Componente
d) Trmino

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 parntesis una V si es verdadero o una F si es falso el


enunciado sobre las caractersticas del algoritmo.
( )

Es un conjunto ordenado e infinito de instrucciones.

( )

La secuencia son pasos que se realizan en un orden estricto.

( )

La utilizacin de variables o constantes no son necesarias.

( )

Describe la transformacin de cada entrada en la salida.

( )

Debe tener un solo punto de inicio y varios de finalizacin.

7. Menciona en orden las tres partes importantes para la creacin de un algoritmo


1:
2:
3:

Lee con atencin los planteamientos y elabora un algoritmo para cada problema.
8. Calcula la superficie de un tringulo dada su base, considerando que la
superficie se calcula mediante la frmula: superficie = base * altura / 2
9. Dado como dato la calificacin de un alumno, escribe APROBADO si su
calificacin es mayor o igual a 12 y REPROBADO si su calificacin 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 frmula: V = d / t
Donde:
v = velocidad
d = distancia
t = tiempo
11. Dada cinco calificaciones de un alumno, obtn y muestra su promedio.

Lee con atencin los siguientes planteamientos y coloca dentro del parntesis de
la izquierda la letra de la opcin que contesta correctamente cada uno de ellos.

12.

( )

A la forma grfica de representar un problema por medio de smbolos

se le llama...
a) algoritmo.
b) pseudocdigo.
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) Introduccin - Proceso - Conclusin.
b) Dato - Desarrollo - Resultado.
c) Entrada - Proceso - Salida.
d) Problema - Hiptesis - 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%.

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 caractersticas de algoritmo con la columna de
conceptos y escribe dentro del parntesis la letra que corresponda.

)
(

Conjunto ordenado y finito de pasos que dan


como resultado la solucin de un problema.

Falso lenguaje de programacin que imita de


) manera abreviada las instrucciones.

a) Variable

b) Pseudocdigo

c) Algoritmo
(

Es la accin de diferenciar en un problema la


entrada, proceso y salida de datos.

Nombre genrico asignado a un identificador cuyo


valor cambia constantemente

d) Anlisis

e) Proceso

Clave de Respuestas
Pregunta
1
2
3
4
5

10

11

Respuesta
d
a
c
b
a
F
V
F
V
F
Entrada
Proceso
Salida
Inicio
Obtener valor de base
Obtener valor de altura
Calcular base * altura / 2
Escribir valor de superficie
Fin
Inicio
Obtener calificacin.
Si calificacin >= 12 escribir
APROBADO.
Si calificacin <= 12
escribir "REPROBADO
Fin
Inicio
Obtener distancia
Obtener tiempo
Calcular d / t
Escribir
valor
de
velocidad.
Fin
Inicio
Obtener calificacin 1
Obtener calificacin 2
Obtener calificacin 3
Obtener calificacin 4
Obtener calificacin 5
Sumar calificaciones 1, 2,
3, 4 y 5

12
13
14
15

16

Calcular
el
promedio
dividiendo el resultado
anterior entre 5
Escribir el promedio
Fin
c
d
c
d
c
b
d
a

Si tuviste problemas para acertar las respuestas, te sugiero que leas y


repases el material de estudio

Das könnte Ihnen auch gefallen