Está en la página 1de 53

Universidad de Guadalajara

Sistema de Educacin Media Superior Bachillerato General por Competencias

Gua de Programacin II v. 1.0

Estructura de la Unidad de Aprendizaje


Objetivo Programacin II Unidad de Aprendizaje de

Desarrollar soluciones a problemas bsicos de procesamiento de informacin, utilizando el enfoque orientado a objetos y mediante el diseo dirigido por responsabilidades, para crear aplicaciones de un grado mayor de complejidad que las Competencias especficas logradas en programacin estructurada.

TAE Programacin Web

TAE Programacin Temtica

Metodologa

Resolucin de problemas

Asigna responsabilidades para


Identifica objetos y funcionalidades a travs del anlisis de una parte de la realidad aplicando un enfoque orientado a objetos.

Pensamiento Orientado a Objetos

Encapsular

Asigna funcionalidades a los objetos de un programa en base al diseo dirigido por responsabilidades para lograr la colaboracin entre ellos.

Solucin de Problemas Orientados a Objetos

Especializar o generalizar mediante herencia

Implementa la solucin al problema utilizando herramientas de desarrollo para cumplir los requisitos propuestos.

Herramientas de desarrollo

Modularizar por polimorfismo

Directorio
Marco Antonio Corts Guardado Rectora General Miguel ngel Navarro Navarro Vicerrectora Ejectuvia Jos Alfredo Pea Ramos Secretara General Ruth Padilla Muoz Direccin General del Sistema de Educacin Media Superior Albert Hctor Medel Ruiz Secretara Acadmica del Sistema de Educacin Media Superior Jaime Gutirrez Chvez Secretara Administrativa del Sistema de Educacin Media Superior Mara de Jess Haro del Real Direccin de Educacin Propedutica del Sistema de Educacin Media Superior Zeferino Aguayo lvarez Direccin de Educacin Continua, Abierta y a Distancia del Sistema de Educcin Media Superior Jess Arroyo Alejandre Rectora del Centro Universitario de Ciencias Econmico Administrativas Jos Antonio Ibarra Cervantes Coodinacin del Corporativo de Empresas Universitarias Javier Espinoza de los Monteros Crdenas Direccin de la Editorial Universitaria Primera edicin, 2010 Autores Juana Garca Zavala Oscar Eduardo Lpez Aldana Oscar Prez Mora Oscar Reyes Alans Asesora Pedaggica Revisin /

lvaro Ibarra Zeferino Aguayo lvarez

4/53

ndice de contenido
ndice de contenido ........................................................................................................... 5 Presentacin ...................................................................................................................... 7 Metodologa general ................................................................................................ 8 Evaluacin del Aprendizaje ..................................................................................... 9 Mdulo I. El pensamiento orientado a objetos: Importancia de los objetos. .................. 10 1. Presentacin ................................................................................................. 10 2. Actividad preliminar .................................................................................... 11 3. Anlisis de las caractersticas bsicas de la POO. ....................................... 12 POO como enfoque de programacin .......................................................... 12 Diferencia de la Programacin Estructurada y la Programacin Orientada a Objetos. 4. Objetos y Encapsulamiento .......................................................................... 13 Encapsulamiento .......................................................................................... 17 Clases e instancias ........................................................................................ 19 5. Actividad Integradora .................................................................................. 20 6. Rubrica ......................................................................................................... 21 Mdulo II. Solucin de problemas Orientados a Objetos............................................... 24 Presentacin ........................................................................................................... 24 Actividad preliminar .............................................................................................. 24 Diseo dirigido por responsabilidades. .................................................................. 25 Solucin de problemas ........................................................................................... 28 Actividad. ............................................................................................................... 28 Actividad Integradora ............................................................................................ 30 Rubrica ................................................................................................................... 30 Mdulo III. Pensamiento Orientado a Objetos: Importancia de las clases ..................... 33 Presentacin ........................................................................................................... 33 Actividad preliminar .............................................................................................. 33 El mecanismo de herencia...................................................................................... 34 Referencias y polimorfismo. .................................................................................. 37 Trabajando con conjunto de objetos ...................................................................... 39 Concepto de contenedores ............................................................................ 39 Arreglos. ....................................................................................................... 39 Listas ............................................................................................................ 40 Actividad Integradora : Herencia ........................................................................... 41 Rbrica ................................................................................................................... 41 Mdulo IV. Herramientas de desarrollo.......................................................................... 44 1. Presentacin ................................................................................................. 44 ndice de contenido

13

2. Actividad preliminar .................................................................................... 44 3. Caractersticas mnimas para la Orientacin a Objetos ............................... 44 Actividad Integradora ............................................................................................ 46 Rbrica ................................................................................................................... 46 Actividad Integradora del curso...................................................................................... 47 Rubrica ................................................................................................................... 47 Anxos ............................................................................................................................ 50 Conociendo Alice ................................................................................................... 50

ndice de contenido

6/53

Presentacin
Es posible aprender programacin de computadoras en el bachillerato? Si consideramos que para algunos estudiantes de licenciatura ha sido difcil tener xito en los cursos de programacin, puede parecer complicado a simple vista que un estudiante de bachillerato incursione en el mundo de la programacin con xito. Sin embargo, hay varios motivos para creer que esto no solo es posible, sino tambin conveniente. Los estudiantes de licenciatura con estudios previos de programacin logran un mejor desempeo en el desarrollo de habilidades para programar. Este es un curso para el pensamiento, la programacin orientada a objetos es antes que nada es una forma de pensar. Un problema que creemos difcil de resolver, puede parecernos muy simple cuando cambiamos de enfoque. Y es precisamente el objetivo del Enfoque Orientado a Objetos, ayudarte a ver desde un ngulo diferente los problemas complejos, disminuyendo en gran medida su complejidad. En realidad, los conceptos utilizados en el Enfoque de Programacin Orientada a Objetos son fciles de entender. La trampa en la que caen muchos estudiantes es que por aprender un lenguaje de programacin, los fundamentos del pensamiento Orientado a Objetos no parecen tan claros. Es por eso que este curso pospone el estudio de los lenguajes de programacin lo ms tarde posible. Utilizando herramientas como Alice (alice.org) puedes comprender los principios de la programacin orientada a objetos dejando para despus el aprendizaje del lenguaje.

Pensamiento Orientado a Objetos

Herramientas Orientadas a Objetos

Para ser programador se requieren dos habilidades, la del pensamiento para la solucin de problemas y la del uso de las herramientas. La ms importante es la habilidad del pensamiento, pues de poco o nada sirve el conocimiento de la herramienta si no se saben solucionar problemas. Nunca debes olvidar que los problemas NO se solucionan en los lenguajes de programacin, los problemas se solucionan al nivel del pensamiento, los lenguajes de El pensamiento orientado a objetos: Importancia de los objetos. /

programacin son herramientas para expresar la solucin encontrada. Tampoco olvides que si no se es capaz de expresar una solucin en Espaol, no seras capaz de expresarla en un Lenguaje de Programacin. Los temas de las herramientas como son el Lenguaje de Programacin, los Entornos de Desarrollo, las Bibliotecas, Programacin por eventos, Bases de Datos e Interfaz grfica se dejan para el curso de programacin III. En este curso se contempla principalmente el desarrollo del Pensamiento Orientado a Objetos resumido en las siguientes ideas. 1. Colaboracin y Responsabilidad. Los problemas se soluciones ms fcil con el trabajo en equipo, cada miembro es responsable de realizar una tarea. Puede decirse que la programacin orientada a objetos es una forma de pensamiento basada en el trabajo colaborativo. 2. Encapsulamiento. Los datos se responsabilizan de sus propias transformaciones, en lugar de manipular datos, se les solicitan operaciones y ellos deciden la forma de atender dicha solicitud. 3. Especializacin por herencia. La definicin de nuevos objetos se realiza reutilizando definiciones pre-construidas (heredar), a las que solo extendemos el encapsulamiento para que realice una tarea especializada. 4. Generalizacin por herencia. Es importante evitar duplicar el trabajo, si hay la misma tarea se define en varios objetos, es posible que pueda heredarse de un padre comn. 5. Modularidad por polimorfismo. La modularidad permite la sustitucin de piezas por otras, pudiendo tener diferentes especificaciones, pero que realizan la misma funcin en el sistema. Utilizando herramientas especialmente preparadas, los cinco temas anteriormente expuestos pueden ser comprendidos y aplicados en el desarrollo de pequeas aplicaciones. La actitud positiva es importante para un programador, pues es frecuente que las cosas salgan mal. No hay de que preocuparse, solo hay que buscar una solucin y lo mejor es pedir ayuda. Los programas actualmente se realizan gracias a la colaboracin de muchas personas. No olvides que estamos sobre hombros de gigantes. Si quieres construir una nueva aplicacin, lo ms aconsejable es que modifiques o contines el proyecto de alguien ms, existe mucho Software Libre del que puedes partir.

Metodologa general
La metodologa a utilizar es el aprendizaje de solucin de problemas, la cual permitir desarrollar el aprendizaje significativo, aplicacin del aprendizaje y refuerzo del mismo en el alumno. El estudiante antes del abordaje terico realiza prcticas que le ayudarn a comprender los conceptos centrales de la orientacin a objetos. La utilizacin de herramientas de desarrollo especialmente preparadas para ocultar al estudiante la complejidad de la implementacin de aplicaciones, con el objetivo de que se centre en el El pensamiento orientado a objetos: Importancia de los objetos.

proceso de solucin de problemas. La solucin a los problemas propuestos se da en un ambiente colaborativo, al trabajar en equipo que propicia el intercambio de ideas, el dialogo y la argumentacin.

Evaluacin del Aprendizaje


