Sie sind auf Seite 1von 41

PROGRAMACIN

Desarrollo de Aplicaciones Web


NDICE

1.Introduccin.........................................................................................................................1
2.Programasyprogramacin..................................................................................................2
2.1.Buscandounasolucin................................................................................................................2
2.2.Algoritmosyprogramas...............................................................................................................3
3.Paradigmasdelaprogramacin..........................................................................................5
4.Fasesdelaprogramacin....................................................................................................7
4.1.Resolucindelproblema.............................................................................................................7
a) Anlisis....................................................................................................................................................7
b) Diseo.....................................................................................................................................................8
4.2.Implementacin.......................................................................................................................................8
a) Codificacinoconstruccin....................................................................................................................8
b) Pruebadeejecucinyvalidacin............................................................................................................9
4.3.Explotacin................................................................................................................................10
5.Ciclodevidadelsoftware..................................................................................................11
6.Lenguajesdeprogramacin...............................................................................................13
6.1.Lenguajemquina......................................................................................................................13
6.2.LenguajeEnsamblador...............................................................................................................14
6.3.Lenguajescompilados................................................................................................................16
6.4.Lenguajesinterpretados............................................................................................................17
7.EllenguajedeprogramacinJava......................................................................................19
7.1.QuycmoesJava?................................................................................................................19
7.2.Brevehistoria.............................................................................................................................21
7.3.LaPOOyJava.............................................................................................................................22
7.4.Independenciadelaplataformaytrabajoenred.....................................................................23
7.5.Seguridadysimplicidad.............................................................................................................24
7.6.JavaylosBytecodes...................................................................................................................25
8.ProgramasenJava.............................................................................................................26
8.1.Estructuradeunprograma........................................................................................................26
8.2.ElentornobsicodedesarrolloJava.........................................................................................27
8.3.LaAPIdeJava.............................................................................................................................28
8.4.Afinandolaconfiguracin..........................................................................................................29
8.5.Codificacin,compilacinyejecucindeaplicaciones..............................................................30
8.6.TiposdeaplicacionesenJava....................................................................................................32
9.EntornosIntegradosdeDesarrollo(IDE)...........................................................................34
9.1.Quson?..................................................................................................................................34
9.2.IDE'sactuales.............................................................................................................................35
9.3.ElentornoNetBeans..................................................................................................................37
9.4.Instalacinyconfiguracin........................................................................................................38
9.5.Aspectodelentornoygestindeproyectos.............................................................................39
DesarrollodeAplicacionesWeb Tema3

Introduccinalaprogramacin.
Caso prctico
La evolucin de Internet y de las nuevas tecnologas, as como las diferentes posibilidades para
establecer nuevas lneas de negocio para la empresa BK Programacin, han hecho que Ada haya
decidido abrir una va de innovacin. Para ello, su empresa deber realizar el desarrollo de sus
aplicaciones a travs de lenguajes y tcnicas de programacin modernos, aunque con una eficiencia
y flexibilidad contrastadas.
Mara y Juan, ayudados y orientados por Ada, recordarn y ampliarn sus conocimientos
relacionados con la programacin, permitindoles crear software que pueda adaptarse a nuevas
situaciones, como el funcionamiento en diferentes plataformas (PDA, Mviles, Web, etc.) o la
interaccin con bases de datos. Todo ello sin perder de vista de donde parten y hacia dnde quieren
redirigir sus esfuerzos.
Estas innovaciones, junto a la predisposicin para adaptarse y evolucionar que BK Programacin est
potenciando en todas sus reas, repercutirn en una mayor capacidad de respuesta ante las
necesidades de sus posibles clientes. En definitiva, conseguir mayor competitividad.

1.- Introduccin.
Cuntasaccionesdelasquehasrealizadohoy,creesqueestnrelacionadasconlaprogramacin?
Hagamos un repaso de los primeros instantes del da: te ha despertado la alarma de tu telfono
mvil o radiodespertador, has preparado el desayuno utilizando el microondas, mientras
desayunabas has visto u odo las ltimas noticias a travs de tu receptor de televisin digital
terrestre,tehasvestidoypuedequehayasutilizadoelascensorparabajaralportalysaliralacalle,
etc. Quiz no es necesario que continuemos ms para darnos cuenta de que casi todo lo que nos
rodea,enalgunamedida,estrelacionadoconlaprogramacin,losprogramasyeltratamientode
algntipodeinformacin.

Elvolumendedatosqueactualmentemanejamosysusinnumerablesposibilidadesdetratamiento
constituyenunvastoterritorioenelquelosprogramadorestienenmuchoquedecir.

En esta primera unidad realizaremos un recorrido por los conceptos fundamentales de la


programacin de aplicaciones. Iniciaremos nuestro camino conociendo con qu vamos a trabajar,
qutcnicaspodemosemplearyquesloquepretendemosconseguir.Continuandoconelanlisis
de las diferentes formas de programacin existentes, identificaremos qu fases conforman el
desarrollodeunprograma,avanzaremosdetallandolascaractersticasrelevantesdecadaunodelos
lenguajesdeprogramacindisponibles,paraposteriormente,realizarunavisingeneraldellenguaje
de programacin Java. Finalmente, tendremos la oportunidad de conocer con qu herramientas
podramosdesarrollarnuestrosprogramas,escogiendoentreunadeellasparaponernosmanosala
obrautilizandoellenguajeJava.

1
Introduccinalaprogramacin DAW

2.- Programas y programacin.


Caso prctico
Ada conoce bien lo que significa tener que llevar a cabo el proceso completo de creacin de software
y sabe que, en ocasiones, no se le da la importancia que debera a las fases iniciales de este
proceso. Quiere que Juan, que desarrolla programas casi sin darse cuenta, recuerde las ventajas que
aporta un buen anlisis inicial de los problemas a solucionar y que no aborde el desarrollo de sus
programas sentndose directamente ante el ordenador a teclear cdigo.
Juan le comenta a Ada y a Mara: La verdad es que cuando conoces bien un lenguaje de
programacin crees que puedes hacer cualquier programa directamente sobre el ordenador, pero al
final te das cuenta de que deberas haberte parado a planificar tu trabajo. Muchas veces tienes que
volver atrs, recodificar y en ocasiones, rehacer gran parte del programa porque lo que tienes no est
bien planteado.
Mara, que permanece atenta a lo que dicen Ada y Juan, quiere aprender bien desde el principio y
tendr la ventaja de tener a su lado a dos expertos.

2.1.Buscandounasolucin.
Generalmente,laprimeraraznquemueveaunapersonahaciaelaprendizajedelaprogramacin
esutilizarelordenadorcomoherramientapararesolverproblemasconcretos.Comoenlavidareal,
la bsqueda y obtencin de una solucin a un problema determinado, utilizando medios
informticos,sellevaacabosiguiendounospasosfundamentales.Enlasiguientetablapodemosver
estasanalogas.

Resolucindeproblemas
Enlavidareal... EnProgramacin...
Anlisisdelproblema:requierequeelproblemaseadefinidoy
Observacindela
comprendidoclaramenteparaquepuedaseranalizadocontodo
situacinoproblema.
detalle.
Pensamosenunaovarias Diseoodesarrollodealgoritmos:procedimientopasoapasopara
posiblessoluciones. solucionarelproblemadado.
Resolucindelalgoritmoelegidoenlacomputadora:consisteen
Aplicamoslasolucinque
convertirelalgoritmoenprograma,ejecutarloycomprobarque
estimamosmsadecuada.
solucionaverdaderamenteelproblema.

Quvirtudesdeberatenernuestrasolucin?

9 Correccinyeficacia:siresuelveelproblemaadecuadamente.
9 Eficiencia:silohaceenuntiempomnimoyconunusoptimodelosrecursosdelsistema.

Paraconseguirlo,cuandoafrontemoslaconstruccindelasolucintendremosquetenerencuenta
lossiguientesconceptos:

1. Abstraccin:setrataderealizarunanlisisdelproblemaparadescomponerloenproblemas
mspequeosydemenorcomplejidad,describiendocadaunodeellosdemaneraprecisa.
2. Divideyvencers,estasueleserconsideradaunafilosofageneralpararesolverproblemasy
deaququesunombrenosloformepartedelvocabularioinformtico,sinoquetambinse
utilizaenmuchosotrosmbitos.
3. Encapsulacin: consiste en ocultar la informacin para poder implementarla de diferentes
manerassinqueestoinfluyaenelrestodeelementos.
4. Modularidad: estructuraremos cada parte en mdulos independientes, cada uno de ellos
tendrsufuncincorrespondiente.

2
DesarrollodeAplicacionesWeb Tema3

Citas para pensar


Roger Pressman: El comienzo de la sabidura para un ingeniero de software es
reconocerladiferenciaentrehacerqueunprogramafuncioneyconseguirquelohaga
correctamente.

2.2.Algoritmosyprogramas.
Despusdeanalizarendetalleelproblemaasolucionar,hemosdedisearydesarrollarelalgoritmo
adecuado.Pero,Quesunalgoritmo?

Algoritmo: secuencia ordenada de pasos, descrita sin ambigedades, que conducen a la


solucin de un problema dado.

Losalgoritmossonindependientesdeloslenguajesdeprogramacinydelascomputadorasdonde
se ejecutan. Un mismo algoritmo puede ser expresado en diferentes lenguajes de programacin y
podra ser ejecutado en diferentes dispositivos. Piensa en una receta de cocina, sta puede ser
expresada en castellano, ingls o francs, podra ser cocinada en fogn o vitrocermica, por un
cocineroo ms,etc.Pero independientementedetodasestascircunstancias,elplatose preparar
siguiendolosmismospasos.

Ladiferenciafundamentalentrealgoritmoyprogramaesque,enelsegundo,lospasosquepermiten
resolver el problema, deben escribirse en un determinado lenguaje de programacin para que
puedanserejecutadosenelordenadoryasobtenerlasolucin.

Los lenguajes de programacin son slo un medio para expresar el algoritmo y el ordenador un
procesador para ejecutarlo. El diseo de los algoritmos ser una tarea que necesitar de la
creatividad y conocimientos de las tcnicas de programacin. Estilos distintos, de distintos
programadoresalahoradeobtenerlasolucindelproblema,darnlugaraalgoritmosdiferentes,
igualmentevlidos.

En esencia, todo problema se puede describir por medio de un algoritmo y las caractersticas
fundamentalesquestosdebencumplirson:

9 Debeserprecisoeindicarelordenderealizacinpasoapaso.
9 Debe estar definido, si se ejecuta dos o ms veces, debe obtener el mismo resultado
cadavez.
9 Debeserfinito,debetenerunnmerofinitodepasos.

Pero cuando los problemas son complejos, es necesario descomponer stos en subproblemas ms
simples y, a su vez, en otros ms pequeos. Estas estrategias reciben el nombre de diseo
descendente(Metodologadediseodeprogramas,consistente enla descomposicindel problema
enproblemasmssencillosderesolver.)odiseomodular(topdowndesign)(Metodologadediseo
de programas, que consiste en dividir la solucin a un problema en mdulos ms pequeos o
subprogramas. Las soluciones de los mdulos se unirn para obtener la solucin general del
problema).Estesistemasebasaenellemadivideyvencers.

Para representar grficamente los algoritmos que vamos a disear, tenemos a nuestra disposicin
diferentes herramientas que ayudarn a describir su comportamiento de una forma precisa y
genrica,paraluegopodercodificarlosconellenguajequenosinterese.Entreotrastenemos:

3
Introduccinalaprogramacin DAW

9 Diagramas de flujo: Esta tcnica utiliza smbolos grficos para la representacin del
algoritmo.Sueleutilizarseenlasfasesdeanlisis.
9 Pseudocdigo: Esta tcnica se basa en el uso de palabras clave en lenguaje natural,
constantes(Estructuradedatosqueseutilizaenloslenguajesdeprogramacinqueno
puede cambiar su contenido en el transcurso del programa.), variables (Estructura de
datosque,comosunombreindica,puedecambiardecontenidoalolargodelaejecucin
de un programa.), otros objetos, instrucciones y estructuras de programacin que
expresan de forma escrita la solucin del problema. Es la tcnica ms utilizada
actualmente.
9 Tablas de decisin: En una tabla son representadas las posibles condiciones del
problemaconsusrespectivasacciones.Sueleserunatcnicadeapoyoalpseudocdigo
cuandoexistensituacionescondicionalescomplejas.

Autoevaluacin
Rellena los huecos con los conceptos adecuados:
A los pasos que permiten resolver el problema, escritos en un lenguaje de programacin, para
que puedan ser ejecutados en el ordenador y as obtener la solucin, se les denomina:
Programa
.
Si estos pasos estuvieran descritos en un lenguaje genrico independiente de la mquina y del lenguaje de programacin, estaramos
hablando de algoritmos.

4
DesarrollodeApllicacionesW
Web Tema3

3.-- Paraadigm
mas dee la prrogram
macin.
Casoo prctico
Ada comenta co on Juan y Mara
M los disstintos enfoqques para el desarrollo de program mas que han n
existiido a lo largo
o de la historria de la programacin, destacando
d que todos vaan a tener que renovar
su fo
orma de pen nsar, si quierren comenza ar a utilizar un lenguaje moderno q que les permmita construirr
progrramas adapta ados a las nuevas necessidades de sus clientes.
Cuntas formass existen dee hacer las cosas? Supo
ongo que estars
e penssando: varias o incluso,,
much has.Perocuaandoseestableceunpattrnparalaccreacindeaplicacionessnosestamoosacercando o
alsignificadodelapalabrapaaradigma.

