Sei sulla pagina 1di 114

Escuela CC.

TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

ESCUELA POLITECNICA DEL EJRCITO


CARRERA DE TECNOLOGIA EN
SISTEMAS DE INFORMACION

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

Sangolqu, 18 de August de 2014


0

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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.

Diagrama de casos de uso.............................................................................3.1-113

3.2.

Diagrama de clases........................................................................................3.2-113

3.3.

Diagrama de transicin de estados................................................................3.3-113

3.4.

Diagrama de secuencia..................................................................................3.4-113

3.5.

Diagrama de componentes............................................................................3.5-113

3.6.

Arquitectura de la base de datos....................................................................3.6-113

Captulo IV............................................................................................3.6-114
4.1.

Construccin de la base de datos...................................................................4.1-114

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Captulo I
MARCO TEORICO
1.1.

Java

Java surgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de


disear un nuevo lenguaje de programacin destinado a electrodomsticos. La reducida
potencia de clculo y memoria de los electrodomsticos llev a desarrollar un lenguaje
sencillo capaz de generar cdigo de tamao muy reducido.
Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante
conseguir una herramienta independiente del tipo de CPU utilizada. Desarrollaron un
cdigo neutro" que no dependa del tipo de electrodomstico, el cual se ejecutaba sobre
una mquina hipottica o virtual" denominada Java Virtual Machine (JVM). Era la JVM
quien interpretaba el cdigo neutro convirtindolo a cdigo particular de la CPU utilizada.
7

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Esto permita lo que luego se ha convertido en el principal lema del lenguaje: Write Once,
Run Everywhere". A pesar de los esfuerzos realizados por sus creadores, ninguna empresa
de electrodomsticos se interes por el nuevo lenguaje.
Como lenguaje de programacin para computadores, Java se introdujo a finales de 1995.
La clave fue la incorporacin de un intrprete Java en la versin 2.0 del programa Netscape
Navigator, produciendo una verdadera revolucin en Internet. Java 1.1 apareci a
principios de 1997, mejorando sustancialmente la primera versin del lenguaje. Java 1.2,
ms tarde rebautizado como Java 2, naci a finales de 1998. 1
Al programar en Java no se parte de cero. Cualquier aplicacin que se desarrolle cuelga"
(o se apoya, segn como se quiera ver) en un gran nmero de clases preexistentes. Algunas
de ellas las ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre
hay un nmero muy importante de clases que forman parte del propio lenguaje (el API o
Application Programming Interface de Java). Java incorpora en el propio lenguaje muchos
aspectos que en cualquier otro lenguaje son extensiones propiedad de empresas de software
o fabricantes de ordenadores (threads, ejecucin remota, componentes, seguridad, acceso a
bases de datos, etc.). Por eso muchos expertos opinan que Java es el lenguaje ideal para
aprender la informtica moderna, porque incorpora todos estos conceptos de un modo
estndar, mucho ms sencillo y claro que con las citadas extensiones de otros lenguajes.
Esto es consecuencia de haber sido diseado ms recientemente y por un nico equipo.
El principal objetivo del lenguaje Java es llegar a ser el nexo universal" que conecte a los
usuarios con la informacin, est sta situada en el ordenador local, en un servidor de Web,
en una base de datos o en cualquier otro lugar.
Java es un lenguaje muy completo (de hecho se est convirtiendo en un macro-lenguaje:
Java 1.0 tena 12 packages; Java 1.1 tena 23 y Java 1.2 tiene 59). En cierta forma casi todo
depende de casi todo. Por ello, conviene aprenderlo de modo iterativo: primero una visin
muy general, que se va refinando en sucesivas iteraciones. Una forma de hacerlo es
empezar con un ejemplo completo en el que ya aparecen algunas de las caractersticas ms
importantes.
1

MONOGRAFIAS, Manual JAVA, Manuel Ortez, Enero 2007, online,


http://www.monografias.com/trabajos42/manual-de-java/manual-de-java2.shtml

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

Figura 1.1. Proceso de compilacin de un programa Java

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
En 1995 pasa a llamarse Java y se da a conocer al pblico. Adquiere notoriedad
rpidamente. Java pasa a ser un lenguaje totalmente independiente de la plataforma y
a la vez potente y orientado a objetos. Esa filosofa y su facilidad para crear
aplicaciones para redes TCP/IP ha hecho que sea uno de los lenguajes ms utilizados
en la actualidad. La versin actual de Java es el llamado Java 2. Sus ventajas sobre
C++ son:

Su sintaxis es similar a C y C++

No hay punteros (lo que le hace ms seguro)o Totalmente orientado a objetos

Muy preparado para aplicaciones TCP/IPo Implementa excepciones de forma


nativa

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

Admite firmas digitales

Tipos de datos y control de sintaxis ms rigurosa

Es independiente de la plataforma

La ltima ventaja (quiz la ms importante) se consigue ya que el cdigo Java no se


compila, sino que se precompila, de tal forma que se crea un cdigo intermedio que
no es ejecutable. Para ejecutarle hace falta pasarle por un intrprete que va
ejecutando cada lnea. Ese intrprete suele ser la mquina virtual de Java. 3

Versiones de Java: Como se ha comentado anteriormente, para poder crear los


bytecodes de un programa Java, hace falta el SDK de Sun. Sin embargo, Sun va
renovando este kit actualizando el lenguaje. De ah que se hable de Java 1.1, Java

MONOGRAFIAS, Lenguaje JAVA, Ruben Ajata, Enero 2005, online,


http://www.monografias.com/trabajos-pdf4/programacion-java-eispdm/programacion-java-eispdm.shtml

10

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
1.2, etc. Los nombres de los distintos SDK y del lenguaje correspondiente, estn
reflejados en la siguiente tabla:

Tabla 1.1. Versiones del SDK

Desde la versin 1.2 se habla de Java 2. Desde la versin 1.6 se ha abandonado la


terminologa Java 2 y ahora se habla de Java 6 y Java 7 para las versiones 1.6 y 1.7
del kit de desarrollo. Cada versin tiene varias revisiones, as la versin 1.6.7 del
SDK indica versin 6 de Java, revisin 7.
Java 1.0 (JDK 1.0): Fue la primera versin de Java y propuso el marco general en el
que se desenvuelve Java. Est oficialmente obsoleto, pero hay todava muchos
clientes con esta versin. 4
Java 1.1 (JDK 1.1): Mejor la versin anterior incorporando las siguientes mejoras:

JDBC, API de acceso a bases de datos

RMI llamadas a mtodos remotos. Es una tcnica de comunicacin de


procesos en redo JavaBeans, componentes independientes reutilizables.

Internacionalizacin para crear programas adaptables a todos los idiomas

Clases internas

Java 2 (J2SE 1.2): Apareci en Diciembre de 1998 al aparecer el JDK 1.2.


Incorpor notables mejoras como por ejemplo:

JFC. Java Foundation classes. El conjunto de clases de todo para crear

programas ms atractivos de todo tipo. Dentro de este conjunto estn:


4

MONOGRAFIAS, Algoritmos y lenguajes de programacin, Ruben Ajata Guarahi, La Paz, online,


http://www.monografias.com/trabajos-pdf4/programacion-java-eispdm/programacion-java-eispdm.pdf

11

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

El paquete Swing. Mejorando notablemente al anterior paquete AWT. Se

trata de todo un conjunto de clases que permiten desarrollar fcilmente


entornos de ventanas. Es parte de JFC.

Enterprise Java beans. Para la creacin de componentes para aplicaciones

distribuidas del lado del servidor

Java Media. Conjunto de paquetes para crear paquetes multimedia:


Java 2D. Paquete (parte de JFC) que permite crear grficos de alta
calidad en los programas de Java.
Java 3D. Paquete (parte de JFC) que permite crear grficos
tridimensionales.
Java Media Framework. Paquete marco para crear elementos
multimedia
Java Speech. Para reconocimiento de voz.
Java Sound. Audio de alta calidad
Java TV. Televisin interactiva5

JNDI. Java Naming and Directory Interface. Servicio general de bsqueda

de recursos. Integra los servicios de bsqueda ms populares (como LDAP por


ejemplo).

Java Servlets. Herramienta para crear aplicaciones de servidor web (y

tambin otros tipos de aplicaciones).

Java Cryptography. Algoritmos para encriptar y desencriptar.

Java Help. Creacin de sistemas de ayuda.

Jini. Permite la programacin de electrodomsticos.

Java card. Versin de Java dirigida a pequeos dispositivos electrnicos.

Java IDL. Lenguaje de definicin de interfaz. Permite crear aplicaciones

tipo CORBA (plataforma de desarrollo de sistemas distribuidos)

Clases para la creacin de colecciones

Java 1.3 (J2SE 1.3)

Se utiliza la mquina virtual de Hotspot (ms rpida y segura).

Se modifica RMI para que trabaje con CORBA

JPDA, Java Platform Debugger Architectura

MONOGRAFIAS, Algoritmos y lenguajes de programacin, Ruben Ajata Guarahi, La Paz, online,


http://www.monografias.com/trabajos-pdf4/programacion-java-eispdm/programacion-java-eispdm.pdf

12

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Java 1.4 (J2SE 1.4)

Aparecen las aserciones (assert).

Expresiones regulares estilo Perl.

NIO. Nuevo interfaz de entrada y salida de datos.

JAXP. API de desarrollo de documentos XML.

Java 1.5 (J2SE 1.5)

Aparecen las plantillas.

Metadatos.

Autoboxing, conversin automtica de tipos a tipos envolventes.

Enumeraciones.

Argumentos variables (varargs).

Mejora del bucle for

Java 1.6 (Java SE 6)

Incluye un nuevo marco de trabajo y APIs que hacen posible la combinacin

de Java con lenguajes dinmicos como PHP, Python, Ruby y JavaScript.

Incluye el motor Rhino, de Mozilla, una implementacin de Javascript en

Java.

Incluye un cliente completo de Servicios Web y soporta las ltimas

especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y
JAXP.

Mejoras en la interfaz grfica y en el rendimiento.6

Java 1.7 (Java SE 7): En el ao 2006 an se encontraba en las primeras etapas de


planificacin. Su lanzamiento fue en julio de 2011.

Soporte para XML dentro del propio lenguaje.

Un nuevo concepto de sper paquete.

Soporte para closures.

Introduccin de anotaciones estndar para detectar fallos en el software.7

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
El lenguaje Java se cre con cinco objetivos principales:

Debera usar el paradigma de la programacin orientada a objetos.

Debera permitir la ejecucin de un mismo programa en mltiples sistemas


operativos.

Debera incluir por defecto soporte para trabajo en red.

Debera disearse para ejecutar cdigo en sistemas remotos de forma segura.

Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a


objetos, como C++.

Para conseguir la ejecucin de cdigo remoto y el soporte de red, los programadores


de Java a veces recurren a extensiones como CORBA (Common Object Request
Broker Architecture),Internet Communications Engine o OSGi respectivamente.
Orientado a objetos: La primera caracterstica, orientado a objetos (OO), se
refiere a un mtodo de programacin y al diseo del lenguaje. Aunque hay muchas
interpretaciones para OO, una primera idea es disear el software de forma que los
distintos tipos de datos que usen estn unidos a sus operaciones. As, los datos y el
cdigo (funciones o mtodos) se combinan en entidades llamadas objetos. Un objeto
puede verse como un paquete que contiene el comportamiento (el cdigo) y el
estado (datos). El principio es separar aquello que cambia de las cosas que
permanecen inalterables. Frecuentemente, cambiar una estructura de datos implica un
cambio en el cdigo que opera sobre los mismos, o viceversa8.
Esta separacin en objetos coherentes e independientes ofrece una base ms estable
para el diseo de un sistema software. El objetivo es hacer que grandes proyectos
sean fciles de gestionar y manejar, mejorando como consecuencia su calidad y
reduciendo el nmero de proyectos fallidos. Otra de las grandes promesas de la
programacin orientada a objetos es la creacin de entidades ms genricas (objetos)
que permitan la reutilizacin del software entre proyectos, una de las premisas
fundamentales de la Ingeniera del Software. Un objeto genrico cliente, por
ejemplo, debera en teora tener el mismo conjunto de comportamiento en diferentes
8

PREZI, Programacion en JAVA, Jorge Izaguirre, Agosto 2013, online,


http://prezi.com/lipwakimah4f/programcion-en-java/?
utm_source=website&utm_medium=prezi_landing_related_solr&utm_campaign=prezi_landing_related_auth
or

14

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
proyectos, sobre todo cuando estos coinciden en cierta medida, algo que suele
suceder en las grandes organizaciones. En este sentido, los objetos podran verse
como piezas reutilizables que pueden emplearse en mltiples proyectos distintos,
posibilitando as a la industria del software a construir proyectos de envergadura
empleando componentes ya existentes y de comprobada calidad; conduciendo esto
finalmente a una reduccin drstica del tiempo de desarrollo. Podemos usar como
ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y
su comportamiento (soldar dos piezas, etc.), el objeto aluminio puede ser
reutilizado en el campo de la construccin, del automvil, de la aviacin, etc. 9
La reutilizacin del software ha experimentado resultados dispares, encontrando dos
dificultades principales: el diseo de objetos realmente genricos es pobremente
comprendido, y falta una metodologa para la amplia comunicacin de oportunidades
de reutilizacin. Algunas comunidades de cdigo abierto (open source) quieren
ayudar en este problema dando medios a los desarrolladores para diseminar la
informacin sobre el uso y versatilidad de objetos reutilizables y bibliotecas de
objetos.
Independencia de la plataforma: La segunda caracterstica, la independencia de la
plataforma, significa que programas escritos en el lenguaje Java pueden ejecutarse
igualmente en cualquier tipo de hardware. Este es el significado de ser capaz de
escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal
como reza el axioma de Java, write once, run anywhere. 10
Para ello, se compila el cdigo fuente escrito en lenguaje Java, para generar un
cdigo conocido como bytecode (especficamente Java bytecode)instrucciones
mquina simplificadas especficas de la plataforma Java. Esta pieza est a medio
camino entre el cdigo fuente y el cdigo mquina que entiende el dispositivo
destino. El bytecode es ejecutado entonces en la mquina virtual (JVM), un
programa escrito en cdigo nativo de la plataforma destino (que es el que entiende su
9 10

PREZI, Programacin en JAVA, Jorge Izaguirre, Agosto 2013, online,


http://prezi.com/lipwakimah4f/programcion-en-java/?
utm_source=website&utm_medium=prezi_landing_related_solr&utm_campaign=prezi_landing_related_auth
or
10

15

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
hardware), que interpreta y ejecuta el cdigo. Adems, se suministran bibliotecas
adicionales para acceder a las caractersticas de cada dispositivo (como los grficos,
ejecucin mediante hebras o threads, la interfaz de red) de forma unificada. Se debe
tener presente que, aunque hay una etapa explcita de compilacin, el bytecode
generado es interpretado o convertido a instrucciones mquina del cdigo nativo por
el compilador JIT (Just In Time).
Hay implementaciones del compilador de Java que convierten el cdigo fuente
directamente en cdigo objeto nativo, como GCJ. Esto elimina la etapa intermedia
donde se genera el bytecode, pero la salida de este tipo de compiladores slo puede
ejecutarse en un tipo de arquitectura. 11
La licencia sobre Java de Sun insiste que todas las implementaciones sean
compatibles. Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando ste
ltimo aleg que la implementacin de Microsoft no daba soporte a las interfaces
RMI y JNI adems de haber aadido caractersticas dependientes de su
plataforma. Sun demand a Microsoft y gan por daos y perjuicios (unos 20
millones de dlares) as como una orden judicial forzando la acatacin de la licencia
de Sun. Como respuesta, Microsoft no ofrece Java con su versin de sistema
operativo, y en recientes versiones de Windows, su navegador Internet Explorer no
admite la ejecucin de applets sin un conector (o plugin) aparte. Sin embargo, Sun y
otras fuentes ofrecen versiones gratuitas para distintas versiones de Windows.
Las primeras implementaciones del lenguaje usaban una mquina virtual interpretada
para conseguir la portabilidad. Sin embargo, el resultado eran programas que se
ejecutaban comparativamente ms lentos que aquellos escritos en C o C++. Esto hizo
que Java se ganase una reputacin de lento en rendimiento. Las implementaciones
recientes de la JVM dan lugar a programas que se ejecutan considerablemente ms
rpido que las versiones antiguas, empleando diversas tcnicas, aunque sigue siendo
mucho ms lento que otros lenguajes.

11

TECNOLOGIA BLOG, JAVA, Oscar Yujra, Febrero 2013, La Paz, online,


http://tecnologiajava.blogspot.com/

16

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
La primera de estas tcnicas es simplemente compilar directamente en cdigo nativo
como hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto
da lugar a un gran rendimiento en la ejecucin, pero tapa el camino a la portabilidad.
Otra tcnica, conocida como compilacin JIT (Just In Time, o compilacin al
vuelo), convierte el bytecode a cdigo nativo cuando se ejecuta la aplicacin. Otras
mquinas virtuales ms sofisticadas usan una recompilacin dinmica en la que
la VM es capaz de analizar el comportamiento del programa en ejecucin y
recompila y optimiza las partes crticas. La recompilacin dinmica puede lograr
mayor grado de optimizacin que la compilacin tradicional (o esttica), ya que
puede basar su trabajo en el conocimiento que de primera mano tiene sobre el
entorno de ejecucin y el conjunto de clases cargadas en memoria. La compilacin
JIT y la recompilacin dinmica permiten a los programas Java aprovechar la
velocidad de ejecucin del cdigo nativo sin por ello perder la ventaja de la
portabilidad en ambos.
La portabilidad es tcnicamente difcil de lograr, y el xito de Java en ese campo ha
sido dispar. Aunque es de hecho posible escribir programas para la plataforma Java
que acten de forma correcta en mltiples plataformas de distinta arquitectura, el
gran nmero de estas con pequeos errores o inconsistencias llevan a que a veces se
parodie el eslogan de Sun, "Write once, run anywhere" como "Write
once, debug everywhere" (o Escrbelo una vez, ejectalo en cualquier parte por
Escrbelo una vez, depralo en todas partes)
El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un
gran xito en las aplicaciones en el entorno del servidor, como los Servicios Web, los
Servlets, los Java Beans, as como en sistemas empotrados basados en OSGi, usando
entornos Java empotrados.12
El recolector de basura: En Java el problema de las fugas de memoria se evita en
gran medida gracias a la recoleccin de basura (o automatic garbage collector). El
programador determina cundo se crean los objetos y el entorno en tiempo de
ejecucin de Java (Java runtime) es el responsable de gestionar el ciclo de vida de los
12