Para la evaluacin se debe contemplar lo siguiente: 1. Es importante el proceso mediante el cual obtienes una solucin. Tu profesor evaluar no solo la solucin propuesta, sino tambin el proceso. 2. Cada solucin implica una decisin de diseo. Debes justificar las decisiones que tomaste. 3. En todas las soluciones se evaluar la forma en la que se distribuye la responsabilidad entre los objetos. 4. Debes mantener un comportamiento asertivo, expresando tus puntos de vista, argumentando tus ideas y aceptando tus equivocaciones. Recursos didcticos Para el satisfactorio desempeo del estudiante es necesario contar con: Mdulo I. La presente gua de aprendizaje Mdulo II. Computadora con acceso a Internet Mdulo III. Libros o manuales de consulta Mdulo IV. Dispositivo para respaldar informacin Mdulo V. Libreta de apuntes Mdulo VI. Software Alice ( alice.org ). Nota importante: Esta es una primera versin de la gua de aprendizaje. Al final del semestre se har una evaluacin de su efectividad. Adems de la evaluacin de los resultados al tpermino del curso, los autores y revisores estn haciendo un monitoreo con profesores y alumnos voluntarios para corregir las partes de la gua que no sean suficientemente claras. Es posible que los profesores y alumnos del BGC reciban una versin mejorada durante el semestre. Sin que ello implique cambio alguno en la organizacin y en la dinmica de trabajo. El objetivo es lograr los mejores resultados desde el primer semestre que se utilice.

El pensamiento orientado a objetos: Importancia de los objetos.

Mdulo I. El pensamiento orientado a objetos: Importancia de los objetos.


1. Presentacin
En ste mdulo se introduce el principio bsico de la orientacin a objetos, el encapsulamiento, dnde los datos se responsabilizan de su propio procesamiento. El mdulo hace nfasis en la importancia de los objetos, el concepto de clase es introducido solo como un mecanismo necesario para llegar a los objetos. La verdadera importancia de las clases se aborda en un mdulo posterior. Se comienza por tener contacto con los objetos mediante su uso. Para ello, se recomienda el uso de una herramienta de programacin didctica, que puede ser incluso una librera especialmente diseada en la que solo se instancien los objetos y se usen. La actividad preliminar te llevar paso a paso en la construccin de un primer programa Orientado a Objetos utilizando la herramienta Alice v3.0, en actividades posteriores La competencia especifica que pretende alcanzar es: Aplicar el concepto de encapsulamiento en el modelado de soluciones de procesamiento de informacin. Al final debes entregar un programa implementado con alguna herramienta de programacin, en el que utilices varios objetos. Objetivo: Al finalizar este mdulo el alumno ser capaz de aplicar el concepto de encapsulamiento en el modelado de soluciones de procesamiento de informacin.

El pensamiento orientado a objetos: Importancia de los objetos.

2.

Actividad preliminar

Creacin y uso de objetos.


1. Ingresa al programa de Alice. 2. Selecciona uno de los seis escenarios que se muestran y presiona Ok. 3. En el recuadro donde aparece el escenario que elegiste, dale clic donde dice edit scene. 4. Debajo del escenario, aparece la ventana de gallery. Selecciona la que dice Looking Glass Characters. 5. Ahora selecciona Adults. 6. Selecciona el personaje MrsMiller. 7. En la ventana que aparece Create New Instance, escribe el nombre de Maria. Recuerda que deber ser sin acentos. 8. Oprime Ok. 9. En el escenario, selecciona edit code. 10. Del lado izquierdo de la pantalla, notars que est activa la pestaa de Procedures. Busca la que dice this.Maria walk, y arrstrala del lado derecho debajo de donde dice run. 11. Cuando sueltas esta instruccin, automticamente se despliega un men. Selecciona el que dice 1.0. 12. Oprime el botn Run de la ventana del escenario y mira lo que sucede. 13. Ahora experimenta con ms funciones de Maria o si lo prefieres, crea otros personajes.

El pensamiento orientado a objetos: Importancia de los objetos.

3.

Anlisis de las caractersticas bsicas de la POO.


POO como enfoque de programacin
En el curso de Programacin I, viste bsicamente la forma en que se desarrolla la programacin tradicional, mejor conocida como Programacin Estructurada. En esta actividad, analizars las principales diferencias y ventajas en el uso de la Programacin Orientada a Objetos (POO), comparndola con la anterior.

1. Lee el siguiente texto y analiza los conceptos bsicos de la POO. Conceptos de la Programacin Orientada a Objetos A diferencia de la programacin tradicional, la programacin orientada a objetos define una estructura de ms alto nivel llamada objeto, que ofrece dos ventajas sobre la programacin tradicional: La primera es permitir al programador, que organice su programa de acuerdo con abstracciones de ms alto nivel, siendo stas ms cercanas a la manera de pensar de la gente. En otras palabras, los objetos son las unidades de representacin de las aplicaciones, por ejemplo, cuentas de banco, reservaciones de vuelos, etctera. La segunda es que los datos globales desaparecen, siendo stos junto con las funciones, parte interna de los objetos. Por lo tanto, cualquier cambio en la estructura de alguno de los datos slo debiera afectar las funciones definidas en ese mismo objeto y no en los dems. En general, un programa orientado a objetos se define exclusivamente en trminos de objetos y sus relaciones, como se muestra en la figura 1.

Los datos y funciones se guardan dentro de objetos, como se muestra en la figura 2.

Los datos estn ubicados en el centro del objeto (un concepto puramente ilustrativo), lo cual hace que un cambio en su estructura slo afecte las funciones del mismo objeto, pero no al resto de la aplicacin.
Weitzenfeld, A., 2005

El pensamiento orientado a objetos: Importancia de los objetos.

2. Investiga en otras fuentes sobre la Programacin Orientada a Objetos y compara con lo que leste anteriormente. 3. Formen equipos de 5 integrantes y discutan su investigacin para crear un concentrado de la informacin.

Diferencia de la Programacin Estructurada y la Programacin Orientada a Objetos.


1. Ahora que aprendiste los conceptos bsicos de la POO, debers completar la siguiente tabla en tu cuaderno, donde establezcas las principales diferencias entre estas dos formas de programacin. Debers escribir en la columna de cada programacin, el elemento que vas a analizar, al centro debers escribir la diferencia de cmo trabajan en ambas formas de programacin. Consulta con tu profesor las dudas que an tengas.
Programacin Estructurada Escribe en esta columna las caractersticas que destacan a la programacin estructurada Diferencia Anota aqu la diferencia entre cada una de las caractersticas que hayas anotado Programacin Orientada a Objetos Escribe en esta columna las caractersticas que destacan a la programacin orientada a objetos

Ya analizaste las diferencias entre la programacin tradicional y la programacin orientada a objetos. 2. Escribe en tu cuaderno, las principales ventajas de usar la POO. 3. Una vez que lo hayas realizado, comparte con tus compaeros en exposicin plenaria.
4.

Objetos y Encapsulamiento
Vivimos en un mundo invadido de objetos. Hoy da, con el uso de las Tecnologas de la Informacin y Comunicacin, se hace cada vez ms indispensable comunicarnos con las computadoras en un lenguaje ms natural, es decir ms apegado a nuestra realidad. De ah la necesidad del surgimiento de los Lenguajes de Programacin Orientados a Objetos. Mucho hemos hablado de ellos, para poder comprenderlos mejor, 1. Lee con atencin los siguientes textos. La tendencia clave del software: tecnologa de objetos Qu son los objetos y por qu son tan especiales? En realidad, la tecnologa de objetos es un esquema de compactacin que permite crear unidades tiles de software. stas son grandes y altamente enfocadas a mbitos de aplicacin particulares. Existen objetos de datos, de tiempo, de cheques, de facturas, de audio, video, de archivo, de registro, y otros ms. De hecho, casi cualquier sustantivo puede representarse razonablemente como un objeto.

El pensamiento orientado a objetos: Importancia de los objetos.

Vivimos en un mundo de objetos. Slo mire a su alrededor. Existen automviles, aviones, gentes, animales, edificios, semforos, elevadores, y otras cosas. Antes de la aparicin de los lenguajes orientados a objetos, los lenguajes de programacin (tales como FORTRAN, Pascal, Basic y C) se basaban en acciones (verbos), en lugar de cosas u objetos (sustantivos). Los programadores, que viven en un mundo de objetos, programan primordialmente mediante el uso de verbos. Un problema fundamental con la programacin basada en procedimientos es que las unidades de programacin no reflejan de manera fcil y efectiva a las entidades del mundo real; as, estas unidades no son particularmente reutilizables. Con gran frecuencia los programadores deben comenzar de nuevo cada nuevo proyecto y escribir cdigo similar desde cero. Esto significa un gasto de tiempo y de dinero, ya que la gente tena que reinventar las cosas repetidamente. Mediante la tecnologa de objetos, las entidades de software creadas (llamadas clases), si se disean apropiadamente tienden a ser mucho ms reutilizables en proyectos futuros. Con las bibliotecas de componentes reutilizables, se puede reducir la cantidad del esfuerzo requerido para implementar ciertas clases de sistemas. Algunas empresas indican que la reutilizacin de software no es, de hecho, el principal beneficio que obtienen de la programacin orientada a objetos. Ms bien, mencionan que la programacin orientada a objetos tiende a producir software que es ms comprensible, mejor organizado y fcil de mantener, modificar y corregir. Esto puede ser importante debido a que se estima que el 80% de los costos de software no estn asociados con los esfuerzos originales para el desarrollo de software, estn asociados con la continua evolucin y mantenimiento de ese software durante su vida til. Cualesquiera que sean los beneficios que se perciban de la programacin orientada a objetos, es claro que sta ser la metodologa clave de la programacin para las siguientes dcadas Mire a su alrededor en el mundo real. Por donde quiera que voltee los puede ver, objetos!, gente, animales, plantas, automviles, edificios, computadoras, etctera. Los humanos pensamos en trminos de objetos. Tenemos la maravillosa habilidad de abstraccin que nos permite ver imgenes en pantalla como objetos tales como gente, aviones, arboles, y montaas, en lugar de puntos individuales de color. Podemos, si lo deseamos, pensar en trminos de playas en vez de granos de arena, bosques en vez de arboles, y casas en lugar de ladrillos. Quiz nos inclinamos a dividir los objetos en dos categoras: objetos animados y objetos inanimados. Los objetos animados estn vivos de alguna manera. Se mueven y hacen cosas. Los objetos inanimados, como las toallas, parecen no hacer nada en absoluto. Parecen solo estar ah. Sin embargo, todos los objetos tienen algo en comn. Todos tienen atributos, como tamao, forma, color, peso, etctera, que los describen. Todos exhiben un comportamiento, o realizan operaciones (por ejemplo, una bola rueda, rebota, se infla y se desinfla; un bebe llora, duerme, gatea, camina y parpadea: un automvil acelera, frena y gira; una toalla absorbe agua, etctera) que especifican lo que hacen. Los humanos aprendemos acerca de los objetos al estudiar sus atributos y al observar su comportamiento. Objetos diferentes pueden tener atributos similares y comportamientos similares. Por ejemplo, se pueden hacer comparaciones entre bebes y adultos, y entre humanos y chimpancs. Los automviles, camiones, vagones y patinetas tienen mucho en comn. La programacin orientada a objetos (POO) toma como modelo a los objetos reales para su contraparte en software. El pensamiento orientado a objetos: Importancia de los objetos.

