12.07.2015 Views

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 ...

SHOW MORE
SHOW LESS
  • 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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!