WIKIPEDIA, Java (lenguaje de programacion), Espaa, julio 2012, online,


http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)#Filosof.C3.ADa

17

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
objetos. El programa, u otros objetos pueden tener localizado un objeto mediante una
referencia a ste. Cuando no quedan referencias a un objeto, el recolector de basura
de Java borra el objeto, liberando as la memoria que ocupaba previniendo posibles
fugas (ejemplo: un objeto creado y nicamente usado dentro de un mtodo slo tiene
entidad dentro de ste; al salir del mtodo el objeto es eliminado). An as, es posible
que se produzcan fugas de memoria si el cdigo almacena referencias a objetos que
ya no son necesarioses decir, pueden an ocurrir, pero en un nivel conceptual
superior. En definitiva, el recolector de basura de Java permite una fcil creacin y
eliminacin de objetos y mayor seguridad.13

Figura 1.2. Recoleccin de basura (1ra parte)

13

WIKIPEDIA, Recolector de basura, Espaa, julio 2012, online,


http://es.wikipedia.org/wiki/Recolector_de_basura

18

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.3. Recoleccin de basura (2da parte)

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

OOCITIES, Lenguajes de diseo, amigstad_lm7, Octubre 2009, online,


http://www.oocities.org/

19

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
// Hola.java
public class Hola //Declara una clase llamada Hola, que es descendiente de
la clase Object
{
//Entre llaves se declaran los atributos y mtodos de la clase
public static void main(String[] args)
//public: indica que el mtodo main()es pblico
//void: indica que la funcin main() no devuelve ningn valor
//El mtodo main()debe aceptar siempre como parmetro un vector de
strings
{
System.out.println("Hola, mundo!");
//Esta lnea indica que se va a ejecutar el mtodo println(), encargado de
mostrar
//un valor a travs de la salida estndar (en nuestro caso, un String)
//Este mtodo pertenece al atributo out
}
}
Este ejemplo necesita una pequea explicacin.

Todo en Java est dentro de una clase, incluyendo programas autnomos.

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 compilador genera un archivo de clase (con extensin .class) por cada


una de las clases definidas en el archivo fuente. Una clase annima se trata
como si su nombre fuera la concatenacin del nombre de la clase que la
encierra, el smbolo $, y un nmero entero.

Los programas que se ejecutan de forma independiente y autnoma, deben


contener el mtodo main().15

La palabra reservada void indica que el mtodo main no devuelve nada.

El mtodo main debe aceptar un array de objetos tipo String. Por acuerdo se
referencia como args, aunque puede emplearse cualquier otro identificador.

15

GALEON.COM, Sintaxis de Java , agperalvo46, Enero 2008, online,


http://galeon.com/ccge2680/java004.html

20

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

La palabra reservada static indica que el mtodo es un mtodo de clase,


asociado a la clase en vez de una instancias de la misma. El mtodo main
debe ser esttico o de clase.

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.

La utilidad de impresin (en pantalla por ejemplo) forma parte de la


biblioteca estndar de Java: la clase System define un campo pblico
esttico llamado out. El objeto out es una instancia de PrintStream,
que ofrece el mtodo println (String) para volcar datos en la pantalla (la
salida estndar).

Las aplicaciones autnomas se ejecutan dando al entorno de ejecucin de


Java el nombre de la clase cuyo mtodo main debe invocarse. Por ejemplo,
una lnea de comando (en Unix o Windows) de la forma java cp .
Hola ejecutar el programa del ejemplo (previamente compilado y generado
Hola.class). El nombre de la clase cuyo mtodo main se llama puede
especificarse tambin en el fichero MANIFEST del archivo de
empaquetamiento de Java (.jar). 16

Applets: Las applet Java son programas incrustados en otras aplicaciones,


normalmente una pgina Web que se muestra en un navegador.
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;
public class Hello extends JApplet {
public void paint(Graphics g) {
g.drawString("Hola, mundo!", 65, 95);
}
}

16

UNIPROFESROMAR, Compilando y ejecutando programas en JAVA, Septiembre 2010, online,


http://uniprofesormar.files.wordpress.com/2010/09/compilando_y_ejecutando_programas_en_java.pdf

21

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
<!-- Hola.html -->
<html>
<head>
<title>Applet Hola Mundo</title>
</head>
<body>
<applet code="Hola.class" width="200" height="200">
</applet>
</body>
</html>
Actualmente HTML 5 ha eliminado el uso de la etiqueta <applet>.
La sentencia import indica al compilador de Java que incluya las clases java.applet.
Applet y java.awt. Graphics, para poder referenciarlas por sus nombres, sin tener que
anteponer la ruta completa cada vez que se quieran usar en el cdigo fuente.
La clase Hola extiende (extends) a la clase Applet, es decir, es una subclase de sta.
La clase Applet permite a la aplicacin mostrar y controlar el estado del applet. La
clase Applet es un componente del AWT (Abstract Window Toolkit), que permite al
applet mostrar una interfaz grfica de usuario o GUI (Graphical User Interface), y
responder a eventos generados por el usuario. 17
La clase Hola sobrecarga el mtodo paint (Graphics) heredado de la superclase
contenedora (Applet en este caso), para acceder al cdigo encargado de dibujar. El
mtodo paint() recibe un objeto Graphics que contiene el contexto grfico para
dibujar el applet. El mtodo paint() llama al mtodo drawString (String, int, int) del
objeto.
Servlets: Los servlets son componentes de la parte del servidor de Java EE,
encargados de generar respuestas a las peticiones recibidas de los clientes.

17

BLOGSPOT.COM, Ejemplos programas en Java, Victor Reyes, Agosto 2012, online,


http://lenguajejava56.blogspot.com/

22

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
// Hola.java
import java.io.IOException;
import javax.servlet.*;
public class Hola extends GenericServlet
{
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("Hola, mundo!");
pw.close();
}
}
Las sentencias import indican al compilador de Java la inclusin de todas las clases
pblicas e interfaces de los paquetes java.io y javax.servlet en la compilacin.
La clase Hola extiende (extends), es heredera de la clase GenericServlet. Esta clase
proporciona la interfaz para que el servidor le pase las peticiones al servlet y el
mecanismo para controlar el ciclo de vida del servlet.
La clase Hola sobrecarga el mtodo service (ServletRequest, ServletResponse),
definido por la interfaz servlet para acceder al manejador de la peticin de servicio.
El mtodo service()recibe un objeto de tipo ServletRequest que contiene la peticin
del cliente y un objeto de tipo ServletResponse, usado para generar la respuesta que
se devuelve al cliente. El mtodoservice() puede lanzar (throws) excepciones de tipo
ServletException e IOException si ocurre algn tipo de anomala. 18
El mtodo setContentType (String) en el objeto respuesta establece el tipo de
contenido MIME a "text/html", para indicar al cliente que la respuesta a su peticin
es una pgina con formato HTML. El mtodo getWriter() del objeto respuesta
devuelve un objeto de tipo PrintWriter, usado como una tubera por la que viajarn
los datos al cliente. El mtodo println (String) escribe la cadena "Hola, mundo!" en la

18

OPENBOXE, Lenguaje de Programacion Java, Mexico, Diciembre 2010, online,


http://www.openboxer.260mb.com/java.php

23

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
respuesta y finalmente se llama al mtodo close() para cerrar la conexin, que hace
que los datos escritos en la tubera o stream sean devueltos al cliente.
Aplicaciones con ventanas: Swing es la biblioteca para la interfaz grfica de usuario
avanzada de la plataforma Java SE.
// Hola.java
import javax.swing.*;
public class Hola extends JFrame {
Hola() {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
add(new JLabel("Hola, mundo!"));
pack();
}
public static void main(String[] args) {
new Hola().setVisible(true);
}
}
Las instrucciones import indican al compilador de Java que las clases e interfaces del
paquete javax.swing se incluyan en la compilacin.
La clase Hola extiende (extends) la clase javax.swing.JFrame, que implementa una
ventana con una barra de ttulo y un control para cerrarla.
El

constructor Hola() inicializa

el

marco

frame

llamando

al

mtodo

setDefaultCloseOperation (int) heredado de JFrame para establecer las operaciones


por defecto cuando el control de cierre en la barra de ttulo es seleccionado al valor
WindowConstants.DISPOSE_ON_CLOSE. Esto hace que se liberen los recursos
tomados por la ventana cuando es cerrada, y no simplemente ocultada, lo que permite
a la mquina virtual y al programa acabar su ejecucin.

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
heredado de la clase Window, es invocado para dimensionar la ventana y distribuir
su contenido.
El mtodo main() es llamado por la JVM al comienzo del programa. Crea una
instancia de la clase Hola y hace la ventana sea mostrada invocando al
mtodo setVisible (boolean) de la superclase (clase de la que hereda) con el
parmetro a true. Vase que, una vez el marco es dibujado, el programa no termina
cuando se sale del mtodo main(), ya que el cdigo del que depende se encuentra en
un hilo de ejecucin independiente ya lanzado, y que permanecer activo hasta que
todas las ventanas hayan sido destruidas.20

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.

General: Java no ha aportado capacidades estndares para aritmtica en punto


flotante. El estndar IEEE 754 para Estndar para Aritmtica Binaria en Punto
Flotante apareci en 1985, y desde entonces es el estndar para la industria. Y
aunque la aritmtica flotante de Java (cosa que cambi desde el 13 de noviembre de
2006, cuando se abri el cdigo fuente y se adopt la licencia GPL, aparte de la ya
20

WIKIPEDIA, Java, Espaa, julio 2012, online, http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci


%C3%B3n)#Sintaxis

25

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
existente)[cita requerida] se basa en gran medida en la norma del IEEE, no soporta an
algunas caractersticas. Ms informacin al respecto puede encontrarse en la seccin
final de enlaces externos.
El lenguaje

En un sentido estricto, Java no es un lenguaje absolutamente orientado a

objetos, a diferencia de, por ejemplo, Ruby o Smalltalk. Por motivos de


eficiencia, Java ha relajado en cierta medida el paradigma de orientacin a
objetos, y as por ejemplo, no todos los valores son objetos.

El cdigo Java puede ser a veces redundante en comparacin con otros

lenguajes. Esto es en parte debido a las frecuentes declaraciones de tipos y


conversiones de tipo manual (casting). Tambin se debe a que no se dispone de
operadores sobrecargados, y a una sintaxis relativamente simple. Sin embargo,
J2SE 5.0 introduce elementos para tratar de reducir la redundancia, como una
nueva construccin para los bucles foreach.

A diferencia de C++, Java no dispone de operadores de sobrecarga definidos

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

PREZI, Lenguaje de prog. JAVA, Winda Guzman, Julio 2011, online,


http://prezi.com/ilhw2ceacn6l/lenguaje-de-prog-java/

26

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
para conseguir la misma apariencia de la plataforma destino. Aunque esto es posible
(usando GTK+ y el Look-and-Feel de Windows), la mayora de los usuarios no saben
cmo cambiar la apariencia que se proporciona por defecto por aquella que se adapta
a la de la plataforma.
Rendimiento: El rendimiento de una aplicacin est determinado por multitud de
factores, por lo que no es fcil hacer una comparacin que resulte totalmente
objetiva. En tiempo de ejecucin, el rendimiento de una aplicacin Java depende ms
de la eficiencia del compilador, o la JVM, que de las propiedades intrnsecas del
lenguaje. El bytecode de Java puede ser interpretado en tiempo de ejecucin por la
mquina virtual, o bien compilado al cargarse el programa, o durante la propia
ejecucin, para generar cdigo nativo que se ejecuta directamente sobre el hardware.
Si es interpretado, ser ms lento que usando el cdigo mquina intrnseco de la
plataforma destino. Si es compilado, durante la carga inicial o la ejecucin, la
penalizacin est en el tiempo necesario para llevar a cabo la compilacin.
Algunas caractersticas del propio lenguaje conllevan una penalizacin en tiempo,
aunque no son nicas de Java. Algunas de ellas son el chequeo de los lmites de
arrays, chequeo en tiempo de ejecucin de tipos, y la indireccin de funciones
virtuales.
El uso de un recolector de basura para eliminar de forma automtica aquellos objetos
no requeridos, aade una sobrecarga que puede afectar al rendimiento, o ser apenas
apreciable, dependiendo de la tecnologa del recolector y de la aplicacin en
concreto. Las JVM modernas usan recolectores de basura que gracias a rpidos
algoritmos de manejo de memoria, consiguen que algunas aplicaciones puedan
ejecutarse ms eficientemente. 22
El rendimiento entre un compilador JIT y los compiladores nativos puede ser
parecido, aunque la distincin no est clara en este punto. La compilacin mediante
el JIT puede consumir un tiempo apreciable, un inconveniente principalmente para
aplicaciones de corta duracin o con gran cantidad de cdigo. Sin embargo, una vez
22

PATATABRAVA.COM Un anlisis a java, David Atauri, Enero 2013, online,


http://www.patatabrava.com/apuntes/un_analisis_a_java-f25840.htm

27

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
compilado, el rendimiento del programa puede ser comparable al que consiguen
compiladores nativos de la plataforma destino, inclusive en tareas numricas.
Aunque Java no permite la expansin manual de llamadas a mtodos, muchos
compiladores JIT realizan esta optimizacin durante la carga de la aplicacin y
pueden aprovechar informacin del entorno en tiempo de ejecucin para llevar a
cabo transformaciones eficientes durante la propia ejecucin de la aplicacin. Esta
recompilacin dinmica, como la que proporciona la mquina virtual HotSpot de
Sun, puede llegar a mejorar el resultado de compiladores estticos tradicionales,
gracias a los datos que slo estn disponibles durante el tiempo de ejecucin.
Java fue diseado para ofrecer seguridad y portabilidad, y no ofrece acceso directo al
hardware de la arquitectura ni al espacio de direcciones. Java no soporta expansin
de cdigo ensamblador, aunque las aplicaciones pueden acceder a caractersticas de
bajo nivel usando bibliotecas nativas (JNI, Java Native Interfaces).23
Critica personal
Resulta

extrao

que

habiendo escogido Java


como plataforma para la
realizacin
proyecto,

de

este
nos

dispongamos a criticar la tecnologa que amamos. Creo que las crticas


constructivas son algo muy til; es un ejercicio que debera hacerse ms a
menudo.
Lo que intentamos encontrar en este texto son las razones de lo que considero
un fracaso a medias: el xito a medias que tiene. Para este ejercicio intelectual,
consideraremos el vaso como medio vaco.
El fracaso de Java: Java fue creada como una tecnologa de programacin
multiplataforma. Los programas en Java deberan correr en cualquier sistema
operativo. Pero no lo hacen. Si Java existe desde hace 10 aos Por qu no
23

WIKIPEDIA, Java Lenguaje de programacin, Espaa, Julio 2012, online,


http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)#Cr.C3.ADticas

28

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
usamos programas hechos en Java? Esa es la cuestin. Sin sonar extremista, el
80% de los programas que usamos diariamente se pueden hacer en Java y
correr en entornos multiplataforma. Con programas de uso diario me refiero a
navegadores, clientes de correo, clientes de chat, procesadores de texto,
reproductores multimedia, etc.
Nadie programa en Java?: Cuando queremos bajar un programa,
usualmente buscamos una opcin hecha en Java. Y pocas veces la
encuentramos. Se nota que los programadores no usan a Java en forma masiva.
Pero Java es el lenguaje ms avanzado del mundo. Por qu usan lenguajes
realmente inferiores como Visual Basic? Los programas ms usados hoy en da
son las interfaces grficas, programas que en muchos casos son pura GUI con
poco y nada atrs.
La capacidad grfica de Java es sinceramente deficiente, pero sin embargo se
pueden desarrollar esas interfaces sin grandes problemas. Se puede decir que
los programadores prefieren los entornos de desarrollo de Microsoft como
Visual Basic y Visual C por lo fcil que es crear una GUI, tan slo arrastrando
ventanas y haciendo un par de clicks, se crean estas "cascaritas de programas".
Lo mismo se puede realizar con Delphi, a un precio mucho menor y portndolo
a Linux.
Quienes programan en Java hoy en da slo tienen 2 cosas en mente:

Hacer programas de alto rendimiento para grandes empresas (ej: bases de

datos, servlets), siempre en cosas muy tcnicas.

Hacer applets ms o menos llamativos para una pgina web.

Hasta que no hagamos programas de uso masivo y popular, y los distribuyamos


gratuitamente, Java va a seguir siendo una extraeza de los informticos ms
sectarios. 24
Las limitaciones de Java: Todos los lenguajes tienen sus pros y sus contras. Si
quisiramos hacer un programa muy simple, usaramos C o C++, sobre todo si
24

FROST-TEAM.COM, Critica a Java, Iceman, Septiembre 2010, online,


http://www.frost-team.com.ar/iceman/notas/java_critica.shtml

29

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
ese programa ser la base de otra cosa. Si tan slo queremos hacer una interfaz
grfica que haga algo muy simple, usaramos Delphi o algn Visual. Si
quisieramos hacer un programa muy especfico que haga algo tcnico,
usaramos Perl. Parecera que Java es un lenguaje de descarte, pero en realidad
sirve para todo el resto. Tambin se puede hacer lo mencionado anteriormente,
pero ya no sera prctico.
El problema grfico: Primero fue AWT, ahora es Swing. Ninguna solucin
WO/RE permite el uso de grficos. Eso es porque cualquier solucin del tipo
Direct Media que permita el uso extensivo de los componentes grficos del
sistema operativo no sera una solucin WO/RE.
Java es una carreta: Los programas en Java se ejecutan muy lento. Eso es un
hecho del cual no se puede escapar. Se debe a que se ejecutan en la mquina
virtual (JVM). Cada vez que se ejecuta el programa de Java, se tiene que
levantar toda la mquina de Java, y recin ah se ejecuta el programa en s. Ojo,
pasa lo mismo con Perl, Python, etc. Esto no hace a Java apto para aplicaciones
que deben ser muy rpidas, como los videojuegos.
Accediendo al filesystem: Java debera funcionar en cualquier sistema
operativo, pero todos los sistemas operativos usan formas distintas para ubicar
archivos en un disco. Por ejemplo, mientras que todo el mundo usa la barra
comn / para separar paths, Windows usa la barra invertida \. Para acceder
archivos locales hay que usar JNDI25
Difcil de ejecutar?: Los programas en Java se compilan con la
extensin .class,

