Beruflich Dokumente
Kultur Dokumente
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.
1
Introduccinalaprogramacin DAW
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
2.2.Algoritmosyprogramas.
Despusdeanalizarendetalleelproblemaasolucionar,hemosdedisearydesarrollarelalgoritmo
adecuado.Pero,Quesunalgoritmo?
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.
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
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.
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.
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
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.
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.
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.
10
DesarrollodeAplicacionesWeb Tema3
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
11
Introduccinalaprogramacin DAW
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
Gramtica del lenguaje: Reglas aplicables al conjunto de smbolos y palabras especiales del
lenguaje de programacin para la construccin de sentencias correctas.
Sintaxis: Son las posibles combinaciones de los smbolos y palabras especiales. Est
relacionada con la forma de los programas.
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.
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.
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
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.
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.
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.
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
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.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.
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.
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.
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.
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
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.
9 ElcdigosatisfacelassespecificacionesdelaM
MquinaVirttualJava.
9 Noexisteeamenazaco ontralainteggridaddelsisstema.
9 Noseprooducendesbordamientossdememoriia.
9 Losparmmetrosysustipossonad decuados.
9 Noexisteenconversion nesdedatossnopermitiddas.
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
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
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
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.
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
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
javacarchivo.java
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.
javaarchivo.class
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
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
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
35
Introduccinalaprogramacin DAW
Ma
Window Linu c Otherplatform GUI
IDE License JVM
s x OS s builder
X
RationalApplicationDevelop
Proprietary Yes Yes Yes No Solaris,AIX Yes
er
Unknow
Servoy Proprietary Yes Yes Yes Solaris Yes
n
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:
38
DesarrollodeAplicacionesWeb Tema3
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