Deitel (2003) 2. Acorde a las lecturas anteriores, da respuesta a las siguientes preguntas: a) En nuestro entorno, Qu son los objetos? b) En un lenguaje de programacin Qu son los objetos? 3. Imagina los siguientes ambientes: a) tu aula de clase, b) un cibercaf y c) tu cuarto. Completa en tu libreta la siguiente tabla con los objetos que puedes encontrar es los espacios especificados. Aula de clase Cibercaf Tu cuarto

Se repite alguno? Cul(es)? Como puedes observar, aun cuando son ambientes diferentes, podemos encontrar objetos iguales, en la Programacin Orientada a objetos tambin es posible encontrar objetos semejantes en entornos diferentes, lo cual hace posible que una vez programado en un entorno lo podamos utilizar en otro diferente. 4. De 5 objetos identificados en el punto 3, describe en tu libreta sus caractersticas (atributos) Objeto Ej. Zapato Caractersticas (Atributos) Color Talla Ancho Estilo Material

El pensamiento orientado a objetos: Importancia de los objetos.

El pensamiento orientado a objetos: Importancia de los objetos.

Encapsulamiento

Cobra gran importancia el encapsulamiento en la Programacin Orientada a Objetos (POO), debido a que existe la reutilizacin de cdigo (herencia), por lo que ser conveniente decidir cuales seran las condiciones para tomar la desicin de encapsular objetos y que estos que puedan ser reutilizados en cualquier otro momento en la solucin de la problemtica que se presente. 1. De forma individual y utilizando la tcnica SQA requisita el siguiente cuadro. Se pretende recopilar lo ya aprendido y lo que se quiere aprender. 2. En plenaria desarrolla la actividad con ayuda de tu profesor para dar entrada al concepto de encapsulamiento.
S Escribe aqu lo que sabes Q Escribe aqu lo que aprendiste A Escribe aqu lo que quieres aprender

3. Lee la siguiente lectura sobre encapsulacin de objetos Qu es el encapsulamiento? Si nos concentramos en las cosas, podemos encapsular en un objeto nuestro entendimiento acerca de sus caractersticas y el comportamiento de ese objeto. Lo tratamos como una entidad definida y su comportamiento no esta disperso en nuestro diseo. Por ejemplo, no separamos la viscosidad del aceite, tampoco separamos su color, creamos un objeto aceite y ponemos ambas caractersticas como caracterstica de dicho objeto. El encapsulamiento nos permite considerar a los objetos como cajas negras (que tienen dos caractersticas, una es que son modulares y otra es el ocultamiento de la informacin), es decir, son objetos que podemos utilizar sin enfocarnos en la forma en que trabajan. Una caja negra es un objeto en el que su comportamiento y atributos son conocidos, pero no as su trabajo interno. Un mecnico debe saber como trabaja el motor y la transmisin de su carro, pero usted como conductor, puede usarlo sin preocuparse por estos detalles, El carro encapsula todos los detalles de las partes que lo constituyen (ocultamiento de la informacin), por lo que usted tan solo necesita conocer su interfaz: el acelerador, el freno y el volante. Si abre la caja negra de su carro y se fija en lo que hay bajo el cofre, no encontrara una masa amorfa de caractersticas, sino subobjetos simples que interactan entre si: motor, transmisin, poleas, bandas, etc. Si abre alguno de estos objetos encontrar ms objetos, por ejemplo, el motor esta construido por bujas, tubos, bandas, convertidores catalticos, etc., y cada uno de ellos contiene a su vez objetos ms pequeos que cumplen con una tarea especfica. Cuando el motor le da propulsin al carro, no hace todo el trabajo en un solo objeto monoltico. En vez de ello, delega a los objetos que lo constituyen una responsabilidad, A su vez, estos objetos pueden delegar responsabilidades a otro. De esta manera, el motor delega la acumulacin de presin a los pistones y la responsabilidad de generar la chispa a las bujas. Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un Solucin de problemas Orientados a Objetos. /

agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. El empaquetamiento de las variables de un objeto con la proteccin de sus mtodos se le llama encapsulamiento. Tpicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en prctica no importantes de otros objetos. Entonces, los detalles de la puesta en prctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa. Siguiendo con el ejemplo del automvil, este tiene la caracterstica de modularidad cuando es utilizado en diferentes espacios, como por ejemplo, una pista de carreras, una pista de campo traviesa, en una carretera de terracera, entre otros. Cabe hacer mencin que en cada caso se tiene que mejorar la clase automvil de acuerdo con el tipo de espacio en donde vaya a ser utilizado, creando con esto una supeclase. El encapsulamiento de variables y mtodos en un componente de software ordenado es, todava, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: Modularidad, esto es, un objeto puede ser construido, as como darle mantenimiento, independientemente de otros objetos. As mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta. Ocultamiento de la informacin, es decir, un objeto tiene una interfaz pblica que otros objetos pueden utilizar para comunicarse con l. Pero el objeto puede mantener informacin y mtodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello. 4. Describe cmo entiendes el concepto de encapsulamiento? 5. Identifica ejemplos de clases, describiendo su modularidad y ocultamiento de informacin (encapsulamiento), dentro de un sistema, utilizando cuadro sinptico, esquema o cualquier otra herramienta didctica de presentacin de informacin.

Actividad de Encapsulamiento
Cuando hablamos de encapsulamiento, tenemos que agrupar todas las instrucciones dentro de un procedimiento para que nuestro objeto las realice. 1. Crea tu personaje, puedes utilizar alguno de los existentes en la biblioteca. 2. Crea un procedimiento que se llame bailar dentro tu personaje. 3. Agrega un mnimo cinco y mximo diez acciones para que el personaje simule estar bailando. 4. Desde el procedimiento principal solicita a tu personaje el procedimiento bailar. 5. Muestra a tu profesor el resultado para que se evale. 6. Cual o cuales ventajas encuentras al encapsulamiento procedimientos en los objetos? 7. Cul o cules desventajas encuentras al encapsulamiento?

Solucin de problemas Orientados a Objetos.

18/53

Clases e instancias
En la actividad anterior lograste comprender lo que es un objeto y sus atributos, adems de ello estos objetos tienen algunas actividades que realizan, las cuales en programacin se definen como funciones. 1. Analiza la siguiente informacin Para poder disear un objeto es necesario tener una especie de plantilla mejor dicho clase que es como se conoce en programacin. Una clase es donde se describen las caractersticas y el comportamiento de un conjunto de objetos similares. Por ejemplo, la clase alumno describe los atributos comunes de todos los alumnos, cdigo, fecha de nacimiento, semestre as como las funciones que puede realizar; aprobar, reprobar, ingresar, egresar, etc. La clase automvil describe las caractersticas comunes de todos los automviles: sus atributos y su comportamiento. Los atributos o propiedades se refieren a la marca o fabricante, el color, las dimensiones, si tienen dos, tres, cuatro o ms puertas, la potencia, si utiliza como combustible la gasolina o gasoil, etc. El comportamiento se refiere a la posibilidad de desplazarse por una carretera, frenar, acelerar, cambiar de marcha, girar, etc. Ahora bien, cuando tenemos un alumno en especfico con atributos y funciones bien definidas l es una instancia de la clase, esto es un objeto es una instancia creado a partir de la clase. Una herramienta til para disear estas clases es el UML (Lenguaje Unificado de Modelado por sus siglas en ingls, Unified Modeling Language) Lenguaje grafico de modelado de sistemas de software ms conocido y utilizado en la actualidad; el cual permite visualizar visualizar, especificar, construir y documentar un sistema. Una clase en UML se representa a travs de un rectngulo dividido en tres partes; la primera de ellas con el nombre de la case, la segunda con los atributos y en la tercera las funciones. Ejemplo.
Nombre Atributos

Con la intencin de crear buenos hbitos en la programacin es recomendable ir adoptando algunos convencionalismos (regla no establecida pero que facilita el trabajo). Por convencionalismo, en las clases: El nombre :Inicia con mayscula,. Ej. Alumno, Carro, Casa, Tarjeta, etc. Los atributos: Inician con minsculas, si es un nombre compuesto ir sin espacios en blanco y cada palabra iniciar con mayscula. Ej. nombre, apellido, fechaIngreso, etc. Las funciones: Al igual que los atributos, las funciones inician con minsculas, si es un 19/53

Solucin de problemas Orientados a Objetos.

nombre compuesto ir sin espacios en blanco y cada palabra iniciar con mayscula. Ej.
Alumno nombre apellido fechaIngreso egresar Nombre de la clase Atributos

Funciones

Como habamos mencionado antes, un objeto es una instancia de una clase. Para representar un objeto en UML el rectngulo tiene los bordes redondeados y adems definimos sus atributos. Ej.

Alumno nombre = Juan apellido = Prez fechaIngreso = 14/02/92

2. En la actividad anterior identificaste algunos objetos, retoma 5 de ellos y disea en tu libreta sus clases correspondientes, as como una instancia de cada uno de ellos.

5.

Actividad Integradora
Como producto final del primer mdulo vas a realizar un proyecto que consiste es la creacin de un software utilizando el concepto de encapsulamiento. 1. Forma un equipo de 3 personas. 2. Redacten el nombre y la especificacin del programa, dnde describirs con detalle que es lo que har tu programa. 3. Realiza un plan de trabajo como una lista de las tareas que requieres para realizar tu programa, el tiempo que te llevar realizarla, el da que debe estar terminada y el miembro del equipo responsable. El siguiente es un ejemplo que te puede servir de gua.