se

deben

ejecutar

con

la

ayuda

de

un

programa launcher como java.exe. Para algunos, esto es un problema.


Usualmente vienen empaquetados en un archivo comprimido .jar, y adentro
hay un montn de archivos .class. Slo uno es el ejecutable, el resto son
libreras. Si no se tienen las instrucciones del programa, hay que andar
adivinando cul es la clase principal.
25

FROST-TEAM.COM, Critica a Java, Iceman, Septiembre 2010, online,


http://www.frost-team.com.ar/iceman/notas/java_critica.shtml

30

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Por estas caractersticas, no se puede hacer una asociacin para ejecutar en


forma simple y automtica los programas en Java.
La culpa de Microsoft: Atrs de todo lo malo siempre est el gran Satn, Bill
Gates. Microsoft es sin duda quienes ms han perjudicado a la carrera de Java
para convertirse en EL LENGUAJE.
Ellos tienen una razn simple para ello: su propio inters comercial. Para
ganarse el vil metal, Microsoft ha boicoteado a Java sistemticamente durante
los ltimos 10 aos.
Mientras que, por ejemplo, Apple crea una JVM de muy buena calidad para el
Mac OS <sera imposible que Apple haga algo de mala calidad>, Microsoft nos
da una JVM muy mala con Windows. No se puede ejecutar prcticamente
nada. Se nota que es tan slo una solucin de compromiso para hacer que los
applets funcionen en Internet Explorer.
La JVM de Windows carece de muchas de las libreras que hoy por hoy son
imprescindibles (basta con tipear clspack -dump lista.txt en una lnea de
comandos para comprobarlo).
En toda la ayuda de Windows, no menciona nada de programas en Java. Hay
que adivinar cmo usar el jview.exe y el wjview.exe para correr un programa.
Como broma de mal gusto, crearon libreras propietarias para su JVM,
como WFC, que por supuesto no forman parte del estndar WO/RE de Sun e
IBM. 26

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

FROST-TEAM.COM, Critica a Java, Iceman, Septiembre 2010, online,


http://www.frost-team.com.ar/iceman/notas/java_critica.shtml

31

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
El insulto final es que, despus de haber defenestrado a la idea de WO/RE y las
mquinas virtuales, Microsoft copia a Java y sus conceptos, en la versin
de .NET, que es una copia alevosa y descarada de Java, del mismo modo que
Windows es una copia de Mac OS.
En el sitio http://www.microsoft.com/java no hay nada. Sacaron todo el soporte
de Java y recomiendan a los programadores "actualizarse" a .NET.
La responsabilidad de Sun: Ac no se salva nadie, ni siquiera los inventores
de Java. Sun se mandaron su parte que perjudic tanto al lenguaje como al
WO/RE en s.
Siendo los genios de Sun tan inteligentes... Para qu sacan la especificacin
de JDK 1.1 con AWT si despus la cambian por Swing? Para cuando hicieron
el cambio, todos los sistemas operativos traan AWT. Por lo tanto, AWT vi la
luz en su obsolescencia. En todo caso, es un detalle menor.
Sun no hace computadoras para usuarios finales. Hacen servidores re-zarpados,
en racks para clustering. Sun no hace software para la gente comn, Solaris es
un muy buen sistema operativo para redes y desarrolladores, pero no se puede
hacer nada "normal" en l. Cuando les toca hacer un lenguaje, como de
costumbre, no pensaron en la gente normal sino en las grandes empresas que
consumen sus bizarros productos. No se los puede culpar por ello, es su target.
Pero esto llev a que Java sea hoy en da un lenguaje ampliamente usado
dentro de corporaciones y grandes empresas; mientras que es injustamente
despreciado a la hora de desarrollar productos para la gente comn.27

1.1.5. Java en cdigo abierto


Java se ha convertido en un lenguaje con una implantacin masiva en todos los
entornos (personales y empresariales). El control que mantiene Sun sobre ste ha
generado reticencias en la comunidad de empresas con fuertes intereses en Java
(IBM, Oracle) y obviamente en la comunidad de desarrolladores de software libre.
27

FROST-TEAM, Critica a Java, Iceman 3.7, Enero 2012, online,


http://www.frostteam.com.ar/iceman/notas/java_critica.shtml

32

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

La evolucin basada en un comit en el que participen todos los implicados no es


suficiente y la comunidad demandaba desde hace tiempo la liberacin de las APIs y
bibliotecas bsicas de la JDK.
En diciembre de 2006, Sun Microsystems comenz el relanzamiento de su
plataforma Java6 bajo la licencia GPL de GNU.
En abril de 2009 Oracle adquiri Sun Microsystems, lo que gener temor en la
comunidad ante la posible mercantilizacin del lenguaje de programacin a objetos
ms popular actualmente. Por ahora Oracle ha seguido manteniendo Java, siendo las
versiones posteriores a la 6 bajo su control. 28
Se instala una versin homebrew de PSPKVM (0.5.5) para emular la plataforma de
Java en PSP. Esto permite usar programas JAVA en esta videoconsola.

1.1.5.1. Alternativas libre


Existen alternativas para el entorno de ejecucin y de desarrollo de Java con
una gran cobertura de funcionalidades con respecto a las implementaciones
comerciales de Sun, IBM, Bea, etc.

1.1.5.2. Criticas referentes a Java y software libre


Nota
En diciembre de 2006 Sun est en pleno relanzamiento de su plataforma
Java bajo la GPL de GNU. Cuando este cambio de licencia haya
terminado, esperamos que Java ya no sea una trampa. A pesar de eso, el
problema general descrito aqu seguir siendo importante, porque
cualquier biblioteca no libre o plataforma de programacin puede causar
un problema similar. Debemos aprender una leccin de la historia del Java,
para poder evitar otras trampas en el futuro.
28

BLOGSPOT.COM, Diseo Web, Roberto Osnaya, Abril 2012, online,


http://disweb008.blogspot.com/2012/04/tarea-5.html

33

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
12 de abril de 2004
Si su programa es software libre, bsicamente es tico pero hay una
trampa de la que debe estar atento . Su programa, aunque en s mismo
libre, puede estar limitado por software no libre del que dependa. A da de
hoy este problema es notable, sobre todo, en los programas en Java, por lo
que lo llamamos la trampa del Java.
Un programa es software libre si sus usuarios tienen ciertas libertades
esenciales. Sin entrar en detalles, stas son: la libertad de usar el programa,
la libertad de estudiar y modificar el cdigo fuente, la libertad de distribuir
el cdigo y los binarios, y la libertad de publicar versiones mejoradas
(vase http://www.gnu.org/philosophy/free-sw.es.html). Que un programa
dado sea software libre depende nicamente de los trminos de su licencia.
Que el programa se pueda usar en el mundo libre, por la gente que quiere
vivir en libertad, es una pregunta ms compleja. Esto no lo determina la
licencia del propio programa, porque ningn programa funciona aislado.
Todos los programas dependen de otros programas. Por ejemplo, un
programa necesita ser compilado o interpretado, as que depende de un
compilador o un intrprete. Si es compilado a byte code, depende de un
intrprete de byte code. Adems, necesita bibliotecas para ejecutarse, y
tambin puede invocar a otros programas aparte que se ejecutan en otros
procesos. Todos estos programas son dependencias. Las dependencias
pueden ser necesarias para que el programa pueda ejecutarse, o pueden ser
necesarias solamente para ciertas funciones. En cualquier caso, todo o parte
del programa no puede funcionar sin las dependencias. 29
Si algunas de las dependencias de un programa no son libres, entonces todo
o parte del programa no se puede ejecutar en un sistema completamente
libre es inusable en el mundo Libre. Ciertamente podemos distribuir el
programa y tener copias en nuestras mquinas, pero eso no sirve de mucho
si no podemos ejecutarlo. El programa es software libre, pero en la prctica
est encadenado por sus dependencias no libres.
29

GNU.ORG, Libre pero encadenado la trampa de JAVA, Richard Stallman, Septiembre 2012, online,
http://www.gnu.org/philosophy/java-trap.es.html

34

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Este problema puede suceder en cualquier tipo de software, en cualquier
lenguaje. Por ejemplo, un programa libre que solamente funcione sobre
Microsoft Windows es claramente inusable en el mundo Libre. Pero el
software que funciona sobre GNU/Linux tambin puede ser intil si
depende de otro software no libre. En el pasado, Motif (antes de que
tuviramos LessTif) y Qt (antes de que sus desarrolladores lo hicieran
software libre) fueron importantes causantes de este problema. La mayora
de las tarjetas grficas 3D solamente funcionan a pleno rendimiento con
controladores no libres, que tambin originan este problema. Pero hoy, la
mayor fuente de este problema es Java, porque la gente que escribe software
libre a menudo cree que el Java es sexy. Cegados por su atraccin por el
lenguaje, descuidan el problema de las dependencias y caen en la trampa del
Java. 30
La implementacin del Java de Sun no es libre. Las bibliotecas estndar del
Java tampoco son libres. S que tenemos implementaciones libres del Java,
como el compilador de Java de GNU (GCJ) y Classpath de GNU, pero
todava no tienen todas las funcionalidades. Estamos intentando alcanzarlas.
Si usted escribe un programa en Java sobre la plataforma Java de Sun, est
expuesto a usar funcionalidades exclusivas de Sun sin ni siquiera darse
cuenta. Para cuando se d cuenta, quizs las haya estado usando durante
meses, y rehacer el trabajo le tomara ms meses. Podra decir volver a
empezar es demasiado trabajo. Entonces su programa habr cado en la
trampa del Java; ser inusable en el mundo Libre.
La manera fiable de evitar la trampa del Java es tener en su sistema
solamente una implementacin libre del Java. As, si usted usa una
funcionalidad o biblioteca del Java que el software libre todava no soporta,
se dar cuenta en seguida, y podr reescribir ese cdigo de inmediato.
Sun contina desarrollando bibliotecas estndar del Java adicionales, y
casi todas son no libres; en muchos casos, incluso la especificacin de la
biblioteca es un secreto comercial, y la ltima licencia de Sun para esta
30

BLOGSPOT, Software libre, informtica, y #bacil, Richard Stallman, Febrero 2013, online,
http://krypto84sv.blogspot.com/2008/02/la-trampa-de-net.html

35

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
especificacin

prohbe

publicar

nada

que

sea

menos

que

una

implementacin completa de la especificacin.


Afortunadamente, la licencia de esa especificacin permite publicar una
implementacin como software libre; a otros que reciban la biblioteca se les
permite modificarla y no se les exige adherirse a la especificacin. Pero el
requisito tiene el efecto de prohibir el uso de un modelo cooperativo de
desarrollo para producir la implementacin libre. El uso de ese modelo
implicara la publicacin de versiones incompletas, que aquellos que han
ledo la especificacin no estn autorizados a hacer.
En los primeros das del Movimiento del Software Libre, era imposible
evitar depender de programas no libres. Antes de que tuviramos el
compilador de C de GNU, todos los programas en C (libres o no) dependan
de un compilador de C no libre. Antes de que tuviramos la biblioteca de C
de GNU, todos los programas dependan de una biblioteca de C no libre.
Antes de que tuviramos Linux, el primer ncleo libre, todos los programas
dependan de un ncleo no libre. Antes de que tuviramos Bash, todos los
scripts de shell tenan que ser interpretados por un intrprete de rdenes no
libres. Era inevitable que nuestros primeros programas estuvieran afectados
al principio por estas dependencias, pero lo aceptamos porque nuestro plan
inclua su posterior rescate. Nuestra meta final, un sistema operativo GNU
autosuficiente, inclua sustitutos libres para todas estas dependencias; si
alcanzbamos la meta, todos nuestros programas seran rescatados. Y as
sucedi: con el sistema GNU/Linux, ahora podemos ejecutar estos
programas en plataformas libres. 31
La situacin hoy es diferente. Tenemos potentes sistemas operativos libres y
muchas herramientas libres de programacin. Cualquier trabajo que usted
quiera hacer, lo puede hacer en una plataforma libre; no hay necesidad de
aceptar una dependencia no libre ni siquiera temporalmente. La principal
razn por la que la gente cae hoy en la trampa es porque no piensan en ello.

31

SOLAR.ORG, La trampa de JAVA, Martin Olivera, Argentina, Abril 2004, online,


http://www.solar.org.ar/spip.php?article105

36

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
La solucin ms fcil al problema de la trampa del Java es ensear a la
gente a no caer en ella.
Para mantener su cdigo Java a salvo de la trampa del Java, instale un
entorno de desarrollo del Java libre y selo. De forma ms general,
cualquiera que sea el lenguaje que use, mantenga sus ojos abiertos, y
compruebe el estado de libertad de los programas de los que dependa su
cdigo. La manera ms fcil de verificar que un programa es libre es
buscarlo en el Directorio de Software Libre. Si un programa no est en el
directorio, puede comprobar si su licencia est en la lista de licencias de
software libre.
Estamos intentando rescatar a los programas en atrapados en el Java, as que
si a usted le gusta el lenguaje Java, le invitamos a ayudar en eldesarrollo de
GNU Classpath. Tambin es til probar sus programas con el compilador
(GJC) y GNU Classpath, e informar de cualquier problema que encuentre en
clases ya implementadas. Sin embargo, finalizar GNU Classpath tomar
tiempo; si se siguen aadiendo ms bibliotecas no libres, nunca podremos
tener todas las ltimas. As que, por favor, no encadene su software libre.
Cuando escriba una aplicacin, escrbala para que funcione desde el
principio sobre componentes libres.32
Notar que este artculo fue escrito antes de la liberacin del cdigo fuente de Java.
En la actualidad la postura de la Free Software Foundation y de Richard
Stallman han cambiado, mostrndose partidarios ambos de su uso en software libre.

1.2.

Eclipse

Eclipse es un entorno de desarrollo integrado de cdigo abierto multiplataforma para


desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las
aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, tpicamente ha
sido usada para desarrollarentornos de desarrollo integrados (del ingls IDE), como el IDE
de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega
como parte de Eclipse (y que son usados tambin para desarrollar el mismo Eclipse). Sin
32

GNU.ORG, Libre pero encadenado. La trampa del Java, Richard Stallman, Abril 2004, online,
http://www.gnu.org/philosophy/java-trap.es.html

37

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
embargo,

tambin

se

puede

usar

para

otros

tipos

de

aplicaciones

cliente,

como BitTorrent o Azureus.


Eclipse es tambin una comunidad de usuarios, extendiendo constantemente las reas de
aplicacin cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project,
cubriendo casi todas las reas de Model Driven Engineering.
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de
herramientas para VisualAge. Eclipse es ahora desarrollado por laFundacin Eclipse, una
organizacin independiente sin nimo de lucro que fomenta una comunidad de cdigo
abierto y un conjunto de productos complementarios, capacidades y servicios.
Eclipse fue liberado originalmente bajo la Common Public License, pero despus fue relicenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que
ambas licencias son licencias de software libre, pero son incompatibles con Licencia
pblica general de GNU (GNU GPL). 33

33

WIKIPEDIA, Eclipse (software), Espaa, Julio 2012, online,


http://es.wikipedia.org/wiki/Eclipse_(software)#cite_note-2

38

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Figura 1.4. WORKBENCH

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:

Plataforma principal: inicio de Eclipse, ejecucin de plugins

OSGi: una plataforma para bundling estndar.

El Standard Widget Toolkit (SWT): Un widget toolkit portable.

JFace: manejo de archivos, manejo de texto, editores de texto

El Workbench de Eclipse: vistas, editores, perspectivas, asistentes

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
La definicin que da el proyecto Eclipse acerca de su software es: "una especie de
herramienta universal - un IDE abierto y extensible para todo y nada en particular".

Figura 1.5. Arquitectura multi-capas

Figura 1.6. Plugins presentes en las distintas capas


En cuanto a las aplicaciones clientes, Eclipse provee al programador con frameworks
muy ricos para el desarrollo de aplicaciones grficas, definicin y manipulacin de
modelos de software, aplicaciones web, etc. Por ejemplo, GEF (Graphic Editing
Framework - Framework para la edicin grfica) es un plugin de Eclipse para el
desarrollo de editores visuales que pueden ir desde procesadores de texto wysiwyg
hasta editores de diagramas UML, interfaces grficas para el usuario (GUI), etc.
Dado que los editores realizados con GEF "viven" dentro de Eclipse, adems de
40

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
poder ser usados conjuntamente con otros plugins, hacen uso de su interfaz grfica
personalizable y profesional.
El SDK de Eclipse incluye las herramientas de desarrollo de Java, ofreciendo un IDE
con un compilador de Java interno y un modelo completo de los archivos fuente de
Java. Esto permite tcnicas avanzadas de refactorizacin y anlisis de cdigo.
Mediante diversos plugins estas herramientas estn tambin disponibles para otros
lenguajes como C/C++ (Eclipse CDT) y en la medida de lo posible para lenguajes de
script no tipados como PHP o Javascript. El IDE tambin hace uso de un espacio de
trabajo, en este caso un grupo de metadata en un espacio para archivos plano,
permitiendo modificaciones externas a los archivos en tanto se refresque el espacio
de trabajo correspondiente.36

Figura 1.7. Plataforma eclipse

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

HUMBERTOCERVANTES.NET, Eclipse: introduccin, Mxico, Abril 2005, online,


http://humbertocervantes.net/dokuwiki/lib/exe/fetch.php?media=cursos:introjava:eclipseintro.pdf
37
LAPS.COM, Como instalar Linux en PS3, Pulgo, Marzo 2007, online,
http://www.laps3.com/foro/tutoriales_guias_de_laps3_com/12543-como_instalar_linux_en_ps3-pg11.html

41

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Asimismo, a travs de "plugins" libremente disponibles es posible aadir control de
versiones con Subversion e integracin con Hibernate.
Hibernate Tools para Eclipse y Ant: Trabajando con Hibernate es muy fcil y
los desarrolladores disfrutan utilizar el API y el lenguaje. Incluso la creacin de
metadatos de mapeo no es una tarea demasiado compleja una vez que se haya
dominado los fundamentos. Las herramientas de Hibernate hacen que trabajar
con Hibernate o JPA sea an ms agradable.
Hibernate Tools es un componente bsico de las herramientas de JBoss y por lo
tanto tambin forma parte de JBoss Developer Studio.
Las siguientes funciones estn disponibles dentro de Eclipse:
Editor: El editor admite incluso semntica auto-completado de nombres
de clase, nombres de propiedades / campo, los nombres de tabla y de
columna.
Consola: La consola de Hibernate le permite configurar las conexiones
de base de datos, proporciona una visualizacin de las clases y sus
relaciones y le permite ejecutar consultas interactivas HQL y navegar por
los resultados de la consulta.
Ingeniera inversa: La caracterstica ms poderosa de Hibernate Tools
es una herramienta de ingeniera inversa de bases de datos que pueden
generar las clases de modelo de dominio y de archivos de mapeo
Hibernate.
Asistentes: Varios asistentes son proporcionados, incluyendo un asistente
para generar rpidamente la configuracin de Hibernate (cfg.xml)
archivos, y configuraciones de la consola de hibernacin.38

38

HIBERNATE.ORG, Herramientas Hibernate para Eclipse, EEUU, Enero 2011,

42

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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:

The Eclipse Project es responsable de desarrollar el workbench (banco de


trabajo) del IDE Eclipse (la "plataforma" que contiene las herramientas
Eclipse), el JDT (Java Development Tools), y el PDE (Plug-In Development
Environment) utilizado para ampliar la plataforma.

The Eclipse Tools Project se enfoca en la creacin de herramientas para la


plataforma Eclipse. Entre los subproyectos actuales se incluyen un IDE
Cobol, un IDE C/C++, y una herramienta de modelado EMF.

The Eclipse Technology Project se enfoca en investigaciones tecnolgicas,


incubacin y educacin utilizando la plataforma Eclipse.
La plataforma Eclipse, cuando se
combina con el JDT, ofrece muchas
de las caractersticas que cabra
esperar de un IDE de calidad
comercial:

editor

con

sntaxis

coloreada, compilacin incremental,


un depurador que tiene en cuenta los
threads a nivel fuente, un navegador de clases, un controlador de ficheros/proyectos,
e interfaces para control estndar de cdigo fuente, como CVS y ClearCase.

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Eclipse tambin incluye varias caractersticas nicas, como la refactorizacin de
cdigo , la actualizacin/instalacin automtica de cdigo (mediante Update
Manager), una lista de tareas, soporte para unidades de test con JUnit , e integracin
con la herramienta de construccin de Jakarta: Ant .
A pesar del gran nmero de caractersticas estndar, Eclipse se diferencia de los IDEs
tradicionales en varias cosas fundamentales. Quizs lo ms interesante de Eclipse es
que es completamente neutral a la plataforma - y al lenguaje. Adems de la mezcla
eclctica de lenguajes soportados por el Eclipse Consortium (Java, C/C++, Cobol),
tambin hay otros proyectos para aadir a Eclipse el soporte de lenguajes tan
diversos como Python, Eiffel, PHP, Ruby, y C#.40
Con respecto a las plataformas, el Eclipse Consortium proporciona instalaciones
binarias para Windows, Linux, Solaris, HP-UX, AIX, QNX, y Mac OS X. La
mayora de cosas interesantes que posee Eclipse se centran en la arquitectura de
plug-ins y el API proporcionado por el Plug-in Development Environment para
ampliarlo. Aadir soporte para un nuevo tipo de editor, una vista, o un lenguaje de
programacin, es remarcada mente fcil, con el API y los bloques de construccin
que proporciona Eclipse.
Con cientos de proyectos de desarrollo de plug-ins en progreso, los gigantes de la
industria como IBM, HP, y Rational, proporcionan recursos, y diseos de peso
pesado como Erich Gamma helping para guiarnos en el proceso.41
Eclipse comenz como un proyecto de IBM Canad. Fue desarrollado por OTI (Object
Technology International) como reemplazo de VisualAge tambin desarrollado por OTI.
En noviembre del2001, se form un consorcio para el desarrollo futuro de Eclipse como
cdigo abierto. En 2003, fue creada la fundacin independiente de IBM.42
Resumen de las versiones de Eclipse:
40

DMREMON, Monitor de Recursos Multiplataforma, Alberto Garcia, Marzo 2005, online,


http://dmremon.sourceforge.net/tecnologias_utilizadas_herramientas_desarrollo_es.shtml
41
PROGRAMACION.COM, Eclipse I Historia y toma de contacto, Rene Rene, 2011, online,
http://www.programacion.com/articulo/eclipse_--_i_--_historia_y_toma_de_contacto_288
42
WIKIPEDIA, Eclipse software, Espaa, Julio 2012, online,
http://es.wikipedia.org/wiki/Eclipse_(software)#cite_note-4

44

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Tabla 1.2. Versiones de Eclipse

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
de teclado, mouse, etc... Es por esto, que la mayora de los programas Swing necesitan
importar dos paquetes AWT: java.awt.* y java.awt.event.*.
Como regla, los programas no deben usar componenetes pesados de AWT junto a
componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de
Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPane y todas las
componentes que heredan de las clases Canvas y Panel de AWT).43

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:

