You are on page 1of 24

UNIVERSIDAD DE GUADALAJARA

CENTRO UNIVERSITARIO DE LOS VALLES

CURSO:

PROGRAMACIN ORIENTADA A OBJETOS.

Gua/Antologa 2001

CONTENIDO

Introduccin Mdulo 1 Evolucin de las tcnicas de desarrollo de Software. Mdulo 2 El modelado de objetos, tcnicas y mtodos avanzados. Mdulo 3 Desarrollo de dos Aplicaciones con la metodologa orientada a objetos.

Presentacin

El presente curso de Programacin Orientada a Objetos , impartido para la carrera de informtica, se inscribe dentro del rea de formacin bsica particular obligatoria, con un valor de 11 crditos y con clave de materia CC200 impartida en el Centro Universitario de los Valles Ameca, Jalisco. Este curso tiene como prerrequisito el curso de introduccin a la programacin con clave de materia CC102 y el mismo es prerrequisito para el curso de Lenguajes de programacin comparados inscrito en el rea de formacin bsica particular obligatoria, con clave de materia CC208, as como tambin para el curso de Programacin de sistemas multimedia inscrito en el rea de formacin optativa abierta, con clave de materia CC401.

El presente material te ayudar a comprender las tcnicas y conceptos que envuelven el paradigma de la Programacin Orientada a Objetos y su utilizacin eficiente en la creacin de programas. En l, podrs realizar lecturas, resolver dudas, encontrar cada uno de los temas propuestos para el curso desarrollados, etc.. Lo cual implica que tienes en tus manos una herramienta ms, para salir adelante en el curso, ampliar tus conocimientos y sobre todo para auxiliarte ms all del aula.

APROVCHALO!!

Introduccin

Dentro del mundo de la programacin as como en otros campos, es de vital importancia contar con una diversidad de tcnicas formas para hacer las cosas, pero esto no termina aqu, es necesario conocerlas, entender sus fundamentos, ventajas y desventajas para poder elegir la mejor en el momento de solucionar un problema o tratar de alcanzar un objetivo dado, o en su caso, podra ser necesario combinar el conjunto de tcnicas que consideremos necesarias para alcanzar el objetivo de la mejor forma, a un bajo costo y en el menor tiempo posible, es decir, de una forma eficiente. En lo que concierne a los paradigmas de programacin, han surgido y evolucionado formas diferentes de programar los equipos de computo para alcanzar la solucin a los problemas, este avance se debe en gran parte a los esfuerzos que diferentes empresas han realizado para reducir la distancia en trminos gnoseolgicos1 que existe entre el hombre y maquina, es decir, incrementando los alcances de un conjunto de abstracciones en relacin a datos e instrucciones. El curso Programacin Orientada a Objetos se centra en el estudio de un conjunto de conceptos y tcnicas que surgen para proporcionar una forma natural e intuitiva de ver el proceso de programacin. La intencin del curso es proporcionar la informacin necesaria para que los participantes adquieran conciencia de la evolucin de los diferentes paradigmas de programacin, y para establecer un adecuado abordaje sobre la Programacin Orientada a Objetos, as como estimular y desarrollar la habilidad necesaria en los participantes para estructurar de la manera mas conveniente la concepcin que se tiene del problema a resolver con el conjunto de tcnicas que ofrece el paradigma de la Programacin Orientada a Objetos. La metodologa para el curso considera el anlisis documental, solucin de ejercicios y la interaccin de los participantes en clase con el profesor para que este asesore y supervise personalmente el proceso de formacin educativo de cada alumno, haciendo nfasis en proporcionar los ejercicios y ejemplos necesarios para que los participantes adquieran la habilidad suficiente para identificar cada una de las partes que se implican en un problema determinado, asimilando los elementos para las mismas y simplificando la solucin y complejidad inherente al mismo con el conjunto de tcnicas de la Programacin Orientada a Objetos. Al final del curso el participante tendr en claro el significado de los conceptos comprendidos en el estudio de la Programacin Orientada a Objetos, as como una idea de la utilidad, entendimiento y conocimiento de las tcnicas que envuelven al paradigma de la

Gnoseolgico haciendo alusin ha las diferencias que existen para comunicarnos y entender las cosas, hablando de las maquinas y el hombre.