Paraadigma de programaccin: es un modelo b sico para el


e diseo y la implemeentacin dee
proggramas. Estee modelo deeterminar como ser el proceso de
d diseo y la estructu
ura final dell
proggrama.

Elparradigmarepresentauneenfoquepartticularofilossofaparalaconstruccin ndesoftwarre.Cadauno o
tendrr sus ventajas e inconvvenientes, seer ms o menos
m apropiiado, pero n
no es correctto decir quee
existaaunomejorquelosdem ms.
Program
macinImperatiiva

Consistteenunaseriedecomandosq queunacompu utadora
ProgramaccinDeclarativaa ejecutaar.Estoscomaandosdetalland deformaclarayespecficael
cmohhacerlascosasyyllevarnalproogramaatravsdedistintos
Seconsidderaopuestaallaprogramacin estadoss.Utilizavariab
bles,tiposdedaatos,expresione
esy
eldesarrollode
imperativva,sebasaene estructurasdecontroldeflujodelprrograma.
programaasrealizandounaespecificaci no
"declaraccin"deunconjuntodecondicciones, Program
macinconvencional
proposiciones,afirmacio ones,restriccionesy
transformmacionesquedescribenelpro oblemay Tambinllamada,noeestructurada,n noexistanenlo
oslenguajes
detallanssusolucin.Lassentenciasqu uese deproggramacininicialesherramien ntasquepermittieran
utilizanlo
oquehacenesdescribirelprroblema estructurarelcdigop
parasumodificcacinoreutilizzacin.Los
quesequ uieresolucionarperonolas programmaseranlneassylneasdecd digoquehacanndifcilsu
lecturaomodificacin
n.Todoestababasadoeninstrruccionesde
instruccioonesnecesariassparallevarloaacabo. salto(G
Goto)quemodiificabanelflujo odelprograma..Unprograma
Dentrodeeesteparadigmmapuedendesttacarse eraunnicoarchivo,eerandifcilesdeemantenerydifcilesde
PARADIGMASDEPROGRAMACIN

laprogramacinfuncion nalylaprogram
macin represeentar.
lgica.
EllenguajjeSQLestbassadoeneste
paradigm ma. Program
macinestructurada

Nacip parasolventarlosproblemasyylimitacionesddela
Funcional program macinconvencional.Permiteeutilizarestructturasque
facilitan
nlamodificaci
n,reutilizacin
nylecturadelccdigo.
Consideraaalprogramaccomounafuncin Permiteeelusodelconnceptodefuncin(programaccinmodular),
matemttica, dondeeld dominiorepreseentara queagrrupancdigoparalarealizaci ndeunadeterminada
elconjuntodetodaslasentradasposib bles tarea.EEstasfuncionesspuedenserutilizadasencuallquierparte
delprograma,elnmeerodevecesqu uesenecesitenn
(inputs)yyelrangoseraelconjuntodetodas Permiteeunarepresentacinmsclarradelfuncionamientodelos
lassalidasposibles(outpputs).Laformaaenque program masmedianted diagramas,enllosqueserepre esentan
funcionapueseserente endidacomoun nacaja estructurascondicionaales,bucles,etcc.Todoseveco omomdulos
quepuedencolaborarrentreellos.Esstetipodeproggramacin
negra,statieneunaseriedeentradass,un tenaunaseriedelimiitacionesquep provocaronlaaparicinde
procesam mientointernoyyunasalida. otrosparadigmas.
Noexisteeelconceptode evariable,adem
msel
funcionam mientodecadaafuncines
independ dientedelrestoo. Orientad
daaobjetos
EllenguajjeLISPesunejemplodeeste
paradigm madeprogramaacin. Elmundosevedesdeelpuntodevisstadelosobjetosquehayen
l.Loso
objetostienencaractersticas(propiedades)yconellos
pueden nrealizarseacciones(mtodos).Enestafilosofasebusca
Lgica encontrarlosobjetos,,envezdelasffuncionescomooen
program macinestructurada.
Enesteparadigma,seespecificaquhacery Estbaasadaenvariastcnicas,incluyyendoherenciaa,abstraccin,
polimorfismoyencapsulamiento.
nocmohacerlo.Seutilizaeninteligen
ncia LenguaajescomoJava,C,C++,PHP,...sonclarosejemmplosquese
artificial. basaneenesteparadiggma.
EllenguajjePrologesunejemploclaroquese
ajustaaeesteparadigma.
Visual,o
orientadaaaspeectos,orientadaaeventos,...

Sonunconjuntodepaaradigmasquepuedenserrele evantes,
aunqueegranpartedeellosincluyenlosconceptosd
desarrollados
enelreestodeparadigmaspresentaddosenestedocu
umento.
5
Introduccinalaprogramacin DAW

Como habrs podido apreciar, existen mltiples paradigmas, incluso puede haber lenguajes de
programacinquenoseclasifiquennicamentedentrodeunodeellos.UnlenguajecomoSmalltalk
esunlenguajebasadoenelparadigmaorientadoaobjetos.EllenguajedeprogramacinScheme,en
cambio,soportasloprogramacinfuncional.Python,soportamltiplesparadigmas.

Parasaberms
Te proponemos el siguiente enlace en el que encontrars informacin adicional sobre los
diferentesparadigmasdeprogramacin.
http://javierleal.wordpress.com/2009/08/27/paradigmasdeprogramacion/

Culeselobjetivoquesebuscaconlaaplicacindelosdiferentesenfoques?Fundamentalmente,
reducir la dificultad para el mantenimiento de las aplicaciones, mejorar el rendimiento del
programadory,engeneral,mejorarlaproductividadycalidaddelosprogramas.

Autoevaluacin
En qu paradigma de programacin podramos enmarcar el lenguaje de programacin Java?
Programacin Estructurada.
Programacin Declarativa.
Programacin Orientada a Objetos.
S, Java emplea la filosofa de ver el mundo como objetos que tienen propiedades y mtodos que les permiten interactuar entre ellos.

6
DesarrollodeAplicacionesWeb Tema3

4.- Fases de la programacin.


Caso prctico
Juan pregunta a Ada cmo van a realizar todo el proceso de produccin, y duda si el utilizar un
nuevo lenguaje supondr cambiar drsticamente los mtodos aprendidos en el pasado.
Ada tranquiliza a Juan y a Mara: Est claro que las fases principales que hemos estado llevando a
cabo a lo largo de nuestros anteriores proyectos se seguirn aplicando, aunque con algunas
diferencias. Lo ms importante Juan, es que sigamos adecuadamente el mtodo de trabajo para
conseguir buenos resultados.
Me costar mucho trabajo adaptarme? pregunta Mara.
Ada le contesta sentndose a su lado: No te preocupes Mara, se trata de adaptar conocimientos
que ya tienes y aprender algunos otros.
Sea cual sea el estilo que escojamos a la hora de automatizar una determinada tarea, debemos
realizar el proceso aplicando un mtodo a nuestro trabajo. Es decir, sabemos que vamos a dar
solucinaunproblema,aplicandounafilosofadedesarrolloyloharemosdandounaseriedepasos
quedebenestarbiendefinidos.

Elprocesodecreacindesoftwarepuededividirseendiferentesfases:

9 Fasederesolucindelproblema.
9 Fasedeimplementacin.
9 Fasedeexplotacinymantenimiento.

Acontinuacin,analizaremoscadaunadeellas.

4.1.Resolucindelproblema.
Paraelcomienzodeestafase,esnecesarioqueelproblemaseadefinidoycomprendidoclaramente
paraquepuedaseranalizadocontododetalle.Asuvez,lafasederesolucindelproblemapuede
dividirseendosetapas:

a) Anlisis

Por lo general, el anlisis indicar la especificacin de requisitos que se deben cubrir. Los
contactosentreelanalista/programadoryelcliente/usuariosernnumerosos,deestaforma
podrn ser conocidas todas las necesidades que precisa la aplicacin. Se especificarn los
procesosyestructurasdedatosquesevanaemplear.Lacreacindeprototipossermuy
tilparasaberconmayorexactitudlospuntosatratar.

El anlisis inicial ofrecer una idea general de lo que se solicita, realizando posteriormente
sucesivosrefinamientosqueservirnparadarrespuestaalassiguientescuestiones:

9 Culeslainformacinqueofrecerlaresolucindelproblema?
9 Qudatossonnecesariospararesolverelproblema?

Larespuestaalaprimerapreguntaseidentificaconlosresultadosdeseadosolassalidasdel
problema. La respuesta a la segunda pregunta indicar qu datos se proporcionan o las
entradasdelproblema.

En esta fase debemos aprender a analizar la documentacin de la empresa , investigar,


observartodoloquerodeaelproblemayrecopilarcualquierinformacintil.

7
Introduccinalaprogramacin DAW

Ejercicio resuelto
Vamos a ilustrar esta fase realizando el anlisis del siguiente problema:
Leer el radio de un crculo y calcular e imprimir su superficie y circunferencia.
Est claro que las entradas de datos en este problema se reducen al radio del crculo, pero
piensa qu salidas de datos ofrecer la solucin?
Las salidas sern...
Variable de salida SUPERFICIE: ser la superficie del crculo. (Te acuerdas? El nmero
Pi por el radio al cuadrado).
Variable de salida CIRCUNFERENCIA: ser la longitud de la circunferencia del crculo.
(Y de sta? Dos por el nmero Pi y por el radio)
Y la entrada...
Variable RADIO: ser el radio del crculo.
Estas variables RADIO, SUPERFICIE y CIRCUNFERENCIA podrn ser de tipo real
(nmeros con parte entera y parte decimal, por ejemplo: 3,57)

b) Diseo

Enestaetapaseconviertelaespecificacinrealizadaenlafasedeanlisisenundiseoms
detallado, indicando el comportamiento o la secuencia lgica de instrucciones capaz de
resolver el problema planteado. Estos pasos sucesivos, que indican las instrucciones a
ejecutarporlamquina,constituyenloqueconocemoscomoalgoritmo.

Consisteenplantearlaaplicacincomounanicaoperacinglobal,eirdescomponindola
en operaciones ms sencillas, detalladas y especficas. En cada nivel de refinamiento, las
operacionesidentificadasseasignanamdulosseparados.

Hayque teneren cuentaqueantesdepasaralaimplementacindelalgoritmo,hemosde


asegurarnos que tenemos una solucin adecuada. Para ello, todo diseo requerir de la
realizacin de la prueba o traza del programa. Este proceso consistir en un seguimiento
paso a paso de las instrucciones del algoritmo utilizando datos concretos. Si la solucin
aportada tiene errores, tendremos que volver a la fase de anlisis para realizar las
modificaciones necesarias o tomar un nuevo camino para la solucin. Slo cuando el
algoritmocumplalosrequisitosyobjetivosespecificadosenlafasedeanlisissepasarala
fasedeimplementacin.

4.2.- Implementacin.

Silafasederesolucindelproblemarequiereunespecialcuidadoenlarealizacindelanlisisyel
posterior diseo de la solucin, la fase de implementacin cobra tambin una especial relevancia.
Llevar a la realidad nuestro algoritmo implicar cubrir algunas etapas ms que se detallan a
continuacin.

a) Codificacin o construccin

Esta etapa consiste en transformar o traducir los resultados obtenidos a un determinado


lenguajedeprogramacin.Paracomprobarlacalidadyestabilidaddelaaplicacinsehande
realizar una serie de pruebas que comprueben las funciones de cada mdulo (pruebas

8
DesarrollodeAplicacionesWeb Tema3

unitarias), que los mdulos funcionan bien entre ellos (pruebas de interconexin) y que
todosfuncionanenconjuntocorrectamente(pruebasdeintegracin).

Cuandorealizamoslatraduccindelalgoritmoallenguajedeprogramacindebemostener
en cuenta las reglas gramaticales y la sintaxis de dicho lenguaje. Obtendremos entonces el
cdigofuente,loquenormalmenteconocemosporprograma.

Pero para que nuestro programa comience a funcionar, antes debe ser traducido a un
lenguajequelamquinaentienda.Esteprocesodetraduccinpuedehacersededosformas,
compilandoointerpretandoelcdigodelprograma.

Compilacin: Es el proceso por el cual se traducen las instrucciones escritas en un


determinado lenguaje de programacin a lenguaje que la mquina es capaz de
interpretar.

Compilador: programa informtico que realiza la traduccin. Recibe el cdigo


fuente, realiza un anlisis lexicogrfico, semntico y sintctico, genera un cdigo
intermedio no optimizado, optimiza dicho cdigo y finalmente, genera el cdigo objeto
para una plataforma especfica.

Intrprete: programa informtico capaz de analizar y ejecutar otros programas,


escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de los
compiladores en que mientras estos traducen un programa desde su descripcin en un
lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo
realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por
instruccin, y normalmente no guardan el resultado de dicha traduccin.

Una vez traducido, sea a travs de un proceso de compilacin o de interpretacin, el


programapodrserejecutado.

b) Prueba de ejecucin y validacin

