• No se han encontrado resultados

Computaciun Primer Prototipo para la

N/A
N/A
Protected

Academic year: 2018

Share "Computaciun Primer Prototipo para la"

Copied!
266
0
0

Texto completo

(1)

Ciencias Basicas e Ingenieria

Computaciun

Primer Prototipo para

la

Generación del

Coeficiente

de

P a ~ ~ c ~ p a ~ ~ ~ ~

POR

Delgado Varela, Carmina.

Otvera Lbpez, Leodegario.

Peña Rodriguez, Luis Miguel.

(2)
(3)

AGRADECIMlENTOS

...

I

CONTENIDO

...

111

PRESENTACI~N

...

x

AVANCE

...

Xlll

Lo que se hizo

...

x111

I d o que falto

...

xiv

CAPíTULO

I

.

ANALISIS

Y

DISEÑO ORIENTADO A OBJETOS CON

RATIONAL ROSE

...

3

...

1.1. 1.1.1. 1.1.2. 1.1.3. 1.1.4. 1.1 5 . 1.2. 1.2.1. 1.2.2 1.2 3 1.3. 1 3 . 1 . 1.3.2. Diagrama de Use Case

...

3

Use Case . . . 4

Actor . . . 4

Relaciones ... 3

Estereotipos . . . 4

Ejemplo . . . 5

Diagrama de Estados

...

6

Estado . . . 7

7 ranslclon de estado . . . 7

Ejemplo . . . 7

. . . .

Diagrama de Clases

...

9

Clase . . . 9

(4)

1.4- Modelo ~ ~ ~ 1 ~ r ~ ~ ~ ' r i e ~ ~ ~ ~ ~ (de tres capa?)

...

1.3

I *B* ~~~~~~~~ dc componenles

...

18

I I, ! C'omponcnt t. . . . .1%

I

b

:

ite1;ti:icm.x . . . IC! I

.

8. rhumen

...

38

TS

...

39

2.1. .Applets ... 39

2 i i . Ejemplo . . . . . . 40

" I ? litiquetar: bitsicas en las p a s j r m ; i1TML que itrzitlyerl q1pict5 . . 4 Y 11

r

.4 . I:11:rryh

4::

. . . . . . . . . . L 2 - Q'arnctrristicas de los appletv

...

43

z+s

.