Al depender fuertemente de los componentes nativos del sistema operativo

el programador AWT estaba confinado al mximo denominador comn entre


ellos. Es decir que slo se disponen en AWT de las funcionalidades comunes
en todos los sistemas operativos.

El comportamiento de los controles vara mucho de sistema a sistema y se

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
nativos del sistema de ventanas del sistema operativo. Adems al estar enteramente
desarrollado en Java aumenta su portabilidad asegurando un comporamiento idntico
en diferentes plataformas. 44
En 1997, Sun Microsystems y Netscape Communications Corporation anunciaron su
intencin de combinar IFC con otras tecnologas de las Java Foundation Classes.
Adems de los componentes ligeros suministrados originalmente por la IFC, Swing
introdujo un mecanismo que permita que el aspecto de cada componente de una
aplicacin pudiese cambiar sin introducir cambios sustanciales en el cdigo de la
aplicacin. La introduccin de soporte ensamblable para el aspecto permiti a Swing
emular la apariencia de los componentes nativos manteniendo las ventajas de la
independencia de la plataforma. Tambin contiene un conjunto de herramientas que
nos permiten crear una interfaz atractiva para los usuarios.45

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.

Extensibilidad: es una arquitectura altamente particionada: los usuarios

pueden proveer sus propias implementaciones modificadas para sobrescribir las


implementaciones por defecto. Se puede extender clases existentes proveyendo
alternativas de implementacin para elementos esenciales.

Personalizable: dado el modelo de representacin programtico del

framework de swing, el control permite representar diferentes estilos de


apariencia "look and feel" (desde apariencia MacOS hasta apariencia Windows
XP pasando por apariencia GTK+, IBM UNIX o HP UX entre otros). Adems,
44

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
los usuarios pueden proveer su propia implementacin de apariencia, que
permitir cambios uniformes en la apariencia existente en las aplicaciones
Swing sin efectuar ningn cambio al cdigo de aplicacin.
Una aplicacin Swing se construye mezclando componentes con las siguientes
reglas.

Debe existir, al menos, un contenedor de alto nivel (Top-Level Container),

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

contenedores o componentes simples).46


Ejemplo 1
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class HolaMundoSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("HolaMundoSwing");
final JLabel label = new JLabel("Hola Mundo");
frame.getContentPane().add(label);
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addWindowListener(new java.awt.event.WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
frame.pack();
frame.setVisible(true);
}
}

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.8. Ejemplo 1


En las primeras lneas se importan los paquetes necesarios.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
Luego se declara la clase HolaMundoSwing y en el mtodo main se setea el top level
container:
public class HolaMundoSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("HolaMundoSwing");
...
frame.pack();
frame.setVisible(true);
}
}
En el ejemplo, slo hay un contenedor de alto nivel, un JFrame. Un frame
implementado como una instancia de la clase JFrame es una ventana con
decoraciones, tales como, borde, ttulo y botones como conos y para cerrar la
ventana. Aplicaciones con un GUI tpicamente usan, al menos, un frame. 47
Adems, el ejemplo tiene un componente, una etiqueta que dice "Hola Mundo".
final JLabel label = new JLabel("Hola Mundo"); //construye el JLabel.
frame.getContentPane().add(label);

//agrega el label al frame.

Para que el botn de cerrar cierre la ventana, hay dos opciones:


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
47

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
frame.addWindowListener(new java.awt.event.WindowAdapter(){ //versiones
anteriores
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);

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

con el costo de velocidad y rendimiento a travs de

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

DIFERENCIAENTRE, La diferencia entre AWT y Swing, Julieta, Abril 2011, online,


http://www.diferenciaentre.net/la-diferencia-entre-awt-y-swing/

50

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
usuario. Una ventaja importante de swing es que soporta mucho ms caractersticas
de lo que hace AWT. Componentes como informacin sobre herramientas y los
iconos no estn disponibles en AWT estando plenamente utilizables en swing. Las
caractersticas agregadas y puro diseo en Java de swing, aunque significa que
necesite la orden del plug-in de Java para que el programa se ejecute, mientras que la
mayora de los navegadores se apoyan hoy en el AWT que elimina la necesidad de
descargas de plug-in.
Para resumir, si deseas crear simples applets de java se pueden encontrar que, los
mtodos de construccin rpida y fcil de AWT, pueden ser de gran ayuda. Pero si
desea crear una aplicacin completa, podras investigar lo que swing tiene que
ofrecerte. La lista de componentes mejorada y portabilidad podra para ser ms til.49

Figura 1.9. Ventajas Swing

49

DIFERENCIAENTRE.NET, La diferencia entre AWT y Swing, Julieta, Abril 2011, online,


http://www.diferenciaentre.net/la-diferencia-entre-awt-y-swing/

51

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.10. Desventajas Swing

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
entorno Java (Java environment). El proyecto BIRT tambin incluye un motor de grficos
que est integrado en el diseador de informes y adems puede ser usado por separado para
incluir grficas en una aplicacin.
Los diseos de informes BIRT se hacen en XML y pueden acceder a cierto nmero de
fuentes de datos diferentes incluyendo SQL datobases, JDO datastores, JFire Scripting
Objects, POJOs, XML y Servicios Web.

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

Mejoras en las carpetas para los recursos de un informe.

Soporte para la creacin de diagonales en celdas.

Nuevas caractersticas en el expression builder para la manipulacin de fechas.

51

WIKIPEDIA, Business Intelligence and Reporting Tools, Espaa, Enero 2012, online,
http://es.wikipedia.org/wiki/Business_Intelligence_and_Reporting_Tools

53

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Tabla 1.3. Versiones lanzadas por Eclipse BIRT Project

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),

y ahora es el lenguaje estandar para comunicar conceptos OO. 52


ArgoUML fu concebido como un entorno y herramienta para usar en el analisis y diseo
de sistemas de software orientados a objeto. En este sentido es similar a muchos de las
herramientas CASE comerciales que son vendidas como herramientas para modelar
52

TIGRIS.ORG, Argo-uml: Manual de usuario, Alejandro Ramirez, 2011, online,


http://argouml-stats.tigris.org/nonav/daily-userdoc/es/printablehtml/manual/manual.html

54

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
sistemas software. ArgoUML tiene un nmero de distinciones muy importantes de muchas
de esas herramientas.

Es gratis.

ArgoUML se enfoca en investigacin en psicologa cognitiva para proporcionar


nuevas caracteristicas que incrementen la productividad soportando las necesidades
cognitivas de diseadores y arquitectos de software orientado a objeto.

ArgoUML soporta estandares abiertos extensivamenteUML, XMI, SVG, OCL y


otros.

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.

ArgoUML es un proyecto de codigo abierto. La disponibilidad del codigo fuente


asegura que una nueva generacin de diseadores de software e investigadores
ahora tienen un entorno de trabajo probado desde el que pueden conducir el
desarrollo y evolucin de tecnologas de herramientas CASE.

UML es el lengueje de modelado OO mas prevalente y java es una de las plataformas de


desarrollo OO mas productivas. Jason Robbins y el resto de su equipo de investigacin en
la universidad de California, Irvine potenciaron estos beneficios creando ArgoUML. El
resultado es un entorno y una herramienta de desarrollo slida para diseo de sistemas OO.
Es mas, proporciona un campo de de pruebas para la evolucin del desarrollo e
investigacin de herramientas CASE orientadas a objeto. 53
ArgoUML permite crear diagramas como:

Diagrama de Casos de uso

Diagrama de clases

Diagrama de secuencia

Diagrama de colaboracion

Diagrama de estado

Diagrama de actividades

Diagrama de despliegue

53

TIGRIS.ORG, Origenes y Vision General de ArgoUml, 2009 , online,


http://argouml-stats.tigris.org/documentation-es/manual-0.28/ch01.html

55

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.9. ArgoUML

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

ARGOUML-STATS, Manual de usuario, Alejandro Ramirez, 2011, online,


http://argoumlstats.tigris.org/nonav/daily-userdoc/es/printablehtml/manual/manual.html

56

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
argouml.tigris.org. Escoje la versin que se ajusta a tus necesidades como se describe en la
siguiente seccin.
Rational Rose, Poseidon vs. ArgoUML: En el ramo para modelaje de Software existen
diversas herramientas que tambin son capaces de realizar diseos en UML, entre las
principales se encuentran Rational Rose y Together, e inclusive existe un derivado
comercial de ArgoUML llamado Poseidon.
Esta ultima herramienta llamada Poseidon se encuentra disponible en diversas versiones, la
cual en su modalidad ms bsica (Community) es gratuita, y dado que se encuentra basada
en ArgoUML, presenta sus mismas funcionalidades con opciones de compra para usuarios
que requieran funciones avanzadas no disponibles en ArgoUML.
En lo que concierne las otras opciones comerciales -- antes mencionadas -- stas por lo
general son empleadas en proyectos de misin critica, no slo por las funcionalidades
avanzadas que ofrecen en las etapas de diseo y modelacin de software, sino por su costo
de licenciamiento que puede oscilar desde los $1,000 Dlls (U.S) hasta $4,500 Dlls (U.S)
por licencia/usuario.55

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

OSMOSISLATINA, ArgoUML, Argentina. 2005, online,


http://www.osmosislatina.com/argouml/basico.htm
56
RINCONINFORMATICO.COM, ArgoUML: Herramienta libre para disear diagramas UML, Epsilon,
Agosto 2010, online, http://www.rinconinformatico.net/argouml-herramienta-libre-para-disenar-diagramasuml

57

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Java (Java Virtual Machine; JVM). En caso de que nos preguntemos porque todos los
lenguajes no son como este, es por que los lenguajes interpretados tienden a ser mas
lentos que los compilados. Mediante la eleccin de escribir ArgoUML en
Java puro, se hace inmediatamente disponible para el mayor numero de usuarios con
la mnima cantidad de esfuerzo. Esto permite a ArgoUML funcionar en todas las
plataformas.
ArgoUML es un proyecto de cdigo abierto: Esto significa que cualquiera puede
tener una copia gratis del cdigo fuente, cambiarlo, usarlo para nuevos propsitos y
cosas as. La nica (gran) obligacin es que se pase tu cdigo de la misma forma a
otros. UML es el lenguaje de modelado OO mas prevalente y java es una de las
plataformas de desarrollo OO mas productivas.57
Nuevas Caractersticas en V0.20:

UML 1.4 - Caractersticas de extensibilidad mejoradas de UML 1.4.

Diagramas de Secuencia.

Compatibilidad AndroMDA.

Calidad - Cientos de bugs han sido arreglados.

La mayora de las funciones ahora soportan la seleccin mltiple de los

elementos del modelo.

Arrastrar y soltar desde el rbol de exploracin al diagrama y dentro del

rbol de exploracin.

Construido en diseos crticos suministra una revisin no obstructiva del

diseo y sugerencias para mejoras.

Interfaz de mdulos Extensible.

Soporte de Internacionalizacin para Ingls, Alemn, Francs, Espaol y

Ruso.

Restricciones OCL para Clases.

Soporte para el lenguaje de generacin de Cdigo: Java, PHP, Python, C++