Paraestaetapaesnecesarioimplantarlaaplicacinenelsistemadondevaafuncionar,debe
ponerse en marcha y comprobar si su funcionamiento es correcto. Utilizando diferentes
datos de prueba se ver si el programa responde a los requerimientos especificados, si se
detectannuevoserrores,sistossonbiengestionadosysilainterfazesamigable.Setratade
ponerapruebanuestroprogramaparaversurespuestaensituacionesdifciles.

Mientras se detecten errores y stos no se subsanen no podremos avanzar a la siguiente


fase.Unavezcorregidoelprogramaytesteadosedocumentarmediante:

9 Documentacin interna: Encabezados, descripciones, declaraciones del problema y


comentariosqueseincluyendentrodelcdigofuente.
9 Documentacinexterna:Sonlosmanualesquesecreanparaunamejorejecuciny
utilizacindelprograma.

Autoevaluacin
Rellena los huecos con los conceptos adecuados:

9
Introduccinalaprogramacin DAW

sintaxis
En la fase de codificacin, hemos de tener en cuenta la del lenguaje para obtener
compilado interpretado
el cdigo fuente o programa. Posteriormente, ste deber ser o para
que pueda ser ejecutado posteriormente.
La sintaxis y reglas gramaticales del lenguaje de programacin que estemos utilizando deben ser respetadas para obtener un cdigo fuente
correcto. Este cdigo fuente debe ser compilado o interpretado, utilizando un programa compilador o intrprete, para transformarlo a un
formato que sea ejecutable por la mquina.

4.3.Explotacin.
Cuando el programa ya est instalado en el sistema y est siendo de utilidad para los usuarios,
decimosqueseencuentraenfasedeexplotacin.

Peridicamentesernecesariorealizarevaluacionesy,siesnecesario,llevaracabomodificaciones
para que el programa se adapte o actualice a nuevas necesidades, pudiendo tambin corregirse
errores no detectados anteriormente. Este proceso recibe el nombre de mantenimiento del
software.

Mantenimiento del software: es el proceso de mejora y optimizacin del software despus


de su entrega al usuario final. Involucra cambios al software en orden de corregir defectos y
dependencias encontradas durante su uso, as como la adicin de nuevas funcionalidades
para mejorar la usabilidad y aplicabilidad del software.

Ser imprescindible aadir una documentacin adecuada que facilite al programador la


comprensin,usoymodificacindedichosprogramas.

10
DesarrollodeAplicacionesWeb Tema3

5.- Ciclo de vida del software.


Caso prctico
Mara le pregunta a Juan: Juan, qu ocurre cuando terminas un programa? Se entrega al cliente
y ya est? La verdad es que los programas que he hecho han sido para uso propio y no s cmo
termina el proceso con los clientes.
Contesta Juan: Pues vers, cuando terminas un programa, o crees que lo has terminado, hay que
llevar a cabo toda clase de pruebas para ver dnde puede fallar. Despus mejoras los posibles fallos
y posteriormente se entrega al cliente, ah es donde ves si tu software ha sido bien construido. El
cliente lo utilizar y durante un tiempo puede ser que haya que arreglar alguna cosilla. Y cuando ya
est todo correcto, en ocasiones, se establece un contrato de mantenimiento con el cliente. Como
ves, desarrollar software no consiste slo en programar y ya est.
Sean cuales sean las fases en las que realicemos el proceso de desarrollo de software, y casi
independientementedel,siempresedebeaplicarunmodelodeciclodevida.

Ciclo de vida del software: es una sucesin de estados o fases por las cuales pasa un
software a lo largo de su "vida".

Elprocesodedesarrollopuedeinvolucrarsiemprelassiguientesetapasmnimas:
9 EspecificacinyAnlisisderequisitos.
9 Diseo.
9 Codificacin.
9 Pruebas.
9 InstalacinypasoaProduccin.
9 Mantenimiento.

Existenvariostiposdeciclosdevidadelsoftware,acontinuacintemostramosunresumendelos
msimportantes.

Definicinde
Requerimientos

AnlisisyDiseo
Estambinconocidopormodeloclsico, delsoftware
modelo tradicional o modelo lineal
secuencial.Paracomenzarunafasehade
Definicinde
Modeloencascada finalizarse la anterior. Es rgido y en la requerimientos
prctica presenta algunos problemas de
aplicacin. Es el ms utilizado por su
Implementaciny
escasacomplejidad Pruebade
unidades

Operaciny
mantenimiento

Este ciclo de vida se basa en la creacin Pequeoanlisisy


de prototipos que irn mejorando el especificacin
conocimientodelproblema,tantoparael Diseoyrealizacin
Modeloporprototipos usuariocomoparalosdesarrolladores. Evaluacin
La fase de especificacin de Modificacin
requerimientos est compuesta por las Finalizacindelos
subfasesquesemencionanaladerecha: requerimientos

11
Introduccinalaprogramacin DAW

Se emplea para facilitar la creacin de


aplicaciones flexibles y escalables, que
permitan incorporar modificaciones muy
rpidamente una vez que se finalice su
desarrollo
Los modelos iterativo
Este modelo permite adaptarse a
ModeloEvolutivo incremental y espiral son del
requisitosquevareneneltiempo.Esun
tipoevolutivo
modelo iterativo, permiten desarrollar
versiones cada vez ms completas y
complejas, hasta llegar al objeto final
deseado; incluso evolucionar ms all,
durantelafasedeexplotacin
El funcionamiento del modelo iterativo

Especificacin
incremental permite la entrega de
versiones parciales a medida que se va Versin

construyendoelproductofinal

Descripcindelsistema
Por ejemplo, un procesador de texto

Desarrollo
podra incluir inicialmente funciones
Versiones
bsicas. En un incremento posterior
Modeloincremental
podra incorporar funciones para
previsualizacin y paginacin. En los

Validacin
siguientes incrementos podra disponer
Versin
de funciones de correccin ortogrfica,
etc. Tras sucesivos incrementos
lograramos obtener el procesador de
textofinal
Este modelo emplea lo mejor de los
modelos convencional y por prototipos.
1. Planificacin
Estdivididoencuatrofases.Elpasopor
2. Anlisisderiesgo
Modeloenespiral cadaunadeestasfasesserepetirtantas
3. Desarrollo
veces como sea necesario hasta que se
4. Evaluacindelcliente
cumplan todos los requerimientos del
usuario

Autoevaluacin
Entre los distintos tipos de ciclo de vida del software, los modelos incremental y en cascada
son modelos del tipo evolutivo.
Verdadero. Falso.
El modelo incremental s es del tipo evolutivo, as como el modelo en espiral, ya que ambos permiten adaptarse a requisitos variables en el
tiempo. El modelo en cascada es mucho ms restrictivo y necesita de unos requerimientos prefijados y no variables.

12
DesarrollodeAplicacionesWeb Tema3

6.- Lenguajes de programacin.


Caso prctico
Ada y Juan estn recordando lo complejos que eran algunos lenguajes de programacin, Ada
comenta: Cuando yo empec en esto, haba relativamente pocos lenguajes de programacin y no
permitan hacer programas como los que ahora desarrollamos.
Juan indica que l conoce las caractersticas generales de algunos lenguajes, pero que le gustara
saber algo ms sobre los que hubo, hay y habr.
Mara que asiente con la cabeza, piensa que aprender ms sobre los lenguajes disponibles en la
actualidad puede ayudar a la hora de elegir entre unos u otros.
Como hemos visto, en todo el proceso de resolucin de un problema mediante la creacin de
software, despus del anlisis del problema y del diseo del algoritmo que pueda resolverlo, es
necesariotraducirsteaunlenguajequeexpreseclaramentecadaunodelospasosaseguirparasu
correctaejecucin.Estelenguajerecibeelnombredelenguajedeprogramacin.

Lenguaje de programacin: Conjunto de reglas sintcticas y semnticas, smbolos y


palabras especiales establecidas para la construccin de programas. Es un lenguaje
artificial, una construccin mental del ser humano para expresar programas.

Gramtica del lenguaje: Reglas aplicables al conjunto de smbolos y palabras especiales del
lenguaje de programacin para la construccin de sentencias correctas.

Lxico: Es el conjunto finito de smbolos y palabras especiales, es el vocabulario del


lenguaje.

Sintaxis: Son las posibles combinaciones de los smbolos y palabras especiales. Est
relacionada con la forma de los programas.

Semntica: Es el significado de cada construccin del lenguaje, la accin que se llevar a


cabo.

Hay que tener en cuenta que pueden existir sentencias sintcticamente correctas, pero
semnticamente incorrectas. Por ejemplo, Un avestruz dio un zarpazo a su cuidador est bien
construidasintcticamente,peroesevidentequesemnticamenteno.

Una caracterstica relevante de los lenguajes de programacin es, precisamente, que ms de un


programadorpuedausarunconjuntocomndeinstruccionesqueseancomprendidasentreellos.A
travsdeesteconjuntosepuedelograrlaconstruccindeunprogramadeformacolaborativa.

Loslenguajesdeprogramacinpuedenserclasificadosenfuncindelocercaqueestndellenguaje
humanoodellenguajedeloscomputadores.Ellenguajedeloscomputadoressoncdigosbinarios,
esdecir,secuenciasdeunosyceros.Detallaremosseguidamentelascaractersticasprincipalesdelos
lenguajesdeprogramacin.

6.1.Lenguajemquina.
Esteesellenguajeutilizadodirectamenteporelprocesador,constadeunconjuntodeinstrucciones
codificadas en binario. Es el sistema de cdigos directamente interpretable por un circuito
microprogramable (Dispositivo o conjunto de dispositivos de propsito general, que, segn sea
necesario,seprogramanpararesolverdistintosproblemas).

13
Introduccinalaprogramacin DAW

Este fue el primer lenguaje utilizado para la programacin de computadores. De hecho, cada
mquinatenasupropioconjuntodeinstruccionescodificadasencerosyunos.Cuandounalgoritmo
estescritoenestetipodelenguaje,decimosqueestencdigomquina.

Programarenestetipodelenguajepresentabalossiguientesinconvenientes:

9 Cadaprogramaeravlidosloparauntipodeprocesadoruordenador.
9 La lectura o interpretacin de los programas era extremadamente difcil y, por tanto, insertar
modificacionesresultabamuycostoso.
9 Los programadores de la poca deban memorizar largas combinaciones de ceros y unos, que
equivalanalasinstruccionesdisponiblesparalosdiferentestiposdeprocesadores.
9 Losprogramadoresseencargabande introducirloscdigosbinariosenelcomputador,loque
provocabalargostiemposdepreparacinyposibleserrores.

Acontinuacin,semuestranalgunoscdigosbinariosequivalentesalasoperacionesdesuma,resta
ymovimientodedatosenlenguajemquina.

Algunas operaciones en lenguaje mquina.


Operacin Lenguaje mquina Decimal
SUMAR 00101101 45
RESTAR 00010011 19
MOVER 00111010 58
Dadalacomplejidadydificultadesqueofrecaestelenguaje,fuesustituidoporotrosmssencillosy
fciles utilizar. No obstante, hay que tener en cuenta que todos los programas para poder ser
ejecutados, han de traducirse siempre al lenguaje mquina que es el nico que entiende la
computadora.

Parasaberms
Como recordatorio, te proponemos el siguiente enlace sobre cmo funciona el sistema
binario.
http://www.juntadeandalucia.es/educacion/adistancia/cursos/file.php/419/PROG01/PROG01_Web/
PROG01_Descripcion_Video_Elsistemabinario.html

Autoevaluacin
Rellena los huecos con los conceptos adecuados:
En el lenguaje mquina de algunos procesadores, la combinacin 00101101 equivale a la
suma
operacin de .
La Suma, resta y la operacin de movimiento de datos eran muy utilizadas en los programas escritos en lenguaje mquina. An no se haba
extendido el uso de estructuras de programacin como las sentencias condicionales o los bucles.

6.2.LenguajeEnsamblador.
La evolucin del lenguaje mquina fue el lenguaje ensamblador. Las instrucciones ya no son
secuenciasbinarias,sesustituyenporcdigosdeoperacinquedescribenunaoperacinelemental
del procesador. Es un lenguaje de bajo nivel, al igual que el lenguaje mquina, ya que dependen
directamentedelhardwaredondesonejecutados.

Mnemotcnico: son palabras especiales, que sustituyen largas secuencias de ceros y unos,
utilizadas para referirse a diferentes operaciones disponibles en el juego de instrucciones que
soporta cada mquina en particular.

14
DesarrollodeApllicacionesW
Web Tema3

Enennsamblador, cadainstrucccin(mnemmotcnico)se ecorrespond


deaunainsttruccindel procesador..
Enlasiguientetablasemuesttranalgunossejemplos.

Algunasopeeracionesysu
A umnemotccnicoen
len
nguajeEnsamblador.
Operacin LenguajeEnsamblad dor
MULLTIPLICAR MUL
DIVIDIR DIV
MOV VER MOV
Enelsiguientegrrficopuedeesverparte deunprogrramaescrito oenlenguajeeensamblad dor.Encolorr
rojosseharesaltaadoelcdigo
omquinaeenhexadecimmal(Sistema anumricoenbase16,eestosignifica a
queccontiene16ssmbolosniccospararep
presentardattos:losnmeerosdel0al9ylasletrassdelaAala
a
F.),enmagentaeelcdigoesccritoen
ensam mblador y y en azu ul, las
direcciones de memoria
m do
onde se
encueentraelcdiigo.

Pero aunque en nsamblador fue un