(I:iCIo d t. vidir d e [IN rpplr&

...

44

(5)

Proyecto de Investigación II

CAPITULO 3

.

HERRAMIENTAS DE JDK

...

47

3.1. Comando SET

...

47

3.2. Comando PATH

...

47

3.3. Estructura de archivos de Java Developer’s Kit (JDK)

...

48

3.4. Estableciendo la ruta de clases

...

48

3.4.1. Descnpclon ... 49

3 4.2. Entendiendo la ruta de clases y los paquetes ... 49

3 4.3. Directorios y clases empaquetadas . . . SO 3.4.4. Diferentes especificaciones ... SO . ., 3.5. Herramientas bLieas

...

50

3.5.1 . javac.exe ... 50

3.5.1 . 1 . Sinopsis ... SO 3.5. 1 . 2. Descnpclon . . . 51

3.5.1.3. Opciones ... 51

3 . S . 1.4. Ejemplos ... 52

3.5.2. java-exe ... 54

3.5.2.1 . Sinopsis ... 54

3.5.2.2. Descnpcmn 54 3.5.2.3. Opciones . . . 54

. I,

. .

r ... 3.5.3. appletviewer.exe ... 55

3.6. Resumen

...

55

CAPíTULO

4

.

CONOCIMIENTOS BÁSICOS DEL TRABAJO EN RED (EN

INTERNET)

...

57

4.1. Puertos

...

58

CAPíTULO 5

.

THREADS

...

61

5.1. ¿Qué es un thread?

...

61

5.1.1. Caractenstlcas de

. .

los hilos . . . 62

5 . 1.2. LJn ejemplo practico

. .

. . . 62

5.2. Creaclon de thread

...

63

5.2.1. Implementacton ... 63

5.2.2. Herencia . . . 04

..

.. 5.3. Estados de un thread

...

65

5.3.1. Cxeacion ... 65

5.3.2 Activo o ejecutable . . . 66

5.3.3. Dormido ... 66

5.3.4. Muerto ... 68

S 3.5. E-jemplo practlco . . . ~ ... 68 1 . .

. .

(6)

5.4. t'rioridades de los threads ... 70

5.1. i Tratamiento de las pritrridades . . . .70

A

P

I

6

.

~

SERVLETS

~

~

...

~

9~

G.1. Intrtrducclbn a los Setvlrls

...

..,.oa...Is

90 h I . i i 41 Scrdet Sencillo . . . 0 1 tr I 2 . .%rquitectwa del Paqucte Scrvic? . . . 0 1 6.3. El Ciclo de Vicia de UII Servlel

...

98

6:

I m(i' oinicializar cm Serviet . . . 90

t> 7 2 Dest tuir- un Scn Ici . . . 99

6 - 4 Grabar el Estada del ..6.el.t....

...

101

6-4 I Sepin~ier~to de Sesibn . . . . . 102

b 4.' Corno utilizar r'clokiet; . . . . . . 105

CAPíTULO

7

.

PROCESO

BE

ANikLISIS

...

-719

(7)

. . Proyecto de Investigación II

.___ ~ ~~~~ ~

7 1.2. Modelo de interfaz ... 140

7.1.3. Modelo del dominio del problema ... 148

7.2. Resumen

...

150

CAPíTULO

8

.

LOS APPLETS DEL PROYECTO

...

151

8.1. Establecimiento de las variables de ambiente

...

151

8.2. Diseño para la clase de interfaz cIPrincipal

...

152

8.2.1. Primer propuesta ... 153

8.2.1 . I . Jerarquía de clases y relaciones ... 153

8.2.1.2. Jerarquía de componentes y dependencias. . . 155

8.2.1.3, lngenrerm hacia delante ... 157

8.2.1.4. Programaclon y compdacmn 158 8.2.1 .S. Pagina HI”L y corrida ... 162

8 2.1.6 Ingenlerla hacia atrás 163 . . . / . . , ... . . . . ... 8.2.2. El diseño obtenido para la clase cIPrincipa1 ... 164

8.3. Diseño del resto de los applets

...

167

8.3 1 . La clase de interfaz clFolioDocOficial ... 167

8.3.2. La clase de interfaz clConsulta ... 169

8.3.3. La clase de interfaz clRegistraSo1 ... 171

8.3.4. La clase de control cCValida ... 173

8.3.5. Todas las clases ... 174

8.4. 8.4.1. 8.4.2. 8.4.3. 8.4.4. 8.4.5. 8.4.6. 8.4.7. 8.4.8. 8.5. 8.5. 1 . 8.5.2. 8.53. 8.5.4. 8.5.5. 8.5.6. 8.5.7. Mejoras en el diseño

...

175

La clase de control cCRegistraURL ... 176

La clase de control cCValida . . . 177

La clase abstracta ClaseDelntert’az . . . 177

La clase de interfaz cIPrincipal ... 179

La clase de intertaz clFolioDocOficial ... 179

La clase de interfaz cIConsulta ... 180

La clase de interfaz clRegistraSo1 . . . 181

Todas las clases ... 1X2 Ingeniería hacia delante y los fuentes

...

~

...

1X4 Archivo ClaseDelnterfxz.java ... 184

Archivo clRegistraSo1. java . . . 187

Archivo clPnnclpal.Java. . . 1X9 Archivo clFolioDocOfwal.java ... 191

Archivo clConsulta.java . . . 193

Archivo cC1Vahda.Java 195 Archivo cCRegistraURL.java ... 196

. . . . . . . . . . . 8.6. Cornpilacton. archivos . .

.

html y corrida

...

197

8.7. Resumen

...

200

(8)

...

"201

8.1. Script d e definicibn de la Rase de datos.,,

...

2OI

A. CONCEPTOS DE JAV

...

223

...

22-1.

h.2. Bloque de sentencias,

...

233

-4.2 I Scntmeia if' . . . 2 1 3

A . 2 2 Serlterlcia switch . . . .2.13

/I 2 7 Sentencia whi!e . . . . . . . 2 34

A 2 4 Sentencia do-tuhiíc . . . " . 2 14

A 2 . 5 Sentencia tbr . . . 234

ta 3 b Sentencias brcaii y cnnttnue . . . 2 i 4

B. C

O

~

F

~

PARA

~

~

SERVLETS

R

A

~

...

~

~

~

235

CONCLUSIONES

...

....241

(9)

""... " Proyecto de Investigación I1

" ~~~~ .. -~~~ ~~ ~~ ""

... ... ... ... ... ... ...

Servidores WEB indispensables para el proyecto

...

243

Bibliografia usada por el proyecio

...

244 Servidores WEB interesantes

...

244

Servlets 244

Servidores Web que soportan Servlets ... 246

Otros sltros 248

...

. . . . .

Bibliografia interesante

...

...

249

Servlets y Bases de Datos 249

Otros Libros 251

...

. . .

Revistas interesantes

...

252

(10)
(11)

Proyecto de Investigación II

Incluyéndose un apartado que explica a detalle la construcción y las etiquetas de una página HTML.

Capítulo 3. Herramientas de JDK.

Solo hacemos mención de las herramientas (comandos de Java) que usamos en el proyecto; destacando una descripción, sintaxis y opciones de cada una. Incluimos ejemplos diversos.

Capítulo 4. Conocimientos básicos del trabajo en Ked (en Internet).

Decidimos agregar este capítulo por interesante, pues trat.a de los protocolos TCP/IP y UDP. Se da una descripcih, uso, semejanzas y diferencias de dichos protocolos.

Capítulo 5. Threads.

Debido a que los multiprocesos cada vez son más frecuentes, incluimos este capít.ulo. Para que el interesado en continuar con este proyecto encuentre en este documento información sobre los hilos.

Capítulo 6. Servlet

s.

Capítulo indispensable para el desurollo del proyecto. Este capitulo e s u n curso completo acerca de los Servlets. Con ellos puede construirse las clases de control y de datos para tener acceso al servidor y a las BD.

Capítulo 7. Proceso de análisis.

A partir de este capítulo comienza la segunda parte de este documento, el de- sarrollo del proyecto. Este capítulo fue el primero en construirse. En é1 se in- cluye la descripción del proyecto acompañado de una entrevista que da res- puesta a todas las dudas que nos surgieron en un principio, el levantamiento de los requisitos, el desarrollo de los diagramas de UCs., los diagramas de co- laboración, secuencias, estados, clases estáticas y el modelo de interfaz.

Capítulo 8.

Los

applet,s del proyecto.

Una vez levantados los requisitos y construidos cada uno de los diagramas de a n a i s i s comienza la programación. Las ventanas que

se

usan como interfaz en el proyecto son los applets y es en este capítulo donde se dan las ramnes de su implantación y su construcción. L a construcción de los applets comien- za en Rational Rose, posteriormente se codifican los mét.odos en u n edit,or de textos, y

se

compilan y corren con J D K 1.2.1. De modo que el andisis de estas ventanas y su programación se incluyen en este capítulo.

Capítulo 9. Definición de la BD. y los Servlets tiel proyecto.

En este capitulo se incluye el "script" que define a la HZ). junto con el código de cuatro Serv1et.s que se encargan de consultarla.

Aphndice A. Conceptos de Java.

t'ara tener el documento completo hemos agregado este apendicc que servir-&

de consulta rápida.

ne

esta forma le evitamos al lector que tenga que levan- l.arse a buscar otro libro, evitando con ello la dist.racción.

Apéndice

B.

Configuracibn para Servlets.

~ ~ ~~ ~ ~"

(12)

Presentación "

(13)

Uno de los objetivo de este proyecto dice: u A l c a ~ z a r la generación de u n primer prototipo que sirva de punto de partida para las siguientes generaciones de estudiantes interesadas en el análisis y diseño de un segundo prototipo." El objetivo e s claro y aparentemente simple sin embargo no

es

tan sencillo como parece, ya que el obstáculo con el que nos encontramos todo el tiempo fue: la

Falta de experiencia. Si, la experiencia en proponer un buen andisis, la programación Orientada a Objetos, el uso de la herramienta visual ,JHuildcr, la herramientas CASE Rational Rose, en fin. De modo que tuvimos que emplear mris tiempo de lo programado, p aun así, nos falt6. Sin embargo cubrimos gran parte de los objetivos iniciales.

Lo

que

se

hizo

u

U

o

U

u

Se creo u n capitulo que muestran el uso y configuración d e Rational Rose.

Se incluyeron lecturas y cursos referentes a la programación Chientada a Objet.os con Java.

Se indicaron las distintas configuraciones hechas a lo largo dc todo el proyecto: establecimiento de va_riables de ambiente en el autoexec.bat, y configuración de ServletRunner y Java Web Server para la e-jecución d e Servlets.

El Anidisis y Diseño para l a obtención del Coeficiente tie Participaciih

Se definió la base de datos para el sistema a traves de InterRase.

Se hizo la conexión a la base de datos para realizar distintas consultas.

Parte de la codificación st' hizo con JHuilder2 y parte con

JDK

1.2.1. i,a codificacion hecha con ,JI)K 1.2.1 está perfectamente documentada.

Se generó una extensa bibliografia y enlaces a sitios W E B indispensables para la creación del proyecto.

(14)
(15)
(16)
(17)

l.

Kational Kose es una herramienta CASE' que permite el Análisis y Diserio Orientado a Objetos, ADOO, a partir del uso de diferentes vistas del problema permitiendo modelar diferentes diagramas de: Use Cases, estados, colabora- ción, secuencia y de clases. Además de permitir la organización del proyecto a través de una jerarquía de paquetes y componentes. En donde u n paquete re- presenta a un directorio y un componentes a un xrchivo de texto, el cual con- tiene código fuente pwa una o más clases. Rose tiene la capacidad de usar not.ación U M V , Roach:: y OMT4.

Lo interesante de esta herramienta son dos cosas: Primero; le permite al ana- lista la identificación de los objetos d i n h i c o s , clasificar los ohjetos dinámi- cos, e identificar las asociaciones dinámicas entre objetos. Segundo, lo más interesante, una vez que se ha hecho un buen anklisis se tiene la opción de generar código; en nuestro caso, en Java.

Antes de comenzar a modelar el problema real, Coeficiente de f'articipación, comenzare recordando u n poco de la not.aci6n que maneja Kose.

,l.

Diagrama

de

Use

Case

(18)

4

.I

-2.

ACTOR

(19)

Diagrama de

Use

Case

. ~ ~~ . . " . .. . . .. ~

uso, B. El estereotipo ((usan indica que un caso del UC. A tambiin in- cluirá el comportamiento como

es

especificado por R.

1

.I

-5.

EJEMPLO

i j

I

Almacenista

I I

Entrada de Articulos

i

(\ I

Entrada por Compra

'I

Almacenista

Actualización de Existencias

Entrada por Dewlución Entrada por transferencia

La flecha con punta de triángulo es la de generalización, mientras que la otra e s u n a asociación simple.

Este diagrama ilustra la relación que existe entre los diferent.es elementos del modelo que podrían existir en cualquier almackn en donde el Almacenista re- gistra los artículos que llegan al almacen; los artículos pueden llegar por que u n cliente los devolvió, porque se compraron o porque llegaron de otra sucur- sal. 'Panbien se puede ver que el UC. Entrada de Artículos usa el UC. Actuali- zación de Existencias, o dicho de otra forma el UC. Actualización de Existen- cias es parte del UC. Entrada de Artículos. Lo que significa que cualquier en- trada de artículos hace uso de la actuali7~ción de existencias.

Como es sabido, del curso de ADOO, cada UC. cuenta con u n a serie de tran- sacciones. L a s transacciones para el UC. Entrada de articulos por Compra son las siguientes?

' I ' H A N S A C C I ~ N DESCRIPCI~N

~~ ."___ ""~ -~ ___.

I El Almacenista sclecciom la orden de compra correspondiente a la en- trada.

2 El Almacenista v e r i J w que la entrega corresponda a los artículos y a

las cantidades descritas en la Orden de Compra.

1, .

1'ahl;r cvtraida dc las notas dcI profcsor I.UIS Castro Cal.wp

(20)
(21)

Diaarama de Estados

1.2.1. ESTADO

Un estado de un objeto representa una parte de su comportamiento; dicho de otra Forma, e s u n a d e las posibles condiciones en que el objeto puede estar. S u representación grX1ca es u n rectangulo con esquinas redondas.

Un objeto r e d i m acciones inmediatamente despues que es generado, durante su tiempo de vida, y justo ant.es de ser destruido. De modo que en nuest.ro diagrama podemos tener un estado que ejecute acciones para iniciar al objeto, un conjunto de estados que realicen acciones durante el tiempo de vida del objeto, y otro estado que ejecute acciones justo antes de que cl objeto sea destruido.

1.2.2.

TRANSICION

DE ESTADO

Es un cambio de un estado inicial a un estado final en donde el estado inicial y el estado final bien pueden ser el mismo. La representación gráfica e s me- diante una flecha que inicia en el estado inicial y termina e n el estado final.

A las transiciones se les pueden agregar eventos, acciones y condiciones. E s decir, para que haya u n a transición de un estado a otro, necesariamente t.uvo que haber un evento que estimule esa transición, o bien u n a condición que obliga a que haya una tr,ansición de estado. A esa transición se le puedc aso- ciar, si es necesario, u n a acción.

1.2.3.

EJEMPLO

Supongamos que el analista es usted y su cliente es el gerente de una mueble- ría. El diálogo sería algo así:

r3esput;s de los buenos días y haber comentado el partido del domingo.

Analista.-He estado pensando en su sistema y la parte que tiene que ver con la entrada de artículos se verá así:

(22)

Anal!sta. - A ! hacer CIIC en el boton

(23)

1.3.

Debido a lo simple del problema solo tengo una ventana por cada UC. Para poder ilustrar los eventos agmparl tres UC.: Principal, que no est.á en el dia- grama, Entrada de Artículos y Entrada por Devolución en el super UC. EN- TKADA DE ARTÍCULOS. Ahora sí, el Diagrama de Estados para el super UC. ENrRADA DE AKTiCULOS sería:

i

1 Entrada de Artículos

‘ 1

i J

REGISTRO

REGRESAR

Por Dewlución

I t

Ventana Entrada de Artículos Ventana Por Dewlución

1

!

I<

I !do: Registrar articulos I i

REGRESAR

Ilustración 6. L)ragmma de Estados para ENTRADA DE ARTÍCULOS.

De la Ilustración 6 podemos ver que cada objeto representa una ventana y que podemos pasar de una a otra debido a eventos provocados por el usuario, haciendo clic en los botones señalados. En el objeto Ventana Por Devolución se registran artículos a través del evento IiEGISTRO y se sale de ella con cl evento REGKESAK.

Diagrama de Clases

~~ .. . ..- _______ . . ~ ~ ~ _ _ _

Para cada UC. se obtiene un Diagrama de Clases en donde el objetivo es esta- blecer las clases que construirán al sistema y las relaciones que existen entre ellas. De esta fonna se ataca el problema en pequeñas partes. Una vez que se h a creado cada Diagranm de Clases se puede tener el Diagrama de Clases completo, que seria u n a recopilación de lo s pequeños diagramas. La ventaja de trabajar con pequeñas partes del problema e s que uno tiene mayor control de la situación.

Para cada clase se deben establecer sus atributos, métodos y relaciones entru clases así como tambiln la cardinalidad y tipo de relación.

1.3.1.

CLASE

Una clase captura la estructura y comportamiento común de un con.junt.0 de objetos. Una clase e s u n a abstracción de cosas del mundo real. Cuando csas cosas existen en el mundo real, se les llama instancias de la clase, y se refiere uno a ellas como un objeto.

La representación grX1ca de una clase es una caja cuadrada con tres divisio- nes. En la división superior se escribe el nombre de la clase, en la división de en medio v a u n lista de atributos, y en la división inferior va una lista de mi.- todos.

(24)
(25)

Diaarama de Clases

se hijo se puede saber quien es su padre, pues un hijo solo tiene un patire. En eambio, si tomo a una instancia de la clase padre y se desea referir a uno de s u s hijos, hay que precisar a que hijo

se

refiere.

1

Padre

I

1 I

1

Hijo

I

1.3.2.2.

Agregación

Una relación de agregación e s u n a relación del todo y s u s partes.

i

Factura

I

I

~

1

DetalleFactura

Ilustradón 1 l . Relacicin de agregacicin.

1.3.2.3.

Generalización

L a relación de generalización es usada cuando se desea que las subclases he- reden el comportamiento de la superclase.

En la Ilustración 127 los métodos de la clase camion tienen acceso a los mi:-

todos de la clase vehic..c;met exactamente igual que si se hubiesen declarado dentro de camion. Si embargo, los métodos de las subclases no tienen acceso a la parte privada de vehic-carret.

(26)

Capitulo 1. Análisis y Diseno con Rational Rose

(27)

1.3.3.

EJEMPLO

A continuacibn muestro el Diagrama de Clases para el UC. Entrada de artí- culos por Compra. La ticnica para obtener los atributos, metodos y relaciones está explicada claramente en los apuntes del profesor Luis Castros.

re

.. _-

1.4.

Modelo Three-Tiered (de tres

canas)

~~~ ~~ n . - I ~~~~~

Antes dc seguir adelante es preciso hablar de este modelo.

(28)
(29)

Modelo Three-Tiered (de tres capas)

CONTROL O NEGOCIOS

L"".

DATOS

1.5. Diagramas

~ ~~~

de

Secuencia

"~

y

Colaboración

~

Estos diagramas le son útiles al diseñador para el diseno de procedimientos pues con ellos logra:

Identificar a los objetos dinámicos. Clasificar a los objetos din5micos.

Identificar a las asociaciones dinámicas entre los objetos.

Objeto dinámico. Aquel cuyo tiempo de vida mAximo es el tiempo de ejecu- ción del UC; por ejemplo, calcula la nómina de empleados.

Objeto estático. Aquel que perdura más haya del tiempo de ejecucicin del

programa; por ejemplo, las I3ases de Datos.

Algo importante es clue estos diagramas ilustran al diseñador solo un escena- rio de todo el conjunto de posibilidades que pueden existir en u n UC. Esto e s de gran ayuda, pues no hay condiciones, se trata de un caso específico. El es- cenario que se modela representa un caso que puede ocurrir; así que el dise- ñador puede elaborar cualquier cantidad de estos diagramas para entender mejor el problema.

1.5.1.

DIAGRAMA

DE SECUENCIA

Un diagrama de secuencia muestra una interacción ordenada en el tiempo. En particular, muestra los objetos que participan en la interacción por s u s "líneas de vida" y los mens+jes que ellos intercambian ordenados en secuencias de tiempo. No muestra la asociación entre los objetos.

(30)

5.3.

EJEMPLO

(31)

Diaaramas de Secuencia Y Colaboración

7.- Fin.

Una vez terminado el diagrama se tiene nuevas clases con nlCtodos propios (los mensajes).

3: seleccrona(

' I, :

c

'I

IEntradaPorCompra

1

~

: Almacenista 2: solicitaOrdenes( )

S \

IistaDePendientes

oCFormateaPendientes : cCEntradaPotCompra

I

p 4

1 : OrdenesDeCompra( )

pendiente

i

oDOrdenDeCompra 1 c ~

1

DEntadaPorCornpra ~

I

En la Ilustración 16 podemos ver componentes nuevos que explicaremos en seguida.

Los rectangulos representan a los objetos y como podernos vcr se apegan al modelo de tres capas, los objetos están clasificados y cada u n o hace su tarea ademhs de que tienen el prefijo de su tipo. El primer objeto e s

un

ot)jeto de interfaz llamado oIOrdenesDeCompra el cual pertenece (se utilizan los dos puntos como en la notación de Pascal) a u n a clase de interfaz, a A m - : c l E n -

tradaPorCompra.

Las líneas que se encuentran entre los objetos son los enlaces y su funcibn es marcar el canlino por donde fluirán los mensajes y los datos.

L a flecha sin círculo indica que el mensaje es para la clase a la cual apunta. Si esto se convirtiera en código lo clue tendríamos es u n rnktodo que pertenece a.

la clase que es apuntada por la flecha. Por ejemplo, la clase c,IEntrad- cl

P

os-

Compra tiene ( o debe tener) un mitodo llamado selecciona().

La flecha con círculo indica el tlujo de los datos obtenidos, en otras palabras e s lo que devuelve la función. I k s d e luego que este dato devuelto e s utilizado por el método que hizo la llamada, pos eso el sentido de la flecha.

L a numeracibn de los mensajes e s importante, y a que indica el orden en que son llamados los mitodos de los objetos respect.ivos.

(32)
(33)

Un sistema puede estar compuesto por diferentes módulos de software de di- ferentes tipos. Cada módulo de software e s representado por

un

componente en el modelo. Para distinguir entre diferentes tipos de componentes pueden usarse estereotipos (programa principal, paquete, subprograna, tarea, ejecu- table, DLL).

Típicamenk, el nombre de un componente es el nombre de u n archivo que el componente representa. A cada componente se le asigna un lenguajjt: de pro- gramación.

Debido a que un componente bien puede ser un archivo con código fuente, hay que indicarle que clases se desean tener en dicho componente. Se puede tener un componente por clase o bien u n componente puede tener cualquier número de clases. L a forma de agregar clases a los conlponent.es es simplc solo hay que crear un componente, darle el nombre con el cual se quiere eti- quetar el futuro archivo y arrastrar las clases deseadas al componente. No hay que olvidar que en J a v a u n archivo fuente puede tener cualquier número de clases pero solo u n a debe se pública y el resto deben ser privadas o de imple- mento. Otra cosa que hay que tener presente es que el archivo debe llamarse idintico a la clase pública contenida en él.

1.6.2.

RELACIONES

h e d e n dibujarse relaciones de dependencia de un componente a otro. La re- lacicin de dependencia significa que las clases contenidas en el componente cliente pueden heredar clases del componente servidor. Cuando se genere

cci-

digo en Java de este componente se agregará una línea import, la cual i r r -

portará el componente especificado por el componente servidor.

V

En la Ilustración 19 el componente Applet sime al componente cliente miApplet. Al generar código en Java para miApplet tendríamos la siguient.e lí- n ea:

Import java.applet.Appiet;

(34)
(35)

I.

7.

I . 1.

Pasos para establecer la variable de ambiente CLASSPATH

1 . - Asegurarse de que Rose Java" Edition esté instalado.

2.- Configurar la variable de ambiente CIASSPATH para que apunte a la bi- blioteca de clases y archivos fuente .java:

3 En Windows 95, agregar la variable de ambiente CLASSPATH en el archivo AUTOEXECBAT. U s a r el siguiente formato.

s e t CLASSPATH=RutaArchivosClass;R~t~ArchivosJdva;

Set e s u n comando del sistema operativo que se usa para tijar variables de ambiente, enseguida va un espacio en blanco seguido de una gran cadena sin espacios en blanco, CLASSPATH debe escribirse con mayúsculas, se c o n c a t e na el signo igual, se concatena la ruta en donde se encuentra la biblioteca de clases seguido por un punto y coma, se concatena la ruta donde se encuen- tran nuestros archivos .jam seguido por un punto y coma.

Para que los cambios tengan efecto hay que re iniciar la computadora.

Una vez reiniciada la coInput.adora podemos verificar si realmente cont: a n o s con la variable de ambiente usando el comando set del sistema operativo.

Ejemplo.

En mi caso agregué la siguiente línea en el archivo AUTOEXEC.BAT.

s e t CLASSPATH=C:\jdkl.%.l\clases;D:jluism\Pr~~~~t~~

A CLASSPATH se le está indicando que la biblioteca de clases se encuentra en la ruta C:bdkl.2.l\clases y

que

mis archivos, . j a w y .class, se encuentran en la ruta D:\luism\Proyecto2.

3 En Windows NT hay que ir a Control Panel->System->Environment

para establecer la variable de ambiente.

1.7.1.2.

Pasos adicionales requeridos

antes de Forward o Reverse Engi-

neering

1

.-

Para establecer el directorio del proyecto seleccionar Options

...

del me-

2.- En el campo de texto m e seleccionar Proyect.

3 . - En la ventana Model Doperties reescribir en la columna valor del campo

Directory por la ruta en donde deseamos guardar nuest.ros archivos. Esta ruta debe coincidir con la que fijamos en la variable de ambient.e, en mi caso seria remplazar el valor AUTO GENERATE por mi directorio de trabajo: D:\luism\Proyecto2. Clic en Aplicar y posteriormente en Aceptar.

4.- Para cada paquete que se desee generar código, crear un subdirect,orio en el que se arrojarán los archivos fuente.

Tools

y seleccionar la pestaña Java.

1.7.2.

COMANDOS DE

JAVA

DEVELOPMENT

KIT,

JDK,

NECESARIOS

Para escribir programas Java se necesita u n editor de textos, como el editor de MS-DOS o el bloc de notas de Windows, para teclear el código; un compilador Java para este código, el cual generará archivos .class (conocidos como byte-

(36)

ONFIGURACIdN DE 1 4 RUTA DE BúSQUEDA

(37)

Generación de código

"" ~~~ .

I .

7.3.1.

Pasos para actualizar la variable de ambiente

PATH

1.- Abrir el archivo AUTOEXEC.BAT con el editor de M S - D O S o el bloc de

2.- Busque la línea que fija la variable de ambiente PATH y concatene la notas de Windows.

nueva ruta. Ejemplo.

Posiblemente en su AUTOEXE:C.BAT tenga la siguiente línea:

Suponiendo que J D K esta instalado en el directorio C: Udkl.2.1, entom ces los comandos de Java se encuent,ran en el directorio

C : b d k l . 2 . l \ b i n (de no ser así, tiene que usar la ruta en donde decidió instalar J D K ) . Ponga un punto y coma y agregue la nueva ruta (todo esto sin dejar espacios en blanco). Debe verse de la siguiente forma:

Nota: Si en su AUTOEXEC.BAT no aparece la variable de ambienle PATFi

no se preocupe, al final del archivo agregue la siguiente línea (sill espacios e n blanco):

Siempre y cuando C:\dkl.2.1 sea la unidad y el directorio donde instaló JDK.

3.- Guarde el archivo, cierre todas la aplicaciones que tenga abiertas y re inicie la computadora para que los cambios tengan efecto.

4.- Desde la línea de comandos y desde un directorio que no sea C:Udkl.2.l\bin (suponiendo que .JDK lo instalo en C:Udkl.lL.l) verifi- que que se ha actualizado la variable de ambiente PATH. Teclee:

C:Uavac y pulse se Intro. Debe aparecer una ayuda para el compilador de Java

5.- Si apareció la ayuda para el comando Java, hemos terminado; de lo contrario revise el AUTOEXEC.BAT, posiblemente escribió una letra por otra, o peor todavía: los comandos de Java no se encuentran en la ruta que estableció. Si estableció u n a r u t a equivocada, corrijala y repita los pasos del 1 al 5.

PATH=C:\>WINDOWS;C:\>WINDOWS\COMMANI)

PATH=C:\>WINDOWS;C:\>WINDOWS\COMMAND;C:\

jdkl.2.1

P A 7 ' ~ € ~ o / o P f l T H ~ ~ ; ~ : ~ d ~ ~ ~ . 2 . 1 /bin

1.7.4.

FORWARD

Y

REVERSE

ENGINEERING

Se utiliza ingeniería hacia delante para generar código en Java a partir de una clase o u n componente, e ingeniería hacia atrAs para generar componentes de andisis a partir de código fuente.

1.7.4.

l.

Pasos

para generar

ccidigo

fuente en Java (Forward Ertgineerirzg)

1 .- Seleccionar la clase o el componente que

se

desea codificar.

2.- De la barra de menú seleccionar Tools->Java->Generate Java.

3 . - Eso es todo.

1.7.4.2.

Pasos para generar componentes de arzalisis

a

partir de co'digo

fuente (Reverse Engineeríttg)

1.- De la barra de menú seleccionar ~ools->Jav8->Reverse Engineering Ja- va.

(38)
(39)

Ilustración 2 1. Fijación de In ruta de trafmjo.

Las clases que existen deben agruparse en

un

paquete antes de generar códi-

go.

Dentro de 1,oOgical View generaremos un paquete llamado vehiculo y arrastra- remos las t.res clases a i l .

(40)
(41)

. Generación de código

Usando cualquier editor de textos podemos abrir el archivo y examinarlo. 151 código fuente generado es el siguiente:

/ / S o u r c e f i l e : d:/luismiPri)yect.o2/ve~iculo/vehi~:_i:arr.et..:jav;l

(42)
(43)

Generación de código

-~ . . "" ". ~ .~

Como puede vcrse

se

h a generado código para las clases y s u s comporta- mientos (métodos). El siguiente paso e s meterle m a n o a este código para codi- ficar cada uno de los métodos, agregar comentarios, tal vez nuevas clases y metodos.

1.7.5.2. Modtjicncimes

al

nrchivo vehic-cnrreLjavu

LI Codificación de cada uno de los métodos.

U Agregaremos una nueva clase, la cual será una subclase de al clase vehic-caret. La nueva subclase

se

llamar5 motocicleta y no conten- drá ningún atributo ni métodos solo l a agregaremos para ilustrar los cambios al aplicar la ingenieria hacia atrás.

u

Agregaremos comentarios.

il Personalizaremos la indentación e interlineado del código.

/ / S o u r c e fi! e : d : / l u i s m / P r o y e c t o 2 / . J e h i c u l o / v e h i c ." c a r ret. java

/ * t c t t * * t t * * * 1; * * /

(44)
(45)
(46)
(47)

En el cuadro de dialogo que aparece tomamos el archivo vehic._carret.java. Y

se

hace clic en el botón Reverse. Para cerrar el cuadro de didogo, pulsar el bot.cin Cancel.

(48)
(49)

Generación de códiao

Ilustración 28. Visor de componentes d e s p 6 s d e aplicar Eain.gmieria hacia atrcis.

Como puede verse en la Ilustración 28, la clase motocicleta que

se

agregó en el cbdigo fuent.e se refleja grkfkamente.

En la siguiente ilustración puede verse el diagrama de clases actualizado.

Nota:

E s probable que después de aplicar la ingeniería hacia nfr& se huya

desdibujudo la de herencia adermis de. que no logra uerse la nueuu clase. Purn corregir esto hay que seleccionar Ins clases que aparecen e n el diagrama d e clases y borrarlas can. la tecla S u p - y volverlas a cxdocnr nuevamente, arras--

trando y soltando desde el Visor d e componentes hnstn el diagruma de clases.

(50)

Capítulo l. Análisis y Diseño con Rational Rose _ _ _ _ ~ ". "." __

(51)

que queremos compilar tenemos u n a linea de código que nos indica a qur: pa- quete pertenece el componente vehic .carnet. L a linea es:

package v e h i c u L o ;

Hemos dado toda esta explicación porque surgieron problemas al interprctar el bytecode vehic-carret.class, y eso tiene que ver con la linea package vehi- culo;. El problema lo resolvimos de la siguiente manera:

PASOS 1.- 2.- 3.- 4.- 5.- 6.-

Hicimos u n a copia de vehic-carret.java en la ruta. que

se

fijo en CLASS- PATH. En nuestro caso I):\luism\I-Zroyecto2

Abrimos vehic_carret.java y borramos l a linea package vehiculo;

Compilamos vehic_-carret.java usando el comando javac.ext. En nuestro caso:

El:> \luism\Proyecto2bavac vehic._carret.java

Es necesario escribir el nombre del archivo completo, nombre y exten- sión

Borramos el archivo vehic-carret.java (ya no

se

necesik. El original esta dentro del directorio vehiculo)

Interpretamos el archivo vehic-carret.class usando el comando javaxse. E:n nuestro caso:

Aqui solamente va el nombre del bytecode, sin extensión. Eso

es

todo. La salida

es

la siguiente:

ruedas: 18 pasajeros: 2

capacidad de carga en metros cúbicos: 3 2

ruedas: 6 pasajeros: 3

capacidad de carga en metros cúbicos: 12

ruedas: 4 pasajeros: 6 tipo: furgoneta

D : ~ \ l u i s m \ P r o ~ e c t o Z ~ j a v a vehic.-carret

Nota: Los archivos .class puede moverlos (11 directorio vetuculo solo que si desea

voluer Q interpretar al bytecode vehic-curet hay que modificar CLASSPAT€€ o

poner una opción. al contando jnrnexe. La op&n que dehe poner es la nifa en

donde se encuentran los byteeode. Ejemplo.

D:\luism\Proyecto2\vehiculo~~java -cp D:\luism\Proyecto2\vehiculo

vehic-carret

Donde:

jnva es el interprete d e bytecode

-cp es Ia opción d e CLASSPATH

I):\luism\Proyecto2\vehiculo es In CLASSPATH

y

vehic-carret es el bytecode principul.

(52)
(53)

Capitulo

2

Los objetos de interfaz son ventanas los cuales tienen como únicas funciones: mostrarse, ocultarse, recibir datos de entrada y enviar información al usuario. Otra característica de estos objetos es que a s u s component.es (botones, cam- pos de texto, menús, etc.) se les pueden asociar eventos, donde estos eventos son llamadas a otros objetos.

La interfaz que usaremos para comunicarnos, en este proyecto, con la com- putadora s e r h los applets. Los applets pueden utilizarse como v e n t m a s para recibir datos del usuario y enviar mensajes al mismo.

El presente capítulo pretende ser una introducción a estas clases.

Un applet es un programa d i n b i c o interactivo que se puede ejecutar dentro de una página Web, desplegada por u n visualizador con capacidad ,Java como HotJava, Netscape 2.0 o superior, Internet Explorer 4.0 o superior, etc.

Algo importante respecto a los visualizadores: hay que estar seguro que el vi- sualiymdor que se ha elegido soporta código en Java, de lo contrario nuestro applet no será mostrado. Por ejemplo, la versión alfa de HotJava no mostrarA applets 1.0. Por desgracia, entre la versión alfa y la 1 .O, se hicieron cambios significativos en cuanto cómo se escriben los applets. El resultado e s que no se puede ver applets 1.0 en la versión alfa de HotJava, ni tampoco se puede ver applets alfa en visualizadores que esperan applets 1.0. El que u n visuali- xador muestre

o

n o un applet depende de que el visualizador soporte el código que est& en el applet. Si no se cuenta con ningún visualizador, J U K propor- ciona el comando appletvjewer.

(54)

2.1.1.

EJEMPLQ

(55)

j avdc holaMundo. j ava

En este momento hemos creado el bytecode, un archivo con el mismo nombre con extención .class. Los bytecode son u n conjunto de instrucciones muy pa- recidas al código máquina, pero que no son específicas para algún procesador.

El siguiente paso consiste en crear u n a página HTML que incluya a nuestro applet. En el siguiente subcapítulo indicaré como construir la página.

2.1.2.

ETIQUETAS

BASICAS

EN LAS PAGINAS

HTML

QUE INCLUYEN APPLETS

Para incluir el applet en u n a pagina Web, hay que referirse a el en el código HTML para dicha página. De modo que el paso tres será crear un archivo

HTML

en el mismo directorio que holaMundo.java (El archivo puede tener cualquier nombre. En este caso lo llamar6 holaMundo.htm1). El listado sería el siguiente (nuevamente, la numeración no debe incluirse):

1 . < H T M L >

2. I!lECIU:',

3

.

,_, "ITLF", . .,f:

x i eri;rer applet ! <:/':'L'1'LE:'

4 . </HEAD>. 5.

6 . <:uoIl',;>

-1

.

e

.

/ I i R >

~, -1EN1,?:K;..:l-il;.Mi r . ar'plet. ~ i ( ~ ~ : ~ : / ~ ~ l ~ ~ ~ í ~ ~ ~ N ' ~ ~ ~ ~ , >

E)