Solucin de problemas Orientados a Objetos.

20/53

tarea Disear cada personaje y las operaciones encapsuladas que tendr. Implementar el personaje del sombrerero. Probar el funcionamiento del sombrero.

Tiempo estimado 30 minutos Juan

Asignada a

Fecha Lunes 5 de febrero

20 minutos

Pedro

Lunes 5 de febrero

5 minutos

Juan

Martes 6 de febrero

4. Ejecuten el plan de trabajo. 5. Lleven una bitcora de actividades dnde describirn el nombre de la actividad realizada, participantes, logros, tiempo empleado. 6. Realicen un reporte sobre las dificultades encontradas en la realizacin del proyecto. Describe en l las modificaciones realizadas al plan de tareas y los motivos. 7. Entrega a tu profesor, el plan de trabajo, la bitcora y el reporte, as como el diagrama UML del programa y el software en funcionamiento. 8. Publica tu proyecto.

6.

Rubrica
Con el fin de que tomes conciencia de tu desempeo en ste mdulo. La siguiente rbrica tiene la intencin de servirte de orientacin, para que identifiques las reas en dnde debes trabajar ms y las que cumples satisfactoriamente. Para cada criterio de la rbrica hay tres niveles de desempeo: 0. Deficiente. 1. Mnimo aceptable. 2. Esperado Debes leer la descripcin de cada nivel y anotar en la columna 'puntos' el nmero de nivel que describe mejor tu desempeo en el criterio en cuestin. En el nivel 2 hay descripciones de desempeo de excelencia marcados con negritas, en el caso de que los cumplas escribe en '2+' en la columna de puntos. Criterio 2 1 Inspeccionas y utilizas los procedimientos encapsulados en objetos lo creados por 0 Eres incapaz de crear un procedimiento encapsulado en un objeto. 21/53 pts

Eliges el nombre y Uso del encapsulamiento. decides las acciones de un procedimiento encapsulado para un Solucin de problemas Orientados a Objetos.

objeto. otros. Encapsulas procedimientos en objetos utilizando una herramienta de desarrollo Diseas el comportamiento de un objeto mediante un conjunto de procedimientos encapsulados. Uso de la herramienta de desarrollo para implementar las soluciones propuestas. Puedes abrir, editar y correr programas, cuando algo sale haz encontrado la forma de hacerlo funcionar. Puedes ayudar a tus compaeros con sus programas. Haz descubierto caractersticas de tu herramienta no contempladas por el curso o el profesor. Entrega diagrama UML en el cual identifica el nombre de la clase, sus atributos y funciones. Entrega reporte de dificultades donde describe las modificaciones realizadas y los motivos de las mismas. Te sientes cmodo leyendo en bsqueda de respuestas. Ayudas a tus compaeros a disipar sus dudas Consultas referencias externas para satisfacer tus inquietudes. Puedes abrir, editar y correr programas, pero cuando algo no funciona necesitas mucha ayuda externa.

Encapsulas procedimientos utilizando una herramienta de desarrollo solo con ayuda externa. No hay procedimiento encapsulado.

Solo puedes realizar tareas mientras alguien te gua. La herramienta te parece demasiado complicada. No hay evidencia de trabajo con la herramienta de desarrollo.

Diagrama UML

Entrega diagrama No entrega diagrama UML en el cual no UML. identifica los componentes. Entrega reporte de No entrega reporte de dificultades sin dificultades. describir las modificaciones realizadas ni los motivos. Identificas con claridad tus dudas y encuentras la forma de plantearlas. Compartes con tus compaeros y profesor tus dudas. Tienes dudas sobre la gua, las lecturas o explicaciones de tu profesor y no haces preguntas. No sabes como plantear una pregunta.

Reporte de dificultades

Habilidades para guiar tu propio aprendizaje.

Solucin de problemas Orientados a Objetos.

22/53

Te anticipas en la lectura de los temas. Actitud y habilidades de Colaboracin Trabajas en equipo. Te apoyas en tus compaeros para realizar la realizacin de actividades, de la misma manera que brindas tu apoyo. Realizas tu mejor esfuerzo por realizar las tareas individuales y ser til a tu equipo. Siempre buscas aprender compartiendo ideas con otros. El plan de trabajo fue la base para la organizacin. Se realizan ajustes al plan que ayudaron a que el proyecto terminar con xito. Encuentras la forma de pedir ayuda cuando la necesitas. Realizas las actividades en equipo cuando tu profesor as lo solicita. Siempre trabajas solo. Tienes problemas para entenderte con tus compaeros para la realizacin de tareas. Requieres de la ayuda de tus compaeros para entregar tus trabajos, pues evitas esforzarte para hacerlos por ti mismo. No hay trabajo en equipo. No se hizo el plan de trabajo o no se cumpli en absoluto con el plan. No hubo comunicacin entre los miembros del equipo.

Organizacin de actividades en equipo utilizando un plan de trabajo.

Se realiz un plan de trabajo, se dio seguimiento parcial al plan de trabajo. Se completo el proyecto.

Total

Solucin de problemas Orientados a Objetos.

23/53

Mdulo II. Solucin de problemas Orientados a Objetos.


Presentacin
En la actualidad existen una gran cantidad de herramientas para la programacin de objetos, como Lenguajes de Programacin, Entornos de Desarrollo y sobre todo, una gran cantidad de bibliotecas para todo tipo de problemas. Entre tantas opciones debes elegir las que mejor se adapten a tus necesidades y gustos personales, pues es literalmente imposible conocerlas todas. Lo ms importante que siempre debes recordar, es que por ms poderosa que sea la herramienta, es solo eso, una herramienta. El verdadero poder para resolver problemas sta en las habilidades de pensamiento. Este mdulo trata sobre los problemas y el proceso para encontrar solucin a ellos. Debe quedar claro que no existen recetas universales para solucionar problemas, por lo que nos limitaremos a desarrollar dos ideas: 1. Organizacin. Llevar un orden por etapas ayuda a la mente a pensar con claridad y no abrumarse con el tamao de los problemas. 2. Enfoque. La solucin a un problema puede depender en gran medida en apreciar las cosas desde un punto de vista diferente. Finalizando ste mdulo debes organizar tu proceso de solucin de problemas por etapas y debes de aplicar un enfoque de responsabilidades para disear soluciones orientadas a objetos.

Actividad preliminar
Es probable que hayas escuchado en ms de una ocasin los pasos a seguir en la solucin de problemas, pero en la prctica, no aplicamos siempre el proceso al pie de la letra. 1. Sin consultar fuente alguna, menciona los pasos para solucionar un problema hasta donde recuerdes de lo que alguna ves estudiaste. 2. Describe el proceso que sigues en la realidad al momento de resolver problemas. No segn la teora, segn tu prctica. 3. Compara la teora con la prctica, explica las diferencias, justifica tu comportamiento. Escribe tus conclusiones.

Pensamiento Orientado a Objetos: Importancia de las clases

Diseo dirigido por responsabilidades.


La competencia especfica es: Asignar funciones a los objetos utilizando el concepto de diseo dirigido por responsabilidades. Ahora que conoces el principio de encapsulamiento, es importante utilizarlo de la mejor manera en la solucin de problemas. Para ello, veremos que los problemas por lo general no tienen una solucin nica, y que la mejor solucin depende en ocasiones del contexto. El diseo dirigido por responsabilidades es una tcnica que te ayudara a crear mejores programas orientados a objetos. 1. Lee con atencin el siguiente planteamiento. Un equipo de planeacin en una empresa constructora se rene para entregar un proyecto al da siguiente. Inician su jornada de trabajo a las 9:00 de la maana y terminarn hasta muy noche. Entre las muchas tareas a realizar, las de la siguiente lista son tareas individuales. Tu trabajo es determinar si la tarea debe ser realizada en lo individual por cada integrante del equipo o se asigna por el organizador un responsable que la realice por todos. Por ejemplo. A la hora de comer, Cada individuo compra su comida o el organizador designa a uno para que por encargo compre la comida de todos? Cada una de las opciones tienen sus ventajas y desventajas, debes elegir la que consideres que tiene ms ventajas que desventajas. 2. Para cada tarea, marca con una 'X' a quien se la asignas y describe las ventajas y desventajas que tiene tu decisin. Tarea Comprar la comida Conseguir computadora de trabajo individual. Conseguir hojas blancas y lpices. Cada individuo El organizador Ventajas Desventajas

3. Ahora lee este otro planteamiento similar y completa la tabla. Eres un diseador de automviles y ests creando las especificaciones de un futuro modelo. De cada una de las tareas siguientes, debes decidir si ser hecha por el conductor o por el Pensamiento Orientado a Objetos: Importancia de las clases

automvil. Tarea Decidir el destino Comprobar que las puertas estn cerradas antes de arrancar. Apagar el motor si se sobre calienta. Determinar cul es la mejor ruta para llegar al destino. Verificar que el nivel de aceite del motor sea correcto, de otra forma evitar encenderlo. Conductor Automvil Ventajas Desventajas

8. Si el automvil es utilizado para transporte escolar Qu cambia en tus decisiones de diseo? 9. En qu te basas para decir que un diseo es mejor que otro? 10. Compara y discute con tus compaeros las tablas anteriores. Argumenta tus decisiones. Cul tarea cambiaras de asignacin para mejorar tu diseo? Por qu? 11. Hay alguna asignacin de tareas en la que exista opiniones diferentes de cul es el mejor diseo? Si es as, describe los argumentos de cada punto de vista. 12. Lista los consejos o lineamientos que consideras deben tomarse en cuenta para decidir qu encapsular en un objeto. 13. Analiza la siguiente lectura sobre el diseo por responsabilidades.

Pensamiento Orientado a Objetos: Importancia de las clases