intento por apro
oximar el len
nguaje de lo
os procesado
ores al lengu
uaje humano
o, presentab
ba mltipless
dificu
ultades:

9 LLosprogram
masseguand dependiendoodirectamen ntedelhardw
warequelossoportaba.
9 Losprogram
L madorestenaanqueconoocerdetalladdamentelammquinasobbrelaqueprrogramaban,,
y
yaquedebaanhacerunu
usoadecuadodelosrecuursosdedich
hossistemass.
9 Lalectura,in
L nterpretacin
nomodificacindelosp
programasseeguapresen
ntandodificultades.

Todo programa escrito en lenguaje en nsamblador necesita dee un interm mediario, que realice laa
traduuccin de cada
c una dee las instruucciones que e componen n su cdigo o al lenguaaje mquinaa
correespondiente. Este interm
mediario es el programaa ensamblad dor. El progrrama originaal escrito en
n
lenguuaje ensambblador constiituye el cdiigo fuente y
y el programa traducido al lenguaje mquina see
conocecomopro ogramaobjettoqueserd directamente eejecutadoporlacompu utadora.

15
Introduccinalaprogramacin DAW

6.3.Lenguajescompilados.
Parapaliarlosproblemasderivadosdelusodellenguajeensambladoryconelobjetivodeacercarla
programacinhaciaelusodeunlenguajemscercanoalhumanoquealdelcomputador,nacieron
loslenguajescompilados.Algunosejemplosdeestetipodelenguajesson:Pascal,Fortran,Algol,C,
C++(EsellenguajedeprogramacinCampliadoparapoderutilizarlosmecanismosquepermitanla
manipulacindeobjetos.Esunlenguajemultiparadigma.),etc.

Alserlenguajesmscercanosalhumano,tambinselesdenominalenguajesdealtonivel.Sonms
fciles de utilizar y comprender, las instrucciones que forman parte de estos lenguajes utilizan
palabrasysignosreconociblesporelprogramador.

Culessonsusventajas?

9 Sonmuchomsfcilesdeaprenderydeutilizarquesuspredecesores.
9 Sereduceeltiempoparadesarrollarprogramas,ascomoloscostes.
9 Son independientes del hardware, los programas pueden ejecutarse en diferentes tipos de
mquina.
9 Lalectura,interpretacinymodificacindelosprogramasesmuchomssencilla.

Pero un programa que est escrito en un lenguaje de alto nivel tambin tiene que traducirse a un
cdigoquepuedautilizarlamquina.Losprogramastraductoresquepuedenrealizarestaoperacin
sellamancompiladores.

Compilador: Es un programa cuya funcin consiste en traducir el cdigo fuente de un


programa escrito en un lenguaje de alto nivel a lenguaje mquina. Al proceso de traduccin
se le conoce con el nombre de compilacin.

Para ilustrar el proceso de compilacin de


programastemostramoslasiguienteilustracin:

El compilador realizar la traduccin y adems


informar de los posibles errores. Una vez
subsanados, se generar el programa traducido a
cdigo mquina, conocido como cdigo objeto.
Este programa an no podr ser ejecutado hasta
que no se le aadan los mdulos de enlace o
bibliotecas, durante el proceso de enlazado. Una
vez finalizado el enlazado, se obtiene el cdigo
ejecutable.

16
DesarrollodeAplicacionesWeb Tema3

Autoevaluacin
Durante la fase de enlazado, se incluyen en el cdigo fuente determinados mdulos
(bibliotecas) que son necesarios para que el programa pueda realizar ciertas tareas,
posteriormente se obtendr el cdigo ejecutable.
Verdadero. Falso.
El cdigo fuente es traducido por el compilador, pero en la fase de enlazado los mdulos son aadidos al cdigo objeto; estos mdulos
permitirn al programa manejar dispositivos, comunicarse con otros elementos del sistema, etc.

6.4.Lenguajesinterpretados.
Secaracterizanporestardiseadosparaquesuejecucinserealiceatravsdeunintrprete.Cada
instruccin escrita en un lenguaje interpretado se analiza, traduce y ejecuta tras haber sido
verificada.Unavezrealizadoelprocesoporelintrprete,lainstruccinseejecuta,peronoseguarda
enmemoria.

Intrprete: Es un programa traductor de un lenguaje de alto nivel en el que el proceso de


traduccin y de ejecucin se llevan a cabo simultneamente, es decir, la instruccin se pasa a
lenguaje mquina y se ejecuta directamente. No se genera programa objeto, ni programa
ejecutable.

Los lenguajes interpretados generan programas de menor tamao que los generados por un
compilador,alnoguardarelprogramatraducidoacdigomquina.Peropresentanelinconveniente
deseralgomslentos,yaquehandesertraducidosdurantesuejecucin.Porotraparte,necesitan
disponerenlamquinadelprogramaintrpreteejecutndose,algoquenoesnecesarioenelcaso
deunprogramacompilado,paralosquesloesnecesariotenerelprogramaejecutableparapoder
utilizarlo.

Ejemplosdelenguajesinterpretadosson:Perl,PHP,Python,JavaScript,etc.

A medio camino entre los lenguajes compilados y los interpretados, existen los lenguajes que
podemosdenominarpseudocompiladosopseudointerpretados,eselcasodelLenguajeJava.Java
puede verse como compilado e interpretado a la vez, ya que su cdigo fuente se compila para
obtenerelcdigobinarioenformadebytecodes,quesonestructurasparecidasalasinstrucciones
mquina, con la importante propiedad de no ser dependientes de ningn tipo de mquina (se
detallarnmsadelante).LaMquinaVirtualJavaseencargardeinterpretarestecdigoy,parasu
ejecucin, lo traducir a cdigo mquina del procesador en particular sobre el que se est
trabajando.

Debesconocer
Puedes entender por qu Java es un lenguaje compilado e interpretado a travs del
siguienteesquema.
Losdosprocesosserealizanenfasesdistintas:

javac
ProgramaJava bytecode fasededesarrollo

bytecode java binario fasedeexplotacin

17
Introduccinalaprogramacin DAW

El compilador (javac) slo tiene que estar en la plataforma de desarrollo, y el interprete (java)
tienequeestarentodoslosclientesquequieranejecutarelapplet.

Autoevaluacin
En Java el cdigo fuente es compilado, obtenindose el cdigo binario en forma de bytecodes.
Pero, Cul es la extensin del archivo resultante?
Extensin .obj.
Extensin .class.
Extensin .Java.
Este tipo de archivos son los que la Mquina Virtual Java traducir para poder ejecutarlos en la mquina real.

18
DesarrollodeAplicacionesWeb Tema3

7.- El lenguaje de programacin Java.


Caso prctico
Ada indica a Juan y Mara que el lenguaje elegido para sus desarrollos va a ser Java. La flexibilidad,
facilidad de aprendizaje, similitud con algunos lenguajes que ya conocen y su capacidad para
adaptarse a cualquier plataforma, hacen que sea ideal para producir las nuevas aplicaciones de BK
Programacin.

7.1.QuycmoesJava?
Java es un lenguaje sencillo de aprender, con una sintaxis parecida a la de
C++,peroenlaquesehaneliminadoelementoscomplicadosyquepueden
originar errores. Java es orientado a objetos, con lo que elimina muchas
preocupacionesalprogramadorypermitelautilizacindegrancantidadde
bibliotecas ya definidas, evitando reescribir cdigo que ya existe. Es un
lenguajedeprogramacincreadoparasatisfacernuevasnecesidadesquelos
lenguajesexistenteshastaelmomentonoerancapacesdesolventar.

UnadelasprincipalesvirtudesdeJavaessuindependenciadelhardware,ya
queelcdigoquesegeneraesvlidoparacualquierplataforma.Estecdigo
serejecutadosobreunamquinavirtualdenominadaMaquinaVirtualJava
(MVJoJVMJavaVirtualMachine),queinterpretarelcdigoconvirtindoloacdigoespecficode
laplataformaquelosoporta.Deestemodoelprogramaseescribeunanicavezypuedehacerse
funcionarencualquierlugar.Lemadellenguaje:Writeonce,runeverywhere.

AntesdequeaparecieraJava,ellenguajeCeraunodelosmsextendidosporsuversatilidad.Pero
cuandolosprogramasescritosenCaumentabandevolumen,sumanejocomenzabaacomplicarse.
Mediantelastcnicasdeprogramacinestructuradayprogramacinmodularseconseguanreducir
estascomplicaciones,peronoerasuficiente.

Fue entonces cuando la Programacin Orientada a Objetos (POO) entra en escena, aproximando
notablementelaconstruccindeprogramasalpensamientohumanoyhaciendomssencillotodoel
proceso. Los problemas se dividen en objetos que tienen propiedades e interactan con otros
objetos, de este modo, el programador puede centrarse en cada objeto para programar
internamenteloselementosyfuncionesquelocomponen.

LascaractersticasprincipalesdelenguajeJavaseresumenacontinuacin:

9 ElcdigogeneradoporelcompiladorJavaesindependientedelaarquitectura.
9 Esttotalmenteorientadoaobjetos.
9 SusintaxisessimilaraCyC++.
9 Esdistribuido,preparadoparaaplicacionesTCP/IP.
9 Disponedeunamplioconjuntodebibliotecas.
9 Esrobusto,realizandocomprobacionesdelcdigoentiempodecompilacinydeejecucin.
9 La seguridad est garantizada, ya que las aplicaciones Java no acceden a zonas delicadas de
memoriaodesistema.

19
Introduccinalaprogramacin DAW

Debesconocer
Obtnunadescripcindetalladadelascaractersticasreseadasanteriormenteatravsdel
siguienteartculo:
Caractersticas CONCEPTOSCLAVE

9 bytecodes
9 Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que
una especie de cdigo
se apoya esta tcnica, encapsulacin, herencia, polimorfismo, etc., estn
mquina.
presentesenJava.
9 applets
9 Disponibilidaddeunamplioconjuntodebibliotecas.Comoyasemencion
programasembebidosen
anteriormente, Java es algo ms que un lenguaje. La programacin de
pginasWeb.
aplicacionesconJavasebasanosoloenelempleodeljuegodeinstrucciones
9 MquinaVirtual
que componen el lenguaje, sino, fundamentalmente, en la posibilidad de
softwarequeemulaaun
utilizar el amplsimo conjunto de clases que Sun pone a disposicin del
ordenador.
programadoryconlascualesesposiblerealizarprcticamentecualquiertipo
deaplicacin.
9 Lenguaje simple. Java posee una curva de aprendizaje muy rpida. Resulta relativamente sencillo escribir applets
interesantesdesdeelprincipio.TodosaquellosfamiliarizadosconC++encontrarnqueJavaesmssencillo,yaquese
haneliminadociertascaractersticas,comolospunteros.DebidoasusemejanzaconCyC++,ydadoquelamayora
de la gente los conoce aunque sea de forma elemental, resulta muy fcil aprender Java. Los programadores
experimentadosenC++puedenmigrarmuyrpidamenteaJavayserproductivosenpocotiempo.
9 DistribuidoJavaproporcionaunacoleccindeclasesparasuusoenaplicacionesdered,quepermitenabrirsocketsy
establecer y aceptar conexiones con servidores o clientes remotos, facilitando as la creacin de aplicaciones
distribuidas.
9 Interpretado ycompilado a lavez Javaes compilado, en la medida enquesucdigo fuentese transformaen una
especie de cdigo mquina, los bytecodes, semejantes a las instrucciones de ensamblador. Por otra parte, es
interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier mquina a la cual se hayan
portadoelintrpreteyelsistemadeejecucinentiemporeal(runtime).
9 RobustoJavafuediseadoparacrearsoftwarealtamentefiable.Paraelloproporcionanumerosascomprobaciones
encompilacinyentiempodeejecucin.Suscaractersticasdememorialiberanalosprogramadoresdeunafamilia
enteradeerrores(laaritmticadepunteros),yaquesehaprescindidoporcompletodelospunteros,ylarecoleccin
debasuraeliminalanecesidaddeliberacinexplcitadememoria.
9 Seguro (?) Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la
seguridad se impuso como una necesidad de vital importancia. A nadie le gustara ejecutar en su ordenador
programasconaccesototalasusistema,procedentesdefuentesdesconocidas.Asqueseimplementaronbarreras
deseguridadenellenguajeyenelsistemadeejecucinentiemporeal.
9 IndiferentealaarquitecturaJavaestdiseadoparasoportaraplicacionesquesernejecutadasenlosmsvariados
entornosdered,desdeUnixaWindowsNt,pasandoporMacyestacionesdetrabajo,sobrearquitecturasdistintasy
consistemasoperativosdiversos.Paraacomodarrequisitosdeejecucintandiversosovariopintos,elcompiladorde
Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseado para transportar el cdigo
eficientemente a mltiples plataformas hardware y software. El resto de problemas los soluciona el intrprete de
Java.
9 PortableLaindiferenciaalaarquitecturarepresentaslounapartedesuportabilidad.Adems,Javaespecificalos
tamaos de sus tipos de datos bsicos y el comportamiento de sus operadores aritmticos, de manera que los
programassonigualesentodaslasplataformas.EstasdosltimascaractersticasseconocencomolaMquinaVirtual
Java(JVM).
9 Altorendimiento
9 MultihebraHoyendayasevencomoterriblementelimitadaslasaplicacionesqueslopuedenejecutarunaaccina
lavez.Javasoportasincronizacindemltipleshilosdeejecucin(multithreading)aniveldelenguaje,especialmente
tiles en la creacin de aplicaciones de red distribuidas. As, mientras un hilo se encarga de la comunicacin, otro
puedeinteractuarconelusuariomientrasotropresentaunaanimacinenpantallayotrorealizaclculos.
9 DinmicoEllenguajeJavaysusistemadeejecucinentiemporealsondinmicosenlafasedeenlazado.Lasclases
slo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos mdulos de cdigo bajo demanda,
procedentedefuentesmuyvariadas,inclusodesdelaRed.
9 ProduceappletsJavapuedeserusadoparacreardostiposdeprogramas:aplicacionesindependientesyapplets.Las
aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por
ejemplo el navegador de Web HotJava, escrito ntegramente en Java. Por su parte, las applets son pequeos
programasqueaparecenembebidosenlaspginasWeb,comoaparecenlosgrficosoeltexto,peroconlacapacidad
de ejecutar acciones muy complejas, como animar imgenes, establecer conexiones de red, presentar mens y
cuadrosdedilogoparaluegoemprenderacciones,etc.