.

-cKPPLE'1' COOE=-"h(lrlaMundo.rylass" WI3TfI-700 ~IEIGIiT-30O>~/APF'!,E;';?

L O . < H R >

1.1

.

< / R O I ) Y ;, I 2

.

c /HTMI,:.

A continuación explica2 cada una de las líneas.

Las palabras que vemos encerradas entre corchetes angulares son conocidas como etiquetas. Generalmente veremos que las secciones están delimitadas por etiquevas del mismo nombre, en donde el fin de una sección t,endr5 e l nombre de la etiqueta precedida de u n a diagonal,

/.

En las líneas 1 y 12 alcanzamos a ver las etiquetas <HTML;. y < / H m r , > . Esto

nos indica que el texto que esVA entre ellas es

u n

docurnento HTML.

Un documento HTMI, tiene una estructura que lo separa en dos partes: cuer- po y cabecera. En la primera estará la página en si, mientras que en la srgun- d a incluiremos algunas c0sa.s que no

se

ven al principio pero que pueden Ile- gar a ser muy importantes. IN primero que hay que incluir en el código e s la cabecera. En las líneas 2 y 4 podemos ver las etiquet-as <:ÍI~:A.I):,> y .:/HEAT>,.

Dent.ro de la cabecera, línea 3 , s d o hay otra etk1uct.a. Es la única imprescin- dible: el título de la piigina. Es lo que veremos como título de la ventana en los navegadores que lo permit.an. Es como se conocer% nuestra pggina en algunos buscadores y en la agenda de direcciones (booknzurks) de los usuarios.