y Csharp (C#).

Ingeniera inversa.

57

ES.SCRIBD.COM, Software libre para modelar UML, Ana Franquiz, online,


http://es.scribd.com/doc/50190811/ArgoUML

58

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Disposicin(layout) automtica del diagrama de clases.

Generacin de ficheros PNG, GIF, JPG, SVG, EPS desde diagramas.

Soporte para comentarios para mltiples elementos.

Todos los diagramas 1.4 estn soportados.

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:

No tiene botn "deshacer".

Los Modelos a veces no pueden ser re-abiertos.

58

OPENOSSAD.COM, ArgoUML diseo avanzado de UML , Diciembre 2008, online,


http://openossad.wordpress.com/2008/12/02/argouml-diseno-avanzado-de-uml/
59
OPENOSSAD.WORDPRESS, ArgoUML, diseo avanzado de UML, Diciembre 2008, online,
http://openossad.wordpress.com/2008/12/02/argouml-diseno-avanzado-de-uml/

59

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Import/Export a Java.

No hay llamadas-reflexivas en los diagramas de secuencia--> si existen las

llamadas reflexivas, es un poco complejo hacerlas, pero s se pueden, se hacen


al tomar una accin, partir desde el objeto que se quiere reflexivo, generar 2
puntos (como haciendo un cuadrado) fuera del objeto y luego volviendo al
objeto.

Debes seleccionar una clase para crear un diagrama de secuencia.

Al mover una clase las relaciones no se mueven de forma correcta.

Al seleccionar un rea no se seleccionan las clases de relacin.60

Figura 1.10. Ventajas y desventajas ArgoUML

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

datos como Oracle. MySQL es un sistema de administracin de bases de datos (Database


60

WIKIPEDIA, ArgoUML, Espaa, Junio 2012, online, http://es.wikipedia.org/wiki/ArgoUML

60

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Management System, DBMS) para bases de datos relacionales. As, MySQL no es ms que
una aplicacin que permite gestionar archivos llamados de bases de datos o , lo que es lo
mismo, u
Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas
relacionales orientados a objetos. MySQL, como base de datos relacional, utiliza multiples
tablas para almacenar y organizar la informacin.
MySQL fue escrito en C y C++ y destaca por su gran adaptacin a diferentes entornos de
desarrollo, permitiendo su interactuacin con los lenguajes de programacin ms utilizados
como PHP, Perl y Java y su integracin en distintos sistemas operativos.
Tambin es muy destacable, la condicin de open source de MySQL, que hace que su
utilizacin sea gratuita e incluso se pueda modificar con total libertad, pudiendo descargar
su cdigo fuente. Esto ha favorecido muy positivamente en su desarrollo y continuas
actualizaciones, para hacer de MySQL una de las herramientas ms utilizadas por los
programadores orientados a Internet.61

1.6.1. Historia del proyecto


SQL (lenguaje de consulta estructurado) fue comercializado por primera vez en
1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido considerado
como un estndar para las bases de datos relacionales. Desde 1986, el estndar SQL
ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99,
SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB
establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark,
Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa
consiste en que MySQL cumpla el estndar SQL, pero sin sacrificar velocidad,
fiabilidad o usabilidad.
Michael Monty Widenius en la dcada de 1990 trat de usar mSQL para conectar
las tablas usando rutinas de bajo nivel ISAM; sin embargo, mSQL no era rpido y
61

ESEPESTUDIO, Qu es MySQL?, Jose Manuel Perez, Agosto 2005, online,


http://www.esepestudio.com/articulo/desarrollo-web/bases-de-datos-mysql/Que-es-MySQL.htm

61

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
flexible para sus necesidades. Esto lo llev a crear una interfaz de programacin de
aplicaciones SQL denominada MySQL para bases de datos muy similar a la de
mSQL pero ms portable.
El nombre de MySQL procede de la combinacin de My, la hija de Widenius, con el
acrnimo SQL (segn la documentacin de la ltima versin en ingls2 ). Por otra
parte, el directorio base y muchas de las bibliotecas usadas por los desarrolladores
tenan el prefijo My.
El nombre del delfn de MySQL es Sakila y fue seleccionado por los fundadores de
MySQL AB en el concurso Name the Dolphin. Este nombre fue enviado por
Ambrose Twebaze, un desarrollador de software de cdigo abierto africano, derivado
del idioma SiSwate, el idioma local de Suazilandia y corresponde al nombre de una
ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.62

1.6.2. Lenguaje de programacin


Existen varias interfaces de programacin de aplicaciones que permiten, a
aplicaciones escritas en diversos lenguajes de programacin, acceder a las bases de
datos MySQL, incluyendo C,C++, C#, Pascal, Delphi (via dbExpress), Eiffel,
Smalltalk, Java (con una implementacin nativa del driver de Java), Lisp, Perl, PHP,
Python, Ruby,Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1),
FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programacin de
aplicaciones especfica. Tambin existe una interfaz ODBC, llamado MyODBC que
permite a cualquier lenguaje de programacin que soporte ODBC comunicarse con
las bases de datos MySQL. Tambin se puede acceder desde el sistema SAP, lenguaje
ABAP.

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

WIKIPEDIA, MySQL, Espaa, Julio 2012, online, http://es.wikipedia.org/wiki/MySQL

62

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
aplicacin web est muy ligada a PHP, que a menudo aparece en combinacin con
MySQL. 63
MySQL es una base de datos muy rpida en la lectura cuando utiliza el motor no
transaccional MyISAM, pero puede provocar problemas de integridad en entornos de
alta concurrencia en la modificacin. En aplicaciones web hay baja concurrencia en
la modificacin de datos y en cambio el entorno es intensivo en lectura de datos, lo
que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el
que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para
detectar y corregir errores tanto de SQL como de programacin.

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 5.1 es la prxima serie de entregas de desarrollo, y en ella se

implementarn las nuevas caractersticas. En breve se pondrn a disposicin de


los usuarios interesados en hacer pruebas integrales las entregas Alfa.

MySQL 5.0 es la serie de entregas estables (para produccin). Solamente se

liberan nuevas entregas para correccin de errores, no se aaden nuevas


caractersticas que pudieran afectar a la estabilidad.

MySQL 4.1 es la anterior serie de entregas estables (para produccin). Se

liberarn nuevas entregas para solucionar problemas de seguridad o errores


crticos. En esta serie no se agregarn nuevas caracteristicas de importancia.

MySQL 4.0 y 3.23 son las antiguas series de entregas estables (para

produccin). Estas versiones estn discontinuadas, de modo que solamente se


liberarn nuevas entregas para solucionar errores de seguridad extremadamente
crticos.

63

OPENLIBRA, MySQL Tutorial Simply and Easy, Autores varios, 2010, online,
http://www.etnassoft.com/biblioteca/mysql-tutorial/

63

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Los desarrolladores de MySQL no son partidarios de la "congelacin" total del
cdigo de una versin, puesto que anula la posibilidad de introducir soluciones a
errores. Cuando se habla de algo congelado se quiere expresar que no se harn ms
que pequeas modificaciones que no deberan afectar a la forma en que funciona
actualmente una entrega en un entorno de produccin. Naturalmente, los errores que
se corrigen en una serie se propagan a las siguientes si son relevantes.
Si el usuario est comenzando a emplear MySQL por primera vez o intentando su
implementacin en un sistema para el que no hay una distribucin binaria, es
recomendable instalar una entrega perteneciente a una serie en produccin.
Actualmente, MySQL 5.0. Todas las entregas de MySQL, aun aquellas
pertenecientes a una serie en desarrollo, se verifican con las pruebas de rendimiento
de MySQL y se prueban extensamente antes de liberarse. 64
Si se est ejecutando una versin ms antigua y se desea actualizar, pero se quiere
evitar un cambio brusco con el consiguiente riesgo de incompatibilidades, debera
actualizarse a la ltima versin dentro de la misma serie de entregas que se utiliza
actualmente (es decir, aqulla donde nicamente la ltima parte del nmero de
versin es ms nueva que la actual). En dicha versin los desarrolladores de MySQL
han tratado de corregir solamente errores fatales y realizar cambios pequeos,
relativamente seguros.
Si se desea emplear caractersticas nuevas que no estn en las entregas para
ambientes de produccin, habr que utilizar una versin perteneciente a una serie de
entregas en desarrollo. Hay que tener en cuenta que las entregas de desarrollo no son
tan estables como las que estn en produccin.
Si lo que se desea es emplear el cdigo fuente ms actualizado disponible, que
contenga todas las correcciones y est libre de bugs, se debera emplear uno de los
repositorios BitKeeper, que no son entregas propiamente dichas, pero es el cdigo
en el que se basarn las entregas futuras. 65

64

MYSQL.COM, Escoger la versin de MySQL a instalar, varios autores, 2005, online,


http://mysql.netvisao.pt/doc/refman/5.0/es/choosing-version.html
65
MYSQL.COM, Escoger la versin de MySQL a instalar, varios autores, 2005, online,
http://mysql.netvisao.pt/doc/refman/5.0/es/choosing-version.html

64

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
El esquema de denominaciones de MySQL emplea para las entregas nombres
consistentes en tres nmeros y un sufijo; por ejemplo, mysql-5.0.9-beta. Los nmeros
dentro del nombre de la entrega se interpretan como sigue:

El primer nmero (5) es la versin principal y describe el formato de

fichero. Todas las entregas de la versin 5 comparten el mismo formato para


sus ficheros.

El segundo nmero (0) es el nivel de entrega. En conjunto, la versin

principal y el nivel de entrega constituyen el nmero de la serie.

El tercer nmero (9) es el nmero de versin dentro de la serie. Se

incrementa para cada nueva entrega. Usualmente es deseable poseer la ltima


versin dentro de la serie que se est usando.
Para los cambios menores, el que se incrementa es el ltimo nmero en la
denominacin de la versin. Cuando se adicionan caractersticas de importancia o
aparecen incompatibilidades menores con versiones precedentes, se incrementa el
segundo nmero. Cuando cambia el formato de los ficheros, se incrementa el primer
nmero.
Las denominaciones de las entregas tambin incluyen un sufijo para indicar el grado
de estabilidad. Una entrega progresa a travs de un conjunto de sufijos a medida que
mejora su estabilidad. Los posibles sufijos son:

alpha indica que la entrega contiene caractersticas nuevas que no han


sido plenamente probadas. Asimismo, en la seccin "Novedades"
deberan estar documentados los errores conocidos, aunque usualmente
no los hay. Consulte Apndice C, Historial de cambios de MySQL. Por
lo general, en cada entrega alpha se implementan nuevos comandos y
extensiones, y es la etapa donde puede producirse la mayor cantidad de
cambios en el cdigo. Sin embargo, debido a las pruebas realizadas, no
deberan existir errores conocidos.

beta significa que la entrega est destinada a poseer sus caractersticas


completas y que se prob todo el cdigo nuevo. No se agregan
caractersticas de importancia, y no deberan existir errores crticos.
65

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Una versin cambia de alpha a beta cuando no se han descubierto
errores fatales durante al menos un mes, y no hay planes de agregar
caractersticas que pudieran comprometer la fiabilidad del cdigo
existente.

Todas las APIs, las estructuras visibles externamente y las columnas


para comandos SQL no se modificarn en las futuras entregas, sean
beta, candidatas, o de produccin.

rc es una entrega candidata; o sea, una beta que ha estado funcionando


un intervalo de tiempo y parece hacerlo bien. Solamente podran ser
necesarias

correcciones

menores.

(Una

entrega

candidata

es

formalmente conocida como una entrega gamma.)

Si no hay un sufijo, significa que la versin se ha estado utilizando por


un tiempo en diferentes sitios sin que se informaran errores crticos
reproducibles, ms all de los especficos de una plataforma. Esto es lo
que se llama una entrega de produccin (estable) o General
Availability (GA).66

66

Mysql.com, Escoger la versin de MySQL a instalar, 2011, online,


http://dev.mysql.com/doc/refman/5.0/es/choosing-version.html

66

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.11. Versiones MySQL

1.6.5. Especificaciones
MySQL funciona sobre mltiples plataformas, incluyendo:

AIX

BSD

FreeBSD

HP-UX

Kurisu OS
67

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

XP, Windows Vista, Windows 7 y Windows Server (2000, 2003 y 2008).

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

Escalabilidad y flexibilidad: El servidor de bases de datos MySQL ofrece

lo ltimo en escalabilidad, siendo capaz de manejar bases de datos empotradas


ocupando slo 1MB, y hacer funcionar data warehouses que contengan
terabytes de informacin. La flexibilidad de plataforma es una caracterstica
clsica de MySQL, soportando distintas versiones de Linux, UNIX y Windows
67

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Y, por supuesto, la naturaleza open source de MySQL permite una
personalizacin completa para aquellos que deseen aadir caractersticas al
servidor.

Alto rendimiento: Una arquitectura nica de motores de bases de datos

permite a los profesionales configurar el servidor MySQL para aplicaciones


especficas, dando como resultado un rendimiento espectacular MySQL puede
cumplir con las expectaciones de rendimiento de cualquier sistema, ya sea un
sistema de procesamiento transaccional de alta velocidad, o un sitio web de
gran volmen sirviendo un billn de consultas diarias MySQL ofrece la
municin adecuada para sistemas crticos mediante herramientas de carga de
alta velocidad, ndices full-text y otros mecanismos de mejora del rendimiento

Alta disponibilidad: Solidez y disponibilidad constante son caractersticas

distintivas de MySQL, con clientes confiando en ellas para garantizar el uptime


en todo momento MySQL ofrece una amplia variedad de soluciones de alta
disponibilidad, desde replicacin a servidores de cluster especializados, u
ofertas de terceros. 68

Robusto soporte transaccional: MySQL ofrece uno de los motores de

bases de datos transaccionales ms potentes del mercado. Las caractersticas


incluyen un soporte completo de ACID (atmica, consistente, aislada,
duradera), bloqueo a nivel de filas, posibilidad de transacciones distribuidas, y
soporte de transacciones con mltiples versiones donde los lectores no
bloquean a los escritores y viceversa Tambin se asegura una integridad
completa de los datos mediante integridad referencial, niveles de aislamiento
de transacciones especializados, y deteccin de deadlocks.

Fortalezas en Web y Data Warehouse: MySQL es el estndar de-facto

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

WIKISPACES.COM, Caractersticas de MySQL, 2013, online,


http://packo.wikispaces.com/Caracteristicas+de+MYSQL

69

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
fortalezas tambin se aplican a entornos de data warehousing, donde MySQL
escala hasta el rango de los terabytes tanto para un solo servidor, como para
varios. Otras caractersticas como las tablas en memoria, ndices B-tree y hash,
y tablas comprimidas hasta un 80% hacen de MySQL una buena opcin para
aplicaciones web y de business intelligence

Fuerte proteccin de datos: Porque proteger los datos es el trabajo

principal de los profesionales de bases de datos, MySQL ofrece caractersticas


de seguridad que aseguran una proteccin absoluta de los datos En cuanto a
autenticacin, MySQL ofrece potentes mecanismos para asegurar que slo los
usuarios autorizados tienen acceso al servidor. Tambin se ofrece soporte SSH
y SSL para asegurar conexiones seguras. Existe una estructura de privilegios
que permite que los usuarios slo puedan acceder a los datos que se les
permite, as como potentes funciones de cifrado y descifrado para asegurarse
de que los datos estn protegidos Finalmente, se ofrecen utilidades de backup y
recuperacin por parte de MySQL y terceros, que permiten copias completas,
tanto lgicas como fsicas, as como recuperacin point-in-time. 69

Desarrollo de aplicaciones completo: Uno de los motivos por los que

MySQL es la bases de datos open source ms popular es que ofrece un soporte


completo para cualquier necesidad de desarrollo. En la base de datos se puede
encontrar soporte para procedimientos almacenados, triggers, funciones, vistas,
cursores, SQL estndar, y mucho ms. Existen libreras para dar soporte a
MySQL en aplicaciones empotradas. Tambin se ofrecen drivers (ODBC,
JDCBC,) que permiten que distintos tipos de aplicaciones puedan usar
MySQL como gestor de bases de datos. No importa is es PHP, Perl, Java,
Visual Basic, o .NET, MySQL ofrece a los desarrolladores todo lo que
necesitan para conseguir el xito en el desarrollo de sistemas de informacin
basados en bases de datos.

Facilidades de gestin: MySQL ofrece posibilidades de instalacin

excepcionales, con un timepo medio desde la descarga hasta completar la


69

WIKISPACES.COM, Caractersticas de MySQL, 2013, online,


http://packo.wikispaces.com/Caracteristicas+de+MYSQL

70

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
instalacin de menos de quince minutos. Esto es cierto sin importar que la
plataforma sea Windows, Linux, Macintosh, o UNIX Una vez instalado,
caractersticas de gestin automticas como expansin automtica del espacio,
o los cambios dinmicos de configuracin descargan parte del trabajo de los
atareados administradores. MySQL tambin ofrece una completa coleccin de
herramientas grficas de gestin que permiten al DBA gestionar, controlar y
resolver problemas en varios servidores desde una misma estacin de trabajo.
Adems, hay multitud de herramientas de terceros que gestionan tareas como el
diseo de datos y ETL, administracin, gestin de tareas y monitorizacin.

Open Source y soporte 24 / 7: Muchas empresas no se atreven a adoptar

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

Coste Total de Propiedad menor: Al migrar aplicaciones actuales a

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

WIKISPACES.COM, Caractersticas de MySQL, 2013, online,


http://packo.wikispaces.com/Caracteristicas+de+MYSQL
71
WARP.ES, 10 Razones para usar MySQL, Zaragoza - Espaa, 2008, online,
http://warp.es/mysql/productos/razones/

71

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

documentacin asociada y los datos que pertenecen


a un sistema de cmputo". Segn el mismo autor,
"un producto de software es un producto diseado
para un usuario". En este contexto, la Ingeniera de
Software (SE del ingls Software Engineering) es
un enfoque sistemtico del desarrollo, operacin,
mantenimiento y retiro del software", que en palabras ms llanas, se considera que
"la Ingeniera de Software es la rama de la ingeniera que aplica los principios de la ciencia
de la computacin y las matemticas para lograr soluciones costo-efectivas (eficaces en
costo o econmicas) a los problemas de desarrollo de software", es decir, "permite elaborar
consistentemente productos correctos, utilizables y costo-efectivos" [Cota 1994].
El proceso de ingeniera de software se define como "un conjunto de etapas parcialmente
ordenadas con la intencin de logra un objetivo, en este caso, la obtencin de un producto
de software de calidad" [Jacobson 1998].El proceso de desarrollo de software "es aquel en
que las necesidades del usuario son traducidas en requerimientos de software, estos
requerimientos transformados en diseo y el diseo implementado en cdigo, el cdigo es
probado, documentado y certificado para su uso operativo". Concretamente "define quin
est haciendo qu, cundo hacerlo y cmo alcanzar un cierto objetivo" [Jacobson 1998].
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una
metodologa y un lenguaje propio. A este proceso tambin se le llama el ciclo de vida del
softwareque comprende cuatro grandes fases: concepcin, elaboracin, construccin y
transicin. La concepcin define le alcance del proyecto y desarrolla un caso de negocio.
La elaboracin define un plan del proyecto, especifica las caractersticas y fundamenta la
arquitectura. La construccin crea el producto y la transicin transfiere el producto a los
usuarios.

72

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Actualmente se encuentra en una etapa de madurez el enfoque Orientado a Objetos (OO)
como paradigma del desarrollo de sistemas de informacin. El Object Management Group
(OMG) es un consorcio a nivel internacional que integra a los principales representantes de
la industria de la tecnologa de informacin OO. El OMG tiene como objetivo central la
promocin, fortalecimiento e impulso de la industria OO. El OMG propone y adopta por
consenso especificaciones entorno a la tecnologa OO. Una de las especificaciones ms
importantes es la adopcin en 1998 del Lenguaje de Modelado Unificado o UML (del
ingls Unified Modeling Language) como un estndar, que junto con el Proceso Unificado
estn consolidando la tecnologa OO.72
Objetivos de la ingeniera de software: En la construccin y desarrollo de
proyectos se aplican mtodos y tcnicas para resolver los problemas, la informtica
aporta herramientas y procedimientos sobre los que se apoya la ingeniera de
software.