20
DesarrollodeAplicacionesWeb Tema3

7.2.Brevehistoria.
Javasurgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de disear un
nuevo lenguaje de programacin destinado a programar pequeos dispositivos electrnicos. La
dificultaddeestosdispositivosesquecambiancontinuamenteyparaqueunprogramafuncioneen
elsiguientedispositivoaparecido,hayquerescribirelcdigo.PoresolaempresaSunqueracrearun
lenguajeindependientedeldispositivo.

Peronofuehasta1995cuandopasallamarseJava,dndoseaconoceralpblicocomolenguajede
programacin para computadores. Java pasa a ser un lenguaje totalmente independiente de la
plataformayalavezpotenteyorientadoaobjetos.Esafilosofaysufacilidadparacrearaplicaciones
pararedesTCP/IPhahechoqueseaunodeloslenguajesmsutilizadosenlaactualidad.

ElfactordeterminanteparasuexpansinfuelaincorporacindeunintrpreteJavaenlaversin2.0
delnavegadorWebNetscapeNavigator,loquesupusounagranrevueloenInternet.Aprincipiosde
1997 apareci Java 1.1que proporcion sustanciales mejoras al lenguaje. Java 1.2, ms tarde
rebautizadocomoJava2,naciafinalesde1998.

ElprincipalobjetivodellenguajeJavaesllegaraserelnexouniversalqueconectealosusuarioscon
lainformacin,eststasituadaenelordenadorlocal,enunservidorWeb,enunabasededatoso
encualquierotrolugar.

Para el desarrollo de programas en lenguaje Java es necesario utilizar un entorno de desarrollo


denominado JDK (Java Development Kit), que provee de un compilador y un entorno de ejecucin
(JREJavaRunEnvironment)paralosbytecodesgeneradosapartirdelcdigofuente.Aligualquelas
diferentes versiones del lenguaje han incorporado mejoras, el entorno de desarrollo y ejecucin
tambinhasidomejoradosucesivamente.

Java2eslaterceraversindellenguaje,peroesalgomsqueunlenguajedeprogramacin,incluye
lossiguienteselementos:

9 Unlenguajedeprogramacin:Java.
9 Unconjuntodebibliotecasestndarquevienenincluidasenlaplataformayquesonnecesarias
entodoentornoJava.EselJavaCore.
9 Un conjunto de herramientas para el desarrollo de programas, como es el compilador de
bytecodes,elgeneradordedocumentacin,undepurador,etc.
9 Un entorno de ejecucin que en definitiva es una mquina virtual que ejecuta los programas
traducidosabytecodes.

El siguiente esquema muestra los elementos


fundamentales de la plataforma de desarrollo
Java2.

21
Introduccinalaprogramacin DAW

ActualmentehaytresedicionesdelaplataformaJava2:

9 J2SE:EntornodeSunrelacionadoconlacreacindeaplicacionesyappletsenlenguajeJava.
9 J2EE:PensadaparalacreacindeaplicacionesJavaempresarialesydelladodelservidor.
9 J2ME:PensadaparalacreacindeaplicacionesJavaparadispositivosmviles.

Parasaberms
Si deseas conocer ms sobre los orgenes del lenguaje Java, aqu te ofrecemos ms
informacin:
http://www.wikilearning.com/tutorial/tutorial_de_Javaorigen_de_Java/39384
http://es.wikipedia.org/wiki/Java_%28lenguaje_de_programaci%C3%B3n%29#Historia
http://www.oracle.com/technetwork/Java/Javase/overview/javahistorytimeline198369.html

7.3.LaPOOyJava.
EnJava,losdatosyelcdigo(funcionesomtodos)secombinanenentidadesllamadasobjetos.El
objetotendruncomportamiento(sucdigointerno)yunestado(losdatos).Losobjetospermiten
la reutilizacin del cdigo y pueden considerarse, en s mismos, como piezas reutilizables en
mltiplesproyectosdistintos.Estacaractersticapermitereducireltiempodedesarrollodesoftware.

Porsimplificarunpocolascosas,unprogramaenJavasercomounarepresentacin teatralenla
que debemos preparar primero cada personaje, definir sus caractersticas y qu va a saber hacer.
Cuandoestafaseestterminada,laobrasedesarrollarsacandopersonajesaescenayhacindoles
interactuar.

Al emplear los conceptos de la Programacin Orientada a Objetos (POO), Java incorpora las tres
caractersticas propias de este paradigma:encapsulacin (En programacin modular y ms
especficamenteenprogramacinorientadaaobjetos,sedenominaasalocultamientodelosdatosy
elementos internos de un objeto. Slo se puede modificar un objeto a travs de las operaciones
definidas para ste.), herencia(Mecanismo que permite derivar una clase de otra, de manera que
extienda su funcionalidad) y polimorfismo.(Capacidad para que varias clases derivadas de una
antecesorautilicenunmismomtododeformadiferente.Podemoscreardosclasesdistintas:Pezy
Ave que heredan de la superclase Animal. La clase Animal tiene el mtodo abstracto mover que se
implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma
distinta).) Los patrones o tipos de objetos se denominan clases(Es una construccin que se utiliza
como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el
comportamiento que todos los objetos de la clase comparten) y los objetos que utilizan estos
patronesopertenecenadichostipos,seidentificanconelnombredeinstancias.(Una instancia se
produce con la creacin de un objeto perteneciente a una clase (se dice que se instancia la
clase). El objeto que se crea tiene los
atributos, propiedades y mtodos de la clase
a la que pertenece. Los objetos y sus
caractersticas se usan en la construccin
de programas, ya sea como contenedores de
datos o como partes funcionales del
programa.)Pero,nohayquealarmarse,estos
conceptos se vern ms adelante en sucesivas
unidades.

22
DesarrollodeAplicacionesWeb Tema3

Otro ejemplo para seguir aclarando ideas, piensa en los bloques de juegos de construccin.
Suponemos que conoces los cubos de plstico en varios colores y tamaos. Por una de sus caras
disponen de pequeos conectores circulares y en otra de sus caras pequeos orificios en los que
puedenconectarseotrosbloques,conelobjetivoprincipaldepermitirconstruirformasmsgrandes.
Siusasdiferentespiezasdellegopuedesconstruiraviones,coches,edificios,etc.Sitefijasbien,cada
piezaesunobjetopequeoquepuedeunirseconotrosobjetosparacrearobjetosmsgrandes.

Pues bien, aproximadamente as es como funciona la programacin dirigida a objetos: unimos


elementos pequeos para construir otros ms grandes. Nuestros programas estarn formados por
muchoscomponentes(objetos)independientesydiferentes;cadaunoconunafuncindeterminada
ennuestrosoftwareyquepodrcomunicarseconlosdemsdeunamanerapredefinida.

7.4.Independenciadelaplataformaytrabajoenred.
ExistendoscaractersticasquedistinguenaJavadeotroslenguajes,comosonlaindependenciadela
plataforma y la posibilidad de trabajar en red o, mejor, la posibilidad de crear aplicaciones que
trabajanenred.

Estascaractersticaslasvamosaexplicaracontinuacin:

a) Independencia:LosprogramasescritosenJavapuedenserejecutadosencualquiertipode
hardware. El cdigo fuente es compilado, generndose el cdigo conocido como Java
Bytecode(instruccionesmquinasimplificadasquesonespecficasdelaplataformaJava),el
bytecode ser interpretado y ejecutado en la Mquina Virtual Java (MVJ o JVM Java
Virtual Machine) que es un programa escrito en cdigo nativo de la plataforma destino
entendibleporelhardware.Conestoseevitatenerquerealizarunprogramadiferentepara
cadaCPUoplataforma.

Portanto,lapartequerealmenteesdependientedelsistemaeslaMquinaVirtualJava,as
comolaslibrerasobibliotecasbsicasquepermitenaccederdirectamentealhardwaredela
mquina.

b) Trabajo en red: Esta capacidad del lenguaje ofrece mltiples posibilidades para la
comunicacin va TCP/IP. Para poder hacerlo existen libreras que permiten el acceso y la
interaccin con protocolos como http, ftp, etc., facilitando al programador las tareas del
tratamientodelainformacinatravsderedes.

Autoevaluacin
Qu elemento es imprescindible para que una aplicacin escrita en Java pueda ejecutarse en
un ordenador?
Que disponga de conexin a Internet y del hardware adecuado.
Que tenga instalado un navegador web y conexin a Internet.
Que tenga la Mquina Virtual Java adecuada instalada.
Sin la Mquina Virtual Java es imposible que el hardware pueda entender los cdigos de bytes necesarios para la ejecucin del programa,
siendo necesaria la mquina virtual adecuada para la plataforma hardware que estemos utilizando.

23
Introduccinalaprogramacin DAW

7.5.Seguridadysimplicidad.
Junto a las caractersticas diferenciadoras del lenguaje Java relacionadas con la independencia y el
trabajoenred,handedestacarsedosvirtudesquehacenaestelenguajeunodelosmsextendidos
entrelacomunidaddeprogramadores:suseguridadysusimplicidad.

a. Seguridad: En primer lugar, los posibles accesos a zonas de memoria sensibles que en
otros lenguajes como C y C++ podan suponer peligros importantes, se han eliminado en
Java.

Ensegundolugar,elcdigoJavaescomprobadoyverificadoparaevitarquedeterminadas
seccionesdelcdigoproduzcanefectosnodeseados.Lostestqueseaplicangarantizanque
lasoperaciones,operandos,conversiones,usodeclasesydemsaccionessonseguras.

Y en tercer lugar, Java no permite la apertura de ficheros en la mquina local, tampoco


permiteejecutarningunaaplicacinnativadeunaplataformaeimpidequeseutilicenotros
ordenadores como puente, es decir, nadie puede utilizar nuestra mquina para hacer
peticionesorealizaroperacionesconotra.

Endefinitiva,podemosafirmarqueJavaesunlenguajeseguro.

b. Simplicidad:AunqueJavaestanpotentecomoCoC++,esbastantemssencillo.Poseeuna
curvadeaprendizajemuyrpiday,paraalguienquecomienzaaprogramarenestelenguaje,
leresultarelativamentefcilcomenzaraescribiraplicacionesinteresantes.

SihasprogramadoalgunavezenCoC++encontrarsqueJavateponelascosasmsfciles,
yaquesehaneliminado:laaritmticadepunteros(unpunterooapuntadoresunavariable
quereferenciaunaregindememoria;enotraspalabrasesunavariablecuyovaloresuna
direccinde memoria),losregistros,ladefinicindetipos,lagestindememoria,etc.Con
esta simplificacin se reduce bastante la posibilidad de cometer errores comunes en los
programas. Un programador experimentado en C o C++ puede cambiar a este lenguaje
rpidamenteyobtenerresultadosenmuypocoespaciodetiempo.

Muy relacionado con la simplicidad que aporta Java est la incorporacin de un elemento
muy til como es el Recolector de Basura (Garbagecollector). Permite al programador
liberarse de la gestin de la memoria y hace que ciertos bloques de memoria puedan
reaprovecharse, disminuyendo el nmero de huecos libres (fragmentacin de memoria o
memoria que queda desperdiciada al usar los mtodos de gestin de memoria. Puede ser
internaoexterna.).

Cuando realicemos programas, crearemos objetos, haremos que stos interaccionen, etc.
Todasestasoperacionesrequierendeusodememoriadelsistema,perolagestindesta
ser realizada de manera transparente al programador. Todo lo contrario que ocurra en
otros lenguajes. Podremos crear tantos objetos como solicitemos, pero nunca tendremos
que destruirlos. El entorno de Java borrar los objetos cuando determine que no se van a
utilizarms.Esteprocesoesconocidocomorecoleccindebasura.

Autoevaluacin
Rellena los huecos con los conceptos adecuados:

24
DesarrollodeApllicacionesW
Web Tema3

En Jaava se ha siimplificadoo la gestin de memoria a travs de


d la eliminnacin de la Aritmticaa
punteros
de , por lo quee la incorpooracin del GarbageCoollector evita que se produzca
p unn
fra
agmentacin
creciimiento de los huecoos libres enn memoria,, que recibbe el nombbre de dee
memmoria.