Programacin Orientada a Objetos, lo cual se ver reflejado en el desarrollo de una solucin para una aplicacin determinada. Para el desarrollo de la solucin se contemplar un anlisis de la especificacin de problema, esquematizacin del mismo en funcin de sus partes y las tcnicas de la programacin orientada a objetos, finalizando con la integracin de las partes con los elementos tcnicos que intervienen en la codificacin final para esta forma de programacin. Para dar seguimiento a las acciones de aprendizaje se utilizarn las siguientes modalidades de evaluacin: Participacin presencial y/o en lnea, aplicaciones, manual electrnico de la materia, aplicacin autoevaluativa, y autoevaluacin final

Las habilidades de formacin que se pretenden estimular son: la lectura, comprensin de la misma, elaboracin de resmenes, redaccin y estructuracin de exposiciones, trabajo en equipo, hablar en publico, y todo esto con la finalidad de que el alumno comprenda a fondo tanto los principios tericos como sus implicaciones y las refuerce mediante la participacin y aplicaciones prcticas. El curso: Programacin Orientada a Objetos consta de cuatro mdulos y cada uno est conformado por los siguientes aspectos: o o o o o Objetivo de aprendizaje Contenidos curriculares Actividad preliminar Actividad de Aprendizaje Actividad Integradora

EVOLUCIN DE LAS TCNICAS DE DESARROLLO DE SOFTWARE.

1
MDULO

CONTENIDOS CURRICULARES:
1.1. Tcnicas Ad hoc. 1.2. Programacin estructurada. 1.3. Diseo descendente y modularidad. 1.4. Modelos dirigidos por datos. 1.5. Un nuevo paradigma la programacin orientada a objetos ( POO) 1.5.1- Una manera de ver el mundo 1.5.2- Computacin como simulacin 1.5.3- Complejidad 1.5.4- Mecanismo de abstraccin 1.5.5- Utilidad.

Reconocer la evolucin de los paradigmas de desarrollo de software, para dar a la metodologa orientada a objetos una correcta ubicacin en la historia, recalcando la importancia que ha y sigue adquiriendo la misma, en el mundo de la programacin.

OBJETIVO DE APRENDIZAJE:

ACTIVIDAD PRELIMINAR
A continuacin tenemos que realizar las actividades que se sealan en los siguientes puntos: Responder en su cuaderno: Cmo se programaban los equipos de cmputo de la primer generacin? Responder en su cuaderno: Por que surge la programacin de sistemas?

Esquematice el equipo de computo en los diferentes niveles o capas (software) por las cuales tiene que pasar un mensaje antes de llegar a la maquina(hardware). Cules son los elementos de un programa estructurado? Cules son las reglas o bases que sigue la programacin estructurada? Cmo y porque surge la programacin estructurada? Mencione el numero de estructuras de control que tiene el lenguaje C y clasifquelas. Investigar cual es la principal diferencia entre la programacin Estructurada y modular. Investigar que relacin tiene el diseo descendente con la programacin modular. Tenemos un problema: una gotera en nuestro cuarto, justo en sima de la cama. Escriba en su cuaderno los pasos que lo llevaran a su solucin.

Qu es un DBMS? Qu es una base de datos? Qu es SQL?, Qu proporciona? y Para qu sirve?


Clasificar lo que aprecias a tu alrededor en dos categoras. Suponiendo que se te pide a ti y a un compaero tullo por separado que dibujen una casa en sus cuadernos de notas, tu compaero dibujara la casa de la misma forma en que tu lo arias ?, Por que?. Cuntas clases de estilos de programacin existen? Mencionar 3 lenguajes de programacin orientados a objetos puros Mencionar 1 lenguaje de programacin orientado a objetos hbrido Cul es la diferencia entre los lenguajes basados en clases y orientados a objetos.?

ACTIVIDAD DE APRENDIZAJE No 1
Con el fin de reforzar o aclarar los puntos realizados en la actividad preliminar es importante que realicemos lo siguiente: o Realizar la lectura No. 1 ELEMENTOS DE COMPUTACIN GUILLERMO LEVINE p.p. 5-9,47-62 o Investigue Cmo, a partir de qu y para qu surge el modelo de John Von Newmann?