mejorar la calidad de los productos de software

aumentar la productividad y trabajo de los ingenieros del software.

Facilitar el control del proceso de desarrollo de software.

Suministrar a los desarrolladores las bases para construir software de alta

calidad en una forma eficiente.

Definir una disciplina que garantice la produccin y el mantenimiento de los

productos software desarrollados en el plazo fijado y dentro del costo estimado.


Objetivos de los proyectos de sistemas: Para que los objetivos se cumplan las
empresas emprenden proyectos por las siguientes razones: "Las cuatro C".

Capacidad: Las actividades de la organizacin estn influenciadas por la

capacidad de sta para procesar transacciones con rapidez y eficiencia.

Costo: Para determinar si la compaa evoluciona en la forma esperada, de

acuerdo con lo presupuestado, se debe llevar a cabo el seguimiento de los


costos de mano de obra, bienes y gastos generales.
72

ANGELFIRE.COM, Qu es la ingeniera de Software?, jzavalar, Abril 2012, online,


http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html/

73

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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.

Comunicacin: La falta de comunicacin es una fuente comn de

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


La ingeniera de software afecta a la economa y las sociedades de variadas formas
de cosas.

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

MONOGRAFIAS.COM, Ingeniera de Software, Argentina, Solangegalaz, online,


http://www.monografias.com/trabajos5/inso/inso.shtml
74
GSI.DIT.UPM.ES, Ingenieria del Software, Fernando Saez, 2011, online,
http://www.gsi.dit.upm.es/~fsaez/intl/ingenieria_del_software_factores_economicos_y_humanos.pdf

74

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Y no es que haya una metodologa claramente superior a las dems. Como ya hemos
dicho en ms de una ocasin, todas las metodologas son, en esencia,
bienintencionadas. Obviamente, las ms modernas responden a problemas y
necesidades ms actuales.
Afortunadamente, los tiempos van cambiando (aunque no de la misma manera para
todo el mundo). La informtica va madurando y tanto algunos profesionales de las
tecnologas de la informacin como algunos de sus clientes se van dando cuenta de
que se hace necesario seguir unas ciertas pautas predefinidas en el desarrollo del
software de calidad: es decir, llevar un comportamiento metdico: seguir una
metodologa.
En todo este tema slo tengo una cosa clara: la ausencia de metodologa en el
desarrollo de un proyecto de software garantiza con seguridad tambin la ausencia de
calidad.75

1.7.2.1.Etapas del proceso


La ingeniera de software requiere llevar a cabo numerosas tareas, dentro de
etapas como las siguientes:
Anlisis de requisitos: Extraer los requisitos de un producto software es la
primera etapa para crearlo. Mientras que los clientes piensan que ellos saben
lo que el software tiene que hacer, se requiere habilidad y experiencia en la
ingeniera del software para reconocer requisitos incompletos, ambiguos o
contradictorios. El resultado del anlisis de requisitos con el cliente se plasma
en el documento Especificacin de Requisitos. Asimismo, se define un
diagrama de entidad/relacin, en el que se plasman las principales entidades
que participarn en el desarrollo de software.
La captura, anlisis y especificacin de requisitos (incluso pruebas de ellos),
es una parte crucial; de esta etapa depende en gran medida el logro de los
objetivos finales. Se han ideado modelos y diversos procesos de trabajo para
75

WIKIPEDIA, Ingenieria de Software, Espaa, Julio 2012, online, http://es.wikipedia.org/wiki/Ingenier


%C3%ADa_de_software

76

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
estos fines. Aunque an no est formalizada, se habla de la Ingeniera de
Requisitos. Ingeniera del software: Metodologas y ciclos de vida 15
La IEEE Std. 830-1998 normaliza la creacin de las especificaciones de
requisitos software.
Especificacin: Es la tarea de escribir detalladamente el software a ser
desarrollado, en una forma matemticamente rigurosa. En la realidad, la
mayora de las buenas especificaciones han sido escritas para entender y
afinar aplicaciones que ya estaban desarrolladas. Las especificaciones son
ms importantes para las interfaces externas, que deben permanecer estables.
Diseo y arquitectura: Se refiere a determinar cmo funcionar el software
de forma general sin entrar en detalles. Consisten en incorporar
consideraciones de la implementacin tecnolgica, como el hardware, la red,
etc. Se definen los casos de uso para cubrir las funciones que realizar el
sistema, y se transformarn las entidades definidas en el anlisis de requisitos
en clases de diseo, obteniendo un modelo cercano a la programacin
orientada a objetos.
Programacin: Reducir un diseo a cdigo puede ser la parte ms obvia del
trabajo de ingeniera del software, pero no necesariamente es la que demanda
mayor trabajo ni la ms complicada. La complejidad y la duracin de esta
etapa est ntimamente relacionada al o a los lenguajes de programacin
utilizados, as como al diseo previamente realizado. 76
Prueba: Consiste en comprobar que el software realice correctamente las
tareas indicadas en la especificacin del problema. Una tcnica de prueba es
probar por separado cada mdulo del software y luego probarlo de forma
integral, para as llegar al objetivo. Se considera una buena prctica que las
pruebas sean efectuadas por alguien distinto al desarrollador que la program.

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Documentacin: Todo lo concerniente a la documentacin del propio
desarrollo del software y de la gestin del proyecto, pasando por
modelaciones (UML),diagramas de casos de uso, pruebas, manuales de
usuario, manuales tcnicos, etc; todo con el propsito de eventuales
correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.
Mantenimiento: Mantener y mejorar el software para solventar errores
descubiertos y tratar con nuevos requisitos. El mantenimiento puede ser de
cuatro tipos: perfectivo (mejorar la calidad interna de los sistemas), evolutivo
(incorporaciones, modificaciones y eliminaciones necesarias en un producto
software para cubrir la expansin o cambio en las necesidades del usuario),
adaptativo (modificaciones que afectan a los entornos en los que el sistema
opera, por ejemplo, cambios de configuracin del hardware, software de base,
gestores de base de datos, comunicaciones) y correctivo (correccin de
errores).77

Figura 1.12. Fases del proceso de Desarrollo de Software

1.7.3. Modelos y filosofas de desarrollo de software


77

WIKIPEDIA, Ingenieria de Software, Espaa, Julio 2012, online, http://es.wikipedia.org/wiki/Ingenier


%C3%ADa_de_software

78

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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:

Describe las fases principales de desarrollo de software

Define las fases primarias esperadas de ser ejecutadas durante esas fases

Ayuda a administrar el progreso del desarrollo

Provee un espacio de trabajo para la definicin de un proceso detallado de


desarrollo de software

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

INFINITUMPAGE.MX, Modelo en Espiral, Guillermo Enriquez, Mayo 2010, online,


http://www.infinitumpage.mx/TMX4230319/_/1.html

79

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Existen varias alternativas de modelos de ciclo de vida. A continuacin se muestran
algunos de los modelos tradicionales y ms utilizados.
Modelo en cascada: Es el enfoque metodolgico que ordena rigurosamente las
etapas del ciclo de vida del software, de forma que el inicio de cada etapa debe
esperar a la finalizacin de la inmediatamente anterior.
El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo
se ve fluyendo hacia abajo (como una cascada) sobre las fases que componen el ciclo
de vida.
Se cree que el modelo en cascada fue el primer modelo de proceso introducido y
seguido ampliamente en la ingeniera el software. La innovacin estuvo en la primera
vez que la ingeniera del software fue dividida en fases separadas.
La primera descripcin formal del modelo en cascada se cree que fue en un artculo
publicado en 1970 por Winston W. Royce, aunque Royce no us el trmino cascada
en este artculo. Irnicamente, Royce estaba presentando este modelo como un
ejemplo de modelo que no funcionaba, defectuoso.79
En el modelo original de Royce, existan las siguientes fases:

Especificacin de requisitos

Diseo

Construccin (Implementacin o codificacin)

Integracin

Pruebas

Instalacin

Mantenimiento

Para seguir el modelo en cascada, se avanza de una fase a la siguiente en una forma
puramente secuencial.
79

MITECNOLOGICO, Modelo de Cascada, Lauro Soto, Mexico, online,


http://www.mitecnologico.com/Main/ModeloDeCascada

80

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.13. Modelo en cascada


Modelo en V: El modelo en v se desarroll para terminar con algunos de los
problemas que se vieron utilizando el enfoque de cascada tradicional. Los defectos
estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que las pruebas
no se introducan hasta el final del proyecto. El modelo en v dice que las pruebas
necesitan empezarse lo ms pronto posible en el ciclo de vida. Tambin muestra que
las pruebas no son slo una actividad basada en la ejecucin. 80
Hay una variedad de actividades que se han de realizar antes del fin de la fase de
codificacin. Estas actividades deberan ser llevadas a cabo en paralelo con las
actividades de desarrollo, y los tcnicos de pruebas necesitan trabajar con los
desarrolladores y analistas de negocio de tal forma que puedan realizar estas
actividades y tareas y producir una serie de entregables de pruebas. Los productos de
trabajo generados por los desarrolladores y analistas de negocio durante el desarrollo
son las bases de las pruebas en uno o ms niveles. El modelo en v es un modelo que
ilustra cmo las actividades de prueba (verificacin y validacin) se pueden integrar
en cada fase del ciclo de vida. Dentro del modelo en v, las pruebas de validacin
tienen lugar especialmente durante las etapas tempranas, por ejemplo, revisando los
80

UDT-IA, Metodologia de desarrollo de software, Septiembre 2008, Jrodriguez, online,


http://www.iiia.csic.es/udt/es/blog/jrodriguez/2008/metodologia-desarrollo-sotware-modelo-en-v-o-cuatroniveles

81

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
requisitos de usuario y despus por ejemplo, durante las pruebas de aceptacin de
usuario.81
El modelo en v es un proceso que representa la secuencia de pasos en el desarrollo
del ciclo de vida de un proyecto. Describe las actividades y resultados que han de ser
producidos durante el desarrollo del producto. La parte izquierda de la v representa la
descomposicin de los requisitos y la creacin de las especificaciones del sistema. El
lado derecho de la v representa la integracin de partes y su verificacin. V significa
Validacin y Verificacin.82

Figura 1.14. Modelo en V


Realmente las etapas individuales del proceso pueden ser casi las mismas que las del
modelo en cascada. Sin embargo hay una gran diferencia. En vez de ir para abajo de
una forma lineal las fases del proceso vuelven hacia arriba tras la fase de
codificacin, formando una v. La razn de esto es que para cada una de las fases de
diseo se ha encontrado que hay un homlogo en las fases de pruebas que se
correlacionan.

81

UNIVERSIDAD UNION BOLIVARIANA, Ingenieria de Software, Ervin Flores, 2009, online


http://www.ingenieriadesoftware.mex.tl/61885_Modelo-V.html
82
SPANISHPMO, Ciclos de vida Modelo en cascada, Martha E. Rojas, Julio 2010, online,
http://spanishpmo.com/index.php/ciclos-de-vida-modelo-en-v/

82

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Modelo iterativo: Es un modelo derivado del ciclo de vida en cascada. Este modelo
busca reducir el riesgo que surge entre las necesidades del usuario y el producto final
por malos entendidos durante la etapa de recogida de requisitos.
Consiste en la iteracin de varios ciclos de vida en cascada. Al final de cada iteracin
se le entrega al cliente una versin mejorada o con mayores funcionalidades del
producto. El cliente es quien despus de cada iteracin evala el producto y lo
corrige o propone mejoras. Estas iteraciones se repetirn hasta obtener un producto
que satisfaga las necesidades del cliente.83

Figura 1.15. Modelo iterativo

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

PROCESOSOFTWARE, Modelo Iterativo, Ranieri, 2008, online,


http://procesosoftware.wikispaces.com/Modelo+Iterativo
84
BLOGSPOT.COM, Modelo incremental-evolutivo, phpnoche, Agosto 2009, online,
http://modelosphpnoche.blogspot.com/

83

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Figura 1.15. Modelo de desarrollo incremental


Modelo en
espiral: El desarrollo en espiral es un modelo de ciclo de vida desarrollado por Barry
Boehm en 1985, utilizado de forma generalizada en la ingeniera del software. Las
actividades de este modelo se conforman en una espiral, cada bucle representa un
conjunto de actividades. Las actividades no estn fijadas a priori, sino que las
siguientes se eligen en funcin del anlisis de riesgos, comenzando por el bucle
anterior.
Boehm, autor de diversos artculos de ingeniera del software; modelos de estimacin
de esfuerzos y tiempo que se consume en hacer productos software; y modelos de
ciclo de vida, ide y promulg un modelo desde un enfoque distinto al tradicional en
Cascada: el Modelo Evolutivo Espiral. Su modelo de ciclo de vida en espiral tiene en
cuenta fuertemente el riesgo que aparece a la hora de desarrollar software. Para ello,
se comienza mirando las posibles alternativas de desarrollo, se opta por la de riesgos
ms asumibles y se hace un ciclo de la espiral. Si el cliente quiere seguir haciendo
mejoras en el software, se vuelven a evaluar las nuevas alternativas y riesgos y se
realiza otra vuelta de la espiral, as hasta que llegue un momento en el que el
producto software desarrollado sea aceptado y no necesite seguir mejorndose con
otro nuevo ciclo.85

85

SLIDESHARE, Modelo Espiral, Febrero 2010, DanielaSalaz, online,


http://www.slideshare.net/DanielaSalaz/modelo-espiral

84

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Este modelo de desarrollo combina las caractersticas del modelo de prototipos y el
modelo en cascada. El modelo en espiral est pensado para proyectos largos, caros y
complicados.
Esto modelo no fue el primero en tratar el desarrollo iterativo, pero fue el primer
modelo en explicar las iteraciones.
Este modelo fue propuesto por Boehm en 1988 en su artculo A Spiral Model of
Software Development and Enhancement. Bsicamente consiste en una serie de
ciclos que se repiten en forma de espiral, comenzando desde el centro. Se suele
interpretar como que dentro de cada ciclo de la espiral se sigue un modelo en
cascada, pero no necesariamente ha de ser as.
Este sistema es muy utilizado en proyectos grandes y complejos como puede ser, por
ejemplo, la creacin de un sistema operativo.
Al ser un modelo de ciclo de vida orientado a la gestin de riesgos se dice que uno de
los aspectos fundamentales de su xito radica en que el equipo que lo aplique tenga
la necesaria experiencia y habilidad para detectar y catalogar correctamente riesgos.86
Tareas: Para cada ciclo habr cuatro actividades:
1. Determinar o fijar objetivos:
a) Fijar tambin los productos definidos a obtener: requerimientos,
especificacin, manual de usuario.
b) Fijar las restricciones
c) Identificacin de riesgos del proyecto y estrategias alternativas para
evitarlos
d) Hay una cosa que solo se hace una vez: planificacin inicial o previa
2. Anlisis del riesgo:
86

SLIDESHARE, Modelos Ingenieria de software, juanksi28, Febrero 2011, online,


http://www.slideshare.net/juanksi28/modelo-cascada-y-espiral

85

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

a) Se estudian todos los riesgos potenciales y se seleccionan una o varias


alternativas propuestas para reducir o eliminar los riesgos
3. Desarrollar, verificar y validar (probar):
a) Tareas de la actividad propia y de prueba
b) Anlisis de alternativas e identificacin de resolucin de riesgos
c) Dependiendo del resultado de la evaluacin de riesgos, se elige un
modelo para el desarrollo, que puede ser cualquiera de los otros
existentes, como formal, evolutivo, cascada, etc. As, por ejemplo, si los
riesgos de la interfaz de usuario son dominantes, un modelo de desarrollo
apropiado podra ser la construccin de prototipos evolutivos.
4. Planificar:
a) Revisamos todo lo que hemos hecho, evalundolo y con ello decidimos si
continuamos con las fases siguientes y planificamos la prxima
actividad.
El proceso empieza en la posicin central. Desde all se mueve en el sentido de las
agujas del reloj.

Figura 1.16. Modelo de en espiral


86

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Las cuatro regiones del grfico son:

La tarea de planificacin: para definir recursos, responsabilidades, hitos y


planificaciones

La tarea de determinacin de objetivos: para definir los requisitos y las


restricciones para el producto y definir las posibles alternativas

La tarea de anlisis de riesgos: para evaluar riesgos tanto tcnicos como de


gestin

La tarea de ingeniera: para disear e implementar uno o ms prototipos o


ejemplos de la aplicacin87

Modelo de Prototipos: Un cliente, a menudo, define un conjunto de objetivos


generales para el software, pero no identifica los requisitos detallados de entrada,
proceso o salida.
En otros casos, el responsable del desarrollo del software puede no estar seguro de la
eficiencia de un algoritmo, de la calidad de adaptacin de un sistema operativo, o de
la forma en que debera tomarse la interaccin hombre-mquina. En estas y en otras
muchas situaciones, un paradigma de construccin de prototipos puede ofrecer el
mejor enfoque.
El paradigma de construccin de prototipos comienza con la recoleccin de
requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales
para el software, identifican los requisitos conocidos y las reas del esquema en
donde es obligatoria ms definicin. Entonces aparece un diseo rpido. El diseo
rpido se centra en una representacin de esos aspectos del software que sern
visibles para el usuario/cliente.
87

MITECNOLOGICO, Modelo de Espiral, Mexico, Octubre 2011, Lauro Soto, online,


http://www.mitecnologico.com/Main/ModeloDeEspiral

87

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

El diseo rpido lleva a la construccin de un prototipo. El prototipo lo evala el


cliente/usuario y se utiliza para refinar los requisitos del software a desarrollar. La
iteracin ocurre cuando el prototipo se pone a punto para satisfacer las necesidades
del cliente, permitiendo al mismo tiempo que el desarrollador comprenda mejor lo
que se necesita hacer.88

Figura 1.17. Modelo de Prototipos

88

BLOGSPOT.COM, Modelo de Prototipos, cflores334, Octubre 2007, online,


http://cflores334.blogspot.es/1192848180/

88

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

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

.SCRIBD, Tcnicas y medios para la recoleccin de requerimientos,larz73,Octubre 2010, online