7.6.Javaylo
osBytecod
des.
Un programa
p esscrito en Jaava no es directamente
d e ejecutablee, es
necessario que el
e cdigo fuente sea in nterpretado por la Maq quina
VirtualJava.Culessonlosppasosqueseesiguendesd dequesegeenera
el c
digo fuente hasta que se ejecuta?? A continuaacin se dettallan
cadaunodeelloss.

Unavvezescritoeelcdigofuente(archivossconextenssin.Java),ste
esprecompilado generndosseloscdigo osdebytes,BBytecodeso Java
Byteccodes(archivvosconexteensin .claass)queserninterprettados
osacdigonativo
directtamenteporrlaMaquinaaVirtualJavaaytraducido
delaplataformasobrelaqueeseestejeccutandoelprrograma.

Byteccode: Son un
u conjuntoo de instruccciones en lenguaje mquina
m quee no son esspecficas a
ningn procesaddor o sistem
ma de cmpputo. Un inttrprete de cdigo de bbytes (byteccodes) paraa
una plataforma
p especfica ser quien los ejecutee. A estos intrpretes
i tambin se les conocee
comoo Mquinass Virtuales Java
J o intrp
rpretes Java
a de tiempo de ejecucin.

Enel procesode precompilaccin,existe unverificado


ordecdigo
osdebytesq
queseasegu
urardequee
secumplenlassigguientescon
ndiciones:

9 ElcdigosatisfacelassespecificacionesdelaM
MquinaVirttualJava.
9 Noexisteeamenazaco ontralainteggridaddelsisstema.
9 Noseprooducendesbordamientossdememoriia.
9 Losparmmetrosysustipossonad decuados.
9 Noexisteenconversion nesdedatossnopermitiddas.

Para que un byytecode pueeda ser


ejecuutado en cuaalquier plataaforma,
es imprescindiible que dicha
plataformacuentteconelintrprete
adecu uado, es decir,
d la mquina
m
virtuaal especffica para esa
plataforma. En general,
g la Mquina
M
Virtual Java es un programa de
reduccido tamao o y gratuito para
todosslossistemaasoperativoss.

25
Introduccinalaprograamacin DAW

8.- Prrogram
mas en
e Javva.
Caso prcttico
Juan celebrra que BK Programacin
P n vaya a dessarrollar sus programas ene un lengua aje como Jav va. En
algunas ocaasiones ha asistido
a a con
ngresos y ferrias de exposiciones de software
s en las que ha podido
p
intercambia
ar impresionees con comppaeros de profesin
p sob
bre los difere
entes lenguajjes que utiliz
zan en
sus proyecttos. Una gran
n mayora deestacaba lo fcil
f y potentte que es pro
ogramar en JJava.
Juan est entusiasmad do y pregunnta: Ada a, cundo em mpezamos? Tienes c digo fuente e para
empezar a ver la sintaxiis? Podrem
mos utilizar allgn entorno
o de desarrolllo profesiona
al?
Ada responnde sonrienddo: Manoss a la obra! Mara,
M prepa arada? Vammos a echarle e un vistazo a este
fragmento de
d cdigo...
Hasta ahoraa, hemos deescrito el len
nguaje de prrogramacin
n Java, hemo
os hecho un
n recorrido por
p su
historia y nos hemoss instruido sobre su fiilosofa de trabajo, peero te preguntars Cu undo
empezamossadesarrollarprogramaas?Queleementosform manpartedeeunprogram maenJava? Qu
senecesitaparaprogramarenestelenguaje?P Podemoscreearprogramaasdediferenntetipo?

No te impaacientes, cad
da vez estam
mos ms ceerca de com
menzar la experiencia co
on el lenguaaje de
programacinJava.Inicciaremosnueestrocamino oconociendocualesson nloselemen ntosbsicos deun
programaJava,laform maenquedeebemosescrribirelcdiggoylostipossdeaplicaciionesquepu ueden
crearseeneestelenguajee.

8.1.Estrructurade
eunprog
grama.
Enelgrfico
oalquepuedesaccederacontinuacin,sepreseentalaestructurageneraaldeunproggrama
realizadoennunlenguajeeorientadoaobjetoscomoesJava.

Vamosaan
nalizarcadau
unodeloselementosqueaparecene
e endichogrffico:

Publiccla
assClase_P :Todoslosp
Principal: handeincluiruna clase ccomoesta.EEsuna
programash
clase generral en la quee se incluyeen todos los dems elem
mentos del programa. EEntre otras cosas,
c
contieneelmtodoofu uncinmain()querepreesentaalpro ogramaprinccipal,desdeelquesellevvara
cabolaejeccucindelprrograma.Estaclasepued deconteneraasuvezotraasclasesdelusuario,peroslo
una puede ser public c. El nombre del fichero .Java qu ue contiene el cdigo fu
uente de nu
uestro
programa,ccoincidirco onelnombreedelaclaseq queestamossdescribiend doenestaslneas.

Recomend dacin
Ten en cu
uenta que Java
J distin
ngue entre maysculaas y minssculas. Si lee das a la clase
principal el nombrre PrimerP Programa, el archivoo .Java tendr como identificcador
PrimerPro ograma.Javva,queestootalmenteddiferenteaprimerpro ograma.Javaa.Adems,para

26
DesarrollodeAplicacionesWeb Tema3

Java los elementos PrimerPrograma y primerprograma seran considerados dos clases


diferentesdentrodelcdigofuente.
9 publicstaticvoidmain (String[] args): Es el mtodo que representa al
programa principal, en l se podrn incluir las instrucciones que estimemos
oportunasparalaejecucindelprograma.Desdelsepodrhacerusodelresto
declasescreadas.TodoslosprogramasJavatienenunmtodomain.
9 Comentarios:Loscomentariossesuelenincluirenelcdigofuentepararealizar
aclaraciones,anotacionesocualquierotraindicacinqueelprogramadorestime
oportuna.Estoscomentariospuedenintroducirsededosformas,con//ycon/*
*/.Conlaprimeraformaestaramosestableciendounanicalneacompletade
comentario y, con la segunda, con /* comenzaramos el comentario y ste no
terminarahastaquenoinsertramos*/.
9 Bloques de cdigo: son conjuntos de instrucciones que se marcan mediante la
aperturaycierredellaves { }.Elcdigoasmarcadoesconsideradointernoal
bloque.
9 Puntoycoma:aunqueenelejemplonohemosincluidoningunalneadecdigo
que termine con punto y coma, hay que hacer hincapi en que cada lnea de
cdigo ha de terminarcon punto y coma (;). En caso de no hacerlo, tendremos
erroressintcticos.
Autoevaluacin
publicstaticvoidmain (String[] args) es la clase general del programa.
Verdadero. Falso.
La clase general del programa tiene el formato public class <nombre_clase_general> y todos los programas Java tendrn
una. Dentro de ella podr haber ms clases definidas por el usuario y siempre, deber haber un mtodo main desde el que se ir haciendo
uso del resto de clases definidas.

8.2.ElentornobsicodedesarrolloJava.
YaconocescmoeslaestructuradeunprogramaenJava,pero,qunecesitamosparallevarloala
prctica? La herramienta bsica para empezar a desarrollar aplicaciones en Java es el JDK (Java
DevelopmentKitoKitdeDesarrolloJava),queincluyeuncompiladoryunintrpreteparalneade
comandos.Estosdosprogramassonlosempleadosenlaprecompilacineinterpretacindelcdigo.

Como veremos, existen diferentes entornos para la creacin de programas en Java que incluyen
multitud de herramientas, pero por ahora nos centraremos en el entorno ms bsico, extendido y
gratuito,elJavaDevelopmentKit(JDK).SegnseindicaenlapropiapginawebdeOracle,JDKesun
entorno de desarrollo para construir aplicaciones, applets y componentes utilizando el lenguaje de
programacinJava.Incluyeherramientastilesparaeldesarrolloypruebadeprogramasescritosen
JavayejecutadosenlaPlataformaJava.

As mismo, junto a JDK se incluye una implementacin del entorno de ejecucin Java, el JRE (Java
RuntimeEnvironment)paraserutilizado porelJDK.ElJREincluyelaMquinaVirtualdeJava(MVJ
JVM Java Virtual Machine), bibliotecas de clases y otros ficheros que soportan la ejecucin de
programasescritosenellenguajedeprogramacinJava.

Debesconocer
ParapoderutilizarJDKyJREesnecesariorealizarladescargaeinstalacindestos.Puedes
seguirlospasosdelprocesoacontinuacin:
1. LocalizacinydescargadeJavaSE

27
Introduccinalaprogramacin DAW

a. En primer lugar accederemos a la pgina web de ORACLE para realizar la


descargadeJavaSE:http://www.oracle.com/es/index.html
b. EnelmentituladoProductosyServiciosseleccionaJava
c. NavegaporlapginaquesetemuestraybuscaObtengasoftwareJavapara
suordenadoryseleccionaJavaSE
d. Enlapginaqueaparece,seleccionalapestaadedescargas(Downloads)
e. PulsasobreelprimerodelosiconosconellogotipodeJava
f. A continuacin, escoge la versin que deseas descargar en funcin de la
plataformasobrelaquetrabajar.Enestecasohemosutilizadolaversinpara
Windows764bits
g. Comenzar la descarga del software seleccionado en la carpeta de destino
queseindique
2. InstalacindeJavaSE
a. LocalizaentuequipolacarpetaenlaquehasdescargadoJavaSEyhazdoble
clicsobreelarchivodeinstalacin
b. Debersescogerlaubicacinenlaqueseinstalarelentornodedesarrollo.Si
nodeseascambiar,existeunaubicacinpordefecto
c. Comenzar entonces la instalacin del entorno de desarrollo (JDK) y del
entornodeejecucin(JRE)
d. Enbrevesmomentoslainstalacinsecompleta
3. Comprobandolainstalacin
a. Ahora es el momento de comprobar si se ha realizado bien la instalacin y
haceralgnltimoajuste.
b. Buscaremos a travs de la lnea de comandos el directorio o carpeta donde
hemosinstaladoJavaSE.
c. Dentro de la carpeta bin haremos una llamada al compilador de Java,
medianteelcomandojavac
d. Ennuestrocaso,larutadelacarpetaencuestines:
C:\ProgramFiles\Java\jdk1.6.0_25\bin
ParapoderdesarrollarnuestrosprimerosprogramasenJavaslonecesitaremosuneditordetexto
planoyloselementosqueacabamosdeinstalaratravsdeJavaSE.

Autoevaluacin
Podemos desarrollar programas escritos en Java mediante un editor de textos y a travs del
JRE podremos ejecutarlos.
Verdadero. Falso.
Efectivamente, JRE incluye un subconjunto de JDK que permitira realizar la compilacin del cdigo fuente y la ejecucin posterior en la
Mquina Virtual Java de nuestro programa

8.3.LaAPIdeJava.
Junto con el kit de desarrollo que hemos descargado e instalado anteriormente, vienen incluidas
gratuitamente todas las bibliotecas de la API (AplicationProgramming Interface Interfaz de
programacin de aplicaciones) de Java, es lo que se conoce como Bibliotecas de Clases Java. Este
conjuntodebibliotecasproporcionaalprogramadorpaquetesdeclasestilesparalarealizacinde
mltiplestareasdentrodeunprograma.Estorganizadaenpaqueteslgicos,dondecadapaquete
contiene un conjunto de clases relacionadas semnticamente (Referencia a los aspectos del
significado,sentidoointerpretacindelsignificadodeundeterminadoelemento,smbolo,palabra,
expresin o representacin formal. En principio cualquier medio de expresin (lenguaje formal o

28
DesarrollodeAplicacionesWeb Tema3

natural) admite una correspondencia entre expresiones de smbolos o palabras, y situaciones o


conjuntos de cosas que se encuentran en el mundo fsico o abstracto, que puede ser descrito por
dichomediodeexpresin).

Endcadaspasadasunabibliotecaeraunconjuntodeprogramasquecontenancientosderutinas
(una rutina es un procedimiento o funcin bien verificados, en determinado lenguaje de
programacin).Lasrutinasdebibliotecamanejabanlastareasquetodosocasitodoslosprogramas
necesitaban.Elprogramadorpodarecurriraestabibliotecaparadesarrollarprogramasconrapidez.

Unabibliotecadeclasesesunconjuntodeclasesdeprogramacinorientadaaobjetos.Esasclases
contienenmtodosquesontilesparalosprogramadores.EnelcasodeJavacuandodescargamosel
JDKobtenemoslabibliotecadeclasesAPI.UtilizarlasclasesymtodosdelasAPIsdeJavareduceel
tiempodedesarrollodelosprogramas.Tambin,existendiversasbibliotecasdeclasesdesarrolladas
portercerosquecontienencomponentesreutilizablesdesoftware,yestndisponiblesatravsdela
Web.

Parasaberms
SiquieresaccederalainformacinoficialsobrelaAPIdeJava,teproponemoselsiguiente
enlace(estenIngls).
http://www.oracle.com/technetwork/Java/Javase/documentation/apijsp136079.html
Autoevaluacin
Indica qu no es la API de Java:
Un entorno integrado de desarrollo.
Un conjunto de bibliotecas de clases.
Una parte del JDK, incluido en el Java SE.
En efecto, la API de Java es utilizada para la creacin de programas pero no ofrece las herramientas de desarrollo que un IDE posee.