ACTIVIDAD DE APRENDIZAJE No. 2


Realizar la lectura No. 2 PROGRAMACIN EN TURBO PASCAL LUIS JOYANES AGUILAR p.p 25-27 PROGRAMACIN ORIENTADA A OBJETOS LUIS JOYANES AGUILAR p.p. 14-17 Disear un algoritmo para la serie de fibonacci Donde: Fib(n) = n si n es igual a 0 n es igual a 1 Fib(n) = Fib(n-1) + Fib(n-2) si n es mayor igual que 2 Es decir, se debe cumplir lo siguiente: 0,1,1,2,3,5,8,13,21,34,55,......

ACTIVIDAD DE APRENDIZAJE No. 3


Realizar la lectura No. 3 PROGRAMACIN EN TURBO PASCAL LUIS JOYANES AGUILAR p.p 24-25. Qu es lo que se quiere de un programa modular?, es decir, Cmo debe de ser un mdulo de forma ideal?. Esquematice de una forma jerrquica su solucin al inciso No. 3 de la actividad preliminar, donde cada elemento del esquema es un mdulo(actividad a realizar para solucionar el problema), y el modulo con mayor dependencia es la integracin de todo lo que se tiene que hacer para alcanzar la solucin.

ACTIVIDAD DE APRENDIZAJE No. 4


o Realizar la lectura No. 4 MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH p.p. 480-487 o Realizar una tabla en tu cuaderno donde la primer columna sea de nombre(s), la segunda de apellido(s) paterno y la tercera de cdigo(s). Llenar la tabla con 4 registros.

ACTIVIDAD DE APRENDIZAJE No. 5


o Realizar la lectura No. 5 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p.p. 6-8, 17-18,24-32, 37-40 o Identificar las caractersticas que comparten los siguientes polgonos. o Mencionar lo que puede hacerse con los siguientes polgonos p. ej.: mover

ACTIVIDAD INTEGRADORA No. 1


A continuacin y para terminar con el punto 1.1 realizaremos las siguientes actividades que se sealan en los incisos:

B) Realice una sntesis de la lectura No 1.

En este momento has adquirido reforzado tu nocin de la evolucin que han tenido las primeras tcnicas de programacin, mas sin embargo esto no es todo, en el siguiente punto analizaremos una etapa ms de la evolucin que han sufrido las tcnicas de programacin, dicha etapa es muy importante, puesto que las bases que surgen en la misma, se siguen implementando aun dentro de la programacin orientada a objetos, Sabes de que tcnica de programacin estoy hablando?.

ACTIVIDAD INTEGRADORA No. 2


A) Elaborar un glosario comenzando por agregar lo siguiente: 1) Programacin Estructurada 2) Estructuras de control bsicas 3) Secuencial 4) Selectiva 5) Iteracin

Ahora sabemos que las bases de la programacin estructurada (Estructuras de control bsicas) se siguen utilizando en la programacin orientada a objetos (POO) y que la programacin estructurada surge como respuesta para reducir la crisis del software en la dcada de los 60s, ms sin embargo esta sigue teniendo algunas desventajas que se buscan eliminar con las siguientes tcnicas de programacin, Conoces que tcnica de programacin tiene mejor rendimiento absoluto durante la ejecucin que la programacin estructurada ?, y Sabes por qu?. ACTIVIDAD INTEGRADORA No. 3
A) Qu facilidades presenta un sistema modular dbilmente acoplado? B) Investigar en las lecturas recomendadas alguna otra fuente de informacin la clasificacin del acoplamiento de mdulos. C) Investigar en las lecturas recomendadas alguna otra fuente de informacin la clasificacin de cohesin de mdulos. D) Agregar al glosario: 1) Modularidad 2) Cohesin 3) Acoplamiento

Hasta este momento hemos estado estudiando una de las lneas de la evolucin de las tcnicas de desarrollo de software, los modelos imperativos, estos modelos de procesamiento de informacin se rigen por las instrucciones, ms que por los datos en cuestin, en el siguiente punto nos introduciremos en una forma diferente de procesar la informacin, donde los resultados dependen de un estado, es decir la informacin en cuestin almacenada: los modelos dirigidos por datos. Sabes a que nos referimos?