http://es.scribd.com/doc/69383131/Tecnicas-y-medios-para-la-recoleccion-de-requerimientos

89

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Las entrevistas se llevan a cabo entre un solo representante de la compaa y un solicitante


(entrevistado).
Las preguntas que formule el entrevistador pueden ser estructuradas, no estructuradas,
mixtas, de solucin de problemas o de provocacin de tensin.
En la prctica la estructura mixta es la ms empleada, aunque cada una de las otras
desempea una funcin importante.
Entrevistas no estructuradas
Permite que el entrevistador formule preguntas no previstas durante la conversacin. El
entrevistador inquiere sobre diferentes temas a medida que se presentan, en forma de una
prctica comn.
Lo que es aun ms grave; en este enfoque pueden pasarse por alto determinadas reas de
aptitud, conocimiento o experiencia del solicitante.
Entrevistas estructuradas
Entrevista estructurada se basan en un marco de preguntas predeterminadas. Las preguntas
se establecen antes de que inicie la entrevista y todo solicitante debe responderla.
Este enfoque mejora la contabilidad de la entrevista, pero no permite que el entrevistador
explore las respuestas interesantes o poco comunes. Por eso la impresin de entrevistado y
entrevistador es la de estar sometidos a un proceso sumamente mecnico. Es posible
incluso que muchos solicitantes se sientan desalentados al participar en este tipo de
proceso.
Entrevistas mixtas
En la prctica, los entrevistadores despliegan una estrategia mixta, con preguntas
estructurales y con preguntas no estructurales. La parte estructural proporciona una base
informativa que permite las comparaciones entre candidatos. La parte no estructurada
aade inters al proceso y permite un conocimiento inicial de las caractersticas especficas
del solicitante.
Entrevista de solucin de problemas
Se centra en un asunto que se espera que se resuelva el solicitante. Frecuentemente se trata
de soluciones interpersonales hipotticas, que se presentan al candidato para que explique
cmo las enfrentara.
Entrevista de provocacin de tensin
90

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Cuando un puesto debe desempearse en condiciones de gran tensin se puede desear


saber como reacciona el solicitante a ese elemento.90
OBSERVACION
Es una tcnica que consiste en observar atentamente el fenmeno, hecho o caso, tomar
informacin y registrarla para su posterior anlisis.
La observacin es un elemento fundamental de todo proceso investigativo; en ella se apoya
el investigador para obtener el mayor numero de datos. Gran parte de la base de
conocimientos que constituye la ciencia ha sido lograda mediante la observacin.
Existen dos clases de observacin: LA OBSERVACION NO CIENTIFICA y LA
OBSERVACION CIENTIFICA. La diferencia bsica entre una y otra est en la
intencionalidad: observar cientficamente significa observar con un objetivo claro, definido
y preciso: el investigador sabe qu es lo que desea observar y para qu quiere hacerlo, lo
cual implica que debe preparar cuidadosamente la observacin. Observar no
cientficamente significa observar sin intencin, sin objetivo definido y por tanto, sin
preparacin previa.
Modalidades de la observacin cientfica:
Observacin Directa y la Indirecta
Es directa cuando el investigador se pone en contacto personalmente con el hecho o
fenmeno que trata de investigar.
Es indirecta cuando el investigador entra en conocimiento del hecho o fenmeno
observando a travs de las observaciones realizadas anteriormente por otra persona. Tal
ocurre cuando nos valemos de libros, revistas, informes, grabaciones, fotografas, etc.,
relacionadas con lo que estamos investigando, los cuales han sido conseguidos o
elaborados por personas que observaron antes lo mismo que nosotros.
Observacin Participante y no Participante
La observacin es participante cuando para obtener los datos el investigador se incluye en
el grupo, hecho o fenmeno observado, para conseguir la informacin "desde adentro".
Observacin no participante es aquella en la cual se recoge la informacin desde afuera,
sin intervenir para nada en el grupo social, hecho o fenmeno investigado. Obviamente, La
gran mayora de las observaciones son no participantes.
Observacin Estructurada y No Estructurada
Observacin no Estructurada llamada tambin simple o libre, es la que se realiza sin la
ayuda de elementos tcnicos especiales.
Observacin estructurada es en cambio, la que se realiza con la ayuda de elementos
tcnicos apropiados, tales como: fichas, cuadros, tablas, etc, por lo cual se los la denomina
observacin sistemtica.
90

ES.SCRIBD, Mtodos de observacin, unitec, Noviembre 2011, online


http://es.scribd.com/doc/2067482/metodo-de-observacion

91

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Observacin de Campo y de Laboratorio


La observacin de campo es el recurso principal de la observacin descriptiva; se realiza
en los lugares donde ocurren los hechos o fenmenos investigados. La investigacin social
y la educativa recurren en gran medida a esta modalidad.
La observacin de laboratorio se entiende de dos maneras: por un lado, es la que se realiza
en lugares pre-establecidos para el efecto tales como los museos, archivos, bibliotecas y,
naturalmente los laboratorios; por otro lado, tambin es investigacin de laboratorio la que
se realiza con grupos humanos previamente determinados, para observar sus
comportamientos y actitudes.
Observacin Individual Y De Equipo
Observacin Individual es la que hace una sola persona, sea porque es parte de una
investigacin igualmente individual, o porque, dentro de un grupo, se le ha encargado de
una parte de la observacin para que la realice sola.
Observacin de Equipo o de grupo es, en cambio, la que se realiza por parte de varias
personas que integran un equipo o grupo de trabajo que efecta una misma investigacin
puede realizarse de varias maneras.91
De esta forma:
Cada individuo observa una parte o aspecto de todo.
Todos observan lo mismo para cotejar luego sus datos (esto permite superar las
operaciones subjetivas de cada una).
Todos asisten, pero algunos realizan otras tareas o aplican otras tcnicas.
PASOS QUE DEBE TENER LA OBSERVACION

Determinar el objeto, situacin, caso, etc. (que se va a observar).


Determinar los objetivos de la observacin (para qu se va a observar).
Determinar la forma con que se van a registrar los datos.
Observar cuidadosa y crticamente.
Registrar los datos observados.
Analizar e interpretar los datos.
Elaborar conclusiones.
Elaborar el informe de observacin (este paso puede omitirse si en la
investigacin se emplean tambin otras tcnicas, en cuyo caso el informe incluye
los resultados obtenidos en todo el proceso investigativo).

RECURSOS AUXILIARES DE LA OBSERVACION


Fichas.
91

SLIDESHARE, Tcnicas de investigacin de mercados, Liz Villa, Septiembre 2010, online


http://www.slideshare.net/puruxona/consideraciones-teoricas-de-las-sesiones-de-grupo

92

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Rcords Anecdticos.
Grabaciones.
Fotografas.
Listas de chequeo de Datos.
Escalas, etc.

VENTAJAS Y LIMITACIONES DE LA OBSERVACION


VENTAJAS
LIMITACIONES
Permite obtener informacin de los hechos En ocasiones es difcil que una conducta se
tal y como ocurren en la realidad.
presente en el momento que decidimos
observar.
Permite percibir formas de conducta que La observacin es difcil por la presencia de
en ocasiones no son relevantes para los factores que no se han podido controlar.
objetos observados.
Existen situaciones en las que la Las conductas a observar algunas veces estn
evaluacin solo puede realizarse mediante condicionadas a la duracin de las mismas o
la observacin.
porque existen acontecimientos que dificultan
la observacin.
No se necesita la colaboracin del objeto Existe la creencia de que lo que se observa no
observado.
se pueda cuantificar o codificar pese a existir
tcnicas para poder realizar la observacin.
ENCUESTA
La encuesta es uno de los mtodos ms utilizados en la investigacin porque permite
obtener amplia informacin de fuentes primarias. Segn el autor Malhotra, el mtodo de
encuesta es un cuestionario estructurado que se da a una muestra de la poblacin y est
diseado para obtener informacin especfica de los entrevistados. 92
DEFINICIONES DE ENCUESTA:
Una encuesta consiste en reunir datos entrevistando a la gente.
Las encuestas obtienen informacin sistemticamente de los encuestados a travs
de preguntas, ya sea personales, telefnicas o por correo.
Las encuestas son entrevistas a numerosas personas utilizando un cuestionario
diseado en forma previa.
Conjunto de preguntas normalizadas dirigidas a una muestra representativa de la
poblacin o instituciones, con el fin de conocer estados de opinin o hechos
especficos.
En sntesis, la definicin de encuesta enfoca a la misma como un mtodo que consiste en
obtener informacin de las personas encuestadas mediante el uso de cuestionarios
diseados en forma previa.
92

SLIDESHARE, Tcnicas de investigacin de mercados, Liz Villa, Septiembre 2010, online


http://www.slideshare.net/puruxona/consideraciones-teoricas-de-las-sesiones-de-grupo

93

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
TIPOS DE ENCUESTA:
En la actualidad, existen cuatro tipos de encuesta que se dividen segn el medio que se
utiliza para realizar la encuesta:
Encuestas basadas en entrevistas cara a cara o de profundidad Consisten en
entrevistas directas o personales con cada encuestado. Tienen la ventaja de ser
controladas y guiadas por el encuestador, adems, se suele obtener ms
informacin que con otros medios.
Encuestas telefnicas: Este tipo de encuesta consiste en una entrevista va
telefnica con cada encuestado.
Encuestas postales: Consiste en el envo de un "cuestionario" a los potenciales
encuestados, pedirles que lo llenen y hacer que lo remitan a la empresa o a una
casilla de correo. Para el envo del cuestionario existen dos medios 1 El correo
tradicional y 2 el correo electrnico.
Encuestas por internet: Este tipo de encuesta consiste en "colocar" un cuestionario
en una pgina web o en enviarlo a los correos electrnicos de un panel
predefinido.
SESION DE GRUPO
Consiste en la reunin de un grupo de personas, entre 6 y 12, con un moderador encargado
de hacer preguntas y dirigir la discusin. Su labor es la de encauzar la discusin para que
no se aleje del tema de estudio. Con el grupo de discusin se indaga en las actitudes y
reacciones de un grupo social especfico o se enfoca en la informacin a saber. 93
OBJETIVOS:
El objetivo de la investigacin con sesiones de grupo es aprender y comprender lo
que las personas tienen que decir sobre un tema y sus motivos.
Se concede gran importancia a que hablen ampliamente acerca de los temas por
tratar.
El objetivo es conocer sus sentimientos acerca de un producto, concepto, idea u
organizacin, de qu manera se adapta a sus vidas y qu relacin emocional tienen
con l.
La norma esencial de los grupos es reunir personas homogneas para provocar el
mximo de integracin e interaccin entre ellas. Sin intereses comunes, la
dinmica y el intercambio de ideas puede tardar mucho tiempo y puede haber
diversos problemas.
La utilizacin de las sesiones de grupo ha probado tener una gran ventaja. Esta es que las
ideas fluyen espontneamente durante las sesiones. La opinin de uno de los participantes
genera toda una discusin entre el grupo. Rpidamente los participantes se ambientan y as
le brindan informacin objetiva y til al interesado. Esto sucede porque las personas se
93

SLIDESHARE.ET, Tecnicas de recoleccin de datos, austinmi, Marzo 2010, online,


http://www.slideshare.net/austinmi/tecnicas-de-recoleccion-de-datos?player=js

94

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
sienten ms cmodas en este ambiente de grupo pequeo y homogneo que si fueran
entrevistadas individualmente.
LISTA DE VERIFICACION
La Lista de Verificacin, se usa para determinar con qu frecuencia ocurre un evento a lo
largo de un perodo de tiempo determinado.
En la Lista de Verificacin se pueden recoger informaciones de eventos que estn
sucediendo o aquellos que ya sucedieron.
A pesar de que la finalidad de la Lista de verificacin es el registro de datos y no su
anlisis, frecuentemente indica cul es el problema que muestra esa ocurrencia.
La lista de verificacin permite observar, entre otros, los siguientes aspectos:

Nmero de veces que sucede una cosa.


Tiempo necesario para que alguna cosa suceda.
Costo de una determinada operacin, a lo largo de un cierto perodo de tiempo.
Impacto de una actividad a lo largo de un perodo de tiempo.

El uso de listas de verificacin como informacin de control y consulta, proporciona un


sencillo formato estndar que sirve de instrumento de monitoreo y es ms fcil de consultar
que la informacin descriptiva de voluminosos manuales. Estas listas tambin son
especialmente tiles para estimular un monitoreo constante de la realizacin y finalizacin
de funciones.
LLUVIA DE IDEAS
La Lluvia de ideas es una tcnica para generar muchas ideas en un grupo. Requiere la
participacin espontnea de todos. Con la utilizacin de la Lluvia de ideas se alcanzan
nuevas ideas y soluciones creativas e innovadoras, rompiendo paradigmas establecidos. El
clima de participacin y motivacin generado por la Lluvia de ideas asegura mayor calidad
en las decisiones tomadas por el grupo, ms compromiso con la actividad y un sentimiento
de responsabilidad compartido por todos. 94
Para que la lluvia de idea se realice necesitaremos que los participantes tengan en cuentas
las siguientes pautas a seguir:

Necesitamos que TODOS SE EXPRESEN.


Que PIERDAN EL MIEDO de hablar.
Que lo hagan LIBREMENTE.
La lluvia de ideas sirve para que todos se expresen, sin censura, SIN JUICIOS
sobre lo bueno y lo malo.
Se puede hacer HABLADA, pero es mejor hacerla a travs de FICHAS
ESCRITAS, porque:
Permite REFLEXIONAR, antes de expresarse.
Guarda, inicialmente, el ANONIMATO, lo que da ms libertad de expresin.
94

BUENASTAREAS.COM, Lluvia de ideas, aaeeiioouuaaee, Marzo 2013, online,


http://www.buenastareas.com/ensayos/Lluvia-De-Ideas/23714589.html

95

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
El animador del grupo debe tener en cuenta lo siguiente:
Que la letra de las tarjetas PUEDA SER LEDA por todos.
Que haya UNA SOLA IDEA por tarjeta. Quienes tengan varias ideas, podrn
utilizar varias tarjetas.
Recoger TODAS LAS TARJETAS, antes de exponerlas.
Leerlas UNA A UNA, sin ningn juicio, colocndolas en un panel o palegrafo.
Todos deben tener la oportunidad de APRECIAR EL CONJUNTO de tarjetas.
SE AGRUPAN las tarjetas buscando algn tema en comn, llevando al grupo a un
trabajo de consenso.
Se DESCARTAN aquellas tarjetas que no sean pertinentes para el tema que se
est tratando.
Si hay ideas nuevas que surjan, pueden hacerse NUEVAS TARJETAS que contribuyan a la
solucin del tema o problema.
REGLAS PARA LA LLUVIA DE IDEAS

Enfatizar la cantidad y no la calidad de las ideas.


Evitar crticas, evaluaciones o juzgamientos de las ideas presentadas.
Presentar las ideas que surgen en la mente, sin elaboraciones o censuras.
Estimular todas las ideas, por muy malas que ellas puedan parecer.
Utilizar las ideas de otros, creando a partir de ellas.

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

SLIDESHARE, Tecnicas para definir requerimientos, vaspajoq, Octubre 2011, online


http://www.slideshare.net/vaspajoq/tcnicas-para-definir-requerimientos-5281759

96

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
La eleccin de los expertos consultados.
El mtodo Delphi utiliza como fuente de informacin un grupo de personas a las que se
supone un conocimiento elevado de la materia que se va a tratar.
Este mtodo es o se emplea bajo las siguientes condiciones:
No existen datos histricos con los que trabajar.
El impacto de los factores externos tiene ms influencia en la evolucin que el de
los internos.
Las consideraciones ticas y morales dominan sobre las econmicas y
tecnolgicas en un proceso evolutivo
Las caractersticas de este mtodo son:
Anonimato: Durante el Delphi ningn experto conoce la identidad de los otros que
componen el grupo de debate.
Iteracin y realimentacin controlada: La iteracin se consigue al presentar varias
veces el mismo cuestionario, lo que permite disminuir el espacio intercuartil, ya
que se consigue que los expertos vayan conociendo los diferentes puntos y puedan
ir modificando su opinin.
Respuesta del grupo en forma estadstica: La informacin que se presenta a los
expertos no es solo el punto de vista de la mayora sino que se presentan todas las
opiniones indicando el grado de acuerdo que se ha obtenido.
Heterogeneidad: Pueden participar expertos de determinadas ramas de actividad
sobre las mismas bases.
CONCLUSION
El ser asertivo al identificar el mtodo adecuado de recoleccin de datos, nos permitir
optimizar el resultado de recopilacin de informacin fundamental, para as determinar los
requerimientos, que sern base para el progreso de nuestro proyecto.
2.2.

Especificacin de Requerimientos
INTRODUCCION

Este documento es una especificacin de requisitos software para emisin de tickets


numerados en una sala de cine. Todo su contenido ha sido elaborado en colaboracin con
los profesores de la Tecnologa de Sistemas de Informacin de la Escuela Politecnica del
Ejercito. Esta especificacin se ha estructurando inspirndose en las directrices dadas por
el estndar IEEE Recomended Practice for Software Requirement Especifications
ANSI/IEEE 830 1998.