Responsabilidad, de lo individual a lo colectivo. El concepto de encapsulamiento se refiere a todas las tareas para las que un objeto esta programado y puede realizar con tan solo una solicitud. A la hora de definir un objeto, t como programador debes decidir las tareas que deben estar encapsuladas en cada objeto y cules deben realizarse en colaboracin con otro(s) objeto(s). Este proceso se conoce como asignacin de responsabilidades . Los programas verdaderamente tiles contienen grandes conjuntos de objetos, que colaboran entre s para realizar tareas complejas. Por lo tanto, la clave para realizar un buen diseo esta en la asignacin de responsabilidades. Haz organizado alguna vez una fiesta u otro evento en el que las cosas no salen como se planearon? Cuando las cosas en una organizacin fallan generalmente se debe a uno de dos motivos: a) Irresponsabilidad. Alguien no cumpli con su tarea como se le haba asignado. b) Error de planeacin. No se asignaron responsabilidades adecuadamente. Algunos consejos para asignar responsabilidades. Para decidir sobre el encapsulamiento Qu tareas se puede realizar en lo individual? Qu tareas es mejor realizar en equipo? Los objetos no deben tener un exceso de responsabilidades as como tampoco poca a nula responsabilidad. Si una tarea est dispersa entre muchos objetos, hay que revisar si es posible crear un objeto con la nueva responsabilidad de realizar dicha tarea.

14. Explica con tus palabras En que te basas al momento de asignar tareas por responsabilidades? que tipo de preguntas te formulas?

Actividad
1. Disea en UML una clase bailarn decide que movimientos sern encapsulados para que combinados pueda realizar varios bailes. 2. Implementa tu clase y verifica que todo funcione como esperas. 3. Instancia al menos 3 objetos de la misma clase. 4. T sers ahora el coregrafo. Implementa una baile de movimientos coordinados. 5. Cuntas combinaciones puedes hacer utilizando los procedimientos que encapsulaste? 6. Completa la siguiente tabla de responsabilidades. Bailarn Coregrafo.

7. Compara tu diseo con el de tus compaeros.

Pensamiento Orientado a Objetos: Importancia de las clases

8. Lista cules son las mejoras que puedes hacer al diseo de Bailarn para que sea ms flexible y puedan crearse un mayor nmero de coreografias.

Solucin de problemas
Objetivo: Resolver problemas metdicamente aplicando el enfoque orientado a objetos. 1. Analiza la siguiente lectura que describe un mtodo para la solucin de problemas. Ya sabemos que en la orientacin a objetos las piezas de informacin tienen responsabilidades. Con esta idea en mente vamos a analizar cuales son los pasos o etapas para resolver un problema orientado a objetos. 1. Entender el problema. Aunque este paso parece obvio, hay quien despus de terminar un programa se da cuenta que el programa funciona, pero no hace lo que el usuario necesitaba. Hay que hacer una lista de cada una de las condiciones que puede encontrar el programa y describir claramente para cada uno el comportamiento que el programa dar como respuesta. 2. Disear una solucin. En realidad es conveniente pensar en varias soluciones y despus de evaluarlas elegir la que mejor convenga. Pero qu es una solucin? En orientacin a objetos una solucin consiste en un esquema de organizacin de objetos en las que hay que definir la responsabilidad de cada objeto. Junto con eso, la solucin describe un conjunto de instrucciones para describir la colaboracin entre los objetos, que los objetos acten y en colaboracin realicen las tareas del sistema. 3. Implementar la solucin. Las mquinas actuales no comprenden el idioma espaol, as que debemos traducir la solucin encontrada en algn lenguaje de programacin que pueda ser traducido al lenguaje mquina. Si se ha realizado un buen diseo, la codificacin ser bsicamente una tarea de traduccin, con algunas adaptaciones del diseo a los recursos del lenguaje y depurando los errores cometidos. 4. Evaluar la solucin. Se debe comprobar que el programa rene todos los requisitos que se listaron al principio. Y no solo eso, sino que hay que comprobar el grado real de utilidad del programa. A estas cuatro etapas las llamaremos proceso de desarrollo 2. Investiga en otra fuente el proceso de solucin de problemas, compralo con el propuesto en esta gua. Hay alguna sugerencia que puedas hacer para mejorar el proceso propuesto? Justifica tu respuesta

Actividad.
1. Lee con atencin el siguiente problema Debes crear dos clases de objetos que tengan la capacidad de bailar en pareja. Para ello, necesitas un conjunto de procedimientos encapsulados en cada uno que puedan ser llamados en distinto orden, y as crear combinaciones de movimientos. 2. Utilizando el proceso de solucin de problemas de 4 etapas, desarrolla tu solucin y Pensamiento Orientado a Objetos: Importancia de las clases

documenta cada etapa. 3. Documenta el uso de las dos clases de objetos que desarrollaste. Comprrtelos con un compaero(a). 4. Utiliza las clases de objetos diseadas por tu compaero(a) para crear un programa con tres parejas bailando. 5. Evala el trabajo de tu compaero de acuerdo a los siguientes criterios. Criterio Documentacin 0 La documentacin no existe o no es til para utilizar las clases. 1 La documentacin es suficiente y clara para entender el funcionamiento de las clases. 2 La documentacin es til para utilizar las clases. La redaccin es clara y tiene buena presentacin. Incluye una descripcin de las limitaciones. Incluye ejemplos de uso. Las clases contienen un conjunto de procedimientos que permiten varias combinaciones y el baile es coordinado. punt os

Funcionalidad

Las clases no se pueden Las clases pueden utilizar para hacer un utilizarse para hacer programa. un programa pues incluyen procedimientos que se pueden combinar. Es difcil mantener dos objetos coordinados. Las clases solo cumplen Las clases realizan con el requisito. movimientos simples que permiten combinaciones que se ven bien.

Creatividad

Las clases realizan movimientos que permiten combinaciones complejas que se ven muy bien.

6. Comparte con tus compaeros tus apreciaciones. 7. Escribe que fue lo que te llam la atencin de alguno de los trabajos de tus compaeros y por qu. 8. Qu puedes concluir? Aprendiste algo nuevo?

Pensamiento Orientado a Objetos: Importancia de las clases

Actividad Integradora
Como producto final del segundo mdulo vas a realizar un proyecto que consiste es la creacin de un software utilizando el concepto de encapsulamiento, el proceso de solucin de problemas y el diseo por responsabilidades. 1. Forma un equipo de 3 personas. 2. Redacten el nombre y la especificacin del programa, dnde describirs con detalle que es lo que har tu programa. Toma como referencia los problemas resueltos en ste mdulo. 3. Verifica y corrige si es necesario la especificacin del programa. Debe requerir la coordinacin de un conjunto de objetos para completar una tarea. 4. Realiza un plan de trabajo como una lista de las tareas que requieres para realizar tu programa, el tiempo que te llevar realizarla, el da que debe estar terminada y el o los responsables. Entre otras cosas debes de contemplar: a) realizar un reporte por cada una de las etapas del proceso de solucin de problemas. b) Negociar con otros equipos el intercambio de clases de objeto, puedes utilizar objetos realizados por otros equipos si te son tiles en tu proyecto. c) Evaluar peridica o continuamente el trabajo realizado, ya sea por los mismos miembros del equipo o por ayuda exterior. 5. Elaboren un documento del proyecto para obtener la aprobacin del profesor. 6. Ejecuten el plan de trabajo. 7. Lleven una bitcora de actividades dnde describirn el nombre de la actividad realizada, participantes, logros, tiempo empleado. 8. Realicen un reporte sobre las dificultades encontradas en la realizacin del proyecto. Describe en l las modificaciones realizadas al plan de tareas y los motivos. 9. Realicen un reporte sobre el proceso de desarrollo. 10.Entrega a tu profesor, el plan de trabajo, la bitcora, el reporte de dificultades y el reporte del proceso de desarrollo, as como el software en funcionamiento. 9. Publica o expone tu proyecto.

Rubrica
Con el fin de que tomes conciencia de tu desempeo en ste mdulo. La siguiente rbrica tiene la intencin de servirte de orientacin, para que identifiques las reas en dnde debes trabajar ms y las que cumples satisfactoriamente. Para cada criterio de la rbrica hay tres niveles de desempeo: 3. Deficiente. 4. Mnimo aceptable. 5. Esperado

Pensamiento Orientado a Objetos: Importancia de las clases

Debes leer la descripcin de cada nivel y anotar en la columna 'puntos' el nmero de nivel que describe mejor tu desempeo en el criterio en cuestin. En el nivel 2 hay descripciones de desempeo de excelencia marcados con negritas, en el caso de que los cumplas escribe en '2+' en la columna de puntos. Criterio Uso del encapsulamiento para proveer comportamientos flexibles a los objetos. 2 Eliges el nombre y decides las acciones de un procedimiento encapsulado para un objeto. Diseas el comportamiento de un objeto mediante un conjunto de procedimientos encapsulados. Utilizas parmetros para flexibilizar en procedimiento encapsulado. 1 Inspeccionas y utilizas los procedimientos encapsulados en objetos creados por otros. Encapsulas procedimientos en objetos utilizando una herramienta de desarrollo 0 Eres incapaz de crear un procedimiento encapsulado en un objeto. Encapsulas procedimientos utilizando una herramienta de desarrollo solo con ayuda externa. pts

Descompones tareas en Asignacin de responsabilidade responsabilidades. Encapsulando una parte s. de ellas. Presentas varias alternativas de solucin y evalas las ventajas de cada propuesta. Identificas las limitaciones de cada diseo Uso de la herramienta de desarrollo. Puedes abrir, editar y correr programas, cuando algo sale haz encontrado la forma de hacerlo funcionar. Puedes ayudar a tus compaeros con sus programas. haz descubierto caractersticas de tu herramienta no contempladas por el curso o el profesor.

Identificas tareas que pueden ser descompuestas. Encapsulas una parte de ellas.

No puedes identificar la necesidad de tomar decisiones en la asignacin de responsabilidades.

Puedes abrir, editar y correr programas, pero cuando algo no funciona necesitas mucha ayuda externa.

Solo puedes realizar tareas mientras alguien te gua. La herramienta te parece demasiado complicada.

Pensamiento Orientado a Objetos: Importancia de las clases

Criterio Diagrama UML

2 Entrega diagrama UML en el cual identifica el nombre de la clase, sus atributos y funciones.

pts