ACTIVIDAD DE INTEGRADORA No 4
A) 1) 2) 3) Agregar al glosario: Base de datos Tupla SQL

B) Qu representa un conjunto de tablas? D) Qu son las tuplas ? E) Cuntas tuplas tienes en la tabla que realizaste en tu cuaderno?

De forma breve pero sustancial hemos estado analizando las diferentes etapas de la evolucin del desarrollo de software, a continuacin, comenzaremos a analizar como a partir de la experiencia adquirida con las diferentes formas de programar que hemos estudiado y a partir de la idea, de hacer a la programacin un proceso mucho ms sencillo y ms confiable, surgen los conceptos y tcnicas que envuelven a la programacin orientada a objetos. ACTIVIDAD DE INTEGRADORA No. 5
A) B) C) D) Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. Mencionar el nombre que recibe el proceso que se realizo para el segundo y tercer punto de la actividad de aprendizaje. Mencionar las caractersticas bsicas que presenta un programa orientado a objetos. Cul es la diferencia entre la POO y la PBO (Programacin Basada en O.)?

Felicidades! en este momento ya puedes apreciar las ventajas que ofrece el paradigma de la POO para reducir algunos de los obstculos en el desarrollo de Software, as como su principal diferencia con relacin a la programacin estructurada, entre otras cosas interesantes que seguiremos abordando en los siguientes mdulos.

EL MODELADO DE OBJETOS, TCNICAS Y MTODOS AVANZADOS.


CONTENIDOS CURRICULARES:
2.1 Abstraccin 2.2 Objetos y clases 2.2.1 -Clasificacin 2.2.1.1-Identificacin de clases y objetos 2.2.2- Clases e identidad 2.2.3- Instanciacin constructores y destructores 2.2.4- Estado de un objeto 2.2.5- Comportamiento 2.2.6- Enlace esttico y dinmico 2.2.7- Encapsulamiento 2.2.8- Mensajes 2.3 Diagramas 2.4 Enlaces y asociaciones 2.4.1-Agregacin 2.4.2-Generalizacin / Especializacin 2.4.2-Asociacin 2.5 Clases abstractas y Herencia 2.5.1- Jerarquizar 2.5.1.1- Generalizacin 2.5.1.2- Especializacin 2.5.2- Herencia Mltiple 2.5.3- Herencia Simple 2.6 Polimorfismo 2.6.1- Sobrecarga 2.6.2- Mtodos virtuales

2
MDULO

OBJETIVO DE APRENDIZAJE: El alumno conocer y dominar los conceptos


bsicos sobre la programacin orientada a objetos.

ACTIVIDAD PRELIMINAR
Realizar las actividades sealadas en los siguientes puntos: 1) Describir en trminos de abstraccin lo que es un programa. 2) Cul es el rol de la abstraccin? 3) Cules son las categoras de abstraccin que se presentan en los lenguajes de programacin? 4) Mencionar 2 caractersticas propias de cualquier objeto 5) Cmo se identifican los objetos a partir de la especificacin de un problema? 6) Cul es la diferencia entra la programacin estructurada y la POO? 7) A que nos referimos cuando hablamos de enlace Esttico? 8) A que nos referimos cuando hablamos de enlace dinmico? A) B) C) D) Mencionar una ventaja que ofrecen los diagramas de clases Mencionar una ventaja que ofrecen los diagramas de objetos Qu representan los diagramas de clases? Qu representan los diagramas de objetos?

Cmo se identifican, a partir de la especificacin de un problema, las relaciones entre objetos y clases? Cul es la caracterstica que esencialmente diferencia la POO de la programacin tradicional? Cul es el smbolo que se utiliza para representar una relacin de agregacin con la notacin OMT? Qu significa OMT?

1) 2) 3) 4)

Qu tipo de relacin se presenta en la herencia? Cul es el principio del concepto de herencia en la POO? Qu es la herencia en la programacin orientada a objetos? Qu es una clase abstracta? Y Qu una clase concreta?

5) 6) 7) 8)

Cmo se presenta el overriding en la herencia? Qu es la sobrecarga? Qu son las funciones virtuales? Qu es el polimorfismo?

ACTIVIDAD DE APRENDIZAJE No. 1