97

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Se pretende desarrollar una aplicacin web para la gestin de emisin de tickets numerados
para un teatro de cine que ofrece pelculas de estreno, con el fin de poner en prctica los
principios de planificacin, gestin de proyectos y de Ingeniera de Software mostrados en
el programa terico.
PROPOSITO
El objeto de la especificacin es definir de manera clara y precisa todas las funcionalidades
y restricciones del sistema que se desea construir. El documento va dirigido como proyecto
de tesis para obtener la Tecnologa en Sistemas de Informacion.
Esta aplicacin permitir la gestin de la venta de un ticket con butaca numera para
sustituir las ineficientes largas filas de espera que realiza la gente horas antes de entrar a la
sala del cine, imprimiendo as una factura con todos los datos exijidos legalmente por el
Servicios de Rentas Internas.
Dicha factura constara de todas las operaciones CRUD, adems que el contenido de sta
informacin sea accesible a todos los usuarios desde cualquier computador conectado al
servidor de la empresa.
Con niveles de seguridad previamente establecidos, el software pretende regular y
controlar de manera ordenada la adicin, sustraccin, modificacin y/o eliminacin de
registros en la base de datos. Debe concordar en todo momento con el contenido fsico de
los asientos asignados y el movimiento de los mismos debe ser previamente validado por el
software.
Para lograr todo esto el programa en gestin deber manejar varios modulos que puedan
facilitar el control rpido y eficiente de cada registro presentado en la base de datos, para
ello se implementaran modulos de seguridad para que cada cajero tenga su propio ID y
CONTRASEA para logearse y asi tener su propia sesin.
Adems el sistema contara con un diferentes tipos de usuarios que estos a su vez tendrn
diferentes tipos privilegios que sern administrados por el usuario Master del programa.
Otro propsito a tomar en cuenta es que el software tendr su modulo de los distintos
reportes que podr emitir, estos sern alimentados por la base de datos en cuestin.
Entre los aportes que ofrecer este proyecto ser automatizar sus procesos rutinarios,
minimizar y optimizar tiempos de ejecucin generando informacin que coadyuv a la
fcil y correcta toma de decisiones del teatro de cine, adems de reportes que emite el
sistema con informacin acertada y oportuna que ayude al director en la toma de
decisiones.
ALCANCE
El sistema en mencin, utilizara una arquitectura cliente servidor, la misma que incluye la
implantacin de las seguridades necesarias para los distintos usuarios.mbito del Sistema
El motor que impulsa el desarrollo del sistema es el gestionar de manera rpida y sencilla
un ticket numerado para lo cual el nombre correspondiente al producto a desarrollar es
TicketFastEasy (TF&E).
98

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Acciones que debe realizar el producto software:
Gestion cuentas de usuario: El Administrador estar en la capacidad de crear y
brindar privilegios del sistema a los diferentes cajeros.
Gestin de numeracin de facturas: El programa contara con la opcin para poder
cambiar manualmente la numeracin de la factura
Tipo de pago: El tipo de pago podr ser mediante efectivo o tarjeta de crdito.
Operaciones CRUD: Al momento de gestionar clientes, facturas, usuarios, salas
de cine el programa estar en la capacidad de realizar las operaciones CRUD
(crear, obtener, actualizar y borrar).
Reportes: El sistema manejara reporte de las ventas de cada da as como un
reporte de los asientos llenos en cierta sala de cine.
Acciones que no debe realizar el producto software:
El programa no podr eliminar una factura ya que una de las pelculas del Teatro
de cine no permite ni devoluciones ni cambios de ningn tipo.
Beneficios, objetivos y metas del producto software:
La aplicacin pretende dar soporte a los usuarios permitiendo as el acceso y
gestin de las actividades q se efectan en el cine.
Adems de estas mejoras que se ofrecen de cara al pblico, el sistema tambin
supondr una mejora administrativa para el cine, ya que se darn opciones para la
gestin de cuentas de usuario.
DEFINICIONES Y ACRONIMOS
Definiciones
Base de Datos.- Cualquier conjunto de datos organizados para su almacenamiento
en la memoria de un ordenador o computadora, diseado para facilitar su
mantenimiento y acceso de una forma estndar. La informacin se organiza en
campos y registros. Un campo se refiere a un tipo o atributo de informacin, y un
registro, a toda la informacin sobre un individuo.
Actualizacin.- Insertar, eliminar, modificar los registros de los usuarios
(Profesores).
Almacenamiento.- En relacin con ordenadores o computadoras, cualquier
dispositivo capaz de almacenar informacin procedente de un sistema
informtico.
99

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Botn.- Es un objeto tangible que realiza un evento tras su activacin.
Conexin.- Comunicacin entre dos entes que tienen caractersticas similares de
comunicacin.
Interfaz.- Medio que permite la comunicacin entre el usuario y el sistema.
Login.- Nombre o alias que se le da a una persona para permitirle el acceso al
sistema siempre y cuando estn registrados.
PASSWORD.- Contrasea o clave para autentificar el ingreso a un lugar o sitio.
Servidor.- Computadora conectada a una red que pone sus recursos a disposicin
del resto de los integrantes de la red. Suele utilizarse para mantener datos
centralizados o para gestionar recursos compartidos.
Cliente: Es quien accede a comprar uno o varios tickets por medio de una
transaccin financiera (dinero) u otro medio de pago.
Sistema Operativo.- Software bsico que controla una computadora. El sistema
operativo tiene tres grandes funciones: coordina y manipula el hardware del
ordenador o computadora, como la memoria, las impresoras, las unidades de
disco, el teclado o el mouse; organiza los archivos en diversos dispositivos de
almacenamiento, como discos flexibles, discos duros, discos compactos o cintas
magnticas, y gestiona los errores de hardware y la prdida de datos.
Tabla.- Entidad que posee campos fsicos primarios secundarios
Cajero: Persona responsable de logearse en el sistema y brindar la atencin
adecuada al cliente ofreciendo todas las facilidades de consumo hacia el
consumidor.
Administrador: Es aquella persona que tiene y conoce todas las funciones que
posee el sistema y que tiene el derecho de dar o quitar permios a los cajeros.
Cartelera: Hace referencia a las pelculas que en esos momentos se proyectan en el
cine, donde estn colocados todos los carteles de las pelculas que se estn
proyectando.
Funciones: Conjunto de datos en el cual consta el nombre de la pelcula, horario y
sala a proyectarse.
Butacas: Asiento con respaldo y brazos que ocupa un espectador en un local
pblico, especialmente en un teatro o en un cine.
Acrnimos
100

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
DBA.- Es aquella persona que tiene el control central del sistema de base de
datos.
CRUD.- Conjunto de operaciones que consisten en crear, obtener, actualizar y
Borrar.
DBMS.- Sistema de Administracin de base de datos, El software que permite la
creacin, administracin e implementacin de la base de datos.
ODBC.- Herramienta que conecta la base de datos con la interfaz.
SRS.- Acrnimo de Software Requeriments Specifications (Especificacin de
Requerimientos de Software)
TCP/IP.- Acrnimo de Transmisin Control Protocol/Internet Protocol (protocolo
de control de transmisiones/protocolo de Internet), protocolos usados para el
control de la transmisin en Internet. Permite que diferentes tipos de ordenadores
o computadoras se comuniquen a travs de redes heterogneas.
REFERENCIAS
IEEE Recomendad Practices for Software Requierements especification ANSI/IEEE 830
1998.
Apuntes de clase de la asignatura Especificacin de requerimientos.
VISION GENERAL DEL DOCUMENTO
Este documento consta de tres secciones. Esta seccin es la introduccin y proporciona una
visin general del ERS (Especificacin de Requerimientos de Software).
En la seccin 2 se da una descripcin general del sistema, con el fin de conocer las
principales funciones que debe realizar, los datos asociados y los factores, restricciones,
supuestos y dependencias que afectan al desarrollo, sin entrar en excesivos detalles.
En la seccin 3 se definen detalladamente los requisitos que debe satisfacer el sistema.

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
El sistema a desarrollar es independiente y tiene total autonoma.es decir que no
interactuara con ningn otro tipo de programa, y tendr un diseo modular para gestionar
las diferentes reas.
FUNCIONES DEL SISTEMA
En trminos generales, el sistema deber proporcionar soporte a las siguientes tareas de
gestin para los distintos modulos del programa que son:

Manejo y administracin de la seguridad del programa.


Manejo y administracin de las ventas del programa.
Manejo y administracin de las salas del sistema.
Manejo y administracin de reportes basados en la informacin del sistema.

A continuacin se describirn con ms detalle estas tareas y como sern soportadas por el
sistema.

Manejo y administracin de la seguridad del programa:


Este modulo manejar la configuracin de usuarios, el cambio de clave de los
usuarios, la configuracin de sistema, la numeracin que se manejara por usuario,
respaldo de la base de datos y referencias que se utilizaran para los movimientos en
el sistema.

Manejo y administracin de las ventas del programa:


Este modulo tendr la capacidad de gestionar todas las operaciones CRUD para
clientes, facturas, beneficios, precios y tipo de pago.

Manejo y administracin de las salas del sistema:


Este modulo estar en la capacidad de manejar todas las operaciones CRUD para la
administracin de las salas, pelculas, eventos, personas y casas productoras

Manejo y administracin de reportes basados en la informacin del sistema:


Para poder tener documentada fsicamente toda la informacin almacenada en la
base de datos tendremos la posibilidad de gestionar cierta cantidad de reportes de
cada uno de los mdulos mencionados anteriormente.
CARACTERSTICAS DE LOS USUARIOS

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
RESTRICCIONES
Las restricciones o limitaciones que se nos pueden presentar en el desarrollo de la
aplicacin a nivel hardware en el servidor pueden ser: la capacidad de la memoria principal
y la velocidad del procesador.
El sistema ser desarrollado en JAVA un lenguaje con una orientacin a objetos del 97%, el
motor de la base de datos es MySql de tecnologa Objeto-Relacional, la metodologa para
el desarrollo se basara en las mejores caractersticas de las metodologas tradicionales
(evolutivas) y giles como la Metodologa de desarrollo en cascada.
SUPOSICIONES Y DEPENDENCIAS
El sistema ha sido implementado en el lenguaje JAVA bajo Windows. Esto significa que el
ejecutable que entregaremos slo podr ser chequeado bajo plataformas Windows. Como
tambin se proporciona el cdigo fuente, es posible compilar todas las fuentes y probarlos
bajo otra plataforma.
REQUISITOS ESPECIFICOS
En este apartado se presentan los requisitos funcionales que debern ser satisfechos por el
sistema. Todos los requisitos aqu expuestos son esenciales, es decir, no sera aceptable un
sistema que no satisfaga alguno de los requisitos expuestos. Los requisitos se han
especificado de manera que sea fcil comprobar si el sistema los ofrece o no y si los ofrece
de manera adecuada.
INTERFACES EXTERNAS
Nuestra aplicacin debe interactuar a travs de las interfaces adecuadas con: la BBDD que
almacena los usuarios, facturas, salas y clientes.
Estas interfaces sern sencillas con operaciones que permitan almacenar, recuperar,
modificar los contenidos de las BBDDs.
Interfaces del sistema
El sistema no interacta con otro sistema, por lo que no hay interfaces de este tipo.
Interfaces con el usuario
La interfaz de usuario debe ser orientada a ventanas, y el manejo del programa se realizar
a travs del teclado y ratn.
La interfaz con la que interactuar el usuario es de tipo cliente servidor y ser manejada a
travs de los cajeros y el administrador. Para su correcto acceso se deber ingresar el login
y password de cada usuario para poder conectarse con el servidor donde estar instalada la
base de datos.
Interfaces con el hardware
Para la interfaz hardware ser necesario el uso de un computador debidamente configurado
con posibilidad de conexiones TCP.
103

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
Interfaces con el software
El usuario no requiere un sistema operativo en concreto para el correcto funcionamiento de
la aplicacin.
Interfaces de comunicaciones
Se requerir un computador que soporte acceso a una red local donde pueda encontrar al
servidor de la base de datos. Ser necesario que el servidor soporte un gran nmero de
conexiones externas simultneas.
2.2.1.

Requerimientos funcionales

Manejo y administracin de la seguridad del programa.


RF01. Administrar empresa: El programa manejara una tabla donde contenga los
datos principales de la empresa como son RUC, razn social, representante
legal, direccin, telefono1, telefono2, fax y correo electrnico.
RF02. Administrar usuario: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Identificacin
Clave
Ruc
Apellido
Nombre
Perfil
Fecha inicio
Fecha final
El usuario deber completar de forma correcta e ntegra cada campo de
informacin que se le pida. Una vez hecho esto, apretar el botn para
realizar cada una de las respectivas operaciones CRUD y se comprobar que
todos los campos sean validados por el sistema.
RF03. Cambio de clave: El usuario estar en la capacidad de modificar su login y
clave personal para lo cual se pedir ingresar la clave anterior y su nueva
contrasea.
RF04. Configuracin del sistema: El administrador podr habilitar o deshabilitar
funciones para que el programa tome en cuenta a partir de su modificacin,
para ello se detallan a continuacin.
Nro de factura deshabilitado
Precios de artculos incluyen Iva.
Imprimir factura sin registrar la forma de pago
No permitir eliminar la factura ni actualizar luego de imprimir
Tiempo de limpieza de sala
Controlar que la factura se imprima una sola vez.
Numero de intentos antes de bloquear la contrasea.
104

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
RF05. Numeracin usuario: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Usuario
Autorizacin
Fecha autorizacin
Fecha Caduca
Serie
Inicio
Final
Actual
RF06. Respaldo de datos: El administrador tendr la capacidad de sacar un
respaldo de la base de datos en el cual tenga que ingresar el nombre del
archivo y la ruta de donde se guardara el archivo.
RF07. Manejar Referencias: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Tipo de referencia
CdigoReferencia
Nombre
Descripcin
Manejo y administracin de las ventas del programa.
RF08. Gestionar cliente: Se podr gestionar todas las operaciones CRUD, para ello
permitir ingresar los siguientes datos:
Nombres
Apellidos
Tipo Id
Ruc/IDE
Fecha ingreso
Direccion
Telfono
Celular
Correo electrnico
Observacin
El usuario deber completar de forma correcta e ntegra cada campo de
informacin que se le pida. Una vez hecho esto, apretar el botn para
realizar cada una de las respectivas operaciones CRUD y se comprobar que
todos los campos sean validados por el sistema.
RF09. Gestionar Venta: Al momento de realizar una venta el sistema permitir
realizar todas las operaciones (CRUD), siempre y cuando el sistema este
configurado para hacerlo. Para ello se deber ingresar una cabecera que
sern los datos del cliente adems de fecha de emisin, un comentario si lo
105

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
hay y un tipo de beneficio que posee el cliente, para posteriormente ingresar
el detalle de la venta, para ello se escoger la pelcula deseada para luego
elegir la funcin disponible, donde se podr visualiza la cantidad de asientos
disponibles luego de esto se proceder a elegir el nmero de entradas de
acuerdo a los diferentes costos ingresados en la base de datos.
Adems de esto abra una opcin para que la factura pueda ser anulada, una
vez anulada esta opcin el usuario ya no podr eliminar ni manipular la
factura, cada factura tendr un estado que es pendiente, anulada, o pagada
RF010. Gestionar Pago: Al momento de realizar el pago de la factura abra opcin
para poner el detalle de pago de la factura, adems de un numero, fecha
banco, NroCuenta y Importe
RF011. Gestionar Beneficio: El sistema podr registrar beneficios de acuerdo al tipo
de cliente para ello podr realizar todas las operaciones CRUD siempre y
cuando no existan transacciones que involucren a los beneficios a
modificarse, los datos a manejarse son: cdigo, nombre del beneficio,
descripcin y un nombre corto.
RF012. Gestionar Precios: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:
Tipo de beneficio
Tipo dimensin
Nombre
Descripcin
Precio
Manejo y administracin de las salas del sistema.
RF013. Gestionar Salas: Se podr gestionar todas las operaciones CRUD, para ello
permitir ingresar los siguientes datos:

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Fecha de nacimiento
Lugar de nacimiento
Ocupacin
Ao de debut

RF015. Gestionar casas productoras: Se podr gestionar todas las operaciones


CRUD, para ello permitir ingresar los siguientes datos:

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
RF017. Gestionar Evento: Se podr gestionar todas las operaciones CRUD, para
ello permitir ingresar los siguientes datos:

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
RF027. Reporte de salas: El sistema podr emitir un reporte donde se pueda ver el
detalle de todas las salas ingresadas en la base de datos.
RF028. Reporte de peliculas: El sistema podr emitir un reporte donde se pueda ver
el detalle de todas las peliculas ingresadas en la base de datos para ello el
administrador podr ingresar como parmetros de bsqueda el genero de
pelcula.
RF029. Reporte de personajes: El sistema podr emitir un reporte donde se pueda
ver el detalle de todos los personajes ingresados en la base de datos para ello
el administrador podr ingresar como parmetros de bsqueda la ocupacin
de cada personaje.
RF030. Reporte de casas productoras: El sistema podr emitir un reporte donde se
pueda ver el detalle de todas las casas productoras ingresadas en la base de
datos para ello el administrador podr ingresar como parmetros de
bsqueda la industria a la que se dedica o la sede de ubicacin de la misma.
RF031. Reporte de eventos: El sistema podr emitir un reporte donde se pueda ver
el detalle de todos los eventos ingresados en la base de datos para ello el
administrador podr ingresar como parmetros de bsqueda la fecha del
evento, la pelcula que est en el evento, o la sala que est en el evento.
2.2.2.

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.

Numero de terminales a manejar: Para el nmero de terminales a manejar se


contar con un servidor de base de datos que ser utilizado solo para el uso de
conexiones a la base de datos.

Nmero de usuarios simultneos: Para el nmero de usuarios simultneos que


interactuaran simultneamente con nuestro sistema es de varios usuarios,
dependiendo de la capacidad fsica que posea nuestro servidor.

Numero de transacciones a manejar dentro de ciertos periodos de tiempo: Se


estima que se manejar alrededor de 540 transacciones durante el da,

109

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin
tomando en cuenta que existieran 5 cajeras y cada una realiza
aproximadamente 100 operaciones diarias, y el resto lo hace el administrador.
Seguridad
La seguridad del sistema se manejara por varios aspectos entre estos estan:

Uso de contraseas para cada usuario (administrador, cajera). Esto permitir


que tengan acceso al sistema solo las personas que tienen autorizacin.
Registros de ingreso al sistema.
Asignar a cada usuario dependiendo su funcionalidad (administrador, cajera).

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

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Captulo III
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.

Diagrama de casos de uso


Diagrama de clases
Diagrama de transicin de estados
Diagrama de secuencia
Diagrama de componentes
Arquitectura de la base de datos

111

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Captulo IV
4.1.
4.2.
4.3.
4.4.

Construccin de la base de datos


Interfaces de usuario
Programacin
Pruebas
4.4.1. Pruebas de caja blanca
4.4.2. Pruebas de caja negra
4.5. Documentacin
4.5.1. Documentacin interna
4.5.2. Documentacin externa
4.5.3. Manual de usuario

112

Escuela CC.TT Hroes del Cenepa


Carrera de Tecnologa en Sistemas de Informacin

Capitulo V

113

Potrebbero piacerti anche