VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...
VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...
VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
implementar sus primeras c<strong>la</strong>ses para resolverproblemas concretos, a ver los programas comouna colección estructurada <strong>de</strong> c<strong>la</strong>ses. Finalmente<strong>de</strong>be <strong>de</strong>sarrol<strong>la</strong>r un pequeño proyecto <strong>de</strong>programación que abarque <strong>de</strong> una forma globaltodos los conceptos estudiados en los ejercicios,en el que se puedan aplicar algunos patrones yheurísticas como <strong>la</strong> separación mo<strong>de</strong>lo-vista , elpatrón Observer y los patrones <strong>de</strong> reparto <strong>de</strong>responsabilida<strong>de</strong>s Contro<strong>la</strong>dor y Experto [6]. Enlos dos últimos cursos hemos encontradoa<strong>de</strong>cuado como proyecto <strong>de</strong> programación <strong>la</strong>implementación <strong>de</strong> un juego en el que variospersonajes interactuan en un escenario queimpone unas reg<strong>la</strong>s. La implementación exigediseñar <strong>la</strong>s c<strong>la</strong>ses que representan el escenario yuna jerarquía interesante para representar lospersonajes <strong>de</strong>l juego (con c<strong>la</strong>ses abstractas, códigogenérico, interfaces,...), y utilizar unos patronessencillos <strong>de</strong> co<strong>la</strong>boración entre objetos.Conviene seña<strong>la</strong>r que en este curso se cubrentodos los temas incluidos en PL6 (Object-Oriented Programming) <strong>de</strong>ntro <strong>de</strong>l ComputingCurricu<strong>la</strong> 2001, así como los objetivos <strong>de</strong>aprendizaje que allí se p<strong>la</strong>ntean.Las encuestas y comentarios <strong>de</strong> los alumnosmuestran su rechazo a <strong>la</strong> utilización <strong>de</strong> Java endos asignaturas <strong>de</strong> primer y segundo curso,<strong>de</strong>dicadas fundamentalmente a trabajar conestructuras <strong>de</strong> datos y el concepto <strong>de</strong> tipoabstracto <strong>de</strong> datos. Los alumnos se quejan <strong>de</strong> que<strong>de</strong>ben utilizar los conceptos OO sin conocerlos,actuando a base <strong>de</strong> recetas, “aquí hay que ponerObject”, “aquí <strong>de</strong>bes hacer una conversión <strong>de</strong>tipos”, “<strong>la</strong>s interfaces son un tipo <strong>de</strong> c<strong>la</strong>ses”.Reconocen que el conocimiento que tienen <strong>de</strong>Java no les ha sido <strong>de</strong> mucha ayuda a <strong>la</strong> hora <strong>de</strong>cursar IPOO, ya que tenían pocos conceptosc<strong>la</strong>ros. Estas opiniones refuerzan nuestra i<strong>de</strong>a <strong>de</strong>empezar con el paradigma procedural en el primercurso.4. Análisis y Diseño OOEste curso es una continuación <strong>de</strong>l anterior y se<strong>de</strong>dica a proporcionar al alumno una formaciónque le permita abordar <strong>de</strong> una forma sistemática el<strong>de</strong>sarrollo <strong>de</strong> aplicaciones OO, aplicando unproceso software. Se supone una parte teórica yotra práctica <strong>de</strong> tres créditos cada una. En <strong>la</strong>sc<strong>la</strong>ses teóricas, primero se <strong>de</strong>scribe el LenguajeUnificado <strong>de</strong> Mo<strong>de</strong><strong>la</strong>do, UML como notaciónestándar para el mo<strong>de</strong><strong>la</strong>do OO, luego se <strong>de</strong>scribeun proceso basado en UML y finalmente sepresentan y discuten los patrones <strong>de</strong> diseño <strong>de</strong>Gamma et al. [3].No cabe duda que actualmente el mo<strong>de</strong><strong>la</strong>doOO está centrado en UML que se ha convertido enun estándar “<strong>de</strong> facto”. En este curso se realizauna <strong>de</strong>scripción <strong>de</strong>tal<strong>la</strong>da <strong>de</strong>l lenguaje UML,analizando con <strong>de</strong>talle el mo<strong>de</strong><strong>la</strong>do <strong>de</strong> casos <strong>de</strong>uso, mo<strong>de</strong><strong>la</strong>do estructural, mo<strong>de</strong><strong>la</strong>do <strong>de</strong>lcomportamiento y mo<strong>de</strong><strong>la</strong>do dinámico.Tras <strong>la</strong> presentación <strong>de</strong> UML, se <strong>de</strong>scribe unproceso para UML orientado al <strong>de</strong>sarrollo <strong>de</strong>aplicaciones <strong>de</strong> gestión (business applications). Elproceso presentado es simple y está <strong>de</strong>stinado aaplicaciones cuyo <strong>de</strong>sarrollo no involucra equipos<strong>de</strong> programadores ni tiempos <strong>de</strong> <strong>de</strong>sarrollo muygran<strong>de</strong>s. Se trata <strong>de</strong> un proceso iterativo,incremental y guiado por los casos <strong>de</strong> uso, que esresultado <strong>de</strong> añadir una etapa <strong>de</strong> mo<strong>de</strong><strong>la</strong>do <strong>de</strong>negocio al proceso <strong>de</strong>scrito por Craig Larman [6].El mo<strong>de</strong><strong>la</strong>do <strong>de</strong> casos <strong>de</strong> usos y el mo<strong>de</strong><strong>la</strong>doconceptual se realiza a partir <strong>de</strong> los diagramas <strong>de</strong>actividad <strong>de</strong>l mo<strong>de</strong><strong>la</strong>do <strong>de</strong>l negocio siguiendo <strong>la</strong>stécnicas <strong>de</strong>scritas en [4] para i<strong>de</strong>ntificar casos <strong>de</strong>uso, vocabu<strong>la</strong>rio <strong>de</strong>l sistema y reg<strong>la</strong>s <strong>de</strong> negocio.Dentro <strong>de</strong> una formación básica en orientacióna objetos es obligado incluir los patrones <strong>de</strong>diseño o soluciones a problemas recurrentes en el<strong>de</strong>sarrollo <strong>de</strong> software OO. Los patrones hanadquirido bastante importancia en <strong>la</strong> comunidadsoftware, siendo fundamentales para obtener unaarquitectura software <strong>de</strong> calidad. En <strong>la</strong> actualidad,existe un consenso al consi<strong>de</strong>rar que los patrones<strong>de</strong> diseño <strong>de</strong>scritos en el libro Design Patterns [3]son parte <strong>de</strong>l núcleo básico <strong>de</strong> conocimientos <strong>de</strong>informática que un estudiante <strong>de</strong>be conocer, comose seña<strong>la</strong> en el Computing Curricu<strong>la</strong> 2001. Casi<strong>la</strong> mitad <strong>de</strong> <strong>la</strong> parte teórica <strong>de</strong> <strong>la</strong> asignatura se<strong>de</strong>dicará al estudio <strong>de</strong>tal<strong>la</strong>do <strong>de</strong> estos patrones,p<strong>la</strong>nteándose ejemplos que implican i<strong>de</strong>ntificarqué patrones conviene utilizar.Dentro <strong>de</strong> esta parte teórica también seintroduce el problema <strong>de</strong> <strong>la</strong> persistencia enaplicaciones OO, analizándose con <strong>de</strong>talle e<strong>la</strong>lmacenamiento <strong>de</strong> objetos en bases <strong>de</strong> datosre<strong>la</strong>cionales y presentándose el diseño <strong>de</strong> un nivel<strong>de</strong> persistencia [1,6]. Este diseño también sirvepara ilustrar el uso <strong>de</strong> patrones.