Realizar la lectura No. 6 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p.p. 9-11, 51-57

Qu relacin existen entre la abstraccin y un lenguaje de programacin? Cul fue el primer lenguaje que mezcl datos y procedimientos? Realizar un programa que te permita manipular los nmeros complejos.

ACTIVIDAD DE APRENDIZAJE No. 2


Realizar la lectura No. 7 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p.p. 20-21, 34-35,70-91,102-107 y 288-342 Examinar la siguiente clase y especificar si existe algn error y en donde se encuentra. class coordenada { float x, y; void coordenada(float xa, float ya){x=xa; y =ya;} }; Cul es la diferencia entre las siguientes declaraciones? class prueba{ char nombre; }; struct prueba{ char nombre; };

ACTIVIDAD DE APRENDIZAJE No. 3


o Realizar lectura No. 8 MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH p.p 47-52, 80-81

o Realizar el ejercicio 3.1 ubicado en la pagina 80 en el libro


MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH

ACTIVIDAD DE APRENDIZAJE No. 4


o Realizar la lectura No. 9 MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH p. p. 52-67 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 114-137 o Realizar el Ejercicio 4.1 del libro: PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 148

ACTIVIDAD DE APRENDIZAJE No. 5


o Realizar la lectura No. 10

PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 91-98, 350-363

o Concluir con el punto numero dos de la Actividad de Aprendizaje de la unidad didctica 2.4 ACTIVIDAD DE APRENDIZAJE No. 6
o Realizar la lectura No. 11 PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN p. p. 98-108, 376-387 o Realizar la segunda parte del ejercicio 11.1 Pg. 386

ACTIVIDAD INTEGRADORA No. 1


A) B) C) D) E) F) Retomar los primeros 4 puntos de la actividad preliminar y rescribir sus respuestas de serlo necesario. Qu es un TDA? Quin define un TDA? Cules son los elementos de un TDA? A qu categora de abstraccin en los lenguajes de programacin pertenecen los TDA? Agregar al glosario: 1) Abstraccin 2) TDA

Como te habrs dado cuenta la abstraccin es un herramienta muy poderosa que utilizas todos los das para reducir la complejidad en el proceso de entendimiento, y esta herramienta ha sido y seguir siendo el elemento y/o razn de la evolucin de los lenguajes de programacin. Sabes cual es el concepto complejo que implica una abstraccin tanto de datos como de mtodos y se refleja en un paquete que oculta informacin al exterior?. Te invito a continuar estudiando la siguiente unidad curricular de este segundo mdulo, ah podrs encontrar la respuesta.

ACTIVIDAD INTEGRADORA No. 2


A) Retomar los puntos 5,6,7,8 de la Actividad Preliminar y rescribir sus respuestas de serlo necesario.

B) Agregar al glosario los conceptos de: Objeto, Clase, Ligadura (Enlace), Enlace esttico, Enlace dinmico, Constructor, Destructor, Encapsulamiento, Mensajes, Estado, Comportamiento.

Ahora sabemos la diferencia entre clases y objetos, y muchas caractersticas sobre estos conceptos, toma en cuenta que este conocimiento que has adquirido es muy valioso pues son las bases para entender los siguientes puntos unidades curriculares de nuestro curso.

ACTIVIDAD INTEGRADORA No. 3


A) Realizar los ejercicios 3.2 y 3.3 p. p. 80-81 en el Libro: MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH B) Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. C) Agregar al glosario: 1) Diagrama de clases 2) Diagrama de objetos 3) Notaciones Graficas

En la unidad 2.2 se pudieron apreciar varias notaciones graficas, en este punto se recalca su importancia y a travs del curso aprenderemos nuevas notaciones graficas y apreciaremos de una forma ms palpable la importancia de los diagramas mediante ejercicios, y as como el hecho de que representan un formalismo para representar los modelos de objetos muy necesario en el desarrollo de software. ACTIVIDAD INTEGRADORA No. 4
A) Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. B) Cul es el smbolo que se utiliza para representar una relacin de generalizacin con la notacin OMT ? C) Realizar la unidad didctica 2.5 D) Agregar al glosario 1) Generalizacin / Especializacin 2) Agregacin 3) Asociacin 4) OMT

5) Enlaces y asociaciones