8.4.Afinandolaconfiguracin.
Para que podamos compilar y ejecutar ficheros Java es necesario que realicemos unos pequeos
ajustes en la configuracin del sistema. Vamos a indicarle dnde encontrar los ficheros necesarios
pararealizarlaslaboresdecompilacinyejecucin,enestecasoJavac.exey Java.exe,ascomo
laslibrerascontenidasenlaAPIdeJavaylasclasesdelusuario.

La variable PATH: Como an no disponemos de un IDE (IntegratedDevelopmentEnvironment


Entono Integrado de Desarrollo) la nica forma de ejecutar programas es a travs de lnea de
comandos.Peroslopodremosejecutarprogramasdirectamentesilarutahaciaellosestindicada
en la variable PATH del ordenador. Es necesario que incluyamos la ruta hacia estos programas en
nuestravariablePATH.EstarutaserellugardondeseinstalelJDKhastasudirectoriobin.

Paraello,siguelasindicacionesquetemostramosacontinuacin:

1DebemosaccederalacarpetadeinstalacindelJDKparaencontrarenbinlos
Cmo archivosjavac.exeyjava.exe
configurar Enestecaso,larutaes:C:\ArchivosdePrograma\Java\jdk1.6.0_25\bin
la variable 2Tecleaenunaterminaldecomandoslosiguiente:setPATH
PATH Debesobtenerelconjuntoderutasalojadasenestavariabledelsistema.
3 Pulsa con botn derecho sobre MiPC o Equipo (dependiendo de la versin de
Windows)yseleccionaPropiedades.

29
Introduccinalaprogramacin DAW

Accede a Opciones Avanzadas o Configuracin Avanzadas del sistema,


Variablesdeentorno
Cmo 4 BuscalavariablePATHYPULSASOBRE ELBOTNEditar.Enelcampodetexto
configurar Valordevariabledebesposicionartealfinaldelcontenido,escribeunpuntoy
la variable coma;yaadelarutahaciaelcompilador
PATH Nohayqueaadirningnespacioenblancoparalaseparacin,sloelpuntoy
coma.HazclicenAceptarparaconfirmarelcambio
Finalmente, si realizamos la llamada al compilador desde la consola de comandos
directamente,deberafuncionarsinproblemas.Tecleaelcomandojavacpara
ello.

Parasaberms
SideseasconocermssobrelaconfiguracindevariablesdeentornoensistemasWindows
yLinux,teproponemoslossiguientesenlaces:
http://www.menoscero.com/content/configurarpathwindows7
http://www.guiaubuntu.org/index.php?title=Java

LavariableCLASSPATH:estavariabledeentornoestablecedndebuscarlasclasesobibliotecasdela
APIdeJava,ascomolasclasescreadasporelusuario.Esdecir,losficheros.classqueseobtienen
una vez compilado el cdigo fuente de un programa escrito en Java. Es posible que en dicha ruta
existan directorios y ficheros comprimidos en los formatos zip o jar que pueden ser utilizados
directamenteporelJDK,conteniendoensuinteriorarchivosconextensinclass.

(Porejemplo:C:\Program Files\Java\jdk1.6.0_25\bin)

Si no existe la variable CLASSPATH debes crearla, para modificar su contenido sigue el mismo
mtodo que hemos empleado para la modificacin del valor de la variable PATH, anteriormente
descrito.TenencuentaquelarutaquedebesincluirserellugardondeseinstalelJDKhastasu
directoriolib.

(Porejemplo:C:\Program Files\Java\jdk1.6.0_25\lib)

Autoevaluacin
Qu variable de sistema o de entorno debemos configurar correctamente para que podamos
compilar directamente desde la lnea de comandos nuestros programas escritos en lenguaje
Java?
CLASSPATH.

PATH.

Javac.exe.
Efectivamente, esta es la variable de entorno que modificaremos aadiendo a su contenido la ruta hasta el directorio bin donde est
instalado el JDK.

8.5.Codificacin,compilacinyejecucindeaplicaciones.
Una vez que la configuracin del entorno Java est completada y tenemos el cdigo fuente de
nuestro programa escrito en un archivo con extensin .Java, la compilacin de aplicaciones se
realizamedianteelprogramaJavacincluidoenelsoftwarededesarrollodeJava.

30
DesarrollodeAplicacionesWeb Tema3

Para llevar a cabo la compilacin desde la lnea de comandos, escribiremos:

javacarchivo.java

Donde javac es el compilador de Java y archivo.java es nuestro cdigo fuente.

ElresultadodelacompilacinserunarchivoconelmismonombrequeelarchivoJavaperoconla
extensin class.Estoyaeselarchivoconelcdigoenformadebytecode.Esdecirconelcdigo
precompilado. Si en el cdigo fuente de nuestro programa figuraran ms de una clase, veremos
como al realizar la compilacin se generarn tantos archivos con extensin .class como clases
tengamos. Adems, si estas clases tenan mtodo main podremos ejecutar dichos archivos por
separadoparaverelfuncionamientodedichasclases.

Paraqueelprogramapuedaserejecutado,siempreycuandoestincluidoensuinteriorelmtodo
main,podremosutilizarelintrpreteincluidoenelkitdedesarrollo.

La ejecucin de nuestro programa desde la lnea de comandos podremos hacerla escribiendo:

javaarchivo.class

Donde java es el intrprete y archivo.class es el archivo con el cdigo precompilado.

Ejercicio resuelto
Vamosallevaralaprcticatodoloquehemosestadodetallandoatravsdelacreacin,
compilacinyejecucindeunprogramasencilloescritoenJava.
Observa el cdigo que se muestra ms abajo, seguro que podrs entender parte de l.
Cpialo en un editor de texto, respetando las maysculas y las minsculas. Puedes
guardar el archivo con extensin .Java en la ubicacin que prefieras. Recuerda que el
nombredelaclaseprincipal(enelcdigodeejemplo MiModulo)debeserexactamente
igualaldelarchivoconextensin .Java,sitienesestoencuentalaaplicacinpodrser
compiladacorrectamenteyejecutada.
/**
* La clase MiModulo implementa una aplicacin que
* simplemente imprime "Mdulo profesional - Programacin" en pantalla.
*/
classMiModulo {
publicstaticvoidmain(String[] args) {
System.out.println("Mduloprofesional -Programacin");
// Muestra la cadena de caracteres.
}
}
Accedealalneadecomandosyteclea,enlacarpetadondehasguardadoelarchivoJava,
elcomandoparacompilarlo:javacMiModulo.java
El compilador genera entonces un fichero de cdigo de bytes: MiModulo.class. Si
visualizasahoraelcontenidodelacarpetaversqueenellaestelarchivo .Javayuno
o varios (depende de las clases que contenga el archivo con elcdigo fuente)archivos
.class.

31
Introduccinalaprogramacin DAW

Finalmente, para realizar la ejecucin del programa debes utilizar la siguiente


sentencia:
java MiModulo.java
Sitodohaidobien,versescritoenpantalla: Mdulo profesional Programacin.

8.6.TiposdeaplicacionesenJava.
La versatilidad del lenguaje de programacin Java permite al programador crear distintos tipos de
aplicaciones.Acontinuacin,describiremoslascaractersticasmsrelevantesdecadaunodeellos:

9 Aplicacionesdeconsola:
Sonprogramasindependientesaligualqueloscreadosconloslenguajestradicionales.
Secomponencomomnimodeun archivo .classquedebecontarnecesariamentecon
elmtodomain.
NonecesitanunnavegadorwebyseejecutancuandoinvocamoselcomandoJavapara
iniciarlaMquinaVirtualdeJava(JVM).Denoencontrarseelmtodo mainlaaplicacin
nopodrejecutarse.
Lasaplicacionesdeconsolaleenyescribenhaciaydesdelaentradaysalidaestndar,sin
ningunainterfazgrficadeusuario.
9 Aplicacionesgrficas:
Aquellasqueutilizanlasclasesconcapacidadesgrficas,comoSwingqueeslabiblioteca
paralainterfazgrficadeusuarioavanzadadelaplataformaJavaSE.
Incluyenlasinstrucciones import,queindicanalcompiladordeJavaquelasclasesdel
paquetejavax.swingseincluyanenlacompilacin.
9 Applets:
Sonprogramasincrustadosenotrasaplicaciones,normalmenteunapginawebquese
muestraenunnavegador.Cuandoelnavegadorcargaunawebquecontieneunapplet,
ste se descarga en el navegador web y comienza a ejecutarse. Esto nos permite crear
programasquecualquierusuariopuedeejecutarcontansolocargarlapginawebensu
navegador.
Se pueden descargar de Internet y se observan en un navegador. Los applets se
descargan junto con una pgina HTML desde un servidor web y se ejecutan en la
mquinacliente.
Notienenaccesoapartessensibles(porejemplo:nopuedenescribirarchivos),amenos
queunomismoledlospermisosnecesariosenelsistema.
Notienenunmtodoprincipal.
SonmultiplataformaypuedenejecutarseencualquiernavegadorquesoporteJava.
9 Servlets:
SoncomponentesdelapartedelservidordeJavaEE,encargadosdegenerarrespuestas
alaspeticionesrecibidasdelosclientes.
Losservlets,alcontrariodelosapplets,sonprogramasqueestnpensadosparatrabajar
enelladodelservidorydesarrollaraplicacionesWebqueinteractenconlosclientes.
9 Midlets:
Son aplicaciones creadas en Java para su ejecucin en sistemas de propsito simple o
dispositivosmviles.LosjuegosJavacreadosparatelfonosmvilessonmidlets.
Son programas creados para dispositivos embebidos (se dedican a una sola actividad),
msespecficamenteparalamquinavirtualJavaMicroEdition(JavaME).

32
DesarrollodeAplicacionesWeb Tema3

Generalmentesonjuegosyaplicacionesqueseejecutanentelfonosmviles.

Autoevaluacin
Un Applet es totalmente seguro ya que no puede acceder, en ningn caso, a zonas sensibles
del sistema. Es decir, no podra borrar o modificar nuestros archivos.
Verdadero. Falso.
Los Applets podran acceder a zonas sensibles de nuestro sistema si les diramos permisos para hacerlo. Pero si no est firmado como
confiable, tiene un acceso limitado al sistema del usuario.

33
Introduccinalaprogramacin DAW

9.- Entornos Integrados de Desarrollo (IDE).


Caso prctico
Ada, Juan y Mara estn navegando por Internet buscando informacin sobre herramientas que les
faciliten trabajar en Java. Ada aconseja utilizar alguno de los entornos de desarrollo integrado
existentes, ya que las posibilidades y rapidez que ofrecen, aumentaran la calidad y reduciran el
tiempo requerido para desarrollar sus proyectos.
Juan, que est chateando con un miembro de un foro de programadores al que pertenece, corrobora
lo que Ada recomienda.
En los comienzos de Java la utilizacin de la lnea de comandos era algo habitual. El programador
escriba el cdigo fuente empleando un editor de texto bsico, seguidamente, pasaba a utilizar un
compilador y con l obtena el cdigo compilado. En un paso posterior, necesitaba emplear una
terceraherramientaparaelensambladodelprograma.Porltimo,podaprobaratravsdelalnea
de comandos el archivo ejecutable. El problema surga cuando se produca algn error, lo que
provocabatenerquevolverainiciarelprocesocompleto.

Estas circunstancias hacan que el desarrollo de software no estuviera optimizado. Con el paso del
tiempo,sefuerondesarrollandoaplicacionesqueincluanlasherramientasnecesariaspararealizar
todo el proceso de programacin de forma ms sencilla, fiable y rpida. Para cada lenguaje de
programacinexistenmltiplesentornosdedesarrollo,cadaunoconsusventajaseinconvenientes.
Dependiendodelasnecesidadesdelapersonaquevaaprogramar,lafacilidaddeusooloagradable
queleresultetrabajarconl,seelegirentreunosuotrosentornos.

ParaellenguajedeprogramacinJavaexistenmltiplesalternativas,siendolosprincipalesentornos
de desarrollo NetBeans (que cuenta con el apoyo de la empresa Sun), Eclipse y JCreator. Los dos
primerossongratuitos,consoportedeidiomasymultiplataforma(Windows,Linux,MacOS).

Yculserconelquevamosatrabajar?Elentornoquehemosseleccionadollevaracabonuestros
desarrollosdesoftwareenestemduloprofesionalserNetBeans,alhabersidoconstruidoporla
mismacompaaquecreJava,serdecdigoabiertoyofrecercapacidadesprofesionales.Aunque,
notepreocupes,tambinharemosunrecorridoporotrosentornosdestacables.

9.1.Quson?
Son aplicaciones que ofrecen la posibilidad de llevar a cabo el proceso completo de desarrollo de
software a travs de un nico programa. Podremos realizar las labores de edicin, compilacin,
depuracin, deteccin de errores, correccin y ejecucin de programas escritos en Java oen otros
lenguajes de programacin, bajo un entorno grfico (no mediante lnea de comandos). Junto a las
capacidadesdescritas,cadaentornoaadeotrasqueayudanarealizarelprocesodeprogramacin,
comoporejemplo:cdigofuentecoloreado,plantillasparadiferentestiposdeaplicaciones,creacin
deproyectos,etc.

Hayquetenerencuentaqueunentornodedesarrollonoesmsqueunafachadaparaelprocesode
compilacinyejecucindeunprograma.Ququieredecireso?Puesquesitenemosinstaladoun
IDEynotenemosinstaladoelcompilador,notenemosnada.

