Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TEMA:
DESARROLLO DE UNA APLICACION CLIENTE SERVIDOR
UTILIZANDO HERRAMIENTAS OPEN SOURCE PARA LA VENTA
DE TICKETS CON BUTACAS NUMERADAS DE UN TEATRO DE
CINE
TESIS
Previo a la obtencin del ttulo de
Tecnlogo en Sistemas de Informacin
PROPUESTO:
AVILA JORGE
PERALTA ANDRES
NDICE DE CONTENIDOS
Captulo I........................................................................................................8
1.1.
Java....................................................................................................................1.1-8
1.1.1. Historia..............................................................................................1.1.1-10
1.1.2. Filosofa............................................................................................1.1.2-15
1.1.3. Sintaxis..............................................................................................1.1.3-20
1.1.4. Criticas..............................................................................................1.1.4-26
1.1.5. Java en cdigo abierto.......................................................................1.1.5-33
1.1.5.1. Alternativas libre....................................................................1.1.5.1-34
1.1.5.2. Criticas referentes a Java y software libre.............................1.1.5.2-34
1.2.
1.3.
Eclipse.............................................................................................................1.2-38
1.2.1.
Arquitectura....................................................................................1.2.1-40
1.2.2.
Caractersticas.................................................................................1.2.2-43
1.2.3.
Historia...........................................................................................1.2.3-44
Swing...............................................................................................................1.3-46
1.3.1. Historia..............................................................................................1.3.1-47
1.3.2. Arquitectura......................................................................................1.3.2-49
1.3.3. Ventajas.............................................................................................1.3.3-51
1.4.
BIRT Project....................................................................................................1.4-53
1.4.1. Historia..............................................................................................1.4.1-54
1.4.2. Versiones...........................................................................................1.4.2-55
1.5.
ArgoUML........................................................................................................1.5-56
1.5.1. Caractersticas...................................................................................1.5.1-59
1.5.2. Desventajas.......................................................................................1.5.2-61
1.6.
MySQL............................................................................................................1.6-63
1.6.1. Historia del proyecto.........................................................................1.6.1-63
1.6.2. Lenguaje de programacin................................................................1.6.2-64
1.6.3. Aplicaciones......................................................................................1.6.3-65
1.6.4. Versiones...........................................................................................1.6.4-65
1.6.5. Especificaciones................................................................................1.6.5-69
1.6.6. Licencia.............................................................................................1.6.6-70
1.7.
Ingeniera de Software....................................................................................1.7-74
5
Captulo II................................................................................................1.7-91
2.1.
Recoleccin de requerimientos.......................................................................2.1-91
2.2.
Especificacin de Requerimientos................................................................2.2-100
2.2.1. Requerimientos funcionales............................................................2.2.1-106
2.2.2. Requerimientos no funcionales.......................................................2.2.2-111
Captulo III.........................................................................................2.2.2-112
3.1.
3.2.
Diagrama de clases........................................................................................3.2-113
3.3.
3.4.
Diagrama de secuencia..................................................................................3.4-113
3.5.
Diagrama de componentes............................................................................3.5-113
3.6.
Captulo IV............................................................................................3.6-114
4.1.
4.2.
Interfaces de usuario......................................................................................4.2-114
4.3.
Programacin.................................................................................................4.3-114
4.4.
Pruebas..........................................................................................................4.4-114
4.4.1. Pruebas de caja blanca....................................................................4.4.1-114
4.4.2. Pruebas de caja negra......................................................................4.4.2-114
4.5.
Documentacin..............................................................................................4.5-114
4.5.1.
Documentacin interna...........................................................................4.5.1-114
4.5.2.
Documentacin externa..........................................................................4.5.2-114
4.5.3.
Manual de usuario...................................................................................4.5.3-114
Capitulo V...........................................................................................4.5.3-115
Captulo I
MARCO TEORICO
1.1.
Java
La compaa Sun describe el lenguaje Java como simple, orientado a objetos, distribuido,
interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones,
multitarea y dinmico". Adems de una serie de halagos por parte de Sun hacia su propia
criatura, el hecho es que todo ello describe bastante bien el lenguaje Java, aunque en
algunas de esas caractersticas el lenguaje sea todava bastante mejorable.2
1.1.1. Historia
En 1991, la empresa Sun Microsystems crea el lenguaje Oak (de la mano del llamado
proyecto Green). Mediante este lenguaje se pretenda crear un sistema de televisin
interactiva. Este lenguaje slo se lleg a utilizar de forma interna. Su propsito era
crear un lenguaje independiente de la plataforma y para uso en dispositivos
electrnicos.
Se intentaba con este lenguaje paliar el problema fundamental del C++; que consiste
en que al compilar se produce un fichero ejecutable cuyo cdigo slo vale para la
plataforma en la que se realiz la compilacin. Sun deseaba un lenguaje para
programar pequeos dispositivos electrnicos. La dificultad de estos dispositivos es
que cambian continuamente y para que un programa funcione en el siguiente
dispositivo aparecido, hay que rescribir el cdigo. Por eso Sun quera crear un
lenguaje independiente del dispositivo.
2
TECNUM, Aprenda Java como si estuviera en primero, San Sebastin, Enero 2000, online,
http://www.tecnun.es/asignaturas/Informat1/AyudaInf/aprendainf/Java/Java2.pdf
Es interpretado (lo que acelera su ejecucin remota, aunque provoca que las
aplicaciones Java se ejecuten ms lentamente que las C++ en un ordenador
local).
Permite multihilos
Es independiente de la plataforma
10
Clases internas
11
12
Metadatos.
Enumeraciones.
Java.
especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y
JAXP.
1.1.2. Filosofa
6
Monogarfias.com, Lenguaje Java, Ruben Ajata Guarahi, La Paz, Abril 2011, online,
http://www.monografias.com/trabajos-pdf4/programacion-java-eispdm/programacion-java-eispdm.pdf
7
WIKIPEDIA, Java, Espaa, 2012, online, http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci
%C3%B3n)
13
14
15
11
16
17
13
18
1.1.3. Sintaxis
La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de ste, que
combina la sintaxis para programacin genrica, estructurada y orientada a objetos,
Java fue construido desde el principio para ser completamente orientado a objetos.
Todo en Java es un objeto (salvo algunas excepciones), y todo en Java reside en
alguna clase (recordemos que una clase es un molde a partir del cual pueden crearse
varios objetos). 14
Hola mundo
14
19
El cdigo fuente se guarda en archivos con el mismo nombre que la clase que
contienen y con extensin .java. Una clase (class) declarada pblica
(public) debe seguir este convenio. En el ejemplo anterior, la clase es Hola,
por lo que el cdigo fuente debe guardarse en el fichero Hola.java
El mtodo main debe aceptar un array de objetos tipo String. Por acuerdo se
referencia como args, aunque puede emplearse cualquier otro identificador.
15
20
La palabra reservada public significa que un mtodo puede ser llamado desde
otras clases, o que la clase puede ser usada por clases fuera de la jerarqua de
la propia clase. Otros tipos de acceso son private o protected.
16
21
17
22
18
23
el
marco
frame
llamando
al
mtodo
19
A continuacin se crea un
objeto de tipo JLabel con el texto "Hola, mundo!", y se aade al marco mediante el
mtodo add (Component), heredado de la clase Container. El mtodo pack(),
19
BLIGOO, Principales controles para crear una aplicacin en Java, Febrero 2011, online,
http://investigacion1java.bligoo.ec/principales-controles-para-crear-una-nueva-aplicacion-enjava#.UkclGtKBlmM
24
1.1.4. Criticas
En 1995 alguien dijo que Java fue creado para abrir una nueva va en la gestin de
software complejo, y es por regla general aceptado que se ha comportado bien en ese
aspecto. Sin embargo no puede decirse que Java no tenga grietas, ni que se adapta
completamente a todos los estilos de programacin, todos los entornos, o todas las
necesidades.
25
por el usuario. Los diseadores de Java tomaron esta decisin puesto que
consideraban que, bajo ciertas circunstancias, esta caracterstica poda
complicar la lectura y mantenimiento de los programas. 21
Apariencia: La apariencia externa (el look and feel) de las aplicaciones GUI
(Graphical User Interface) escritas en Java usando la plataforma Swing difiere a
menudo de la que muestran aplicaciones nativas. Aunque el programador puede usar
el juego de herramientas AWT (Abstract Windowing Toolkit) que genera objetos
grficos de la plataforma nativa, el AWT no es capaz de funciones grficas avanzadas
sin sacrificar la portabilidad entre plataformas; ya que cada una tiene un conjunto de
APIs distinto, especialmente para objetos grficos de alto nivel. Las herramientas de
Swing, escritas completamente en Java, evitan este problema construyendo los
objetos grficos a partir de los mecanismos de dibujo bsicos que deben estar
disponibles en todas las plataformas. El inconveniente es el trabajo extra requerido
21
26
27
extrao
que
de
este
nos
28
29
se
deben
ejecutar
con
la
ayuda
de
un
30
Para seguir metiendo el dedo en la llaga, Windows XP vena sin JVM. Y luego
de perder otro juicio contra Sun, Microsoft tuvo que incluir otra de sus
deficientes JVMs para seguir disimulando.
26
31
32
33
GNU.ORG, Libre pero encadenado la trampa de JAVA, Richard Stallman, Septiembre 2012, online,
http://www.gnu.org/philosophy/java-trap.es.html
34
BLOGSPOT, Software libre, informtica, y #bacil, Richard Stallman, Febrero 2013, online,
http://krypto84sv.blogspot.com/2008/02/la-trampa-de-net.html
35
prohbe
publicar
nada
que
sea
menos
que
una
31
36
1.2.
Eclipse
GNU.ORG, Libre pero encadenado. La trampa del Java, Richard Stallman, Abril 2004, online,
http://www.gnu.org/philosophy/java-trap.es.html
37
tambin
se
puede
usar
para
otros
tipos
de
aplicaciones
cliente,
33
38
1.2.1. Arquitectura
La base para Eclipse es la Plataforma de cliente enriquecido (del Ingls Rich Client
Platform RCP). Los siguientes componentes constituyen la plataforma de cliente
enriquecido:
Los widgets de Eclipse estn implementados por una herramienta de widget para
Java llamada SWT, a diferencia de la mayora de las aplicaciones Java, que usan las
opciones estndar Abstract Window Toolkit (AWT) o Swing.34 La interfaz de usuario
de Eclipse tambin tiene una capa GUI intermedia llamada JFace, la cual simplifica
la construccin de aplicaciones basadas en SWT.
El entorno de desarrollo integrado (IDE) de Eclipse emplea mdulos (en ingls plugin) para proporcionar toda su funcionalidad al frente de la plataforma de cliente
enriquecido, a diferencia de otros entornos monolticos donde las funcionalidades
estn todas incluidas, las necesite el usuario o no. Este mecanismo de mdulos es una
plataforma ligera para componentes de software. Adicionalmente a permitirle a
Eclipse extenderse usando otros lenguajes de programacin como son C/C++ y
Python permite a Eclipse trabajar con lenguajes para procesado de texto como
LaTeX, aplicaciones en red como Telnet y Sistema de gestin de base de datos. La
arquitectura plugin permite escribir cualquier extensin deseada en el ambiente,
como sera Gestin de la configuracin. Se provee soporte para Java y CVS en el
SDK de Eclipse. Y no tiene por qu ser usado nicamente para soportar otros
lenguajes de programacin.35
34
ZINTEGRA, Eclipse Herramienta universal- IDE abierto y extendible, Admin, Mayo 2013, online,
http://zintegra.net/archives/666
35
WIKIPEDIA, Eclipse software, Espaa, Julio 2012, online, http://es.wikipedia.org/wiki/Eclipse_(software)
39
1.2.2. Caractersticas
Eclipse dispone de un Editor de texto con resaltado de sintaxis. La compilacin es en
tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS,
integracin con Ant, asistentes (wizards) para creacin de proyectos, clases, tests,
etc., y refactorizacin. 37
36
41
38
42
1.2.3. Historia
Eclipse es un IDE (Integrated Development Environment) open source y extensible.
El proyecto se lanz originalmente en Noviembre de 2001, cuando IBM don 40
millones de dolares del cdigo fuente de Websphere Studio Workbench y form el
Eclipse Consortium para controlar el desarrollo continuado de la herramienta. 39
El objetivo de Eclipse era "desarrollar una plataforma industrial robusta, con todas
las caractersticas y de calidad industrial para el desarrollo de herramientas altamente
integradas". Al final, el Eclipse Consortium se haba enfocado en tres proyectos
principales:
editor
con
sntaxis
39
PROGRAMACION.COM, Eclipse I Historia y toma de contacto, Rene Rene, Enero 2011, online,
http://www.programacion.com/articulo/eclipse_--_i_--_historia_y_toma_de_contacto_288
43
44
1.3.
Swing
Swing es una biblioteca grfica para
Java. Incluye widgets para interfaz
grfica de usuario tales como cajas de
texto, botones, desplegables y tablas.
El paquete Swing es parte de la JFC
(Java Foundation Classes) en la
plataforma Java. La JFC provee
facilidades para ayudar a la gente a
construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc.
Las componentes Swing se identifican porque pertenecen al paquete javax.swing.
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las
interfaces grficas con el usuario se realizaban a travs de AWT (Abstract Window
Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda
componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase
Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las
componentes Swing comienza con "J").
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de
eventos AWT, el cual rige cmo una componente reacciona a eventos tales como, eventos
45
1.3.1. Historia
Las Internet Foundation Classes (IFC) eran una biblioteca grfica para el lenguaje de
programacin Java desarrollada originalmente por Netscape y que se public en
1996.
Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes
grficos conocida como AWT. Esta biblioteca estaba concebida como una API
estandarizada que permita utilizar los componentes nativos de cada sistema
operativo. Entonces una aplicacin Java corriendo en Microsoft Windows usara el
botn estndar de Windows y una aplicacin corriendo en UNIX usara el botn
estndar de Motif. En la prctica esta tecnologa no funcion:
vuelve muy difcil construir aplicaciones portables. Fue por esto que el eslogan
de Java "Escrbalo una vez, ejectelo en todos lados" fue parodiado como
"Escrbalo una vez, prubelo en todos lados".
En cambio, los componentes de IFC eran mostrados y controlados directamente por
cdigo Java independiente de la plataforma. De dichos componentes se dice con
frecuencia que son componentes ligeros, dado que no requieren reservar recursos
43
UNIVERSIDAD DE CHILE, Swing la solucin actual de Java, Chile, Marcela Calderon, 2011, online,
http://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html
46
1.3.2. Arquitectura
Es un framework MVC para desarrollar interfaces grficas para Java con
independencia de la plataforma. Sigue un simple modelo de programacin por hilos,
y posee las siguientes caractersticas principales:
Independencia de plataforma.
TWITDOC.COM, Todo sobre SWING, Elkin Doney Suarez, Diciembre 2011, online,
http://twitdoc.com/upload/elkinsuarezg/cap-vi-swing.pdf
45
WIKIPEDIA, Swing (biblioteca grafica), Espaa, Julio 2012, online,
http://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)
47
que provee el soporte que las componentes Swing necesitan para el pintado y el
manejo de eventos.
Otras componentes colgando del contenedor de alto nivel (stas pueden ser
46
Universidad de Chile, Swing, la solucin actual de Java, Chile, Marcela Calderon, 2011, online,
http://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html
48
//JDK 1.3+
UCHILE.CL, Swing la solucin actual de JAVA para crear GUIs, Marcela Calderon, Abril 2010, online,
http://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html
49
1.3.3. Ventajas
La programacin en Java ha comenzado a despegar simplemente debido a su
capacidad de hacer programas en mltiples plataformas. Esto es no slo cierto para
computadoras porttiles pero Java tambin est presente en las PC de bolsillo e
incluso en los telfonos mviles estndar. Debido a esto, ya hay un montn de gente
que desea programar con Java y aprovechar este gran y creciente mercado.
La programacin en Java significa que debes tener las herramientas adecuadas a fin
de terminar tu proyecto rpida y eficientemente. Una de las herramientas esenciales
es el componente de GUI (interfaz grfica de usuario). Esto permite agregar
fcilmente el componente grfico sin la mayor parte de la programacin necesaria.
En esta categora, hay dos de las que puedes elegir. La primera es la AWT (Abstract
Window Toolkit) y el segundo es el swing, que apareci ms tarde.
Estos kits de herramientas tienen sus propias ventajas y desventajas que los hacen
adecuados para los distintos tipos de necesidades de programacin. El AWT utiliza
muchos de los comandos de la plataforma que le da una gran cantidad de velocidad.
Pero a fin de convertirlo para su uso en otras plataformas, debe cambiar los
comandos de la contraparte. Por otro lado, Swing utiliza cdigo Java puro,
hacindolo muy porttil
plataformas. 48
Otra caracterstica de swing es que trata de emular la apariencia del sistema operativo
que se ejecuta en lo que se asemejan al entorno nativo. Esto es mejorado por AWT ya
que utiliza comandos nativos; se ve exactamente como se ve el UI , interfaz de
48
50
49
51
1.4.
BIRT Project
El proyecto Business Intelligence and Reporting Tools (BIRT) (en espaol, Inteligencia de
negocio y herramientas de informes) es un proyecto de software de cdigo abierto que
proporciona capacidades de creacin de informes y de inteligencia de negocio para clientes
pesados (fat clients) y aplicaciones web, especialmente aquellas basadas en Java y Java
EE. BIRT es un proyecto de software de alto nivel dentro de la Eclipse Foundation
(fundacin Eclipse), un consorcio de proveedores de la industia del software sin nimo de
lucro y una comunidad de cdigo abierto.
Los objetivos del proyecto son cubrir un ancho rango de necesidades de creacin de
informes dentro de una aplicacin tpica,1 abarcando desde informes operacionales o de
empresa hasta procesamiento multi-dimensional analtico en lnea (OLAP). Inicialmente,
el proyecto se ha enfocado en capacidades que permitan a los desarrolladores de
aplicaciones disear e integrar fcilmente informes dentro de aplicaciones.50
El proyecto recibe soporte desde una activa comunidad de usuarios en BIRT Exchange y
desarrolladores de Eclipse.org Proyecto BIRT. BIRT tiene 2 componentes principales: un
diseador de informes visuales dentro de Eclipse IDE para crear informes BIRT, y un
componente de rutina para generar informes que pueden ser puestos en uso en cualquier
50
WIKIPEDIA, Business Intelligence and Reporting Tools, Espaa, Enero 2012, online,
http://es.wikipedia.org/wiki/Business_Intelligence_and_Reporting_Tools
52
1.4.1. Historia
El proyecto BIRT fue inicialmente propuesto y esponsorizado por Actuate
Corporation cuando Actuate se uni a la Fundacin Eclipse como un Desarrollador
Estratgico el 24 de agosto de 2004.2 El proyecto fue subsecuentemente aprobado y
se convirti en un proyecto de alto nivel dentro de la comunidad Eclipse el 6 de
octubre.
La comunidad de contribuidores al proyecto incluye Innovent Solutions , e IBM. En
2007 la divisin Tivoli de IBM adopt BIRT como infraestructura para su producto
Tivoli Common Reporting (TCR). TCR produce informes histricos en recursos y
procesos IT gestionados por Tivoli. El cdigo de proyecto inicial fue diseado y
desarrollado por Actuate, comenzando a principios de 2004 y donado a la Eclipse
Foundation cuando el proyecto fue aprobado.51
1.4.2. Versiones
Que traen de nuevo?
Mejoras en los grficos: z-ordenacin, nuevas alertas por un data set vaco,
mejoras en redimensionar grficos, agrupaciones en stock charts, nuevas
caractersticas en los marcadores,...
51
WIKIPEDIA, Business Intelligence and Reporting Tools, Espaa, Enero 2012, online,
http://es.wikipedia.org/wiki/Business_Intelligence_and_Reporting_Tools
53
1.5.
ArgoUML
Durante la dcada de 1980 un nmero de metodologas de
procesos OOA&D y notaciones fueron desarrolladas por
diferentes equipos de investigacin. Se hizo patente que haba
muchos temas comunes y, durante la decada de 1990, un
enfoque unificado para la notacin OOA&D fu desarrollado
bajo el auspicio del Object Management Group. Este estandar
se hizo conocido como el Unified Modeling Language (UML),
54
Es gratis.
ArgoUML es una aplicacin Java pura 100%. Esto permite a ArgoUML funcionar
en todas las plataformas para las cuales un puerto fiable de la plataforma Java 2
esta disponible.
Diagrama de clases
Diagrama de secuencia
Diagrama de colaboracion
Diagrama de estado
Diagrama de actividades
Diagrama de despliegue
53
55
Una primera publicacin de ArgoUML fue disponible en 1998 y mas de 100,000 descargas
a mediados de 2001 demostr el impacto que este proyecto ha provocado, siendo popular
en campos educacionales y comerciales.54
Requerimientos del Sistema: Puesto que ArgoUML est escrito en Java puro 100%,
debera funcionar en cualquier maquina con Java instalado. Es necesaria una versin 1.4 o
posterior de Java. Puedes tenerlo disponible, pero si no, puede ser descargada gratis de
www.java.com. Ten en cuenta que solo necesitas el Java Runtime Environment (JRE), no
hay necesidad de descargar el Java Development Kit (JDK) completo.
ArgoUML necesita una cantidad razonable de recursos. Un PC con 200MHz de
procesador, 64Mb de RAM y 10Mb de espacio disponible en un disco duro debera ser
adecuado. Descarga el cdigo de la seccin de Descargas de sitio web del proyecto
54
56
1.5.1. Caractersticas
ArgoUML es una aplicacin de diagramado de UML escrita en Java y publicada bajo
la Licencia BSD. Dado que es una aplicacin Java, est disponible en cualquier
plataforma soportada por Java.
El Magazine de Desarrollo de Software entrega premios anuales a herramientas de
desarrollo de software populares en varias categoras. En 2003 ArgoUML fue una de
las finalistas en la categora Design and Analysis Tools. ArgoUML recibi un
premio runner-up(revelacin), derrotando a muchas herramientas comerciales.56
ArgoUML es una aplicacin Java pura 100%: Java fu concebido como un
lenguaje interpretado. Compila cdigo para su propiosistema, la Maquina Virtual
55
57
Diagramas de Secuencia.
Compatibilidad AndroMDA.
rbol de exploracin.
Ruso.
y Csharp (C#).
Ingeniera inversa.
57
58
1.5.2. Desventajas
ArgoUML es de momento una opcin poco recomendable para otra cosa que no sea
exclusivamente la creacin de relaciones UML. Adems, si queremos utilizar
ArgoUML como herramienta de diseo de procesos y procedimientos, sera
conveniente que desde la aplicacin tuvieramos un interface contra el modelo de
datos que va a sustentar nuestro sistema de informacin. 58
Otro punto negativo es que para integrar los procesos que pudieramos generar con
ArgoUML, necesitariamos que estos pudieran de alguna manera ser exportables a
algn formato que nuestro servidor de intranet los entienda e integre. Para esto
seguramente necesitaremos que el formato sea quizs html u otro formato pero
sobretodo necesitaremos que tambin genere algn tipo de imagen que podamos
utilizar para colgar en nuestro servidor corporativo.
Por ltimo, si quisiramos contar con funcionalidades avanzadas como navegar entre
prodecimientos estas imagenes generadas por ArgoUML tendrian que poder
entenderse entre ellas para permitir linkar procedimientos o documentos.
Estamos seguros de que ArgoUML es una herramienta de futuro que tiene un
inmejorable punto de partida en su desarrollo inicial y que puede convertirse en una
herramienta definitiva pero que de momento vamos a tener que esperar.59
Otras desventajas son:
58
59
Import/Export a Java.
1.6.
MySQL
MySQL es la base de datos open source ms
popular y, posiblemente, mejor del mundo. Su
continuo desarrollo y su creciente popularidad est
haciendo de MySQL un competidor cada vez ms
directo de gigantes en la materia de las bases de
60
61
1.6.3. Aplicaciones
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en
plataformas (Linux/ Windows Apache MySQL - PHP/ Perl/ Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como
62
62
1.6.4. Versiones
La primera decisin a tomar es si se desea emplear una entrega "en produccin"
(estable) o una entrega de desarrollo. En el proceso de desarrollo de MySQL
coexisten mltiples entregas, cada una con un diferente estado de madurez:
MySQL 4.0 y 3.23 son las antiguas series de entregas estables (para
63
OPENLIBRA, MySQL Tutorial Simply and Easy, Autores varios, 2010, online,
http://www.etnassoft.com/biblioteca/mysql-tutorial/
63
64
64
correcciones
menores.
(Una
entrega
candidata
es
66
66
1.6.5. Especificaciones
MySQL funciona sobre mltiples plataformas, incluyendo:
AIX
BSD
FreeBSD
HP-UX
Kurisu OS
67
GNU/Linux
Mac OS X
NetBSD
OpenBSD
OS/2 Warp
QNX
SGI IRIX
Solaris
SunOS
SCO OpenServer
SCO UnixWare
Tru64
eBD
Windows
95, Windows
98, Windows
NT, Windows
2000, Windows
OpenVMS10
1.6.6. Licencia
La licencia GNU GPL de MySQL obliga a que la distribucin de cualquier producto
derivado (aplicacin) se haga bajo esa misma licencia. Si un desarrollador desea
incorporar MySQL en su producto pero desea distribuirlo bajo otra licencia que no
sea la GNU GPL, puede adquirir una licencia comercial de MySQL que le permite
hacer justamente eso. 67
Razones para utilizar MySQL
GPLSI.DLSI.UA.ES, Gestin de bases de datos, Gustavo Real Garcia, Marzo 2008, online,
http://gplsi.dlsi.ua.es/bbdd/bd1/lib/exe/fetch.php?media=bd1:0910:trabajos:agrsgbdmem.pdf
68
para sitios web de gran trfico por su motor de consultas de alto rendimiento,
su posibilidad de insertar datos a gran velocidad, y un buen soporte para
funciones web especializadas como las bsquedas fulltext. Estas mismas
68
69
70
software open source porque creen que no podrn encontrar el tipo de soporte o
servicios profesionales en los que confian con su software propietario actual.
Las preguntas sobre indemnizaciones tambin aparecen. Estas preocupaciones
pueden desaparecer con el completo servicio de soporte e indemnizacin
disponibles. MySQL no es un proyecto tpico Open Source ya que todo el
software es propiedad de MySQL AB, lo que permite un modelo de coste y
soporte que ofrece una combiacin nica entre la libertad del open source y la
confianza de un software con soporte. 70
MySQL, o usar MySQL para nuevos desarrollos, las empresas estan ahorrando
costes que muchas veces llegan a las siete cifras. Las empresas estn
descubriendo que, gracias al servidor MySQL y las arquitecturas scale-out que
utilizan hardware econmico, pueden alcanzar niveles sorprendentes de
escalabilidad y rendimiento, y todo a un coste bastante menor que el de los
sistemas propietarios. Adems, la robustez y facilidad de mantenimiento de
MySQL implican que los administradores no pierden el tiempo con problemas
de rendimiento o disponibilidad, sino que pueden concentrarse en tareas de
mayor impacto en el negocio.71
70
71
1.7.
Ingeniera de Software
Segn la definicin del IEEE, citada por [Lewis
1994] "software es la suma total de los programas
de
computadora,
procedimientos,
reglas,
la
72
73
Control: Algunas veces el hecho de que los datos puedan ser guardados en
una forma adecuada para su lectura por medio de una mquina, es una
seguridad difcil de alcanzar en un medio ambiente donde no existen
computadoras.
dificultades que afectan tanto a cliente como a empleados. Sin embargo, los
sistemas de informacin bien desarrollados amplan la comunicacin y facilitan
la integracin de funciones individuales.73
1.7.1.1.Econmicamente
Desde un punto de vista econmico, el software es un medio de produccin
englobado dentro del capital intelectual de la empresa. Como cualquier otro
medio de produccin, en su fase de uso puede verse como conocimiento
empaquetado. Su fase de desarrollo, consistente en reunir y empaquetar en
la forma adecuada los conocimientos necesarios para realizar algn tipo de
produccin, se ha transformado, debido a las caractersticas especficas del
software, a la complejidad creciente de los objetivos de produccin y a la
naturaleza muy evolutiva de los conocimientos necesarios, en un sofisticado
proceso de aprendizaje social, sometido por ende a las reglas de
productividad y competencia econmicas. De forma general, la produccin
y el uso (precedido de la contratacin) de software forman parte del amplio
campo de lo que ahora se llama gestin del conocimiento.74
73
74
1.7.1.2.Socialmente
La ingeniera de software cambia la cultura del mundo debido al extendido
uso de la computadora. El correo electrnico (E-mail), la WWW y la
mensajera instantnea permiten a la gente interactuar en nuevas formas. El
software baja el costo y mejora la calidad de los servicios de salud, los
departamentos de bomberos, las dependencias gubernamentales y otros
servicios sociales. Los proyectos exitosos donde se han usado mtodos de
ingeniera de software incluyen a GNU/Linux, el software del transbordador
espacial, los cajeros automticos y muchos otros.
1.7.2. Metodologa
El concepto de metodologa, dentro de la
Ingeniera del Software es, sin duda, uno de
los ms oscuros y que ms confusin
produce tanto en estudiantes como en
profesionales involucrados en procesos de
desarrollo de software.
Tanto es as, que en muchos proyectos de
desarrollo (no todos, por supuesto), la
aplicacin de una metodologa brilla por su ausencia, siendo ste un concepto casi
desconocido.
Adems, la constante innovacin tecnolgica hace que cada vez sea necesaria la
aplicacin de nuevas metodologas adaptadas a los nuevos tiempos y, sin embargo,
siguen figurando en los libros de texto viejas metodologas pensadas para viejos
problemas... cosa que no sera necesariamente mala si las nuevas metodologas
tuviesen tambin su lugar... pero a menudo no es as.
75
76
76
SLIDESHARE.NET, Actividades del desarrollo del software, T.I.C, Mayo 2013, online,
http://www.slideshare.net/jramflor/etapas-del-proceso-de-la-ingeniera-del-software
77
78
La ingeniera del software establece y se vale de una serie de modelos que establecen
y muestran las distintas etapas y estados por los que pasa un producto software,
desde su concepcin inicial, pasando por su desarrollo, puesta en marcha y posterior
mantenimiento, hasta la retirada del producto. A estos modelos se les denomina
Modelos de ciclo de vida del software. El primer modelo concebido fue el de
Royce, ms comnmente conocido como Cascada o Lineal Secuencial. Este
modelo establece que las diversas actividades que se van realizando al desarrollar un
producto software, se suceden de forma lineal. 78
Los modelos de ciclo de vida del software describen las fases del ciclo de software y
el orden en que se ejecutan las fases.
Un modelo de ciclo de vida de software es una vista de las actividades que ocurren
durante el desarrollo de software, intenta determinar el orden de las etapas
involucradas y los criterios de transicin asociados entre estas etapas.
Un modelo de ciclo de vida del software:
Define las fases primarias esperadas de ser ejecutadas durante esas fases
En cada una de las etapas de un modelo de ciclo de vida, se pueden establecer una
serie de objetivos, tareas y actividades que lo caracterizan. Existen distintos modelos
de ciclo de vida, y la eleccin de un modelo para un determinado tipo de proyecto es
realmente importante; el orden es uno de estos puntos importantes.
78
79
Especificacin de requisitos
Diseo
Integracin
Pruebas
Instalacin
Mantenimiento
Para seguir el modelo en cascada, se avanza de una fase a la siguiente en una forma
puramente secuencial.
79
80
81
81
82
Este modelo se suele utilizar en proyectos en los que los requisitos no estn claros
por parte del usuario, por lo que se hace necesaria la creacin de distintos prototipos
para presentarlos y conseguir la conformidad del cliente.
Modelo de desarrollo incremental: El modelo incremental combina elementos del
modelo en cascada con la filosofa interactiva de construccin de prototipos. Se basa
en la filosofa de construir incrementando las funcionalidades del programa. Este
modelo aplica secuencias lineales de forma escalonada mientras progresa el tiempo
en el calendario. Cada secuencia lineal produce un incremento del software.84
83
83
85
84
85
87
88
88
Captulo II
ANALISIS
2.1.
Recoleccin de requerimientos
Para poder realizar una recoleccin de datos confiable, debemos conocer cada tcnica que
se emplea para este fin, al obtener este conocimiento podemos darnos cuenta cual es la
forma ms eficaz y precisa para dicha recopilacin, el objetivo principal es poder conocer
todos los datos que necesitaremos para la realizacin de uno o varios proyectos.89
ENTREVISTA
Es la accion y efecto de entrevistar o entrevistarse. Se trata de una conversacion entre una
o varias personas para un fin determinado. Puede tener una finalidad periodistica, para
informar al pudblico de las respuestas de la persona entrevistada, o tratarse de una
concurrencia y conferencia de dos o mas personas para tratar o resolver un negocio.
EL ENTREVISTADO deber ser siempre una persona que interese a la comunidad. El
entrevistado es la persona que tiene alguna idea o alguna experiencia importante que
transmitir.
EL ENTREVISTADOR es el que dirige la entrevista debe dominar el dialogo, presenta al
entrevistado y el tema principal, hace preguntas adecuadas y cierra la entrevista.
La entrevista es tambin informacin y reportaje, las entrevistas pueden ser reales o
imaginarias.
Las reales presentan a una o ms personas reales que responden a una serie de preguntas
formuladas por un entrevistador.
Las imaginarias son las que una persona adopta el papel del entrevistado artista, escritor y
el otro el de entrevistado puede ser un personaje histrico o literario, y el entrevistador es
el mismo o algn otro personaje.
PARTES DE UNA ENTREVISTA:
La presentacin suele ser breve, pero no suficientemente informativa. En ella no
se habla del entrevistado, si no del tema principal de la entrevista.
El cuerpo de la entrevista esta formado por preguntas y las respuestas. Es
importante elegir bien las preguntas para que la entrevista sea buena, las preguntas
deben ser interesantes para el publico y adecuadas para que el entrevistado
transmita sus experiencias. Tambin pueden ser breves, claras y respetuosas.
El cierre de la entrevista debe ser conciso. El entrevistador puede presentar un
resumen de lo hablado o hacer un breve comentario personal.
Tipos de Entrevista
89
89
91
92
Rcords Anecdticos.
Grabaciones.
Fotografas.
Listas de chequeo de Datos.
Escalas, etc.
93
94
95
APLICACIONES
La Lluvia de ideas se usa para generar un gran nmero de ideas en un corto periodo de
tiempo.
Se puede aplicar en cualquier etapa de un proceso de solucin de problemas. Es
fundamental para la identificacin y seleccin de las preguntas que sern
Tratadas en la generacin de posibles soluciones. Es muy til cuando se desea la
participacin de todo el grupo.95
METODO DELPHI
Se basa en la interrogacin a expertos con la ayuda de cuestionarios sucesivos, a fin de
poner manifiesto convergencias de opiniones y deducir eventuales consensos. Es una
consulta a un grupo de expertos en forma individual por medio de la interaccin sucesiva
de un cuestionario apoyado por los resultados promedio de la ronda anterior a fin de
generar convergencia de opiniones. Dentro de los mtodos de pronstico, normalmente se
clasifica el mtodo Delphi dentro de los mtodos cualitativos o subjetivos.
La calidad de todos estos resultados depende de algunos recursos los cuales son:
De la elaboracin de los cuestionarios.
95
96
Especificacin de Requerimientos
INTRODUCCION
97
DESCRIPCION GENERAL
En esta seccin se presenta una descripcin a alto nivel del sistema. Se presentaran las
principales reas de negocio a las cuales el sistema debe dar soporte, las funciones que el
sistema debe realizar, la informacin utilizada, las restricciones y otros factores que afecten
al desarrollo del mismo.
PERSPECTIVA DEL PRODUCTO
101
A continuacin se describirn con ms detalle estas tareas y como sern soportadas por el
sistema.
Para el usuario comn solo se requerir un nivel educativo medio y unos conceptos bsicos
a nivel de usuario en aplicaciones informticas, debido a la sencillez en la utilizacin de la
aplicacin no tendrn ningn tipo de dificultad en usarla.
Por otra parte, el administrador necesitar una formacin media para el control absoluto de
la aplicacin.
Es por ello que el sistema ha de ser grfico. Con una interfaz sencilla e intuitiva, que no
exija gran tiempo para su aprendizaje, a la vez que lo suficientemente potente para que el
usuario pueda hacer aquello que necesita.
102
Requerimientos funcionales
Id Sala
Nombre de la sala
Descripcion sala
Numero de filas
Numero de columnas
Tambien abra un botn que crea la sala grficamente para poder elegir los
asientos disponibles en toda la sala para crear la sala grafica la sala tendr
que estar actualizada caso contrario no podr emitirse la ventana.
RF014. Gestionar personajes: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Foto
IdPersonaje
Nombre real
Nickname
Fecha ingreso
106
Fecha de nacimiento
Lugar de nacimiento
Ocupacin
Ao de debut
Nombre
Industria
Presidente
Sede
Ingresos
Activos
Stio web
Adems abra un botn que permita ver el resumen de todos los datos de la
casa productora que se ingrese en la base de datos.
RF016. Gestionar Pelcula: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Ficha tcnica:
Foto
Titulo
Direccin
Produccin
Guion
Banda Sonora
Montaje
Protagonistas
Pagina web
Datos y cifras:
Pais
Ao
Genero
Censura
Dimension
Duracion
Idioma
Presupuesto
Recaudacion
Compaias:
Productora
Ademas abra un botn que permita ver el resumen de todos los datos de la
pelcula con hipervnculos de las diferentes personas que trabajan en dicha
pelcula, asi como de las casas productoras.
107
Pelcula
Sala
Fecha
Hora comienzo
Adems de esto el sistema deber verificar si la sala indicada est disponible
para el horario que el usuario ingrese.
Manejo y administracin de reportes basados en la informacin del sistema.
RF018. Reporte de usuarios: Se manejara un reporte de usuarios en el cual el
administrador podr ingresar como parmetro la fecha de ingreso de los
usuarios.
RF019. Reporte la numeracin por usuario: Se manejara un reporte de la
numeracin individual de los usuarios.
RF020. Reporte de permisos: Se manejara un reporte de todos los permisos
activados y no activados que estn en la configuracin del sistema.
RF021. Reporte de referencias: Se manejara un reporte de todas las referencias en el
cual el administrador podr ingresar como parmetro la el tipo de referencia.
RF022. Reporte de clientes: Se manejara un reporte de todos los clientes para ello el
administrador podr ingresar como parmetro la fecha de ingreso de los
clientes.
RF023. Reporte de precios: Se manejara un reporte de todos los precios que existen
en la base de datos para ello el administrador podr ingresar como
parmetro el tipo de beneficio.
RF024. Reporte de facturas emitidas: Se manejara un reporte de facturas emitidas es
decir las que estn pendientes, anuladas, y pagadas en el cual el
administrador podr ingresar como parmetro la fecha de inicio y la fecha
de fin.
RF025. Reporte de facturas emitidas por cajero: Se manejara un reporte de facturas
emitidas por cada cajero es decir las que estn pendientes, anuladas, y
pagadas en el cual el administrador podr ingresar como parmetro la fecha
de inicio y la fecha de fin.
RF026. Reporte de cuadre de caja: Se manejara un reporte de cuadre de caja en el
cual se pueda ver el total cobrado por cada uno de los cajeros de acuerdo a
la forma de pago ingresada en el cual el administrador podr ingresar como
parmetro la fecha de inicio y la fecha de fin..
108
Requerimientos no funcionales
Requisitos de rendimiento
La infraestructura de red, as como sus terminales deben cumplir con normas segn
la IEEE en la forma de conexin a los equipos, para tener tiempos de respuesta
mnimos.
El tiempo de respuesta a consultas, actualizaciones, altas, modificaciones y bajas ha
de ser inferior a 10 segundos adems de una estructura de datos para el
almacenamiento de los datos de forma sencilla para as proporcionar la mayor
cantidad de informacin al usuario.
109
Fiabilidad
La aplicacin tendr que ser fiable en cuanto a los datos se refiere para no generar
ningn tipo de conflicto en todos los movimientos y en las consultas de estas.
Disponibilidad
El sistema ha sido desarrollado tomando en cuenta las necesidades, requerimientos,
reglas, poltica, misin, objetivos del teatro de cine por lo que se encuentra
disponible el 100% del tiempo del da tomando en cuenta que el da tiene 24 horas.
Mantenibilidad
El sistema cuenta con caractersticas parametrizables lo que permitir futuros
mantenimientos. Se realizara el mantenimiento dos veces sin ningn recargo
econmico, pasados estas dos revisiones tendrn costos adicionales.
Portabilidad
Una de las ventajas de utilizar herramientas y lenguajes basados en software libre
estamos garantizando la portabilidad. De esta manera:
99.9% es portable la aplicacin por el simple hecho de utilizar el lenguaje y
plataforma JAVA.
99% es portable la base de datos, MySQL es decir puedo tenerlo en Windows o
Linux.
110
Captulo III
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
111
Captulo IV
4.1.
4.2.
4.3.
4.4.
112
Capitulo V
113