Las relaciones entre objetos como indica Booch2 pueden representar comparaciones o conexiones semnticas, y mucho de esto an no se ha abordado por lo tanto te recomiendo que contines estudiando y retomes las siguientes unidades didcticas para que te queden mucho mas claras las relaciones. ACTIVIDAD INTEGRADORA No. 5
Realizar la primer parte del Ejercicio 11.1 del libro: PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN LUIS JOYANES AGUILAR SEGUNDA EDICIN pag. 386 (lectura 11). Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario. Agregar al glosario: 1) Operador resolucin de mbito 2) Herencia simple 3) Herencia mltiple 4) Herencia 5) Clase abstracta y clase concreta Partiendo de los siguientes sustantivos: Animales, mamferos, ovparos, reptiles, ballenas, hombres, cocodrilos, pjaros, palomas y halcones, y utilizando la notacin OMT represente la relacin que existe entre los mismos e indique cual es el nombre de la misma.

Recuadro Informativo: Es importante que tengas presente que la caracterstica que esencialmente diferencia a la POO de la programacin tradicional es la herencia, la herencia es un mecanismo de reutilizacin de software que por ende acarrea otros caractersticas de la POO como lo es el polimorfismo.

LUIS JOYANES AGUILAR PROGRAMACIN ORIENTADA A OBJETOS SEGUNDA EDICIN


p. p. 114

ACTIVIDAD INTEGRADORA No. 6 Realizar el ejercicio 11.2 Pg. 386


Leer p. p.105-10 del libro: MODELADO Y DISEO ORIENTADO A OBJETOS RUMBAUGH Agregar al glosario: 1) funcin polimrfica 2) Objeto polimrfico 3) Polimorfismo 4) Sobrecarga 5) Funcin virtual 6) Overriding (anulacin / sustitucin) 7) Metadatos Retomar los puntos de la Actividad Preliminar y rescribir sus respuestas de serlo necesario.

Debes estar contento, en estos momentos conoces las caractersticas que caracterizan a la programacin orientada a objetos (Encapsulacin y ocultacin de la informacin que representan el concepto avanzado de objeto, herencia y polimorfismo), as como otros conceptos que se relacionan fuertemente con las caractersticas mencionadas anteriormente como lo son: clases, generalizacin, asociaciones, etc... En el siguiente mdulo reforzaremos lo que ya conocemos y ampliaremos esa gama de conceptos relacionados con la POO que ya entiendes. Mucho animo, que ya has visto ms de la mitad de tu curso.

DESARROLLO DE DOS APLICACIONES CON LA METODOLOGA ORIENTADA A OBJETOS.

3
MDULO

CONTENIDOS CURRICULARES:

3.1. Presentacin de la primer aplicacin (bloques) 3.2. Desarrollo completo de la segunda aplicacin reutilizando clases elaboradas para la primer aplicacin (Damas).

OBJETIVO DE APRENDIZAJE: El estudiante identificar y propondr soluciones


para estructurar de la manera ms conveniente la concepcin que se tiene del problema a resolver con el paradigma en Programacin Orientado a Objetos, identificando el tipo de problemas que mejor resuelve el paradigma en programacin orientado a objetos.

3.1 Presentacin de la primer aplicacin (bloques) ACTIVIDAD PRELIMINAR


1) Conocer el mbito del problema que implica la primer aplicacin.

Con el objeto de reforzar los conceptos y relaciones vistos en el mdulo No. 2 se presenta el siguiente planteamiento de problema que deber resolverse con la metodologa orientada a objetos:
La academia de informtica necesita un programa que de forma aleatoria genere 10 bloques en pantalla. Los bloques pueden ser de texto o simplemente un marco, los bloques marco pueden o no tener relleno. La letra que se elija para construir un bloque texto deber ser elegida de forma aleatoria, los bloques pueden ser de diferentes colores y el color se elige de forma aleatoria, el ancho de los bloques como mximo ser de 24 unidades en modo texto 80,24 y como mnimo de 5 unidades modo texto 80,24 (espacios ), y lo alto de los bloques como mximo ser de 14 unidades y como mnimo de 5 unidades, estas dimensiones se asignan de forma aleatoria. Una vez ejecutado (corriendo)el programa con la tecla tabulador puedes elegir cualquier bloque impreso en pantalla, y cuando ests en algn bloque determinado este blinqueara (aparecer y desaparecer como un foco que se prende y apaga simultneamente un numero consecutivo de veces), para salirte del programa puedes presionar la s o la tecla Esc. Cuando ests sobre un bloque marco con las flechas (arriba, derecha, abajo, izquierda) podrs moverlo en toda la pantalla, si presionas Enter refrescaras la pantalla imprimindose nuevamente todos los bloques, si ests sobre un bloque texto con las flechas arriba y derecha modificaras la letra de forma ascendente y con las flechas abajo e izquierda modificaras la letra de la que esta hecho el bloque texto de forma descendente. Los siguientes son ejemplos de bloques marco:

Los siguientes son ejemplos de bloques texto:

ACTIVIDAD DE APRENDIZAJE
o Identificar los objetos del problema de bloques. o Por cada objeto identificado, escribir un prrafo muy preciso que contenga todos los hechos acerca de dicho objeto segn el planteamiento de problema. o Extraer del planteamiento de problema todos los hechos o Agrupar por clase todos los hechos. Esto nos servir para darnos cuenta que se han identificado correctamente las clases (objetos). o Separar en dos grupos los hechos de cada clase (Atributos y otros hechos)

ACTIVIDAD INTEGRADORA
En la actividad de aprendizaje realizamos las primeras dos fases de un diseo orientado a objetos: la identificacin de las clases necesarias para su implementacin y la identificacin de los atributos de dichas clases. o A cada clase agregaremos un tercer grupo de hechos nombrado comportamientos (acciones que se le indican a la clase para que realice algo) o Por cada comportamiento identificado y asignado a una clase, dar una breve descripcin de lo que deber hacer, listar cualquier cambio de atributos que provoque el comportamiento, as como todos los mensajes que dicho comportamiento les enviar a los objetos de otras clases. o Consulta con tu profesor si has encontrado correctamente las clases y agrupado correctamente sus componentes (atributos y comportamientos). o Codificar la aplicacin de bloques en base a la informacin rescatada del planteamiento de problema a travs de las actividades anteriores (puedes consultar el Apndice A para auxiliarte).

Una vez terminada la codificacin de la aplicacin bloques te pudiste percatar que implementaste la herencia jerrquica, has apreciado como se presenta el polimorfismo con funciones virtuales, etc.. es decir, en resumen, se ha logrado el objetivo, reforzar los conceptos y las abstracciones que has creado para el paradigma en programacin orientado a objetos en el mdulo No. 2 FELICIDADES!!!.

3.2 Desarrollo completo de la segunda aplicacin reutilizando clases elaboradas para la primer aplicacin (Damas). ACTIVIDAD PRELIMINAR
1) Conocer el mbito del problema que implica la segunda aplicacin.

se presenta la informacin del juego de Damas y el planteamiento de problema que deber resolverse con la metodologa orientada a objetos:

Juego de damas, juego de tablero cuyo objetivo es capturar el mayor nmero de fichas posible del oponente o inmovilizarlas. El juego se desarrolla sobre un tablero de 64 cuadrados, normalmente blancos y negros. Cada jugador tiene doce fichas en forma de disco, blancas o negras que se mueven slo sobre los cuadrados negros y las negras siempre empiezan. En las damas inglesas, las fichas se mueven hacia adelante un cuadrado cada vez y en diagonal. Una ficha puede saltar sobre una o ms fichas enemigas que son capturadas, siempre que exista un cuadrado vacante donde tocar para saltar de nuevo. Si un jugador alcanza la lnea de atrs de su oponente se convierte en un rey (se pone una ficha encima de otra) y el movimiento termina. Despus, un rey puede moverse hacia atrs igual que hacia adelante, tantos cuadros como le sea posible. Un jugador con varias posibilidades de movimientos puede hacer uno pequeo en vez de uno grande, pero si comienza un movimiento debe de ser completado capturando todas las piezas posibles. Hay muchas variantes: la italiana, espaola, polaca, alemana, rusa, turca y china son las ms importantes. El juego se origin en el siglo XII en Europa, probablemente en el sur de Francia. En los primeros tiempos la captura de fichas era opcional, pero alrededor de 1535 se introdujo en Francia una regla de captura obligatoria: si no se realizaba la captura, existiendo esa posibilidad, se perda la ficha. En el actual juego de las damas inglesas es obligatorio capturar cuando existe la posibilidad; esta fue la modalidad que llevaron los colonos ingleses a Estados Unidos.