34
DesarrollodeAplicacionesWeb Tema3

Parasaberms
Si deseas conocer algo ms sobre lo que son los Entornos Integrados de Desarrollo (IDE)
accedealasdefinicionesqueteproponemosacontinuacin:
http://programaciondesarrollo.es/queesunentornodedesarrollointegradoide/
http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado

9.2.IDE'sactuales.
Existen en el mercado multitud de entornos de desarrollo para el lenguaje Java, los hay de libre
distribucin,depago,paraprincipiantes,paraprofesionales,queconsumen msrecursos,queson
msligeros,msamigables,mscomplejosqueotros,etc.

Entrelosquesongratuitosodelibredistribucintenemos:
9 NetBeans
9 Eclipse
9 BlueJ
9 Jgrasp
9 JcreatorLE

Entrelosquesonpropietariosodepagotenemos:
9 IntelliJIDEA
9 Jbuilder
9 Jcreator
9 JDeveloper

Debesconocer
Cada uno de los entornos nombrados ms arriba posee caractersticas que los hacen
diferentesunosdeotros,peroparatenerunaideageneraldelaversatilidadypotenciade
cadaunodeellos,miralasiguientetablacomparativa:

Ma
Window Linu c Otherplatform GUI
IDE License JVM
s x OS s builder
X

GPL2+GNU
BlueJ Yes Yes Yes Yes Solaris No
linkingexception

DrJava Permissive Yes Yes Yes Yes Solaris No

EclipseJDT EPL Yes Yes Yes Yes Solaris Yes

Geany GPL No Yes Yes Yes Solaris No

Greenfoot GPL Yes Yes Yes Yes Solaris No

IntelliJIDEA ALv2,proprietary Yes Yes Yes Yes Yes



JBuilder Proprietary Yes Yes Yes Yes Solaris Yes

35
Introduccinalaprogramacin DAW

Ma
Window Linu c Otherplatform GUI
IDE License JVM
s x OS s builder
X

JCreator Proprietary No Yes No No No



ProprietaryOTNJDevelop
JDeveloper Yes Yes Yes Yes genericJVM Yes
erLicense(freeware)

jGRASP Proprietary(freeware) Yes Yes Yes Yes No



Unknow
KDevelop GPL No No Yes No Solaris
n

MyEclipse Proprietary Yes Yes Yes Yes Yes



NetBeans CDDL,GPL2 Yes Yes Yes Yes Solaris Yes

RationalApplicationDevelop
Proprietary Yes Yes Yes No Solaris,AIX Yes
er

Unknow
Servoy Proprietary Yes Yes Yes Solaris Yes
n

Xcode Proprietary No No No Yes Yes



Pero,culoculessonlosmsutilizadosporlacomunidaddeprogramadoresJava?Elpuestode
honorselodisputanentreEclipse,IntelliJIDEAyNetBeans.Enlossiguientesepgrafesharemosuna
descripcin de NetBeans y Eclipse, para posteriormente desarrollar los puntos claves del entorno
NetBeans.

Parasaberms
Siquieresconocerlasituacinactualdeusoycompararlosdiferentesentornosintegrados
dedesarrolloparaellenguajedeprogramacinJava,puedesampliardatosenelsiguiente
artculo:

http://www.infoworld.com/d/developerworld/infoworldreviewtopJavaprogrammingtools
191?page=0,0

Para acceder a los lugares de Internet donde obtener los diferentes entornos integrados de
desarrollo,puedesutilizarlalistaqueteofrecemosenesteenlace:
http://casidiablo.net/ideJava/

Autoevaluacin
Cul de los siguientes entornos slo est soportado en la plataforma Windows?
Eclipse.
Intellij IDEA.
Jcreator.

36
DesarrollodeAplicacionesWeb Tema3

Este entorno, adems de ser de pago, slo es soportado en la plataforma Windows. No incorpora un entorno visual de desarrollo.

9.3.ElentornoNetBeans.
Comosehaindicadoanteriormente,elentornodedesarrolloquevamosautilizaralolargodelos
contenidos del mdulo profesional ser NetBeans. Por lo que vamos primero a analizar sus
caractersticasydestacarlasventajasquepuedeaportarsuutilizacin.

SetratadeunentornodedesarrolloorientadoprincipalmenteallenguajeJava,aunquepuedeservir
paraotroslenguajesdeprogramacin.Esunproductolibreygratuitosinrestriccionesdeuso.Esun
proyecto de cdigo abierto de gran xito, con una comunidad de usuarios numerosa, en continuo
crecimientoyapoyadoporvariasempresas.

ElorigendeesteentornohayquebuscarloenunproyectorealizadoporestudiantesdelaRepblica
Checa.FueelprimerIDEcreadoenlenguajeJava.Untiempomstarde,seformunacompaaque
seracompradaen1999porSunMicrosystems(quienhabacreadoellenguajeJava).Pocodespus,
Sun decidi que el producto sera libre y de cdigo abierto y naci Netbeans como IDE de cdigo
abiertoparacrearaplicacionesJava.

NetBeansllevatiempopugnandoconEclipseporconvertirseenlaplataformamsimportantepara
crearaplicacionesenJava.Hoyendaesunproductoenelqueparticipandecenasdeempresascon
Sunalacabeza.Siguesiendosoftwarelibreyofrecelassiguientesposibilidades:

9 EscribircdigoenC,C++,Ruby(Lenguajedeprogramacininterpretado,reflexivoyorientadoaobjetos.Su
implementacin oficial es distribuida bajo una licencia de software libre),Groovy(Lenguaje de programacin
orientado a objetos implementado sobre la plataforma Java. Desde Groovy se puede acceder directamente a
todaslasAPIexistentesenJava.Elbytecodegeneradoenelprocesodecompilacinestotalmentecompatiblecon
el generado por el lenguaje Java para la Java Virtual Machine (JVM), por tanto puede usarse directamente en
cualquier aplicacin Java. Todo lo anterior unido a que la mayor parte de cdigo escrito en Java es totalmente
vlido en Groovy hacen que este lenguaje sea de muy fcil adopcin para programadores Java), Javascript
(Lenguaje de programacin interpretado. Se utiliza principalmente en su forma del lado del cliente (clientside),
implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y pginas web
dinmicas. Todos los navegadores modernos interpretan el cdigo JavaScript integrado en las pginas web),
CSS(Hojas de estilo en cascada (en ingls Cascading Style Sheets), CSS es un lenguaje usado para definir la
presentacin de un documento estructurado escrito en HTML o XML.)y PHP(Lenguaje de programacin
interpretado,diseadooriginalmenteparalacreacindepginaswebdinmicas.Esusadoprincipalmenteparala
interpretacindelladodelservidor(serversidescripting),peroactualmentepuedeserutilizadodesdeunainterfaz
delneadecomandos,oenlacreacindeotrostiposdeprogramas,incluyendoaplicacionesconinterfazgrfica
usandolasbibliotecasQtoGTK+)ademsdeJava.
9 Permitir crear aplicaciones J2EE gracias a que incorpora servidores de aplicaciones Java
(actualmente Glassfish(Servidor de aplicaciones de software libre desarrollado por Sun Microsystems, que
implementa las tecnologas definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguen esta
especificacin.)yTomcat(FuncionacomouncontenedordeservletsdesarrolladobajoelproyectoJakartaenla
ApacheSoftwareFundation.TomcatimplementalasespecificacionesdelosservletsydeJavaServerPagesdeSun
Microsystems.Seleconsideraunservidordeaplicaciones,hayquetenerencuentaqueTomcatpuedeutilizarse
comoservidorwebindependiente,obiencomounaextensindelservidorwebyainstalado)
9 Crear aplicaciones Swing(Es una biblioteca grfica para Java. Incluye elementos para interfaz grfica de
usuariotalescomocajasdetexto,botones,desplegablesytablas)deformasencilla,alestilodelVisual
StudiodeMicrosoft.
9 CrearaplicacionesJMEparadispositivosmviles.

37
Introduccinalaprogramacin DAW

Laltimaversinlanzadaen2011eslaNetBeans7.0.

LaplataformaNetBeanspermitequelasaplicacionesseandesarrolladasapartirdeunconjuntode
componentesdesoftwarellamadosmdulos.UnmduloesunarchivoJavaquecontieneclasesde
Java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo
identificacomomdulo.

Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos
mdulos.Debidoaquelosmdulospuedenserdesarrolladosindependientemente,lasaplicaciones
basadasenestaplataformapuedenserextendidasfcilmenteporcualquieraquedesarrolletambin
software.

Cada mdulo provee una funcin bien definida, tales como el soporte de Java, edicin, o soporte
para el sistema de control de versiones. NetBeans contiene todos los mdulos necesarios para el
desarrollodeaplicacionesJavaenuna soladescarga,permitiendoalapersonaquevaarealizarel
programacomenzaratrabajarinmediatamente.

Parasaberms
Encuentra ms informacin sobre esta plataforma en los enlaces que te proponemos a
continuacin:
http://netbeans.org/index_es.html
http://es.wikipedia.org/wiki/NetBeans#Versiones

9.4.Instalacinyconfiguracin.
PararealizarlainstalacindelentornoNetBeans,seguiremoslossiguientespasosbsicos:

1. Descarga de la versin deseada desde la web oficial o desde los enlaces propuestos ms
abajo.Laversincompletacontienetodaslasposibilidadesaunqueeslamspesada(unos
240 MegaBytes). En nuestro caso, por estar en fase de iniciacin, podra ser suficiente
descargarlaversinmsbsica(unos60MegaBytes).
2. Seleccionar la plataforma o sistema operativo, existen versiones para Windows, Linux y
MacOS.TantoenWindowscomoenLinux,sedescargaunarchivoejecutablequeseencarga
delainstalacin.
3. Seleccionarelidioma.
4. Comenzarladescargadelarchivodeinstalacinejecutableyunavezfinalizada,lanzarste,
comenzandolainstalacinennuestroequipo.
5. Enlasprimeraspantallas,seleccionaremosloscomponentesainstalar.Comomnimo,para
poderprogramarenJavaserimprescindibleinstalarelIDEbsicoyJavaSE.
6. Posteriormente,establecemoseldirectoriodondeseinstalarNetBeans,ascomolacarpeta
quecontieneelJDKqueseutilizarpordefecto.
7. Finalmente, la instalacin se completa y dispondremos de este entorno totalmente
operativo.

Para llevar a cabo las operaciones descritas en el paso 1, te ofrecemos la posibilidad de descargar
cadaunadelaspartesporseparado,obien,enconjunto,atravsdelossiguientesenlaces:

Descarga nicamente NetBeans si tienes ya instalado el JDK. (Esta versin an no incluye


lenguaje Espaol)

38
DesarrollodeAplicacionesWeb Tema3

Descarga slo NetBeans en Espaol, sin JDK


Descarga NetBeans y JDK desde la pgina oficial de ORACLE
Debesconocer
Para aprender cmo realizar la instalacin completa, JDK y NetBeans, en sus ltimas
versionesesimportantequesigaslasindicacionesquesemuestranenelsiguienteartculo:
http://jtagua.wordpress.com/2011/05/01/descarga-e-instalacion-separada-de-jdk-6-update-25-
y-netbeans-7-0/

9.5.Aspectodelentornoygestindeproyectos.
La pantalla inicial de nuestro entorno de desarrollo ofrece accesos directos a las operaciones ms
usuales: aprendizaje inicial, tutoriales, ejemplos, demos, los ltimos programas realizados y las
novedadesdelaversin.

Paracomenzaradescribirelaspectodelentorno,esnecesariocrearunnuevoproyectoaccediendo
almenFileNewProject,indicaremoseltipodeaplicacinquevamosacrear.

Debesconocer
Cuando trabajemos con NetBeans, nuestros proyectos harn uso de clases para poder
desarrollarlasoperacionesdenuestrosprogramas.Estasclasesseagruparnenpaquetes.
Creacindenuevospaquetes
Generalmentelasclasesseagrupanenpaquetes.Esrecomendablequecadaproyecto
tenga al menos un paquete, si no fuera as, las clases se crearan en el paquete por
defecto,loquenoesadecuado
Creacindenuevasclases
Podremos crearla pulsando con botn derecho sobre el paquete en el que vamos a
almacenar la clase y seleccionando New > Java Class. Inicialmente nuestros proyectos
contendrnunaclaseprincipal,perosegnvayamosaprendiendomssobreellenguaje
Java iremos necesitando ms y ms clases (agrupadas en paquetes) en cada uno de
nuestrosproyectos.
Una de las ventajas que ofrece este entorno es poder examinar nuestros proyectos a travs de la
vista Archivos. Esta vista nos ensea la realidad de los archivos del proyecto, la carpeta build
contienelosarchivoscompilados(.class),lacarpeta srcelcdigofuenteyelresto,sonarchivos
creadosporNetbeansparacomprobarlaconfiguracindelproyectoolosarchivosnecesariosparala
correctainterpretacindelcdigoenotrossistemas(encualquiercasonohayqueborrarlos).Para
activarestavista,seleccionaenelmenprincipalWindowsFiles.

Autoevaluacin
Rellena los huecos con los conceptos adecuados:
build
En NetBeans, los archivos .class de un proyecto estn alojados en la carpeta y los
src
.java en la carpeta .

39

Das könnte Ihnen auch gefallen