Beruflich Dokumente
Kultur Dokumente
Final no se que va
aqu pandito :D
DECTOR
Graficador MIA
ndiceY
Contenido
Yndi
INDICE DE FIGURAS...................................................................................................1
INDICE DE TABLAS.....................................................................................................1
Introduccin.....................................................................................................................2
Planteamiento del problema..........................................................................................2
Justificacin...................................................................................................................3
Objetivo general............................................................................................................4
Objetivos especficos.....................................................................................................4
CAPTULO 1. MARCO TERICO..............................................................................5
1.1 Lmites del proyecto....................................................................................................5
1.1.1 Qu es java?............................................................................................................6
1.1.2 Qu es NetBeans?...................................................................................................9
1.1.3 Qu es JMathPloth?..............................................................................................11
1.1.4 Qu es XML?........................................................................................................13
1.1.5 Qu es la Metodologia XP?..................................................................................16
CAPTULO 2. PLANIFICACIN DEL PROYECTO.............................................21
2.1 Descripcin del negocio........................................................................................21
2.2 Descripcin del cliente y usuario..........................................................................21
2.3 HISTORIAS DE USUARIO.................................................................................22
2. 4 ITERACIONES DEL PROYECTO.....................................................................23
2.5 PLAN DE ENTREGAS........................................................................................24
2.5.1 Iteraciones.......................................................................................................25
2.5.2 Cronograma de entregas de las historias de usuario...........................................27
CAPTULO 3. DISEO................................................................................................29
3.1 Diseos simples.....................................................................................................30
3.1.1 Prototipos de interfaces..................................................................................30
3.4 Refactorizacin de componentes...........................................................................45
3.5 Tarjetas C.R.C........................................................................................................48
CAPTULO 4. CODIFICACIN...............................................................................50
4.1 Disponibilidad del cliente......................................................................................50
4.2 Uso de estndares..................................................................................................50
4.3 Programacin dirigida por pruebas.......................................................................51
4.4 Programacin en parejas........................................................................................51
4.5 Integraciones permanentes....................................................................................52
4.6 Propiedad colectiva del cdigo..............................................................................53
4.7 Ritmo sostenido de trabajo....................................................................................53
CAPITULO 5. PRUEBAS FUNCIONALES..............................................................55
CONCLUSIONES.........................................................................................................56
RECOMENDACIONES...............................................................................................58
BIBLIOGRAFIA...........................................................................................................59
ANEXO...........................................................................................................................60
A.HISTORIAS DE USUARIO...............................................................................................................60
B. TARJETAS CRC................................................................................................................................67
C. PRUEBAS DE ACEPTACION..........................................................................................................71
D. GLOSARIO DE CLASES.................................................................................................................81
Graficador MIA
E. DIAGRAMA DE CLASES................................................................................................................85
INDICE DE FIGURAS
ILUSTRACIN 1- CODIGO DE JMATHPLOT...........................................................................13
ILUSTRACIN 2- FUNCIONALIDAD DEL FRAMEWORK JMATHPLOT LA GRFICA CORRESPONDE A
UNA FUNCIN MATEMTICA..................................................................................31
ILUSTRACIN 3- DISEO FINAL DE LA INTERFAZ DE USUARIO............................................32
ILUSTRACIN 4- MEN INICIO Y SUS OPCIONES...............................................................33
ILUSTRACIN 5- SELECTOR DE ARCHIVOS.......................................................................33
ILUSTRACIN 6- AVISOS DE CONSOLA............................................................................34
ILUSTRACIN 7- AVISO QUE SE LANZA CUANDO SE EST CERRANDO LA APLICACIN...........34
ILUSTRACIN 8- MEN OPCIONES....................................................................................34
ILUSTRACIN 9- MENSAJE CORRESPONDIENTE A LA GENERACIN CORRECTA DEL MODELO DE
GRAFICACIN...................................................................................................... 35
ILUSTRACIN 10- GENERACIN DE LA GRFICA DEL MODELO NORMALIZADO.....................36
ILUSTRACIN 11- VISOR DEL MODELO XML GENERADO...................................................36
ILUSTRACIN 12- MENSAJES EN CONSOLA DEL PROCESO......................................................37
ILUSTRACIN 13- VISUALIZACIN DE ARCHIVO DE RESULTADOS SIN NORMALIZACIN..................37
ILUSTRACIN 14- MEN GRFICA..................................................................................38
ILUSTRACIN 15- INTERFAZ QUE PERMITE CAMBIAR LOS VALORES DE LOS TRES EJES DE LA
GRFICA............................................................................................................. 39
ILUSTRACIN 16- ANTES................................................................................................ 40
ILUSTRACIN 17- DESPUS........................................................................................... 40
ILUSTRACIN 18- CAMBIO DE LEYENDA EN LA GRFICA CVX.............................................41
ILUSTRACIN 19- CAMBIO DE LEYENDA FINALIZADO........................................................41
ILUSTRACIN 20- GUARDAR UNA IMAGEN DE LA GRFICA................................................42
ILUSTRACIN 21- IMAGEN ALMACENADA.........................................................................42
ILUSTRACIN 22- MEN VENTANA...................................................................................43
ILUSTRACIN 23- SE MUESTRA QUE EL CONTENEDOR DE LA GRFICA FUE REDIMENSIONADO
MANUALMENTE................................................................................................... 44
ILUSTRACIN 24- SE MUESTRA EL CDIGO QUE GENERA UNA GRFICA DE DOS DIMENSIONES
......................................................................................................................... 45
ILUSTRACIN 25- RESULTADO FINAL DEL SPIKE SOLUTION............................................46
ILUSTRACIN 26- REFACTORIZACIN DEL NOMBRE DE UNA CLASE EN NETBEANS..............48
ILUSTRACIN 27- RENOMBRAMIENTO DE UNA CLASE DESDE NETBEANS............................48
ILUSTRACIN 28- FORMATO UTILIZADO PARA LAS TARJETAS CRC............................................50
ILUSTRACIN 29- RELACIN DEL RITMO LABORAL DEL PROYECTO....................................55
Graficador MIA
INDICE DE TABLAS
TABLA
TABLA
TABLA
TABLA
TABLA
TABLA
1..................................................................................................................... 27
2..................................................................................................................... 28
3..................................................................................................................... 29
4..................................................................................................................... 29
5..................................................................................................................... 62
6..................................................................................................................... 63
Graficador MIA
Introduccin
La siguiente documentacin tiene como objetivo, presentar el desarrollo del proyecto
Graficador de Encuestas, el cual fue realizado por estudiantes de la carrera de
Ingeniera en Sistemas Computacionales como parte de sus prcticas profesionales.
El desarrollo que se plantea a continuacin, muestra la implementacin adecuada de
una metodologa gil de programacin denominada eXtreme Programming.
El lector ser llevado a travs de distintos captulos en los cuales se explica todo el ciclo
de vida de este proyecto, en dichos captulos se dejan pruebas que respaldan los
resultados obtenidos. Se recomienda una atenta lectura de las ideas principales, para
obtener una mejor comprensin del tema.
Planteamiento del problema.
Es posible la elaboracin de un software que permita manipular los resultados de una
encuesta, normalizarlos de acuerdo a procesos administrativos y posteriormente
graficarlos?.
Esta pregunta surge en el mbito de trabajo en el Departamento de Maestra en
Ingeniera Administrativa del Instituto Tecnolgico de Orizaba, ya que actualmente se
est llevando a cabo un proyecto de investigacin titulado: Generacin, evaluacin y
seguimiento de un acuerdo de colaboracin entre una Institucin de Educacin
Superior y empresas productivas, con clave 4600.12-P.
Su finalidad es la obtencin de fondos de apoyo para la innovacin y desarrollo
tecnolgico de fuentes, en organizaciones gubernamentales y no gubernamentales. Al
mismo tiempo en el contexto de dicho proyecto, se estn desarrollando dos aplicaciones
web, las cuales permitirn encuestar a empresas que participen en acuerdos de
colaboracin entre una Institucin de educacin superior y empresas productivas.
Por lo cual, surge la necesidad de presentar los resultados de dichas encuestas en
grficas que sean de fcil entendimiento para personas que no estn familiarizadas con
estos procesos administrativos.
4
Graficador MIA
Justificacin.
Hoy en da es muy comn el uso de herramientas de software destinadas a la realizacin
de diversas tareas, las cuales en el pasado se llevaban a cabo de forma manual.
El objetivo de plasmar en software la automatizacin de dichas tareas, nos da como
resultado un esfuerzo humano menor, derivando as en una mejor y adecuada aprecicin
de la solucin de un problema.
Por lo tanto dentro del marco de este proyecto, surge la necesidad de automatizar el
proceso administrativo y estadstico, que implica la normalizacin de resultados de
encuestas, las cuales sern aplicadas a diversas empresas, dicha automatizacin
reducira el tiempo y esfuerzo que se empleara a la cuantifiacin de los resultados para
posteriormente graficarlos, esto le facilitar a personas ajenas al mbito administrativo
la apreciacin visual de los resultados obtenidos en dichas encuestas.
Por los motivos planteados, el Departamento de Maestra en Ingeniera Administrativa
decidi solucionar el problema, mediante el uso de un software, es donde entra la
especialidad de Ingeniera en Sistemas Computacionales, a la cual se recurri para el
desarrollo e implementacin de dicho software.
Objetivo general.
Desarrollar un software en el lenguaje de programacin Java que permita
normalizar los resultados de una encuesta, posteriormente llevar a cabo su
normalizacin en base a procesos administrativos y estadsticos previamente
establecidos, para finalmente obtener como resultado un modelo aplicable para una
graficacin visual en tres dimensiones.
Graficador MIA
Objetivos especficos.
Graficador MIA
CAPTULO
GENERALIDADES
Descripcin del proyecto
El departamento de Maestra en Ingeniera Administrativa del Instituto Tecnolgico de
Orizaba, es el responsable del proyecto Graficador de Encuestas. el equipo de
desarrollo est conformado por estudiantes de la carrera de Ingeniera en Sistemas
Computacionales y aceptaron la realizacin del mismo como parte de sus residencias
profesionales, este naci como necesidad derivada de un proyecto anteriormente
implementado en dicho departamento llamado Servidor de Encuestas, el cual en
trminos generales consiste en aplicar encuestas a distintas empresas para obtener
acuerdos financieros de colaboracin.
Sobre el equipo de desarrollo:
Alumno: Josephine Corio Elvira
Carrera: Ingeniera en Sistemas Computacionales
Especialidad: Tecnologas de Internet
Matrcula: 09010201
Alumno: Armando Dctor Sols
Carrera: Ingeniera en Sistemas Computacionales
Especialidad: Ingeniera de Software
Matrcula: 08011251
2.2 Descripcin del cliente y usuario
El proyecto fue pensado inicialmente por el cliente para ser utilizado por cualquier
persona con conocimientos bsicos de computacin, esto quiere decir que no existirn
restricciones en el uso ni en el acceso a las funcionalidades del mismo, el cliente es el
Dr. ngel Machorro Rodrguez, el cual tiene un cargo dentro del Departamento de
Maestra en Ingeniera Administrativa del Insituto Tecnolgico de Orizaba.
7
Graficador MIA
Markup Language.
1.1.5 Metodologa de diseo eXtreme Programming
Graficador MIA
Graficador MIA
CAPTULO 2
MARCO TERICO
1.1.1 Qu es java?
Segn el sitio web oficial de Java en espaol argumenta lo siguiente:
Java es un lenguaje de programacin y la primera plataforma informtica creada
por Sun Microsystems en 1995. Es la tecnologa subyacente que permite el uso de
programas punteros, como herramientas, juegos y aplicaciones de negocios. Java se
ejecuta en ms de 850 millones de ordenadores personales de todo el mundo y en miles
de millones de dispositivos, como dispositivos mviles y aparatos de televisin.
Ya entrados en el tema de lo que es Java ahora pondremos la definicin propia,
aclarando antes que la definicin fue hecha por ambos miembros del equipo y est
basada en los conocimientos acerca del lenguaje por parte de los integrantes del
proyecto.
Cmo comprende el equipo de desarrollo lo que es Java?
Java1 es un lenguaje de programacin de alto nivel,
de propsito general,
orientado a objetos, fue creado con el objetivo de poder ejecutar cualquier aplicacin
escrita en dicho lenguaje en cualquier dispositivo electrnico.
La popularidad de Java es muy extensa, ya que su gran flexibilidad permite crear
aplicaciones de escritorio, aplicaciones para mviles e incluso aplicaciones para la web.
Se eligi este lenguaje por su potencial al momento de desarrollar aplicaciones y la
independencia de plataforma que posee.
Por qu surge Java?
La empresa Sun Microsystems, comenz a desarrollarlo con el objetivo de crear un
lenguaje de programacin independiente de la plataforma y del sistema operativo,
Graficador MIA
orientado para el desarrollo de dispositivos electrnicos inteligentes, como televisores,
videos, equipos de msica, etc.
Este proyecto se denomino Green y se bas en C++, pero a medida que se avanzaba
en su desarrollo el equipo creador de Green comenz a tener ciertas dificultades
especialmente en el tema de la portabilidad, para evitar este problema decidieron
desarrollar su propio lenguaje, y en el verano de 1991 naci un nuevo lenguaje
orientado a objetos y fue bautizado como Oak.
Posteriormente en 1993 el proyecto Green se renombr y paso a llamarse First
Person Juc, a pesar de que Sun Microsystems invirti un gran capital y esfuerzo
humano para la terminacin de este proyecto, no se tuvo el xito esperado en el
mercado.
A mitad de 1993 se lanzo Mosaic que fue el primer navegador web y comenz a crecer
el inters por Internet, entonces Sun Microsystems redisea el lenguaje para desarrollar
aplicaciones web y en enero de 1995 Oak se convirti en Java.
Sun lanzo el entorno JDK 1.0 en 1996, el cual se convirti en la primera especificacin
formal de la plataforma Java. Desde entonces se han lanzado diferentes versiones,
aunque la primera versin comercial se denomino JDK 1.1 y fue lanzada a principios de
1997.
En diciembre de 1998 Sun Microsystems lanza la plataforma Java2, esta versin ya
presentaba la madurez de la plataforma Java, es cuando Sun la nombr finalmente
Java2.
Cul es su potencial?
Los programas hechos en Java se pueden empotrar en paginas HTML y descargarse por
navegadores web para llevar animaciones e interacciones de diversa ndole a los
clientes, pero su potencial no solo se limita a aplicaciones, Java es un lenguaje de
programacin de propsito general que posee caractersticas completas para la creacin
de cualquier aplicacin independiente o autnoma, ya que esta fundamentado en la
orientacin a objetos.
La programacin Orientada a Objetos (POO), es un enfoque de programacin muy
popular que desbanc a las tcnicas tradicionales de programacin procedimental
estructurada.
11
Graficador MIA
Sun
Microsystems
Informacin general
Paradigma
Apareci en
1995
Diseado por
Sun
Microsystems
Corporation)
(Oracle
Fuerte, Esttico
Influido por
Ha influido a
Sistema
operativo
Multiplataforma
Licencia
12
Graficador MIA
La razones expuestas anteriormente son la razn por la que se eligi a Java como
lenguaje de programacin a implementar para el desarrollo de la aplicacin Graficador
de Encuestas.
1.1.2 Qu es NetBeans?
NetBeans2 es un proyecto de cdigo abierto de gran xito con una gran base de usuarios,
una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo.
Sun MicroSystems fund el proyecto de cdigo abierto NetBeans en junio 2000 y
contina siendo el patrocinador principal de los proyectos.
Netbeans es una IDE sumamente completa, fcil de usar, cmoda y de excelente
calidad. Es muy famosa entre los programadores de java hoy en da, por lo que hay
mucha informacin al respecto.
El producto es de cdigo abierto y gratuito para uso tanto comercial y como no
comercial. El cdigo fuente est disponible para su reutilizacin de acuerdo con la
Common Development and Distribution License (CDDL).
A continuacion un breve resumen de la historia de NetBeans.
Cmo surge NetBeans?
Nos tenemos que remontar a 1996 e ir hasta Praga, en la repblica Checa, donde nace
un proyecto llamado Xelfi en el mbito universitario (Facultad de Matemticas y
Fsica). Se pretenda escribir un IDE para Java que se pareciera al que tena el lenguaje
Delphi (de ah el nombre de Xelfi). El cdigo fue escrito en Java, y se convirti en el
primero escrito en dicho lenguaje con la publicacin de su primera pre-release en el ao
1997.
Graficador MIA
Los autores vieron suficiente inters por el proyecto, para formar una empresa y
convertirlo en un proyecto comercial, con la inversin del empresario Roman Stanek.
En 1999, en primavera, vera la luz Netbeans DeveloperX2, con soporte para Swing,
que posteriormente se vera modificado para adaptarse al JDK 1.3, y hacerlo ms
modular.
Sun Microsystems se interesar por el proyecto en 1999, firmando un acuerdo en otoo
de ese ao.
En Junio del ao 2000, la empresa Sun Micro Systems funda el proyecto Netbeans bajo
los auspicios del software de cdigo abierto.
Capacidades de NetBeans
Suele dar soporte a casi todas las novedades en el lenguaje Java. Cualquier preview del
lenguaje es rpidamente soportada por Netbeans.
Es un buen editor de cdigo, multilenguaje, con el habitual coloreado y sugerencias de
cdigo, acceso a clases pinchando en el cdigo, localizacin de ubicacin de la clase
actual. Simplifica la gestin de grandes proyectos con el uso de diferentes vistas,
asistentes de ayuda, y estructurando la visualizacin de manera ordenada, lo que ayuda
en el trabajo diario.
Cuenta con herramientas para depurado de errores: el debugger que incluye el IDE es
bastante til para encontrar dnde fallan las cosas. Podemos definir puntos de ruptura en
la lnea de cdigo que nos interese, monitorizar en tiempo real los valores de
propiedades y variables. Incluso podemos usar el debugger en caliente, conectndonos a
l cundo ya tenemos un proceso ejecutndose.
A su vez tiene acceso a base de datos: desde el propio Netbeans podemos conectarnos a
distintos sistemas gestores de bases de datos, como pueden ser Oracle, MySql y dems,
y ver las tablas, realizar consultas y modificaciones, y todo ello integrado en el propio
IDE.
14
Graficador MIA
Razones por las que el equipo de desarrollo opt por usar NetBeans
Por las razones anteriores se decide usar el entorno NetBeans para la codificacion del
proyecto.
1.1.3 Qu es JMathPloth?
Es un marco de trabajo (del ingls FrameWork) desarrollado en el lenguaje de
programacin Java, se enfatiza en dar soporte a la creacin de grficas interactivas en
dos y tres dimensiones (2D y 3D). El potencial de esta herramienta radica en la simpleza
de su implementacin y la gran facilidad para grficar todo tipo de muestras nmericas,
desde nmeros enteros reales hasta funciones matemticas muy complejas.
Su licencia es del tipo new BSD (Berkeley Software Distribution), esto quiere decir que
es una licencia de software libre permisiva, dicha licencia es flexible respecto a la
distribucin lo que permite que el software pueda ser redistribuido como software libre
o semilibre.
15
Graficador MIA
Ilustracin 1
16
Graficador MIA
1.1.4 Qu es XML?
XML es un lenguaje extensible de etiquetas desarrollado por el World Wide Web
Consortium (W3C)3. Sus orgenes se remontan a un estndar ISO, conocido como
SGML (Standard Generalized Markup Language), el cual, a su vez, se bas en un
lenguaje creado por IBM en la dcada del 70, llamado GML (General Markup
Language), que buscaba resolver los problemas asociados al almacenamiento de un gran
volumen de datos en las empresas.
XML se convirti en una especie de SGML simplificado, ya que ste era muy complejo,
con la finalidad de que una aplicacin no tuviera que comprender SGML completo para
interpretar un documento, sino slo el subconjunto definido. En otras palabras, SGML
permite que la estructura de un documento pueda ser definida en base a la relacin
lgica de sus partes.
XML no naci, como muchos piensan, slo para su aplicacin en Internet, puesto que se
propone como un estndar para el intercambio de informacin estructurada entre
diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de
clculo y muchas otras alternativas.
Cmo Funciona XML?
XML es un lenguaje de marcacin (markup) para documentacin estructurada.
Por documentacin estructurada se entiende aquellos documentos que, adems del
propio contenido, presentan informacin acerca de la forma y/o el papel que desempea
dicho contenido.
Los documentos XML estn constituidos por las llamadas entidades u objetos, que
son unidades de almacenamiento que contienen datos tanto parsed como no parsed.
Dichos datos parsed estn formados por caracteres: unos forman el llamado carcter
data en el documento y otros forman el markup.
En realidad, XML es un metalenguaje, esto es, un lenguaje que sirve para describir otros
lenguajes, en este caso, de marcacin. Se basa en Unicode, que posee un conjunto de
3 Fuente de informacion : (Tejedores del Web)
17
Graficador MIA
caracteres de 16 bits, 8 ms que el ASCII. Todos los lenguajes XML pueden procesarse
mediante un simple parser, y prcticamente no existen lmites en espacios de nombres o
profundidad estructural, lo que lo hace especialmente atractivo para modelizacin de
datos.
XML propone una forma estndar de organizar nuestra informacin, flexible (permite
crear nuestras propias etiquetas), independiente de plataforma, sistema operativo y
lenguaje de programacin, y adems pensado para que los navegadores puedan trabajar
con l.
Historia de XML
En Noviembre de 1996, en una conferencia sobre el "padre" de XML (SGML - Standar
Generalized Markup Language) se presenta un reporte tcnico inicial respecto a XML.
En Marzo de 1997 se realiza la primera conferencia sobre XML, an con slo la idea
general al respecto; en Octubre de 1997 el World Wide Web Consortium define algunos
lineamientos fundamentales, para tener la primera edicin del estndar publicada en
Diciembre de 1997
Las motivaciones fundamentales del grupo de trabajo son:
1. XML est desarrollado para ser usado en Internet
2. XML est hecho pensando en desarrolladores, proveedores de contenido, buscadores
y todos los dems actores.
3. Debe ser relativamente fcil hacer programas para XML
4. No deben haber aspectos opcionales de XML, pues son ellos los que llevan a la
aparicin de incompatibilidades. En este sentido, XML es mucho ms estricto que
HTML
5. Si bien se debe poder leer XML y entenderlo razonablemente bien sin ayuda de un
editor, idealmente se espera que la gente cree sus documentos por medio de programas
ad-hoc
6. A pesar de lo anterior, debe poder hacerse un documento XML a mano o con un
programa sencillo
7. El estndar debe estar listo pronto y debe ser conciso y formal a la vez
18
Graficador MIA
Paralelo a los primeros pasos en XSL, entre Enero y Agosto de 1998 se trabaja en
obtener XQL, XLink y XPointer, que son lenguajes para poder realizar consultas y
referenciar documentos estructurados en XML. En Diciembre de 1998 se obtiene una
forma de describir el lenguaje HTML (el usado actualmente en Internet) en trminos de
XML y XSL. En Enero de 1998 se tiene una versin un poco ms estable de XSL y en
Febrero de 1998 se prepara el escenario determinando cmo distintas empresas podan
repartir los nombres de los identificadores para evitar confusiones entre ellas.
Paralelamente al desarrollo del estndar formal(con muy pocas cosas claras al respecto)
se ha ido desarrollando software. Uno de los objetivos de los desarrolladores de XML
era que "en menos de dos semanas, cualquier programador competente pueda hacer un
programa que funcione y maneje XML".
Dado que XML tiene una perspectiva web-cntrica, la mayora de los programas estn
hechos en Java, un lenguaje multiplataforma, optimizado para lograr un alto grado de
compatibilidad. Estos programas estn orientados a implementar el anlisis de un
documento XML (la parte fcil), la transformacin de documentos va XSL (la parte
ms o menos difcil) y el formateo y visualizacin de documentos va XSL (la parte
difcil).
Por qu conviene usar XML?
Porque los negocios de hoy en da dependen de la informacin y los datos pueden
provenir de varios orgenes de informacin distintos: bases de datos, pginas Web,
archivos de hojas de clculo y correo electrnico, por mencionar slo algunos. XML
permite trabajar con ms datos de ms orgenes y hacer ms cosas con esos datos.
XML puede extraer datos de varios orgenes de datos, almacenar la informacin en un
lugar para saber exactamente dnde buscarla y volver a utilizar los datos cuando y
donde los necesite.
Para el proyecto conviene usar XML ya que sera util en el momento de pasar los datos
de texto plano a su graficacion en 3D, ste permite que aplicaciones de escritorio se
19
Graficador MIA
comuniquen con otras para obtener datos o administrarlos, haciendo facil la transicion
de documento de texto plano a un codigo entendible para la aplicacin.
Objetivos principales de XML:
Por las razones anteriormente expuestas se decide utilizar el lenguaje XML para pasar
los resultados de las encuestas de texto plano a un lenguaje manejable para su
graficacion.
Graficador MIA
bsqueda de un mtodo que hiciera que los desarrollos fueran ms sencillos. Aplicando
el sentido comn. omg
Breve historia de la metodologia XP
La programacin extrema o eXtreme Programming (XP)4 es una metodologa de
desarrollo de la ingeniera de software formulada por Kent Beck, autor del primer libro
sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el ms
destacado de los procesos giles de desarrollo de software. Al igual que stos, la
programacin extrema se diferencia de las metodologas tradicionales principalmente en
que pone ms nfasis en la adaptabilidad que en la previsibilidad. Los defensores de la
XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural,
inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de
adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una
aproximacin mejor y ms realista que intentar definir todos los requisitos al comienzo
del proyecto e invertir esfuerzos despus en controlar los cambios en los requisitos.
Se puede considerar la programacin extrema como la adopcin de las mejores
metodologas de desarrollo de acuerdo a lo que se pretende llevar a cabo con el
proyecto, y aplicarlo de manera dinmica durante el ciclo de vida del software.
21
Graficador MIA
Este metodo se basa principalmente en valores o principios bien definidos:
1. Simplicidad.- La simplicidad consiste en desarrollar solo el sistema que
realmente se necesita. Implica resolver en cada momento solo las
necesidades actuales.
2. Feedback.- Una metodologia basada
en
el
desarrollo
iterativo
de
Escuchar: Escuchar los requisitos del cliente acerca del sistema a crear.
Planificacion
22
Graficador MIA
Rotaciones.
Las rotaciones evitaran que las personas se convertan en si mismas en un cuello
de botella. Las rotaciones permitiran que todo el mundo conozca como funciona el
sistema.
Reuniones.
Reuniones de seguimiento diarias.
Correciones.
Para que esto funcione correctamente hay que crearunidades de prueba de cada
mdulo que se desarrolle.
II.
Diseo
Simplicidad.
La simplicidad es la llave.
Tarjetas CRC.- Las tarjetas CRC (clase, responsabilidad y colaboracion) son una
metodologia para el diseo de software oreintado por objetos creada por Kent Beck y
Ward Cunningham.
Spike solutions.
Un programa spike, es un programa muy simple que explora una posible solucion al
problema.
Reciclaje.
El reciclaje implica mantener el codigo limpio y facil de comprender, modificar y
ampliar.
III.
Desarrollo
Estndares de implementacin
Programacin parejas
23
Graficador MIA
IV.
Pruebas
Implantacin:
El
cdigo
ser
implantado
cuando
supere
sus
Ventajas por las que el equipo opto por utilizar esta metodologia.
24
Graficador MIA
25
Graficador MIA
Se acord realizar las historias de usuario en lenguaje formal, ya que es primordial
comprender los requisitos del sistema en trminos del usuario.
Cuando se habla del lenguaje formal se refiere a una descripcin breve pero concisa de
todas las funcionalidades que el usuario desea contenga la aplicacin, pero sobre todo
que estas funcionalidades se ajusten a las necesidades del negocio sin entrar en
incongruencias.
Otro detalle que cabe resaltar fue que se aconsej un poco al cliente sobre las
herramientas a emplear, como el lenguaje de programacin, el marco de trabajo
empleado para la generacin de los grficos en 3D, asi como la adicin de
funcionalidades extras que coadyuvaron a darle una mejor funcionalidad a la aplicacin
y tambin le proporcionaron un mejor dinamismo.
Al final se obtuvieron un total de siete historias de usuario, fue un nmero pequeo, la
razn de esto es que el proyecto y sus especficaciones son relativamente pequeas, los
componentes a disear son pocos ya que as lo indic el cliente.
2. 4 ITERACIONES DEL PROYECTO
Basandonse en las investigaciones acerca de la metodologa XP se encontr que la
gestin del proyecto debe ser dividida en iteraciones, dichas iteraciones son
simplemente periodos de tiempo en los cuales se planea el desarrollo y posiblemente
alguna entrega de un componente de software en general. Aunado a lo anterior se
plante la siguiente cuestin:
Cuntas iteraciones eran necesarias dentro del marco del proyecto Graficador de
Encuestas?
Basndose en el nmero de historias de usuario realizadas en la primera semana de
planificacin del proyecto y mediante un anlisis preeliminar de alto nivel, sin enfatizar
tanto en la complejidad de los componentes especificados en dichas historias se
concluy que el nmero de iteraciones necesarias para el proyecto eran tres.
26
Graficador MIA
El nmero de iteraciones elegido es directamente proporcional al nmero de entregas a
realizar, lo que quiere decir que durante el ciclo de vida del proyecto se fijaron tres
fechas de entrega, las cuales consistieron simplemente en presentar avances de las
historias de usuario terminadas y del proyecto en general.
Tambin durante la duracin de estas iteraciones se aclararon algunos detalles a
modificar en los componentes ya creados, adiciones de nuevas funcionalidades a dichos
componentes as como la creacin de nuevos componentes ligados a nuevas necesidades
del cliente.
La duracin acordada para cada iteracin fue de una semana, es un tiempo mnimo y
relativamente corto, pero el plazo para el desarrollo en general del proyecto solamente
era de tres meses y medio aproximadamente, por lo tanto se hizo hincapi en utilizar el
menor tiempo posible para dichas iteraciones.
Cabe destacar que no hubo dependencia alguna con el cliente, todo gracias a la
precisin que hubo por parte del mismo al momento de realizar las historias de usuario.
El cliente detall bastante bien los requierimientos que necesitaba dentro de la
aplicacin, dejando solamente unas pequeas dudas al aire que no ocasionaron algn
inconveniente, dichas dudas se solucionaron en tiempo y forma para no retrasar las
entregas.
27
Graficador MIA
2.5.1 Iteraciones
Primera iteracin.
Se pretendi en la primera iteracin realizar los prototipos de las historias de usuario
ms importantes, dichos prototipos ya incluan las funcionalidades bsicas detalladas en
las fichas de usuario. Se sometieron a una revisin y posteriormente se corrigieron los
detalles pendientes.
Segunda iteracin.
Se acord disear las interfaces del usuario, se sometieron a pruebas rigurosas los
mdulos generados, se ensamblaron los componentes que ya haban sido aprobados y
quedaron pendientes solamente las historias ms relevantes o aqullas que an no
quedaban claramente definidas.
Tercera iteracin
La ltima iteracin solamente consisti en una revisin generalizada de la aplicacin,
todas las historias de usuario en sta etapa ya haban sido aprobadas, desarrolladas y
concluidas.
Las entregas se fijaron en las siguientes fechas:
Tabla 1
Num. Iteracin
Fecha
Tiempo
presentacin
26 de Septiembre de 2013 01:00 hr
24 de Octubre de 2013
01:00 hr
26 de Noviembre de 2013
01:00 hr
de
Graficador MIA
Cabe resaltar que algunas historias de usuario tenan un nivel de dificultad mayor que
otras, por lo tanto se hizo un concenso en el grupo de trabajo y se organizaron las
historias con una escala del 1 al 5 donde:
1 - 2 son prioridades bajas
3 - 4 prioridades medias
5 es una prioridad alta.
La utilizacin de la escala ayud a tener una mejor planeacin y organizacin en el
equipo de programadores, ya que al ser nicamente dos integrantes, se pudo dividir el
trabajo cuando se realizaron historias de usuario muy simples con una prioridad de 1-2,
cuando hubo prioridades medias 3-4 se realizaban las historias de usuario en equipo,
dejando algunos detalles a resolver de forma individual, ya que eran detalles
relativamente sencillos y por ltimo cuando hubo prioridades altas 5, se resolvieron las
historias de usuario en equipo y as finalizaron trabajando en equipo, al final todas las
historias de usuario se agruparon en un solo documento.
En la siguiente tabla nicamente se da descripcin de las historias de usuario creadas 5,
tambin se indica el nmero de iteracin en las que quedaron completadas.
Tabla 2 correspondiente a la planificacin de Historias de usuario.
No.
Descripcin
Prioridad
Riesgo en Nivel
de Iteracin
desarrollo
importancia
Alta
Alto
Alta
Alto
Alta
Alto
Alta
Media
Baja
Alto
Medio
Bajo
5
4
1
2
2
2
Baja
Bajo
2
3
4
5
6
7
Graficador MIA
2.5.2 Cronograma de entregas de las historias de usuario
Para llevar un control adecuado sobre la realizacin y entrega de las historias de usuario
se utiliz un cronograma, en el cual se especficaron las fechas de entrega y adems se
le aadi un estatus a cada historia dicho estatus se presenta de la siguiente forma:
Tabla 3 Estados de las historias de usuario
Tarea
Iniciada
Tarea
finalizada
Sin
revisin
El color rojo indicaba que la historia de usuario haba sido iniciada pero por
diversos motivos se detuvo su realizacin, la razon por la que se detuvo alguna
historia se debe a que no aprobaron en las revisiones durante las entregas por
detalles que quedaron pendientes de resolver, retrasando as su realizacin.
El color verde indicaba cuando una historia de usuario ya haba sido finalizada
con aceptacin del 100% y su estatus fu Finalizada
Iteracin 2
24/10/2013
Iteracin 3
26/11/2013
Entrega
16/12/2013
Finalizada
Finalizada
Finalizada
Finalizada
Pendiente
Finalizada
Revisada
Finalizada
Revisada
Finalizada
Revisada
Finalizada
Finalizada
-
Finalizada
-
Completado
30
Graficador MIA
Reuniones diarias de seguimiento
Las reuniones del equipo de trabajo fueron diarias de lunes a viernes y descansado los
fines de semana.
Durante las reuniones del equipo de trabajo se platic acerca de las dudas e inquietudes
que rondaban al desarrollo del proyecto, despus de aclarar las dudas se procedi a la
implementacin y creacin de tarjetas CRC del ings ClassResponsability
Collaboration card, las cuales fueron de bastante ayuda al momento de organizarse
dentro del equipo.
Como bien dice la metodologa XP, las tarjetas CRC simplemente son tarjetas de
responsabilidades las cuales son utilizadas en un grupo de trabajo para asignar ciertas
tareas, las cuales deben ser realizadas en un determinado lapso de tiempo, pueden ser
horas, das e incluso semanas.
Una vez que el equipo comprendi en que consistan las tarjetas CRC, se precedi a
analizar a fondo las historias de usuario y en base a ellas ir creando las tarjetas CRC
donde se plasmaba las tareas a realizar por parte de ambos miembros del equipo.
En las tarjetas CRC6 se agregarn de manera explicta las tareas a realizar tales como:
Creacin de clases.
Creacin de interfaces.
Graficador MIA
CAPTULO 3. DISEO
Dentro de este captulo se pretende informar al lector acerca del diseo en general de la
aplicacin Graficador de Encuestas.
Retomando lo planteado en el marco terico7, la metodologa eXtreme Programming,
recomienda la elaboracin de diseos simples y sencillos, todo esto para facilitar la
comprensin del funcionamiento de dicha aplicacin.
Siempre surgen debates cuando se llega a este punto en un proyecto, ya que el proceso
de diseo no es tan simple como pareciera, el tiempo siempre est contra reloj y surge la
necesidad de crear modelos arquitectnicos bien definidos de la estructura de las
aplicaciones.
Lo dicho en el parrfo anterior pierde su sentido cuando se destina un tiempo mnimo a
la elaboracin de un producto de software, es aqu cuando entran las ventajas de utilizar
la metodologa XP, ya que se recomienda en sta la creacin nicamente de diagramas
tiles entendibles para todo el equipo de desarrollo, guindose de la filosofa de no
perder tiempo en hacer un diseo tan rebuscado, todo lo anterior se refiere al hecho de
sacrificar la elegancia por la funcionalidad.
En este caso dentro del proyecto Graficador de Encuestas se opt por seguir dicha
filosofa, ya que entre ms tiempo se le dedicara a la construccin de un diseo elegante
la consecuencia sera el tener menos tiempo para implementar dichos diseos, en
resumen se necesitaba rpidez en el desarrollo.
Para el desarrollo del diagrama de clases8 se utiliz una herramienta CASE muy popular
llamada Visual Paradigm una versin para estudiantes.
Graficador MIA
Ilustracin 2
Graficador MIA
Lo mencionado anteriormente caus inequietud ya que no se tena experiencia con este
marco de trabajo, por lo tanto se decidi dedicar un tiempo de alrededor de una semana
al estudio de dicho componente.
El resultado final del estudio fue el diseo de la interfaz principal de usuario el cual se
aprecia en la Figura 3.2
Ilustracin 3
34
Graficador MIA
Otro punto a destacar que facilit la programacin de la aplicacin, fue que el diseo de
la interfaz sufri escasas modificaciones durante todo el ciclo de vida del
proyecto.Descripcin de las interfaces.
A continuacin se presenta una descripcin breve pero concisa de todas las interfaces
de usuario y sus funcionalidades.
Men Inicio:
Ilustracin 4
En la Figura 3.3 se muestra el men Inicio el cual contiene dos opciones, la primera
facilita al usuario la apertura y seleccin de un archivo de resultados de encuestas
sin normalizar.
Opcin Abrir archivo de resultado de encuesta.
En la Figura 3.4 se muestra el navegador de archivos, filtrando nicamente los
archivos con extensin *.txt (archivo de texto plano)los archivos finales de
resultados de encuestas tienen dicho formato.
35
Graficador MIA
Ilustracin 5
36
Graficador MIA
Una vez seleccionado el archivo se muestran los mensajes de las operaciones
realizadas en la consola, se puede apreciar que muestra el tiempo de realizacin de
la operacin as como la ruta absoluta correspondiente al archivo de resultados, tal y
como se muestra en la Figura 3.5
Ilustracin 6
Opcin Salir.
La opcin bien lo dice se refiere al cerrado de la aplicacin, claro que si existe algn
archivo cargado alguna tarea en proceso, se lanza un aviso, esto se muestra en la
Figura 3.6.
Ilustracin 7
Men Opciones
Ilustracin 8
37
Graficador MIA
Este men cuenta con dos opciones las cuales se aprecian claramente en la Figura
3.7, dichas opciones son de las ms importantes dentro de la funcionalidad de la
aplicacin, ya que son el corazn de la aplicacin, sin estas funcionalidades no se
podran generar las grficas para dichas encuestas.
Opcin Generar Modelo XML para Graficacin.
Previamente realizada la eleccin de un archivo de encuestas y cargado en la
aplicacin, se procede a seleccionar la opcin Generar Modelo XML para
Graficacin, si el archivo es vlido se mostrar un mensaje como en la Figura 3.8:
Ilustracin 9
38
Graficador MIA
Ilustracin 10
Ilustracin 11
39
Graficador MIA
Ilustracin 12
Ilustracin 13
40
Graficador MIA
Men Grfica
Ilustracin 14
Ilustracin 15
Figura 3.14 Interfaz que permite cambiar los valores de los tres ejes de la grfica.
Graficador MIA
Ilustracin 16
Ilustracin 17
42
Graficador MIA
Opcin Cambiar leyenda del escalar.
Otra funcionalidad que se le proporciona al usuario es el cambio de la leyenda de la
grfica, dicha interfaz se muestra en la Figura 3.17.
Ilustracin 18
Ilustracin 19
43
Graficador MIA
Opcin Guardar imagen de la grfica
Le permite al usuario guardar una imagen de la grfica generada, para futuras
referencias, cabe mencionar que el formato de la imagen generada es *.png (del ingls
Portable Netwok Graphic), se le proporciona al usuario el explorador de archivos y la
funcionalidad de que el mismo nombre a la nueva imagen, dicha funcionalidad se
aprencia en la Figura 3.17.
Ilustracin 20
Ilustracin 21
44
Graficador MIA
Ilustracin 22
45
Graficador MIA
En la Figura 3.22 se muestra la funcionalidad de los contenedores, se puede modificar
su tamao a voluntad, tambin pueden volver a su posicin original eligiendo la opcin
Resetear Ventanas.
Ilustracin 23
46
Graficador MIA
La prctica de Spike Solutions fue de vital importancia dentro del proyecto
Graficador de Encuestas, ya que se present una situacin donde fue necesario la
implementacin de dichas Soluciones rpidas, dicho problema surgi alrededor de la
implementacin del FrameWork JMathPlot, como se menciona al inicio de ste
captulo11, ninguno de los miembros del equipo de desarrollo tenan conocimientos
previos en la utilizacin de la herramienta, por lo tanto se acord hacer un pequeo
programa para estudio del mismo.
A continuacin se puede apreciar un pequeo ejemplo resultado del estudio de
JMathPlot:
Ilustracin 24
Figura 3.23 Cdigo de ejemplo para generar una grfica de dos dimensiones con JMathPlot
Graficador MIA
En la Figura 3.23 se ilustra un pequeo cdigo, el cual genera una grfica en dos
dimensiones, el resultado de la ejecucin de dicho cdigo es el siguiente:
Ilustracin 25
El equipo de trabajo consider bastante tiles las pruebas preeliminares realizadas con
JMathPlot, ya que el haber dedicado el suficiente tiempo al estudio del marco de
trabajo, coadyuv a evitar retrasos en las etapas posteriores del desarrollo de la
aplicacin.
3.4 Refactorizacin de componentes
La metodologa XP sugiere hacer mantenimiento constante del cdigo, ya que dicha
prctica ayuda a mantenerlo legible y sin incongruencias, menciona tambin que
constantemente se refactorice el cdigo generado en busca de fallas o mejoras que a
futuro mantengan una buena interaccin entre todos los componentes de la aplicacin,
una de las ventajas de programar en pareja radica en la retroalimentacin que surge del
trabajo en equipo, ya que si un integrante de la paraja de desarrollo halla algn detalle
48
Graficador MIA
que puede ser mejorado o corregido, ste le informar a su compaero y entre los dos
harn un concenso acerca de cual es la solucin ms ptima.
Dentro del desarrollo del proyecto Graficador de Encuestas, la refactorizacin fue
relevante, ya que existieron casos en los que no se especficaron adecuadamente
nombres de clases y atributos de la manera adecuada creando ciertas ambigedades en
el diseo y codificacin, afortundamente dichas ambigedades no causaron prdidas
irremediables de tiempo, ya que el IDE (entorno de desarrollo integrado)12 que se
eligi, tiene bondadosas cualidades al momento de refactorizar diferentes componentes,
esa fue una de las razones por las cuales de utiliz NetBeans.
Fuera de esos detalles pequeos la refactorizacin dentro del proyecto fue mnima, pero
con fines informativos se adhiri una imagen de muestra del proceso de refactorizacin
de algn componente en NetBeans.
Por ejemplo supongamos que se requiere cambiar el nombre X clase, lo primero que
se debe hacer es ir al navegador del proyecto, buscar la clase a renombrar y dar click
derecho sobre la clase, se aprecia sta secuencia en la Figura 3.5.1:
Ilustracin 26
Graficador MIA
Actio seguido saldr una nueva ventana donde se solicitar al usuario introducir el
nuevo nombre de la clase:
Ilustracin 27
50
Graficador MIA
Una vez analizado lo anterior, el equipo de desarrollo se puso a la tarea de realizar un
formato, el cual sera destinado para la elaboracin de las tarjetas CRC, dicho formato
se presenta en la Figura 3.25:
Ilustracin 28
51
Graficador MIA
CAPTULO 4. CODIFICACIN
4.1 Disponibilidad del cliente
Una sugerencia que nos hace la metodologa XP es que el cliente siempre est presente
en cada una de las etapas del ciclo de vida del proyecto, un problema que comn al
emplear esta metodologa es la dificultad por parte del cliente de reunirse con el equipo
de desarrollo, estes problemas en la mayora de casos terminan provocando retrasos en
la gestin del proyecto, es por ello que se deben tomar medidas de respaldo respecto a
dicho problema.
Sabiendo dicho problema el equipo de desarrollo decidi resolver las historias de
usuario lo ms rpido posible, ya que las reuniones con el cliente fueron relativamente
escasas, afortunadamente existi un intermediario entre el cliente y el equipo, dicho
intermediario fue el asesor interno del proyecto el M.C Manuel Panzi Utrera, cuando
surgieron dudas acerca de las implementaciones del cdigo, su asesoramiento fue de
vital importancia, resolviendo as todas las dudas, ya que el entraba en contacto
frecuentemente con el cliente del proyecto.
Graficador MIA
Graficador MIA
el buen trato y la interaccin entre ambos programadores y as evitar rencillas y prdidas
innecesarias de tiempo. Por tanto se recomienda para futuras referencias la
implementacin
de
la
programacin
en
parejas
como
algo
productivo
retroalimentable.
Otro factor que tambin coadyuv al buen desempeo del trabajo en equipo, fue el uso
de internet y diversos servicios de mensajera instantnea tales como facebook, ya que
lo importante es mantener la comunicacin entre el equipo.
Graficador MIA
4.6 Propiedad colectiva del cdigo
En esta etapa se debe establecer al cdigo de la aplicacin como un trabajo colectivo,
donde todos los involucrados en el desarrollo
Graficador MIA
Basndose en lo anteriormente mencionado, las horas destinadas a las jornadas de
trabajo se limitaron a un mximo de cuatro horas diarias, quedando tal y como se
muestra a continuacin:
Relacin del ritmo laboral estimado
Hora
s
Das x semana Semanas x mes
4
5
4
Ilustracin 29
Iteracin 1
80 hs.
Iteracin 2
80 hs.
Iteracin3 Total
80 hs.
240 hs.
56
Graficador MIA
Graficador MIA
CONCLUSIONES
Una vez finalizado el desarrollo del proyecto Graficador de Encuestas, el equipo se
reuni, para intercambiar comentarios acerca de la experiencia que implic el uso de la
metodologa XP.
El resultado final obtenido fue ms que satisfactorio, a pesar de que ciertos elementos
relacionados con la metodologa se desconocan, el equipo de desarrollo estuvo en
retroalimentacin constante, buscando informacin acerca de las cosas que se
desconocieran en torno a ella.
A continuacin se detallan los aspectos relevantes involucrados en este proyecto y la
metodologia XP.
Historias de usuario:
Sin duda alguna, una de las mejores caractersticas que posee eXtreme Programming
son las historias de usuario, dichas historias facilitan en gran medida el conocimiento
preeliminar de la naturaleza de la aplicacin.
Dentro de este proyecto, las historias de usuario fueron de vital importancia a lo largo
de todo el desarrollo, ya que fungieron como fuente de informacin para la aclaracin
de dudas, se recomienda siempre estar al tanto de la evolucin de las historias de
usuario, ya que en gran medida stas determinarn la mayor parte de la funcionalidad
involucrada con la aplicacin final.
Programacin dirigida por pruebas.
Una de las diferencias entre la metodologa XP respecto a otras metodologas clsicas,
es sin lugar a dudas la programacin dirigida por pruebas, ya que como se mencion en
captulos anteriores, en otras metodologas, las pruebas de aceptacin se realizaban
hasta el final del proyecto, esto podra parecer lo ms lgico en cualquier investigacin
y desarrollo de algn producto, pero en contraposicin con la ideologa de la
58
Graficador MIA
programacin extrema, dicha prctica lleva sin lugar a dudas a tener el control total
sobre el desarrollo del mismo, lo anterior se refiere al hecho, de que ahora la
codificacin del sistema o aplicacin, estar siempre condicionado por dichas pruebas.
Dentro del proyecto Graficador de Encuestas, la realizacin de los casos de prueba
antes que el cdigo fue de gran ayuda, ya que al momento de codificar, hubo menos
problemas tcnicos y lgicos ya que la realizacin e implementacin de todos los
componentes estuvo siempre regida por dichos casos.
Refactorizacin.
En una metodologa clsica la refactorizacin de componentes era visto como algo
tedioso, ya que era ms perjudicial que beneficioso, causaba una significable perdida de
tiempo, la razn de todo esto, era que cuando se necesitaba refactorizar un componente,
se tena que replantear la etapa de diseo, causando bastantes molestias en los grupos de
trabajo.
Como se mencion, una de las bondades de la metodologa XP, es la implementacin
del uso de la refactorizacin de componentes, sin replantear el diseo principal, ahora
los requisitos estn planteados en lenguaje formal del usuario y no en lenguaje tcnico
como antes sola ser, facilitando de amplia forma la correccin y reutilizacin del
cdigo generado.
En el desarrollo de este proyecto la refactorizacin de componentes fue de gran ayuda al
surgir modificaciones necesarias indicadas por el cliente, socavando de manera
satisfactoria la perdida de tiempo.
Para finalizar, cabe mencionar que una herramienta imprescindible en la actualidad, es
el uso del internet, a lo largo del ciclo de vida del proyecto Graficador de Encuestas, el
uso de esta herramienta fue de vital importancia, ya que se mantuvo la comunicacin
constante entre el equipo de desarrollo.
Por ltimo es necesario aadir que se recomienda favorablemente para futuros
desarrollos el uso de esta metodologa de diseo, ya que se produce un gran ahorro de
tiempo, esfuerzo e inversin.
59
Graficador MIA
RECOMENDACIONES
Antes de realizar el desarrollo de algn software, que involucre el uso de la
metodologa eXtreme Programming, se recomienda ampliamente capacitar a
todos los miembros del equipo de desarrollo, acerca de los manifiestos que
involucra el uso de dicha metodologia.
Muchos desarrolladores tienen la nocin de lo que es eXtreme Programming,
pero esto no quiere decir que sean expertos en el dominio de dicha metodologa,
por lo tanto se recomienda antes hacer evaluaciones a los miembros del equipo,
para saber que tanto conocimiento tienen acerca de ella.
En internet existe material muy rico en informacin acerca de eXtreme
Programming, por lo tanto se recomienda bajar manuales, ejemplos y leer toda
fuente de informacin posible que abunde sobre el tema.
Se recomienda no generar sobrecargas de trabajo entre los miembros del equipo,
esto en lugar de ser beneficioso es perjudicial ya que genera un impacto negativo
en la mentalidad de los desarrolladores.
Se recomienda que se genere un ambiente de trabajo agradable y confortable, ya
que en ocasiones el estrs es inevitable, por lo tanto se requiere un ambiente de
trabajo que ayude a los miembros del equipo a estar siempre tranquilos.
Como ltimo, se recomienda la propagacin de material informativo y
capacitacin acerca de eXtreme Programming, en las asignaturas de la
especialidad de la carrera de Ingeniera en Sistemas Computacionales del
Instituto Tecnolgico de Orizaba, ya que existe mucho desconocimiento acerca
del tema.
60
Graficador MIA
BIBLIOGRAFIA
(3.0, 2014)
3.0, L. C. (18 de Enero de 2014). Wikipedia. Obtenido de
http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema
(Avalos, 2011)
Avalos, J. L. (07 de Jun de 2011). Scribd. Obtenido de
http://www.scribd.com/doc/57257203/Metodologia-XP
(Avalos, 2011)
Avalos, J. L. (07 de Jun de 2011). Scribd. Obtenido de
http://www.scribd.com/doc/57257203/Metodologia-XP
(Corporation, 2013)
Corporation, O. (2013). NetBeans. Obtenido de https://netbeans.org/index_es.html
(Tejedores del Web)
Tejedores del Web. (s.f.). Obtenido de http://www.tejedoresdelweb.com/w/Introducci
%C3%B3n_XML#Historia_de_XML
(OReilly Media)
OReilly Media, I. (s.f.). O'Reilly XML.com . Obtenido de xml from the inside out :
http://www.xml.com/pub/a/98/10/guide0.html
(ORACLE)
ORACLE. (s.f.). Java. Obtenido de
http://www.java.com/es/download/faq/whatis_java.xml
(TortoiseSVN)
Apache (s.f) Subversion. Obtenido de
http://tortoisesvn.net/about.html
61
Graficador MIA
ANEXO
A. HISTORIAS DE USUARIO
Historia de Usuario
Nmero: 1
Riesgo en desarrollo:
Alto
Nivel de importancia : 5
Programador responsable: Josephine Corio Elvira
Descripcin:
El usuario debe ir a un men donde tendr una opcin que lo ayude a buscar el
archivo correspondiente a los resultados de una encuesta.
El buscador de archivos debe filtrar nicamente los documentos que coincidan
con el formato de resultados de encuestas. Dicho documento de resultados
estar sin normalizar, sto quiere decir que contendr solamente en su interior
las respuestas de la encuesta.
Una vez elegido el archivo mostrar un mensaje que indique si la operacin se
ha realizado
Observaciones:
Las encuestas se realizan mediante un servidor web de encuestas, los resultados se
almacenan en archivos de texto plano, dichos archivos contienen nicamente el valor
de cada respuesta.
El valor de stas respuestas va desde 1 como mnimo hasta 5 como mximo, por sta
razn para su graficacin las respuestas.deben ser normalizadas.
62
Graficador MIA
Historia de Usuario
Nmero: 2
Riesgo en desarrollo:
Alto
Nivel de importancia : 5
Programador responsable: Josephine Corio Elvira
Descripcin:
El usuario cuenta con una opcion el en menu, que convierte el documento sin
normalizar con los resultados de las encuestas en un formato adaptable para
ser grficado.
El documento que contiene los resultados de la encuesta debe ser simplificado
para su entendimiento, por lo cual los resultados seran divididos en 3 aspectos,
que son tiempo, conocimiento e inversion.
Asimismo se deben sumar las respuestas de cada aspecto para finalmente
obtener un solo valor por aspecto.
Observaciones:
El lenguaje utilizado para la normalizacion de los resultados de las encuestas es XML,
debido a su estandar para el intercambio de informacion estructurada entre diferentes
plataformas, es decir que nos sera util para tomar el contendido de cada encuesta y
pasarlo a un formato facil de emplear, para su graficacin.
63
Graficador MIA
Historia de Usuario
Nmero: 3
Riesgo en desarrollo:
Alto
Nivel de importancia : 5
Programador responsable: Armando Dector Solis
Descripcin:
El usuario cuenta con una opcion en el menu que permite transformar el
documento normalizado, en una grafica de tres dimensiones 3D.
La grafica debe ser interactiva con el fin de que el usuario pueda manipular y
ver con claridad cada uno de sus ejes.
Los ejes representaran los aspectos de Tiempo, Conocimiento e Inversion.
Observaciones:
La grafica se realiza mediante el marco de trabajo JMath Plot, el cual se enfatiza en
dar soporte a la creacion de graficas interactivas en 2D y 3D.
64
Graficador MIA
Historia de Usuario
Nmero: 4
Riesgo en desarrollo:
Alto
Nivel de importancia : 5
Programador responsable: Armando Dector Solis
Descripcin:
Con el fin de evitar que el usuario abra la aplicacin cada vez que necesite
visualizar la grafica de una encuesta, se tendr una opcion para guardar una
imagen de la grafica generada.
El usuario debe ir al menu, donde habr una opcion que permita guardar la
imagen de la grfica y elegir la ubicacin donde se almacenar.
La imagen se guarda con la orientacion que el usuario le d en ese momento a
la grfica, es decir, que se puede guardar en el angulo deseado.
Observaciones:
Para futuras referencias la aplicacin cuenta con la opcion de capturar y guardar una
imagen de la grafica generada, para esto se opto por usar los metodos del marco de
trabajo (Framework) JMath Plot, que permite adaptar el codigo con sus funciones.
65
Graficador MIA
Historia de Usuario
Nmero: 5
Riesgo en desarrollo:
Medio
Nivel de importancia : 4
Programador responsable: Josephine Corio Elvira
Descripcin:
El usuario tendr un men en el cual habr una opcin, donde se puedan
modificar los valores de los ejes de la grfica.
Cambiar el valor de los ejes debe ser sencillo para el usuario, contando este
con una ventana donde slo se ingrese el nuevo valor del eje deseado y dando
click en un botn, haga los cambios inmediatamente.
Observaciones:
66
Graficador MIA
Historia de Usuario
Nmero: 6
Riesgo en desarrollo:
Bajo
Nivel de importancia : 1
Programador responsable: Josephine Corio Elvira
Descripcin:
El usuario debe ir al menu y tener una opcion que le permita cambiar el color
del escalar.
Para cambiar el color el proceso debe ser facil, se debe mostrar una ventana
que muestre una cuadricula de colores ademas, contar con distintos modelos
de color como son HSV, HSL RGB y CMYK.
Lo unico que cambiara de color ser el punto en la grafica.
Observaciones:
El framework JMath Plot, cuenta con funciones para modificar el color, se acordo en el
equipo que adaptariamos el codigo con esas funciones.
67
Graficador MIA
Historia de Usuario
Nmero: 7
Riesgo en desarrollo:
Bajo
Nivel de importancia : 2
Programador responsable: Armando Dector Solis
Descripcin:
El usuario puede cambiar el nombre de la leyenda del escalar.
El usuario debe ir al menu donde habra una opcion, que diga cambiar la
leyenda del escalar.
El cambio debe ser sencillo, de preferencia que solo muestra una ventana
cambiar leyenda del escalar donde se puede introducir el nuevo nombre, dar
click en un boton y enseguida realizar el cambio y mostrarse en la grafica.
Observaciones:
De igual manera para hacer posible el cambio de nombre de la leyenda utilizaremos
las funciones del framework JMath Plot.
68
Graficador MIA
B. TARJETAS CRC
I.
Base de la aplicacin
Nombre: BaseMIA
CRC : 01
RESPONSABILIDADES:
COLABORADORES:
1.
Funciones:
File
dataResults,
String
nameFile,
NormalizeSurveyResults normalizedSurvey, BufferedReader
bufferResults, Plot3DPanel oGraphic, DefaultTableModel
viewResults, int state;
Nota: El tipo de clase est indicado en negritas, aplicar
funciones set y get.
II.
Normalizar los resultados de la encuesta
Nombre:
CRC : 02
NormalizeSurveyResults
RESPONSABILIDADES:
COLABORADORES:
1.
69
Graficador MIA
III.
Normalizar el XML
Nombre: NormalizeXML
CRC : 03
RESPONSABILIDADES:
COLABORADORES:
1.
CRC : 04
COLABORADORES:
resultados de la encuesta.
Hacer una funcin en la cual se pueda seleccionar el archivo.
Hacer una funcin que pueda restablecer las tablas de
resultados generadas.
Crear una funcin que permita visualizar el archivo de
resultados sin normalizar (el original)
Crear una funcin que se encargue de crear el modelo XML.
7.
8. Hacer una funcin para cambiar el color del escalar.
9. Hacer una funcin para cambiar la leyenda del escalar
10. Crear una funcin que permita guardar una imagen
11.
de la
grfica generada.
Crear una funcin que permita restablecer la posicin de la
grfica.
70
Graficador MIA
COLABORADORES:
VI.
Errores Personalizados
Nombre: MIAException
RESPONSABILIDADES:
1. Crear una funcin que
permita
personalizar
los errores.
CRC : 06
COLABORADORES:
Armando Dctor Sols
Josephine Corio Elvira
CRC : 07
RESPONSABILIDADES:
COLABORADORES:
1. Crear la interfaz de prueba la cual contenga
una barra de men.
Armando Dctor Sols
2. Crear un panel izquierdo para mostrar el Josephine Corio Elvira
XML y los resultados originales de la
encuesta.
3. Crear un panel derecho para mostrar la
grfica generada.
4. Crear un panel en la parte inferior que simule
una consola, donde se muestren las
operaciones realizadas como los errores
Funciones: rightPanelComponentMoved(), leftPanelComponentMoved(), consoleComponentMoved(),
VIII.
Ayuda
71
Graficador MIA
Nombre: Help
CRC : 08
RESPONSABILIDADES:
1. Crear una interfaz que
muestre un ndice de
contenido y una seccin
de Ayuda.
2. La seccin de Ayuda
muestra la solucin de
cada punto en el ndice.
Funciones: Help()
COLABORADORES:
Armando Dctor Sols
Josephine Corio Elvira
IX.
Cambiar el valor de los ejes
Nombre: ChangeAxesValues
CRC : 09
RESPONSABILIDADES:
COLABORADORES:
1. Crear una funcin que
permita cambiar los Armando Dctor Sols
ejes de la grfica que Josephine Corio Elvira
son
los
aspectos
tiempo, conocimiento e
inversin.
2. Crear una pequea
interfaz que permita
introducir los nuevos
datos de cada aspecto.
Funciones: ChangeAxesValues ().
72
Graficador MIA
C. PRUEBAS DE ACEPTACION
Nmero: 01
Nombre:
Seleccionar archivo de resultados de una encuesta
Descripcin: El usuario una vez que haya entrado en la aplicacin se dirige al men donde
selecciona la opcin Inicio Abrir archivo de resultado de encuesta, se le mostrara una
ventana de bsqueda para seleccionar el archivo de la encuesta a graficar, el buscador solo debe
filtrar archivos con la extensin .txt, una vez seleccionado el archivo se debe mostrar en la parte de
la consola el mensaje de dicha ejecucin.
Condiciones de Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
6.
Evaluacin de la Prueba:
Prueba Satisfactoria
73
Graficador MIA
Nombre:
Generar modelo XML para su graficacin
Descripcin:
Condiciones de Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
Evaluacin de la Prueba:
Prueba Satisfactoria
74
Graficador MIA
Nombre:
Visualizar archivo de resultados sin normalizar
Descripcin:
Entrada/Pasos de ejecucin:
1.
2.
3.
Evaluacin de la Prueba:
Prueba Satisfactoria
75
Graficador MIA
Nombre:
Funcionalidad de contenedores (Ventanas)
Descripcin: El usuario cuenta con funcionalidades para reestablecer las vistas de
las
ventanas, en el caso de que este las haya cerrado. El usuario se dirige al men, selecciona la opcin
Ventana. Se le mostrara un men desplegable con las alternativas Ventana de archivo la cual
reestablece la ventana del archivo, Ventana de grafica esta reestablece la ventana de la grfica,
Ventana de consola esta reestablece la ventana de la consola y Resetear ventanas esta opcin
reestablece todas las ventanas.
Condiciones de Ejecucin:
aplicacin.
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
6.
Resultado Esperado: Mostrar fcilmente las ventanas que el usuario puede eliminar y
tener la opcin de volver a visualizarlas.
Evaluacin de la Prueba:
Prueba Satisfactoria
76
Graficador MIA
Nombre:
Cambiar Valor de los Ejes
Descripcin: El usuario cuenta con funcionalidades para la grfica una de ellas es la de
cambiar los valores de los ejes, para ello el usuario debe ir al men, seleccionar la opcin Grfica
Cambiar valor de los ejes, se mostrara una ventana donde se deben introducir los nuevos
valores para los aspectos que forman el punto dentro de la grfica, Tiempo, Conocimiento e
Inversin.
Condiciones
de
Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
Evaluacin de la Prueba:
Prueba Satisfactoria
77
Graficador MIA
Nombre:
Cambiar Color del Escalar
Descripcin: El usuario tiene una opcin que le permite cambiar el color del escalar, con el
objetivo de que pueda visualizar con claridad el punto en la grfica. El usuario debe dirigirse al
men, en la opcin Grafica, dentro del men desplegable seleccionar la opcin Cambiar color
del escalar este a su vez nos mostrara una ventana con las muestras de colores a elegir, tambin
contara con cuatro pestaas con otros modelos de color que son HSV, HSL, RGB, CMYK que
igualmente permite al usuario a modificar el color a su gusto, para finalmente mostrar el punto en la
grfica con el color deseado.
Condiciones
de
Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
Resultado Esperado: Contar con la opcin para cambiar el color del escalar, con una
muestra de colores y que inmediatamente se muestre en la grfica el nuevo color seleccionado.
Evaluacin de la Prueba:
Prueba Satisfactoria
78
Graficador MIA
Nmero: 07
Nombre:
Cambiar Leyenda del Escalar
Descripcin:
Condiciones
de
Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
Resultado Esperado: Que se pueda cambiar el nombre de la grfica por medio de una
ventana y que el proceso sea rpido y sencillo para el usuario.
Evaluacin de la Prueba:
Prueba Satisfactoria
79
Graficador MIA
Nombre:
Guardar Imagen de la Grafica
Descripcin:
Condiciones
de
Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
Resultado Esperado:
Evaluacin de la Prueba:
Prueba Satisfactoria.
80
Graficador MIA
Nombre:
Reestablecer Grafica
Descripcin:
Condiciones
de
Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
Resultado
Esperado:
Evaluacin de la Prueba:
Prueba Satisfactoria
Graficador MIA
Historia de usuario (Nro. y Nombre)
10. Ayuda de la aplicacin
Nmero: 10
Nombre:
Ayuda de la Aplicacin
Descripcin: El usuario cuenta con una opcin en el men Ayuda, esta permite tener una
gua para nuevos usuarios, la cual contiene un ndice de contenido con preguntas frecuentes acerca
de la aplicacin, estos ndices son links los cuales al ser pulsados deben brindar al usuario un
manual de cmo resolver cada una de las preguntas, incluyendo imgenes que muestren como
resolver el problema paso a paso.
Condiciones de Ejecucin:
Entrada/Pasos de ejecucin:
1.
2.
3.
4.
5.
6.
Resultado Esperado:
Evaluacin de la Prueba:
Prueba Satisfactoria
D. GLOSARIO DE CLASES
NormalizeSurveyResults
82
Graficador MIA
Funcin
isNumeric(char digit)
Descripcin
Verifica que
Tipo
un
carcter
sea
numrico
boolean
Verifica que el total de lneas de un
archivo de resultados de encuestas
sea igual a 30, recibe como
counterLines(File survey)
isValidFile()
de
resultados
de
sin
normalizar
tenga
NormalizeXML
Funcin
un
formato
vlido.
boolean
Normaliza un archivo de resultados
de
normalizedResults()
encuestas
int
encuestas,
retornando
resultado en un array.
el
double []
Descripcin
Tipo
Extrae los valores contenidos en un
archivo xml correspondiente a la
estructura
de
una
encuesta
setTimeKnowledgeInversion() normalizada
void
Obtiene el valor correspondiente al
getKnowledge()
eje conocimuento
double[]
Obtiene el valor correspondiente al
getTime()
eje Tiempo
double[]
Obtiene el valor correspondiente al
getInversion()
eje Inversin
DriverMIA
Funcin
openSurveyFile()
viewFileChooser()
resetTableResults()
Descripcin
Abre
el
double[]
Tipo
archivo
sin
normalizar
correspondiente a la encuesta
Void
Proporciona el navegador de archivos
Void
Limpia la tabla donde se visualizan los Void
83
Graficador MIA
resultados sin normalizar
Permite visualizar el archivo del modelo xml
generado correspondiente a la encuesta
viewSurveyFile()
normalizada.
Void
Permite crear el modelo XML a partir de los
createModelXML()
xml
generado,
recibe
como
showGraphic(File modelXML)
changeAxesScales()
grfica
Void
Permite cambiar el color del escalar en la
generada
Void
Permite guardar una imagen en formato
saveGraphicImage()
resetZoom()
: XMLSurveyCreator
Funcin
getPathXMLFile()
Descripcin
Devuelve la
ruta
encuentra
el
correspondiente
Tipo
donde
se
archivo
al
modelo String
generado.
Obtiene el contenido de un archivo
getTemplateContent()
writteXMLFile()
Graficador MIA
correspondiente al resultado final
del proceso de normalizacin de los
resultados de una encuesta.
Obtiene
el
archivo
getXmlNormalizedModel()
XML
NormalizeXML
Funcin
Descripcin
Tipo
Hereda de la clase Exception,
lanzarlo.
Help
Funcin
initHelp()
ChangeAxesValues
Funcin
Constructor
Descripcin
Tipo
Inicia el componente de ayuda al usuario void
Descripcin
Tipo
Proporciona una interfaz que permite cambiar los
valores de los ejes en la grfica generada.
ChangeAxesValues
(Graficador3D oG3D)
ChangeAxesValues()
BaseMIA
Funcin
Descripcin
Tipo
Permite modificar el archivo de
setDataResultsFile
(File dataResults)
normalizar.
Void
Permite obtener el archivo de
resultados de la encuesta sin
getDataResultsFile()
normalizar.
File
Permite modificar el nombre del
setFileName(String
archivo de resultados de la
nameFile)
getFileName()
Graficador MIA
de resultados de la encuesta sin
normalizar.
Permite reinstanciar el acceso a
setNormalizedSurvey
la clase NormalizedSurvey la
(NormalizeSurveyResults
normalizedSurvey)
getNormalizedSurvey()
encuesta a analizar.
s
Obtiene el contenido de un
getBufferResults
(FileReader results)
setGraphic
(Plot3DPanel oGraphic)
getGraphic()
grfico.
Obtiene el objeto grfico
Void
Plot3DPanel
E. DIAGRAMA DE CLASES
86
Graficador MIA
87