Planteamiento de problema El objetivo es sencillo y claro en base a la informacin correspondiente al juego de damas vamos a realizar un tablero, donde las fichas tengan todas las posibilidades anteriormente mencionadas, y puesto que esta ser la primer versin de nuestro juego de damas lo haremos en modo texto (80,24) y como en los primeros tiempos del juego, la captura de fichas ser opcional. Nuestra aplicacin tendr dos indicadores de turno que aparecern y desaparecern en funcin del turno presente , tambin tendr un controlador por cada jugador (2) que podr desplazarse por todo el tablero y le permita al jugador en turno elegir una ficha y una posicin siguiente para la ficha, los indicadores de turno tambin en su caso indicaran quien es el ganador en funcin de que se eliminen todas las fichas de un bando y despus de un Enter se le preguntara a los jugadores que si desean salir o seguir jugando, el juego se puede terminar en cualquier estado de la partida presionando Esc la tecla s.

ACTIVIDAD DE APRENDIZAJE Para esta aplicacin se trabajar por equipos de 5 integrantes.


o Identificar los objetos del problema que implica el juego de damas en base al planteamiento de problema. o Por cada objeto identificado, escribir un prrafo muy preciso que contenga todos los hechos acerca de dicho objeto segn el planteamiento de problema. o Extraer del planteamiento de problema todos los hechos o Agrupar por clase todos los hechos. Esto nos servir para darnos cuenta que se han identificado correctamente las clases (objetos). o Separar en dos grupos los hechos de cada clase (Atributos y otros hechos) En estos momentos se puede elaborar una lluvia de ideas para retroalimentar el trabajo realizado por los diferentes equipos.

ACTIVIDAD INTEGRADORA
En la actividad de aprendizaje realizamos las primeras dos fases de un diseo orientado a objetos tal y como lo hicimos para la primer aplicacin: la identificacin de las clases necesarias para su implementacin y la identificacin de los atributos de dichas clases. o A cada clase agregaremos un tercer grupo de hechos nombrado comportamientos (acciones que se le indican a la clase para que realice algo) o Por cada comportamiento identificado y asignado a una clase, dar una breve descripcin de lo que deber hacer, listar cualquier cambio de atributos que provoque el comportamiento, as como todos los mensajes que dicho comportamiento les enviar a los objetos de otras clases. o Consulta con tu profesor si has encontrado correctamente las clases y agrupado correctamente sus componentes (atributos y comportamientos).

o Codificar la aplicacin de damas en base a la informacin rescatada del planteamiento de problema a travs de las actividades anteriores (puedes consultar el Apndice B para auxiliarte).

Al desarrollar esta segunda aplicacin has reforzado la habilidad que adquiriste en la unidad didctica 3.1 para estructurar de la manera mas conveniente la concepcin que se tiene del problema a resolver con el paradigma en Programacin Orientado a Objetos y sobretodo has reutilizado software que como ya sabemos es el principal objetivo de la programacin orientada a objetos: la reutilizacin.

En el libro de: MODELADO Y DISEO ORIENTADO A OBJETOS de RUMBAUGH Puedes estudiar otras especificaciones de problemas, analizar el diseo de los mismos, conocer parte de su implementacin, etc.. en los Cp.: 18,19 y 20. tambin en el libro de C++ CMO PROGRAMAR DE DEITELY DEITEL te encontraras con una especificacin de problema en el Cp. 2 .22 y una serie de actividades en los Cp. 3, 4 y 5 necesarias de realizar para la implementacin a dicho problema. COMO VERAS ESTO ES EL PRINCIPIO, EXISTEN MUCHAS OTRAS COSAS QUE HACER, PROBLEMAS QUE RESOLVER, ETC.. ESPERAMOS QUE EL CURSO HAYA SIDO DE TU AGRADO Y SEPAS APROVECHARLO. MUCHO XITO!!!

You might also like