Entrega diagrama No entrega diagrama UML en el cual no UML. identifica los componentes. Identificas con claridad tus dudas y encuentras la forma de plantearlas. Compartes con tus compaeros y profesor tus dudas. Tienes dudas sobre la gua, las lecturas o explicaciones de tu profesor y no haces preguntas. No sabes cmo plantear una pregunta.

Autoaprendizaje Te sientes cmodo leyendo en bsqueda de respuestas. Ayudas a tus compaeros a disipar sus dudas Consultas referencias externas para satisfacer tus inquietudes. Te anticipas en la lectura de los temas. Colaboracin Trabajas en equipo. Te apoyas en tus compaeros para realizar la realizacin de actividades, de la misma manera que brindas tu apoyo. Realizas tu mejor esfuerzo por realizar las tareas individuales y ser til a tu equipo. Siempre buscas aprender compartiendo ideas con otros. El plan de trabajo fue la base para la organizacin. Se realizan ajustes al plan que ayudaron a que el proyecto terminara con xito.

Encuentras la forma de pedir ayuda cuando la necesitas. Realizas las actividades en equipo cuando tu profesor as lo solicita.

Siempre trabajas solo. Tienes problemas para entenderte con tus compaeros para la realizacin de tareas. Requieres de la ayuda de tus compaeros para entregar tus trabajos, pues evitas esforzarte para hacerlos por ti mismo. No se hizo el plan de trabajo o no se cumpli en absoluto con el plan. No hubo comunicacin entre los miembros del equipo.

Organizacin

Se realiz un plan de trabajo, se dio seguimiento parcial al plan de trabajo. Se complet el proyecto.

Total

Pensamiento Orientado a Objetos: Importancia de las clases

Mdulo III. Pensamiento Orientado a Objetos: Importancia de las clases


Presentacin
El encapsulamiento habilita a los objetos para que asuman la responsabilidad del estado de sus datos. Tambin permite descomponer una tarea y realizarla en colaboracin con otros objetos. Una correcta asignacin de responsabilidades hace que todo funcione fcilmente. Esta es la idea central del pensamiento orientado a objetos. Complementando al principio de encapsulamiento, hay otros dos principios que componen el ncleo de la Orientacin a Objetos. Estos son, la herencia y el polimorfismo. Gracias a la herencia se puede distribuir la misma responsabilidad entre diferentes clases de objetos. De esta forma ahorramos mucho tiempo reutilizando comportamientos. Por otra parte el polimorfismo se refiere a la modularidad. Gracias a l, los objetos pueden sustituirse en los programas de forma similar a las refacciones. En ste mdulo se utilizan estos dos importantes conceptos para resolver problemas de mayor complejidad. Competencia especfica: Soluciona problemas de procesamiento de informacin usando el mecanismo de herencia en la especializacin y generalizacin de clases de objetos.

Actividad preliminar

Pensamiento Orientado a Objetos: Importancia de las clases

Te haz puesto a analizar alguna vez por qu eres de la forma que eres? Completa la siguiente tabla describiendo lo que haz heredado de cada uno de tus siguientes familiares. Fsico Abuelo paterno Abuela paterna Abuelo materno Abuela materna Pap Mam A qu conclusin llegas con el anlisis anterior? Comprtelo con tus compaeros de grupo Actitudes Enfermedades Habilidades

El mecanismo de herencia
1. Analiza la siguiente lectura y realiza las actividades que se plantean en el desarrollo de la misma. Jerarqua y herencia de clases Cmo son las clases relacionadas entre s? En cualquier lenguaje orientado a objetos, las clases se organizan en una jerarqua de clases. Una jerarqua de clases es como un rbol al revs. En la parte superior de la jerarqua es la clase ms general. Las clases de objetos por debajo en la jerarqua, se conocen como subclases. Consideremos las figuras planas cerradas como el rectngulo, y el crculo. Tales figuras comparten caractersticas comunes como es la posicin de la figura, su centro, y el rea de la figura, aunque el procedimiento para calcular dicha rea sea completamente distinto. Podemos por tanto, disear una jerarqua de clases, tal que la clase base denominada Figura, tenga las caractersticas comunes y cada clase derivada las especficas. La relacin jerrquica se muestra en la figura siguiente:
Figura

La clase Figura es la que contiene las caractersticas comunes a dichas figuras concretas, por tanto no tiene forma ni tiene rea. Esto lo expresamos declarando Figura como una clase abstracta. Para introducir algunos trminos importantes asociados con este tipo de jerarqua, decimos que la clase Rectngulo es una subclase de la clase Figura. Las clases que se producen por encima de una determinada clase en la jerarqua se dice que son sus superclases. En general, podemos decir que una subclase extiende una superclase, lo que significa que aade elementos adicionales (atributos y/o mtodos) de los que figuran en sus superclases. Las clases abstractas solamente se pueden usar como clases base para otras clases. No se pueden Pensamiento Orientado a Objetos: Importancia de las clases /

crear objetos pertenecientes a una clase abstracta. Sin embargo, se pueden declarar variables de dichas clases. http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/herencia1.htm# Uso de la jerarqua de clases (tomado el 12 de noviembre de 2009). 2. De forma individual, realiza el ejemplo de la figura anterior haciendo uso del lenguaje UML. 3. En equipos, comparte con tus compaeros el trabajo realizado y obtengan un solo diagrama UML mejorado con las ideas de todos los integrantes del equipo. 4. En plenaria, expongan cada uno de los diagramas y concluyan en un solo diagrama UML. 5. De forma individual y en tu cuaderno de apuntes dibuja por medio de diagramas UML, las modificaciones que tuvo tu diagrama desde la actividad dos, hasta la actividad cuatro. 6. De forma individual describe las mejoras y posibles errores que cometiste al estar realizando tus diagramas y enuncia tambin las soluciones que diste a las problemticas presentadas. En el juego del ajedrez podemos definir una clase base denominada Pieza, con las caractersticas comunes a todas las piezas, como es su posicin en el tablero, y derivar de ella las caractersticas especficas de cada pieza particular. As pues, la clase Pieza ser una clase abstracta y cada tipo de pieza definir dicha funcin. Otro concepto importante asociado con la jerarqua de clases es el concepto de herencia, en la que una subclase hereda elementos (atributos y / o mtodos) de sus superclases. Regresando al ejemplo de la clase abstracta Figura, la subclase Rectngulo hereda sus elementos y se crea la subclase, Cuadrado. (Esto es diferente del tipo de herencia individual por el que una persona hereda los ojos azules de su madre y el pelo negro de su padre). La herencia de clases Para ilustrar cmo funciona la herencia, volvamos a nuestro programa de ajedrez. Hay diferentes piezas de ajedrez, cada una cumpliendo una funcin. Un par de atributos que todas las piezas de ajedrez tienen en comn es su posicin de fila y columna en el tablero de ajedrez. Debido a que todas las piezas tienen estos atributos en comn, que se encuentran en la parte superior de la jerarqua Piezas de ajedrez y heredados por todas las subclases Piezas de ajedrez. Por supuesto, en la fila y la columna de los atributos se dan valores diferentes en cada objeto Piezas de ajedrez. Una de las acciones que todas las piezas de ajedrez tienen en comn es que pueden mover un cuadrado en el tablero. Sin embargo, cada pieza tiene diferente movimiento. Por ejemplo, un obispo (alfil) slo puede moverse a lo largo de las diagonales en el tablero de ajedrez, mientras que una torre slo puede moverse a lo largo de una fila o columna en el tablero de ajedrez. As que claramente no se puede describir un mtodo que funcione para todos las piezas. Esta es la razn por la que hay que poner el movimiento en cada subclase. Por ltimo, tenga en cuenta que en el ajedrez, el rey tiene ciertos atributos especiales y acciones. As, slo el rey puede ser puesto en jaque. Esto significa que el rey est bajo ataque y en peligro de ser capturado y as acabar con el juego. Del mismo modo, slo el rey tiene la capacidad de castillo. Este es un movimiento especial que un rey puede hacer junto con una de sus torres en determinadas condiciones. Pensamiento Orientado a Objetos: Importancia de las clases

De esta manera, una jerarqua de clases representa una especializacin de las clases mientras se mueve de arriba a abajo. La clase ms general, Piezas de ajedrez, est en la parte superior de la jerarqua. Sus atributos y los mtodos se transmiten a sus subclases (herencia). Sin embargo, adems de los atributos y los mtodos que hereda de sus superclases, las subclases pueden definir sus propios atributos y mtodos especiales. Cada una de las subclases, representa algn tipo de especializacin de la superclase. http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/herencia1.htm# Uso de la jerarqua de clases 7. Realiza en lenguaje UML, cmo sera la herencia de clases para el caso de las piezas de ajedrez. 8. Presenta tu trabajo a tu profesor para que sea revisado y evaluado.

Pensamiento Orientado a Objetos: Importancia de las clases

Referencias y polimorfismo.

1. Para poder hablar de referencias y polimorfismo, tenemos primero que definir estos trminos. Busca en un diccionario, el significado de estas dos palabras y antalas en tu cuaderno. Las necesitars ms adelante. 2. En la programacin orientada a objetos, las referencias y el polimorfismo son dos trminos que van de la mano. Para comenzar a comprender mejor este tema, lee el siguiente texto y comenta con tus compaeros en clase.
Polimorfismo

Suponga que vamos a escribir un programa para crear figuras grficas en la pantalla: crculos, valos, rectngulos, etctera. El programa permite que estas figuras se coloquen en la pantalla, que se pueda cambiar su posicin y tamao. Declararemos algunas figuras:
Circulo circulo; Ovalo ovalo; Rectangulo rectangulo; Triangulo t;

Concentrmonos en cambiar el tamao de estas figuras y, en especial, hacer que crezcan. En el mtodo Java invocaremos un mtodo para hacer que un crculo crezca, de la siguiente manera:
circulo.crecer(cambio);

en donde el parmetro es el cambio del tamao del objeto, representado como un porcentaje. De igual forma, invocaremos, segn sea necesario, los mtodos similares que hagan que las dems figuras crezcan:
ovalo.crecer(cambio); rectngulo.crecer(cambio); t.crecer(cambio);