El contenido estará en el cuerpo de nuestro documento, para ello hacemos uso del las etiquetas .CBOIIY > y ':/BODY>, líneas 6 y 1 1 .

En línea 7 tenemos u n a leyenda que

es

escrita con u n estilo de encabezado 1 o título 1 el cual es puesto en el centro de l a pggina. L a s etiquetas ,CHI> y

(56)
(57)

interpretaremos como si se tratara de un directorio) holaMundo, tememos que agregar la siguiente línea al principio de nuestro archivo:

package holahlundo;

Tenemos que volver a compilar. Desde la línea de comandos JT e l directorio MisPaquetes debe teclearse lo sigue:

j avac holaMundo\hoiaMllndc. j ava

El cambio que hay que hacer en holaMundo.htm1 e s e n la línea 8. Substi- tüyala por la siguiente:

8 . ,cAUPLET C O D E = ” h o l a M L n d o . hol.aMundo

.

ciass” W l DTH=7OO

t I E i G H T = S O O > c / A P P L E T r

Como puede verse, el directorio y el archivo .class no están separados por una diagonal invertida, sino por

un

punto.

Para ver el applet usando el comando appletviewer.exe desde la linea de co-

mandos y el directorio MisPaquetes debe t,eclear los siguiente:

a p p l e t v i e w e r hol-aMundo. h t m l

Eso es todo.

2.2.

Características

de los applets

””~~~ _ _ _ _ _ _ ~ ~ ~ ~

Como se mencion6 en la sección anterior, un applet

es

u n programa que se carga en una prigina HTML. A diferencia de las aplicaciones que son progra- m a s J a v a individuales que se e-jecutan al utilizar s610 el intérprete java ciesdc la línea de comandos.

],os applets no hacen uso del método ma i I-. ( i

,

en vez de ello utilimn los mito-

dos i n i . 0 , s t a r t . ( ) , s t o p ! ! , d e s t . r s k . 0 y p a i n t . ( ) .

Cuando un usuario, al ejecutar un visualizador que soporta ciidigo Java, car- ga una página Web con u n applet. en ella, el visualizador despliega ese applet

desde un servidor Web y lo ejecuta en el sist,ema local (donde

se

ejecuta el vi- sualizador).

Y a que los applets Java

se

ejecutan dentro de un visualizador, tienen la ven- taja de la estructura que este les ofrece: una ventana, un contexto de mancjo de eventos y gráficos, y la Interfaz de Usuario (IU) que lo rodea.

Sin embargo, la ventaja que los applets tienen sobre las aplicaciones en ter- minos de estructura v capacidades IU, están obstaculizadas por las restriccio- nes impuestas por lo que los applets pueden hacer. Ya que los applets pueden desplegarse desde cualquier parte y ejecutarse en un sistema cliente, las res--- tricciones son necesarias para evitar que un applet cause daños al s i s k m a c)