Cada clase de objeto proporciona un mtodo llamado crecer que puede invocarse para modificar el tamao del objeto de ese tipo. Al ejecutarse el programa, el sistema Java se asegura que se seleccione la versin correcta de crecer de entre todos los mtodos que contengan ese nombre. Para ello debe conocer el tipo del objeto (Circulo, Rectngulo, Ovalo, etctera). Esto se conoce como polimorfismo: el mismo mtodo se utiliza para varios objetos. Esto se pone an mejor. Invoquemos ahora al mtodo que pide que cualquier figura aumente su tamao:
figura.crecer(tamao);

Pensamiento Orientado a Objetos: Importancia de las clases

en donde el tipo de figura puede ser crculo, valo, rectngulo, etctera. De nuevo, el sistema en tiempo de ejecucin invoca a la versin de crecer que trate con el objeto especfico que se est utilizando en ese momento. (Este proceso supone que todas estas figuras son subclases de una llamada, por ejemplo, Figura). Por tanto, el polimorfismo es la capacidad de que el mismo nombre de mtodo se utilice en conjunto con distintos objetos. Visto de otra forma, un mtodo puede tener varias implementaciones, una de las cuales se selecciona cuando el programa se est ejecutando, dependiendo del tipo de objeto involucrado. El mtodo especfico que se selecciona es siempre el que pertenece a la clase del objeto cuando ste fue creado. Bell y Parr, 2003 3. Cmo crees que se puede utilizar el polimorfismo en el lenguaje de programacin que utilizas en tu escuela? 4. Explica con tus propias palabras el trmino de polimorfismo para programacin orientada a objetos. 5. Realiza un programa donde utilices el polimorfismo. Pide a tu profesor las caractersticas que debe tener para su evaluacin.

Pensamiento Orientado a Objetos: Importancia de las clases

Trabajando con conjunto de objetos


Concepto de contenedores
Como recordaras, los tipos de datos primitivos son entero, flotante, carcter y cadena, entre otros. Te habrs dado cuenta que en los mdulos anteriores los objetos se construyen y se usan de forma individual. Ahora, en este modulo aprenders a trabajar con un conjunto de objetos que son de un mismo tipo. Para ello, vamos a utilizar los contenedores, los cuales son atributos capaces de agrupar a una secuencia de valores. Analizaremos los arreglos y las listas.

Arreglos.
En programacin, Para qu se utilizan los arreglos? Los arreglos se utilizan para modelar una caracterstica de una clase que corresponde a un grupo de elementos, de los cuales se conoce su nmero. Para el desarrollo de esta actividad: 1. Tu profesor(a) dividir el grupo en 6 equipos 2. Tu profesor(a) asignara a tu equipo alguno de los siguientes temas: a) Conceptualizacin y ejemplos de arreglos. b) Para el lenguaje que se utiliza en este curso; Declaracin de un arreglo. c) Inicializacin de un arreglo. d) Acceso a los elementos del arreglo. e) Instrucciones repetitivas en los arreglos. f) Ejemplos de arreglos en el lenguaje de programacin que estamos utilizando. 3. Una vez que ha sido asignado el tema a tu equipo, debes investigar en las fuentes que estn a tu alcance y apyarte de tu profesor para que no haya duda alguna en la comprensin del tema asignado a tu equipo 4. Prepara y presenta una exposicin al grupo. Trata de considerar todas las dudas que puedan surgir a tus compaeros en la preparacin, para que t las puedas explicar. 5. En cada una de las exposiciones debes tener una actitud asertiva: si tienes alguna duda en el tema debes externarla y adems rescatar en tu libreta los temas expuestos. 6. Ahora, en parejas, con base en las exposiciones anteriores y utilizando el lenguaje de programacin elegido para este curso debers: a) Codificar un programa que pida 10 nombres y, una vez que haya terminado, los presente en pantalla. b) Codificar un programa que pida 5 cantidades y presente en pantalla la suma de las mismas. Pensamiento Orientado a Objetos: Importancia de las clases /

7. Presenten en plenaria al menos 4 soluciones encontradas.

Listas
No siempre conoceremos el tamao mximo de un grupo de datos, por lo cual ser necesario hacer uso de las listas, las cuales son colecciones de datos alineados en una fila, pueden insertarse y eliminarse elementos en cualquier lugar de la lista. No entraremos en detalles sobre ellas, por ahora es suficiente con comprender la diferencia entre los arreglos y las listas.

Pensamiento Orientado a Objetos: Importancia de las clases

Actividad Integradora : Herencia


1. El profesor te entregar un archivo con la implantacin de la clase base para sta actividad. 2. Copia la clase en el lugar adecuado para utilizarla en tu herramienta de desarrollo. 3. Crea una historia con al menos tres personajes pertenecientes a tres clases diferentes. Esto significa que cada personaje tiene comportamientos particulares que lo diferencian de los dems. 4. Crea cada personaje como especializacin de la clase base. Utiliza los procedimientos implementados en sta. 5. Implementa tu historia. 6. Discute con los compaeros las ventajas del uso de la herencia. 7. Escribe tus conclusiones.

Rbrica
Con el fin de que tomes conciencia de tu desempeo en ste mdulo la siguiente rbrica tiene la intencin de servirte de orientacin, para que identifiques las reas en dnde debes trabajar ms y las que cumples satisfactoriamente. Para cada criterio de la rbrica hay tres niveles de desempeo: 0. Deficiente. 1. Mnimo aceptable. 2. Esperado Debes leer la descripcin de cada nivel y anotar en la columna 'puntos' el nmero de nivel que describe mejor tu desempeo en el criterio en cuestin. En el nivel 2 hay descripciones de desempeo de excelencia marcados con negritas, en el caso de que los cumplas escribe en '2+' en la columna de puntos.

Herramientas de desarrollo

Criterio

1 Inspeccionas y utilizas los procedimientos encapsulados en objetos lo creados por otros. Encapsulas procedimientos en objetos utilizando una herramienta de desarrollo

0 Eres incapaz de crear un procedimiento encapsulado en un objeto. Encapsulas procedimientos utilizando una herramienta de desarrollo solo con ayuda externa.

pts

Eliges el nombre y Uso del encapsulamiento. decides las acciones de un procedimiento encapsulado para un objeto. Diseas el comportamiento de un objeto mediante un conjunto de procedimientos encapsulados. Utilizas parmetros para flexibilizar en procedimiento encapsulado. Descompones tareas en Asignacin de responsabilidade responsabilidades. Encapsulando una parte s. de ellas. Presentas varias alternativas de solucin y evalas las ventajas de cada propuesta. Identificas las limitaciones de cada diseo Herencia Evitas la redundancia funcional utilizando herencia. Creas clases por especializacin utilizando herencia.

Identificas tareas que pueden ser descompuestas. Encapsulas una parte de ellas.

No puedes identificar la necesidad de tomar decisiones en la asignacin de responsabilidades.

Creas clases por especializacin utilizando herencia.

Entiendes el concepto de herencia, pero no identificas claramente las ventajas que representa en la solucin de problemas. Solo puedes realizar tareas mientras alguien te gua. La herramienta te parece demasiado complicada.

Uso de la herramienta de desarrollo.

Puedes abrir, editar y correr programas, cuando algo sale haz encontrado la forma de hacerlo funcionar. Puedes ayudar a tus compaeros con sus programas. haz descubierto

Puedes abrir, editar y correr programas, pero cuando algo no funciona necesitas mucha ayuda externa.

Herramientas de desarrollo

42/53

caractersticas de tu herramienta no contempladas por el curso o el profesor. Autoaprendizaje Te sientes cmodo leyendo en bsqueda de respuestas. Ayudas a tus compaeros a disipar sus dudas Consultas referencias externas para satisfacer tus inquietudes. Te anticipas en la lectura de los temas. Colaboracin Trabajas en equipo. Te apoyas en tus compaeros para realizar la realizacin de actividades, de la misma manera que brindas tu apoyo. Realizas tu mejor esfuerzo por realizar las tareas individuales y ser til a tu equipo. Siempre buscas aprender compartiendo ideas con otros. El plan de trabajo fue la base para la organizacin. Se realizan ajustes al plan que ayudaron a que el proyecto terminara con xito. Identificas con claridad tus dudas y encuentras la forma de plantearlas. Compartes con tus compaeros y profesor tus dudas. Tienes dudas sobre la gua, las lecturas o explicaciones de tu profesor y no haces preguntas. No sabes cmo plantear una pregunta.

Encuentras la forma de pedir ayuda cuando la necesitas. Realizas las actividades en equipo cuando tu profesor as lo solicita.

Siempre trabajas solo. Tienes problemas para entenderte con tus compaeros para la realizacin de tareas. Requieres de la ayuda de tus compaeros para entregar tus trabajos, pues evitas esforzarte para hacerlos por ti mismo. No se hizo el plan de trabajo o no se cumpli en absoluto con el plan. No hubo comunicacin entre los miembros del equipo.

Organizacin

Se realiz un plan de trabajo, se dio seguimiento parcial al plan de trabajo. Se complet el proyecto.

Total

Herramientas de desarrollo

43/53

Mdulo IV. Herramientas de desarrollo


1. Presentacin
Las herramientas no hacen al programador, pero un programador sin herramientas no puede hacer nada. Este mdulo tiene como objetivo iniciar una exploracin en el amplio campo de las herramientas de desarrollo de software, comenzando por los Lenguajes de Programacin. Las herramientas de desarrollo son un tema complementario al curso, es slo un pequeo acercamiento a los lenguajes de programacin. La intencin es que puedas observar cmo las ideas del pensamiento orientado a objetos definen las caractersticas de las herramientas. Objetivo: Explorar cmo se implementan las ideas centrales del Pensamiento Orientado a Objetos en algunas herramientas de desarrollo.

2.

Actividad preliminar