rupturas en la seguridad. Las restricciones son las siguientes:

U No pueden leer o escribir en el sistema de archivos del lector, a ex-

cepcion de directorios específicos (los cuales se definen por el usuario mediante una 1ist.a de control de ~ C C C S O

que,

de manera dcterrninada,

est& vacía).

0 Por lo general, no pueden comunicarse con u n servidor ademks del que tenía almacenado en forma original el applet.

0 No pueden ejecutar algún programa en el sistema del lector.

(58)
(59)

/ / Destruye el applet.

p - u b l i c void d e s t - r o y ( ) {

guarda:.'Fuest.ra ( " P r e p r a n d 3 p a r a descargar. Adios. .

.

" ) ;

/ / S e u t i l i z a p a r a dibcjar e n el app;et:.

public v o i d p a i n t ( G r a p h i c s g : t

/ / Dibuja u n r e c t 6 n c g u l o al r e d e d o r del a p p l e t

g

.

d r a w x e c t (O, C ,

y e t . S i z e ( j . w i d t ? l - 1,

getsize ( j .height - lj ;

I

Si le interesa ejecutar est.e applet, cópielo

y

guárdelo en un archivo llamado actividades.java; compílelo usando el comando javac.exe; genere el archivo actividades.htn11 y véalo con el comando appletviewer.exe (puede verse con Internet Explorer 4.0, pero en este caso aconsejo que se utilice appletviewer para ver en la ventana de MS-DOS la salida estándar que se genera en las distintas etapas).

La primer actividad de un applet es inicializarce, de modo que en la salida estandar se escribirh: Inicializando.. , . Inmediatamente despues que se inicial- za comienza su ejecución, así que en la salida estandar se escribir& Comen- zando

....

Como la ventana. de MS-DOS se encuentra de tras del applet; hay que minimizar el applet, en el momento que minimice el applet este

se

deten- drá- De modo que, en la ventana de MS-DOS verá las líneas:

; . n i c i a l i 7 a ~ d o . .

.

C o m e n z a n d o .

. .

De t e n i e n d o . . .

Para cerrar el applet maximice el applet y luego ciérrelo. En el momento que se maximiza, vuelve a comenzar, y cuando se cierra, primero

se

detiene y lue- go se destruye. Ahora en la ventana de MS-DOS tendrg la salida:

I n i ~ c i a l i ¿ : a n d o .

.

. Comer.zando.

. .

De t e n i e n d o .

.

.

C o m e c z a n d o . . .

D e t e n i e n d o .

.

.

P r e p a r a n d o para d e s c a r g a r . A d i o s .

. .

Nota: Todos los applets reulimn estas acfivicíades. I!o que se hizo en el p r o g m -

mt anterior-&e sobre poner cada uno d e los mc?todos, esto e s una veniaja, yu

que uno puede agregar el código que desee en el mktodo que uno desee. Por

(60)

2.4.

Reswmen

(61)

En el capítulo de A D O 0 con Rational Rose y en el de applets se explicti como usar los comandos javacxxe, java.exe y appletviewe.exe. Tambikn se explic6 como configurar las variables de ambiente PATH y CLASSPATH. Pues bien, este capítulo pretende ser una explicaci6n que complemente estos mismos temas.

Antes de entrar

a

las herramientas de J U K recordcarernos dos comandos inter- nos de MS-DOS: set y path

3.1. Comando SET

Comando interno de MS-DOS.

Muestra, establece o quita variables de entorno Windows.

SET (variabk=[cadena]j

variable Especifica el nombre de la variable de entorno.

cadena Especifica u n a serie de caracteres para asignar a la variahle.

Escriba SET sin parametros para ver las variables de entorno actuales.

3.2. Comando

PATH

Comando interno de MS-DOS.

Muestra o establece una ruta de búsqueda para los archivos ejecutables.

PATH [[unidad:]ruta[; ...]I

PATH ;

Escriba PATH ; para borrar todas las rutas de hüsyueda establecidas y hacer

que Windows busque stilo en el directorio actual.

(62)

I

b m

(63)

Estableciendo la ruta de clases

~ ~ ~-~ ~

C:>set CLASSPATH=rutai;ruta%

. . .

Cada ruta termina con el nombre de un archivo o el nombre de un direct.orio dependiendo de los siguiente:

U Para archivos .zip o .jar que contienen archivos .class, la ruta termi- n a con el nombre del archivo .zip o .jar.

u

Si el archivo .jam que se v a a compilar no contiene la línea package n o d r e P a q u e t e ; , entonces la ruta termina con el directorio que con- tiene el archivo .jaw.

u

Si el archivo .java que se v a a compilar si contiene la línea package n o n t h r e ~ a y u e t e ; , entonces la ruta termina con el directorio que con- tiene la "raiz" del paquete.

t'wa

múltiples rutas de búsqueda hav que separarlas con punto y coma. Con

el comando SET, e s importante no dejar espacios en los dos extremos del sig- no igual. Las herramientas J D K pueden ser java, j a v a c , etc.

3.4.1.

DESCRIPCI~N

L a ruta de clases le dice a las aplicaciones Java donde encontrar la biblioteca de clases y las clases definidas por el usuarjo esto es, clases que no son una extensión de Java o parte de la plataforma Java. En J D K 1.2, la J a v a Virtual Machine (JVM) y otras herramientas de JDK encuentran clases buscando en la biblioteca de la plataforma, en cualquie extensión de la biblioteca, y en la ruta de clases, en

ese

orden.

Se necesita establecer la ruta de clases cuando se desea cargar una biblioteca de clases que (a) no está en el directorio actual y (b) o no est& en la localiza- ción especificada por el mecanismo de extensión.

Si s e d e c i d e e s t - a b i e c e r ? a r u t a d e c l a s e s , e s d e l a ; s i g a i e ~ t ~ e forma:

C : ;.set CLASSPATH=rutdl;ruicr?

. .

.

Esta línea podría agregarse en el autoexec.bat para que se establezca cada vez que se encienda la computadora.

Suponiendo que la biblioteca de clases se encuentra en el directorio:

C: : , J o k l . 2

-

1 \(:lases

En el autoexec.bat podríamos agregar la siguiente línea:

C : ;.set CT,ASSPATH=jd!cl. 2 . l \ . c l a s e s

3.4.2.

ENTENDIENDO

LA RUTA DE CLASES Y LOS PAQUETES

Las clases J a v a est.án organizadas en paquet,es los cuales son mapeados a d - rectorios en el sistema de archivos. Pero, a diferencia del sistema de archivos, donde usted especifique el nombre de un paquete, especifique el nombre com- pleto del paquete -jamas parte de él. Por ejemplo, el nombre del paquete para

1 dva . a w t . RIlt,to:l siempre es especificado como j dva. -3wt.

Por e,jemplo, suponga que desea compilar el archivo fuente ordena,iava q u e se

encuentra en el directorio C : \ j a v a \ M i sC:'ases\r:t.i L i d a d e s \ m i s A l ? ~ i c a c i n n e s y

posteriormente desea que Java, en el momento de ejecucion, encuentre la cla-

(64)

3.4.3.

DIRECTORIOS Y CLASES EMPAQUETADAS

3.4.4.

DIFERENTES ESPECIFICACIONES

3.5.1

m

javac.exe

(65)

Herramientas básicas

3.5.1.2.

Dwcripcidn

La herramienta javac lee clases y definición de interfaces, escritas en el len- guaje de programación Java, y los compila en un archivo .class.

3.5.1.3.

Opcimes

-classpath ruta de clases

Fija la ruta de clases. Sobre escribe a la variable de ambiente CLASPATH. Si

-

classpath ni CLASSPATH son usadas, la ruta de clases será el actual directo- rio (.).

Si la opción -sourcepath no es especificada, la ruta de clases se utiliza para realizar la búsqueda de archivos .jam así como tambikn de archivos .class.

-d directorio

Fija el directorio destino para los archivos .class. Si una clase es parte de un paquete, javac pone el archivo .class en u n subdirectorio reflejando el n o m l m del paquete, creando los directorios que necesite. Por ejemplo, si usted especi- fica -d c:\misclases y la clase es Ilamada com.mipacpete.MiClase, entonces el archivo de clase e s llamado c:\misclases\corn\mipaquete\MiC1;-lse.class.

Si -d no es especificada, javac coloca el archivo .class en el mismo directorio que el archivo fuente.

-deprecation

Muestra los mktodos desactualizados de una clase. Sin esta opción, javac

muestra los archivos que usan mktodos no desactualizados.

-sourcepath ruta de fuentes

Especifica la ruta del cbdigo fuente a explorar para definición de clases o in- terfaces. Al igual que la ruta de clases, las entradas para la ruta de fuentes son separadas por (;) y pueden ser directorio, ,archivos J A R , o archivos ZIP. Si son usados paquetes

-verbose

Incluye información de cada clase cargada y cada archivo fuente compilado.

-X

Muestra información de opciones no comunes

-Xstdout

Envía mensajes de compilacibn a System.out. De manera predefinida los men- sajes son enviados a System.err.

(66)

Compilanda

un

ejemplo sencillo

Mandando

los

errores

a

un archivo

de

texto

Compilando múltiples archivos

Especificando

la

ruta de

clases de un usuaria

(67)

Herramientas básicas

Y a que saludos.Hi se refiere a otra clase en el paquete saludos, el compilador necesita encontrar esas otras clases. El ejemplo anterior trabaja, porque la ruta de clases predefinida del usuario pasa a ser el directorio que contiene el directorio paquete. Pero suponiendo que deseamos recompilar este archivo sin preocupamos en que direct.orio estemos. Entonces necesitarnos agregar

\ejemplos

a

la ruta de clases del usuario.

C:\ejemplos?javac -c:lasspat.h '\ejemplos \~e~jemplos\:;aludos\Hi.':'lvj

Si camhimnos saludos.Hi nuevamente, para u s a r u n a utilidad banner, esa utilidad tdlnbiin debe ser alcanzada por la ruta de clases del usuario.

C:\ejen~,lLos:~~avac -c:lasspa!-h \ \ e - j e m p l o s : \ ; i S \ B a n n e r s . j a r \

\e~empios\s?ludos\Hi. j a v a

Para ejecutar una clase en saludos, necesitamos tener acceso tanto a saludos y a las clases en uso.

C:\ejemp:os>java - c l a s s p a t h \ejemplos;\,lI.t,\~anr?ers. jar salcdo:;.H?

Compilando una lista de archivos

Se pueden listar todos los archivos fuente a compilar en un archivo de texto llamado archivosFuete. Este archivo se podría ver de la siguiente forma:

miclase 1 .jam

rniClase2.java

rniClase3.java

La compilación sería de la siguiente forma:

C:>javac ? a r c h i - u o s F : l e n t e

Separando archivos .java

y

archivos .class

Con frecuencia tiene sentido tener separados archivos .java y archivos .class en direct.orios separados, específicamente en un proyecto. Se u s a la opción -d para indicar el directorio destino del archivo .class. Y a que los archivos fuente no están en la ruta de clases del usuario, usamos la opción -sourcepath para ayudar al cotnpilador a encontrarlos.

C : > dir

c l a s e s \ lib\ f u e n t e s \ < C:> d i r fuentes

despedidas\

C: %: d i r fuentes\despe~.i.das

E a s e . j a v a adios. j a v a

C:> d i r lib

Banners. j ar

C:;, d i r clases

C : > javac -sourcepath t'1,uentcs - c c l a s s p a t h c l a s e s : ;ib\Ba.:lne;rs. j :lr '\

f n e n t . e s \ d e s p o d i d a s \ '

.

' J ~T J-6 ~ c l a s e s ( 2 : ; d i r clases

despedidas?

C:;. d i r clases\despedidas F3zse. c i j s s adtos . c l a s s

(68)

3.5.2. java.exe

(69)

Herramientas básicas

3-53.

appletviewer.exe

El comando appletviexver permite correr applets fuera del contexto de un vi-

SOI- World-Wide Web.

Sinopsis

appletviewer 1 opciones j mris

. . .

Descripción

El comando appletviewer conecta al documento o al medio designado indica- do por la url y muestra cada applet referenciado por el documento en su pro- pia ventana.

Nota: si el documento referido p o r la url no hace referencia a ningún appkt con

En etiqueta OBJECT, EMBED, o APPLE3T, el cornnrzdo appletviewer no hnce m -

da

Opciones

-debug

Inicia el visor de applets en el depurador de ,Java, jdb, con esto le permite de- purar e l applet. en el documento.

-encoding nombre codificado

Especifica el archivo HTML con nombre codificado.

-J opciónJava

A traves de la opción Java se pasa un solo argumento para el interprete J a v a el cual corre el appletviewer. El argumento no debe contener espacios. Para múltiples argumentos, cada uno debe comenzar con el prefijo -J, el cual es quitado. Esto es ittil para ajustar el ambiente de ejecución del compilador o uso de memoria.

3.6.

Resumen

Se comenzi, recordando la definición y sint.axis de dos comandos internos de MS-DOS, SET y PATH, útiles para la configuración de las variables de ambiente,

PATH 9 CLASSPATH.

Enseguida incluimos la jerarquía de directorios, archivos y clases más usadas del software JDK, pues consideramos que esta informacicin le e s de gran utili- dad al programador para desarrollar s u s aplicaciones y applets.

Posteriormente se toco un tema demasiado importante: el que tiene q u e ver con el establecimiento de la ruta de clases, así como tambiin, se marcaron las diferencias y semejanzas entre los directorios y los paquetes. Explicación acompañada dc un buen ejemplo.

Finalmente se dio u n a explicación más fonnal de las tres herramientas que se u t i l h = o n d u r a n t e el proyecto, javac, Java y appletviewer. En esta explicación

(70)
(71)

Capitula

4

Cuando sc escriben programas Java que se comunican a traves de la Red, se

está programando en la capa de aplicación. Típicamente, no se necesita tra- bajar con las capas TCP y UIIP, en su lugar se puede utilizar las clases del paquete java.net. I3sta.s clases proporcionan comunicacibn de Red indepen- diente del sistema. Sin embargo, necesitas entender la diferencia entre TCP y U D P para decidir que clases Java deberían utilizar tus programas.

Cuando dos aplicaciones

se

quieren conlunicar una. con otra de forma confia- ble, establecen una conexión y

se

envían datos a través de la conexión. Esto

es parecido a hacer una llamada de telefono,

se

establece una comunicacibn cuando se marca el número de t.eléfono y la otra persona responde. Se envían

v

reciben datos cuando se habla por el t.elifono y se escucha lo que le dice la otra persona. Al igual que la compañía telefónica, TCP garantiza clue los datos enviados r)or una parte de la conexión realmente llegan a l a otra parte y en el mismo orden en el que fueron enviados (dr ot.ra forma obtendríamos u n error).

(72)

4,a.

Puertos

Figure

Ilustración  6.  L)ragmma de Estados para  ENTRADA DE ARTÍCULOS.
Ilustración  2 1.  Fijación  de  In  ruta  de trafmjo.
Ilustración  28. Visor  de componentes d e s p 6 s     d e   aplicar  E a in.gmieria hacia  atrcis
Ilustración  2.  Todas  la  aplicaciones reciben datos  CL  través  d e   los  puertos
+7

Referencias

Documento similar

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Five-step methodology DEA-based * allows us the decompose the differences in the research output of universities in terms of Intra-field inefficiency (inefficiencies of the

– Seeks to assess the contribution of the different types of capital assets: tangible ICT, tangible non-ICT, intangibles (public and private) and public capital (infrastructures). ·

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y

Para ello se realiza un estudio detallado de los protocolos existentes dedicados a brindar calidad de servicio como son RSVP, Diffserv y MPLS, destacándose este último por