1. Pide a tu profesor que integre dos equipos de 5 integrantes, los dos equipos pasarn al frente. A cada integrante del equipo se le asignar una de las siguientes acciones (el orden de las acciones es importante): brincar, bailar, cantar, leer y rascar. 2. Tu profesor solicitar a ambos equipos que realicen alguna de las acciones asignadas, solamente pasar al frente el integrante que tenga la accin solicitada. 3. Clasificaremos a los equipos como equipo A y equipo B. Las reglas para el equipo A son: siempre deben realizarse las acciones en el mismo orden que se asignaron, es decir, si tu profesor pide que pase al frente quien tenga la accin leer, ser necesario que antes se ejecuten en el equipo las acciones de brincar, bailar y cantar; y hasta despus de ello pase al frente quien tiene asignado leer. Las reglas para el equipo B son: En cuanto tu profesor llame alguna de las acciones, quien tenga asignada dicha accin puede pasar al frente a realizarla. Los dems miembros del grupo deben analizar lo que sucede durante la actividad. 4. Al finalizar la actividad concluyan en plenaria cuales podran ser las ventajas y/o desventajas de esta clasificacin.

3.

Caractersticas mnimas para la Orientacin a Objetos


En el transcurso de esta unidad de aprendizaje nos hemos enfocado a la Programacin Orientada a Objetos, pero, Qu es la Programacin Orientada a Objetos? Qu caractersticas debe tener

Actividad Integradora del curso

un lenguaje de programacin para decir que es Orientado a Objetos? 1. Con base en una investigacin, completa la siguiente tabla, coloca una X en las caractersticas que s cumpla el lenguaje de programacin en turno. Herencia C++ Visula Basic Pascal Java Javascript 2. Cul(es) de los lenguajes de programacin anteriores son Orientados a Objetos? 3. Por qu se clasifican as? Algunos lenguajes OO. Lenguajes de POO Hablar de los lenguajes de programacin orientada a objetos es como hablar de la forma en que se prepara un emparedado. Cada lenguaje tiene sus caractersticas y sus formas de uso, que lo hacen nico. 4. Investiga 3 lenguajes de programacin orientado a objetos y completa la siguiente tabla en un procesador de textos. Recuerda que esta tabla te servir de referencia despus. Leguaje POO 1. Caractersticas Constructos y su funcin Estructura de operacin Polimorfismo Encapsulacin Clases Persistencia

2.

3.

5. Ahora contesta y realiza los siguientes puntos. a. Encontraste alguna similitud entre los lenguajes de programacin orientada a objetos que investigaste?

Actividad Integradora del curso

45/53

b. Crees que si aprendes a manejar alguno de ellos, podrs aprender ms fcil a usar los dems? c. Comparte con tus compaeros de clase tus respuestas. 6. Investiga sobre estilos de programacin y convencionalismos en la escritura de cdigo. Escribe aqu las ideas que te parezcan ms importantes.

Actividad Integradora
En el lenguaje de programacin que hayan elegido en tu grupo, realiza la construccin de 3 objetos que desarrollen funciones establecidas por tu profesor. Se sugiere que se haga una calculadora que, al momento de seleccionar el tipo de operacin ( + [suma], - [resta], * [multiplicacin], / [divisin]), realice de forma automtica la operacin. Es necesario que los procedimientos de las operaciones queden encapsulados. de ser necesario, pide a tu profesor que te explique cmo hacerlo.

Rbrica
Criterio Uso de estructuras OO en un Lenguaje de programacin 2 Defines clases. Defines mtodos y variables miembros de clase. Instancias objetos de tus definiciones de clase. Solicitas operaciones (procedimientos) a objetos de tus clases. Identificas y corriges errores comunes. Se utiliza un estilo consistente para identificadores y sangrado de texto. El cdigo incluye documentacin. Se escribe el programa por refinamientos. Total 1 Identificas la estructura de un programa en un lenguaje de programacin. Realizas el proceso de compilacin y ejecucin. 0 Copias cdigo de un programa en el editor del IDE. Compilas y ejecutas tu programa. Requieres de ayuda si algo sale mal. pts

Estilo de programacin

El cdigo de programa es legible pero existen inconsistencias en el estilo de escritura de cdigo.

No hay un estilo claramente definido en la escritura de cdigo.

Actividad Integradora del curso

46/53

Actividad Integradora del curso


1. Rene todas las soluciones que creaste a los problemas propuestos en este curso. Crea una tabla con las siguientes columnas: Ejercicio: Escribe el nombre de la aplicacin que creaste. Dificultades: Describe las dificultades que tuviste o que tienes con ese ejercicio. Aprend: Describe que fu lo que aprendiste al realizar el ejercicio. Importancia: Escribe el 1 para el ejercicio que tuvo mayor importancia para ti, un 2 el siguiente en importancia y as sucesivamente. Es preciso aclarar que t decides cul crees que fue ms importante PARA TI, independientemente de la opinin de tus compaeros y profesor. Por qu: Describirs por qu seleccionaste el de mayor y el de menor importancia.

2. Realiza un escrito donde expliques en qu consiste el pensamiento Orientado a Objetos. Piensa que ser dirigida a los futuros estudiantes que tomarn el curso que acabas de terminar. 3. Disea e implementa un programa que realice una presentacin de tu trabajo semestral. Incluye en l las clases de objetos que construiste a lo largo del semestre. La presentacin debe exponer dos ideas: Mostrar el trabajo que realizaste en el curso. Exponer el potencial del Pensamiento Orientado a Objetos.

4. Publica o expn tu programa.

Rubrica
Criterio 2 1 Inspeccionas y utilizas los procedimientos encapsulados en objetos lo creados por otros. Encapsulas procedimientos en objetos utilizando una 0 Eres incapaz de crear un procedimiento encapsulado en un objeto. Encapsulas procedimientos utilizando una herramienta de / pts

Eliges el nombre y Uso del encapsulamiento. decides las acciones de un procedimiento encapsulado para un objeto. Diseas el comportamiento de un objeto mediante un Anxos

conjunto de procedimientos encapsulados. Utilizas parmetros para flexibilizar en procedimiento encapsulado. Descompones tareas en Asignacin de responsabilidade responsabilidades. Encapsulando una parte s. de ellas. Presentas varias alternativas de solucin y evalas las ventajas de cada propuesta. Identificas las limitaciones de cada diseo Herencia Evitas la redundancia funcional utilizando herencia. Creas clases por especializacin utilizando herencia.

herramienta de desarrollo

desarrollo solo con ayuda externa.

Identificas tareas que pueden ser descompuestas. Encapsulas una parte de ellas.

No puedes identificar la necesidad de tomar decisiones en la asignacin de responsabilidades.

Creas clases por especializacin utilizando herencia.

Entiendes el concepto de herencia, pero no identificas claramente las ventajas que representa en la solucin de problemas. Solo puedes realizar tareas mientras alguien te gua. La herramienta te parece demasiado complicada.

Uso de la herramienta de desarrollo.

Puedes abrir, editar y correr programas, cuando algo sale haz encontrado la forma de hacerlo funcionar. Puedes ayudar a tus compaeros con sus programas. haz descubierto caractersticas de tu herramienta no contempladas por el curso o el profesor.

Puedes abrir, editar y correr programas, pero cuando algo no funciona necesitas mucha ayuda externa.

Autoaprendizaje Te sientes cmodo leyendo en bsqueda de respuestas. Ayudas a tus compaeros a disipar sus dudas Anxos

Identificas con claridad tus dudas y encuentras la forma de plantearlas. Compartes con tus compaeros y profesor

Tienes dudas sobre la gua, las lecturas o explicaciones de tu profesor y no haces preguntas. No sabes como 48/53

Consultas referencias externas para satisfacer tus inquietudes. Te anticipas en la lectura de los temas. Colaboracin Trabajas en equipo. Te apoyas en tus compaeros para realizar la realizacin de actividades, de la misma manera que brindas tu apoyo. Realizas tu mejor esfuerzo por realizar las tareas individuales y ser til a tu equipo. Siempre buscas aprender compartiendo ideas con otros. El plan de trabajo fue la base para la organizacin. Se realizan ajustes al plan que ayudaron a que el proyecto terminar con xito.

tus dudas.

plantear una pregunta.

Encuentras la forma de pedir ayuda cuando la necesitas. Realizas las actividades en equipo cuando tu profesor as lo solicita.

Siempre trabajas solo. Tienes problemas para entenderte con tus compaeros para la realizacin de tareas. Requieres de la ayuda de tus compaeros para entregar tus trabajos, pues evitas esforzarte para hacerlos por ti mismo. No se hizo el plan de trabajo o no se cumpli en absoluto con el plan. No hubo comunicacin entre los miembros del equipo.

Organizacin

Se realiz un plan de trabajo, se dio seguimiento parcial al plan de trabajo. Se completo el proyecto.

Total

Anxos

49/53

Anxos
Conociendo Alice
En la actividad preliminar creaste objetos en Alice, aun cuando no sabas que es Alice y menos el ambiente de desarrollo. Esta actividad te permitir saber un poco mas de esta herramienta. Primeramente, para trabajar con Alice, puedes descargarlo desde el sitio http://alice.org en este espacio elige del men downloads la opcin Sneak peek: Alice 3 beta. Una vez instalado, puedes ingresar a l desde el acceso directo que se gener. Como puedes observar, al iniciar Alice aparece una ventana semejante a esta, en la cual debes elegir el escenario en que deseas realizar tu proyecto, esta misma ventana contiene las pestaas de My Projects, desde donde podrs abrir proyectos que hayas guardado en las carpeta My Projects, de Alice, y la pestaa File System que permite buscar donde se localiza nuestro proyecto.

Una vez que has elegido el tipo de escenario que deseas, la ventana que muestra es como la Anxos 50/53

siguiente, en la cual podemos identificar diferentes elementos.


Ejecutar Estructuras de control

Lista de objetos en el escenario

Escenario
rea de cdigo

Inspector de objetos

Si en el rea de escenario das click en edit scene se ampliar, mostrando la librera de clases desde donde podrs crear tus objetos.

Anxos

51/53

Una vez que lo hayas hecho puedes regresar a la vista anterior dando clic en edit code. Podrs observar que en la lista de objetos del escenario aparece(n) el (los) objeto(s) que hayas agregado.

Le puedes agregar procedimientos y/o funciones o modificar sus propiedades desde el rea del inspector, teniendo seleccionado tu objeto, seleccionas el procedimiento a agregar y lo arrastras Anxos 52/53

hacia el rea de edicin del programa. Para probar el funcionamiento de tu escena, basta con dar clic en Run y podrs disfrutar de tu trabajo.

Anxos

53/53

También podría gustarte