Вы находитесь на странице: 1из 58

20/11/2014

eXe

AVISO:Estapginahasidogeneradaparafacilitarlaimpresindeloscontenidos.Losenlacesexternosaotraspginasnosernfuncionales.

Introduccinalaprogramacin.

Casoprctico

LaevolucindeInternetydelasnuevastecnologas,ascomolasdiferentesposibilidades
para establecer nuevas lneas de negocio para la empresa BK Programacin, han hecho
queAdahayadecididoabrirunavadeinnovacin.Paraello,suempresadeberrealizar
el desarrollo de sus aplicaciones a travs de lenguajes y tcnicas de programacin
modernos,aunqueconunaeficienciayflexibilidadcontrastadas.
MarayJuan,ayudadosyorientadosporAda,recordarnyampliarnsusconocimientos
relacionados con la programacin, permitindoles crear software que pueda adaptarse a
nuevassituaciones,comoelfuncionamientoendiferentesplataformas(PDA,Mviles,Web,
etc.)olainteraccinconbasesdedatos.Todoellosinperderdevistadedondepartenyhaciadndequierenredirigirsus
esfuerzos.
Estas innovaciones, junto a la predisposicin para adaptarse y evolucionar que BK Programacin est potenciando en
todassusreas,repercutirnenunamayorcapacidadderespuestaantelasnecesidadesdesusposiblesclientes.En
definitiva,conseguirmayorcompetitividad.

1.Introduccin.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

1/58

20/11/2014

eXe

Cuntas acciones de las que has realizado hoy, crees que estn relacionadas con la programacin?
Hagamosunrepasodelosprimerosinstantesdelda:tehadespertadolaalarmadetutelfonomviloradio
despertador,haspreparadoeldesayunoutilizandoelmicroondas,mientrasdesayunabashasvistouodolas
ltimasnoticiasatravsdetureceptordetelevisindigitalterrestre,tehasvestidoypuedequehayasutilizado
elascensorparabajaralportalysaliralacalle,etc.Quiznoesnecesarioquecontinuemosmsparadarnos
cuenta de que casi todo lo que nos rodea, en alguna medida, est relacionado con la programacin, los
programasyeltratamientodealgntipodeinformacin.
Elvolumendedatosqueactualmentemanejamosysusinnumerablesposibilidadesdetratamientoconstituyen
unvastoterritorioenelquelosprogramadorestienenmuchoquedecir.
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, qu tcnicas podemos emplear y qu es lo que
pretendemosconseguir.Continuandoconelanlisisdelasdiferentesformasdeprogramacinexistentes,identificaremosqufases
conforman el desarrollo de un programa, avanzaremos detallando las caractersticas relevantes de cada uno de los lenguajes de
programacin disponibles, para posteriormente, realizar una visin general del lenguaje de programacin Java. Finalmente,
tendremos la oportunidad de conocer con qu herramientas podramos desarrollar nuestros programas, escogiendo entre una de
ellasparaponernosmanosalaobrautilizandoellenguajeJava.

2.Programasyprogramacin.

Casoprctico

Adaconocebienloquesignificatenerquellevaracaboelprocesocompletodecreacin
desoftwareysabeque,enocasiones,noseledalaimportanciaquedeberaalasfases
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
solucionaryquenoabordeeldesarrollodesusprogramassentndosedirectamenteante
elordenadorateclearcdigo.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

2/58

20/11/2014

eXe

Juan le comenta a Ada y a Mara: La verdad es que cuando conoces bien un lenguaje de programacin crees que
puedeshacercualquierprogramadirectamentesobreelordenador,peroalfinaltedascuentadequedeberashaberte
paradoaplanificartutrabajo.Muchasvecestienesquevolveratrs,recodificaryenocasiones,rehacergranparte del
programaporqueloquetienesnoestbienplanteado.
Mara,quepermaneceatentaaloquedicenAdayJuan,quiereaprenderbiendesdeelprincipioytendrlaventajade
tenerasuladoadosexpertos.

2.1.Buscandounasolucin.
Generalmente, la primera razn que mueve a una persona hacia el aprendizaje de la programacin es
utilizar el ordenador como herramienta para resolver problemas concretos. Como en la vida real, la
bsquedayobtencindeunasolucinaunproblemadeterminado,utilizandomediosinformticos,sellevaa
cabosiguiendounospasosfundamentales.Enlasiguientetablapodemosverestasanalogas.
ResolucindeproblemasEnlavidareal...EnProgramacin...
Observacindela
situacinoproblema.

Anlisisdelproblema:requierequeelproblemaseadefinidoycomprendido
claramenteparaquepuedaseranalizadocontododetalle.

Pensamosenunao
variasposibles
soluciones.

Diseoodesarrollodealgoritmos:procedimientopasoapasoparasolucionar
elproblemadado.

Aplicamoslasolucin
queestimamosms
adecuada.

Resolucindelalgoritmoelegidoenlacomputadora:consisteenconvertirel
algoritmoenprograma,ejecutarloycomprobarquesolucionaverdaderamente
elproblema.

Quvirtudesdeberatenernuestrasolucin?
Correccinyeficacia:siresuelveelproblemaadecuadamente.
Eficiencia:silohaceenuntiempomnimoyconunusoptimodelosrecursosdelsistema.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

3/58

20/11/2014

eXe

Paraconseguirlo,cuandoafrontemoslaconstruccindelasolucintendremosquetenerencuentalossiguientesconceptos:
1. Abstraccin: se trata de realizar un anlisis del problema para descomponerlo en problemas ms pequeos y de menor
complejidad, describiendo cada uno de ellos de manera precisa. Divide y vencers, esta suele ser considerada una filosofa
generalpararesolverproblemasydeaququesunombrenosloformepartedelvocabularioinformtico,sinoquetambinse
utilizaenmuchosotrosmbitos.
2. Encapsulacin:consisteen ocultarlainformacinparapoderimplementarladediferentes maneras sin que esto influya en el
restodeelementos.
3. Modularidad:estructuraremoscadaparteenmdulosindependientes,cadaunodeellostendrsufuncincorrespondiente.

Citasparapensar

RogerPressman:Elcomienzodelasabiduraparauningenierodesoftwareesreconocerladiferenciaentrehacerque
unprogramafuncioneyconseguirquelohagacorrectamente.

2.2.Algoritmosyprogramas.
Despusdeanalizarendetalleelproblemaasolucionar,hemosdedisearydesarrollarelalgoritmoadecuado.Pero,Quesun
algoritmo?
Algoritmo:secuenciaordenadadepasos,descritasinambigedades,queconducenalasolucindeunproblemadado.
Losalgoritmossonindependientesdeloslenguajesdeprogramacinydelascomputadorasdondeseejecutan.Unmismoalgoritmo
puede ser expresado en diferentes lenguajes de programacin y podra ser ejecutado en diferentes dispositivos. Piensa en una
recetadecocina,stapuede ser expresada en castellano, ingls o francs, podra ser cocinada en fogn o vitrocermica, por un
cocinerooms,etc.Peroindependientementedetodasestascircunstancias,elplatoseprepararsiguiendolosmismospasos.
Ladiferenciafundamentalentrealgoritmoyprogramaesque,enelsegundo,lospasosquepermitenresolverelproblema,deben
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

4/58

20/11/2014

eXe

escribirse en un determinado lenguaje de programacin para que puedan ser ejecutados en el


ordenadoryasobtenerlasolucin.
Los lenguajes de programacin son slo un medio para expresar el algoritmo y el ordenador un
procesadorparaejecutarlo.Eldiseodelosalgoritmosserunatareaquenecesitardelacreatividady
conocimientosdelastcnicasdeprogramacin.Estilosdistintos,dedistintosprogramadoresalahora
deobtenerlasolucindelproblema,darnlugaraalgoritmosdiferentes,igualmentevlidos.
En esencia, todo problema se puede describir por medio de un algoritmo y las caractersticas
fundamentalesquestosdebencumplirson:
Debeserprecisoeindicarelordenderealizacinpasoapaso.
Debeestardefinido,siseejecutadosomsveces,debeobtenerelmismoresultadocadavez.
Debeserfinito,debetenerunnmerofinitodepasos.
Perocuandolosproblemassoncomplejos,esnecesariodescomponerstosensubproblemasmssimplesy,asuvez,enotrosms
pequeos.Estasestrategiasrecibenelnombredediseodescendenteodiseomodular(topdowndesign).Estesistemasebasaen
ellemadivideyvencers.
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, para luego poder codificarlos con el lenguaje que nos
interese.Entreotrastenemos:
Diagramasdeflujo:Estatcnicautilizasmbolosgrficosparalarepresentacindelalgoritmo.Sueleutilizarseenlasfasesde
anlisis.
Pseudocdigo: Esta tcnica se basa en el uso de palabras clave en lenguaje natural, constantes, variables, otros objetos,
instruccionesyestructurasdeprogramacinqueexpresandeformaescritalasolucindelproblema.Eslatcnicamsutilizada
actualmente.
Tablasdedecisin:Enunatablasonrepresentadaslasposiblescondicionesdelproblemaconsusrespectivasacciones.Suele
serunatcnicadeapoyoalpseudocdigocuandoexistensituacionescondicionalescomplejas.

Debesconocer

Acontinuacinteofrecemosdosenlacesmuyinteresantes:
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

5/58

20/11/2014

eXe

En el primer vdeo puedes ver los elementos grficos fundamentales que se utilizan para la generacin de
diagramasdeflujo.
En el segundo vdeo se realiza la construccin de un diagrama de flujo con una herramienta grfica y su
transformacinapseudocdigo.

Resumentextualalternativo

Resumentextualalternativo

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

6/58

20/11/2014

eXe

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
Alospasosquepermitenresolverelproblema,escritosenunlenguajedeprogramacin,paraquepuedanserejecutados
enelordenadoryasobtenerlasolucin,selesdenomina:.

3.Paradigmasdelaprogramacin.

Casoprctico

AdacomentaconJuanyMaralosdistintosenfoquesparaeldesarrollodeprogramasquehan
existido a lo largo de la historia de la programacin, destacando que todos van a tener que
renovar su forma de pensar, si quieren comenzar a utilizar un lenguaje moderno que les
permitaconstruirprogramasadaptadosalasnuevasnecesidadesdesusclientes.

Cuntasformasexistendehacerlascosas?Supongoqueestarspensando:variasoincluso,muchas.Perocuandoseestablece
unpatrnparalacreacindeaplicacionesnosestamosacercandoalsignificadodelapalabraparadigma.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

7/58

20/11/2014

eXe

Paradigma de programacin: es un modelo bsico para el diseo y la implementacin de programas. Este modelo
determinarcomoserelprocesodediseoylaestructurafinaldelprograma.

El paradigma representa un enfoque particular o filosofa para la construccin de software. Cada uno tendr sus ventajas e
inconvenientes,sermsomenosapropiado,peronoescorrectodecirqueexistaunomejorquelosdems.
Puedesaccederaunresumendelosdiferentesparadigmasdeprogramacinenelsiguienteenlace:

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

8/58

20/11/2014

eXe

Resumentextualalternativo

Comohabrspodidoapreciar,existenmltiplesparadigmas,inclusopuedehaberlenguajesdeprogramacinquenoseclasifiquen
nicamente dentro de uno de ellos. Un lenguaje como Smalltalk es un lenguaje basado en el paradigma orientado a objetos. El
lenguajedeprogramacinScheme,encambio,soportasloprogramacinfuncional.Python,soportamltiplesparadigmas.

Parasaberms

Te proponemos el siguiente enlace en el que encontrars informacin adicional sobre los diferentes paradigmas de
programacin.
Paradigmasdeprogramacinylenguajes

Cul es el objetivo que se busca con la aplicacin de los diferentes enfoques? Fundamentalmente, reducir la dificultad para el
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

9/58

20/11/2014

eXe

mantenimientodelasaplicaciones,mejorarelrendimientodelprogramadory,engeneral,mejorarlaproductividadycalidadde los
programas.

Autoevaluacin

EnquparadigmadeprogramacinpodramosenmarcarellenguajedeprogramacinJava?

ProgramacinEstructurada.
ProgramacinDeclarativa.
ProgramacinOrientadaaObjetos.

4.Fasesdelaprogramacin.

Casoprctico

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 aprendidosenel
pasado.
AdatranquilizaaJuanyaMara:Estclaroquelasfasesprincipalesquehemosestado
llevandoacaboalolargodenuestrosanterioresproyectosseseguirnaplicando,aunque
con algunas diferencias. Lo ms importante Juan, es que sigamos adecuadamente el
mtododetrabajoparaconseguirbuenosresultados.
Mecostarmuchotrabajoadaptarme?preguntaMara.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

10/58

20/11/2014

eXe

Ada le contesta sentndose a su lado: No te preocupes Mara, se trata de adaptar conocimientos que ya tienes y
aprenderalgunosotros.
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 solucin a un problema, aplicando una filosofa de desarrollo y lo
haremosdandounaseriedepasosquedebenestarbiendefinidos.
Elprocesodecreacindesoftwarepuededividirseendiferentesfases:
Fasederesolucindelproblema.
Fasedeimplementacin.
Fasedeexplotacinymantenimiento.
Acontinuacin,analizaremoscadaunadeellas.

4.1.Resolucindelproblema.
Paraelcomienzodeestafase,esnecesarioqueelproblemaseadefinidoycomprendidoclaramenteparaquepuedaseranalizado
contododetalle.Asuvez,lafasederesolucindelproblemapuededividirseendosetapas:
a. Anlisis
Por lo general, el anlisis indicar la especificacin de requisitos que se deben cubrir. Los
contactos entre el analista/programador y el cliente/usuario sern numerosos, de esta forma
podrn ser conocidas todas las necesidades que precisa la aplicacin. Se especificarn los
procesosyestructurasdedatosquesevanaemplear.Lacreacindeprototipossermuytil
parasaberconmayorexactitudlospuntosatratar.
El anlisis inicial ofrecer una idea general de lo que se solicita, realizando posteriormente
sucesivosrefinamientosqueservirnparadarrespuestaalassiguientescuestiones:
Culeslainformacinqueofrecerlaresolucindelproblema?
Qudatossonnecesariospararesolverelproblema?
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

11/58

20/11/2014

eXe

La respuesta a la primera pregunta se identifica con los resultados deseados o las salidas del problema. La respuesta a la
segundapreguntaindicarqudatosseproporcionanolasentradasdelproblema.
Enestafasedebemosaprenderaanalizarladocumentacindelaempresa,investigar,observartodoloquerodeaelproblema
yrecopilarcualquierinformacintil.

Ejercicioresuelto

Vamosailustrarestafaserealizandoelanlisisdelsiguienteproblema:
Leerelradiodeuncrculoycalculareimprimirsusuperficieycircunferencia.
Estclaroquelasentradasdedatosenesteproblemasereducenalradiodelcrculo,peropiensaqusalidasdedatos
ofrecerlasolucin?
Lassalidassern...
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
nmeroPiyporelradio)
Ylaentrada...
VariableRADIO:serelradiodelcrculo.
Estas variables RADIO, SUPERFICIE y CIRCUNFERENCIA podrn ser de tipo real (nmeros con parte entera y
partedecimal,porejemplo:3,57)

b. Diseo
En esta etapa se convierte la especificacin realizada en la fase de anlisis en un diseo ms detallado, indicando el
comportamientoolasecuencialgicadeinstruccionescapazderesolverelproblemaplanteado.Estospasossucesivos,que
indicanlasinstruccionesaejecutarporlamquina,constituyenloqueconocemoscomoalgoritmo.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

12/58

20/11/2014

eXe

Consiste en plantear la aplicacin como una nica operacin global, e ir descomponindola en operaciones ms sencillas,
detalladasyespecficas.Encadanivelderefinamiento,lasoperacionesidentificadasseasignanamdulosseparados.
Hay que tener en cuenta que antes de pasar a la implementacin del algoritmo, hemos de asegurarnos que tenemos una
solucinadecuada.Paraello,tododiseorequerirdelarealizacindelapruebaotrazadelprograma.Esteprocesoconsistir
en un seguimiento paso a paso de las instrucciones del algoritmo utilizando datos concretos. Si la solucin aportada tiene
errores,tendremosquevolveralafasedeanlisispararealizarlasmodificacionesnecesariasotomarunnuevocaminoparala
solucin.Slocuandoelalgoritmocumplalosrequisitosyobjetivosespecificadosenlafasedeanlisissepasaralafasede
implementacin.

4.2.Implementacin.
Sila fase de resolucin del problema requiere un especial cuidado en la realizacin del anlisis y el
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. Codificacinoconstruccin
Estaetapaconsisteentransformarotraducirlosresultadosobtenidosaundeterminadolenguaje
deprogramacin.Paracomprobarlacalidadyestabilidaddelaaplicacinsehanderealizaruna
serie de pruebas que comprueben las funciones de cada mdulo (pruebas unitarias), que los mdulos funcionan bien entre
ellos(pruebasdeinterconexin)yquetodosfuncionanenconjuntocorrectamente(pruebasdeintegracin).
Cuandorealizamoslatraduccindelalgoritmoallenguajedeprogramacindebemostenerencuentalasreglasgramaticalesy
lasintaxisdedicholenguaje.Obtendremosentonceselcdigofuente,loquenormalmenteconocemosporprograma.
Peroparaquenuestroprogramacomienceafuncionar,antesdebesertraducidoaunlenguajequelamquinaentienda.Este
procesodetraduccinpuedehacersededosformas,compilandoointerpretandoelcdigodelprograma.
Compilacin: Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de
programacinalenguajequelamquinaescapazdeinterpretar.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

13/58

20/11/2014

eXe

Compilador: programa informtico que realiza la traduccin. Recibe el cdigo fuente, realiza un anlisis lexicogrfico,
semnticoysintctico,generauncdigointermedionooptimizado,optimizadichocdigoyfinalmente,generaelcdigo
objetoparaunaplataformaespecfica.
Intrprete:programainformticocapazdeanalizaryejecutarotrosprogramas,escritosenunlenguajedealtonivel.Los
intrpretessediferenciandeloscompiladoresenquemientrasestostraducenunprogramadesdesudescripcinenun
lenguajedeprogramacinalcdigodemquinadelsistema,losintrpretesslorealizanlatraduccinamedidaquesea
necesaria,tpicamente,instruccinporinstruccin,ynormalmentenoguardanelresultadodedichatraduccin.

Unaveztraducido,seaatravsdeunprocesodecompilacinodeinterpretacin,elprogramapodrserejecutado.
b. Pruebadeejecucinyvalidacin
Paraestaetapaesnecesarioimplantarlaaplicacinenelsistemadondevaafuncionar,debeponerseenmarchaycomprobar
sisufuncionamientoescorrecto.Utilizandodiferentesdatosdepruebaseversielprogramarespondealosrequerimientos
especificados, si se detectan nuevos errores, si stos son bien gestionados y si la interfaz es amigable. Se trata de poner a
pruebanuestroprogramaparaversurespuestaensituacionesdifciles.
Mientrassedetectenerroresystosnosesubsanennopodremosavanzaralasiguientefase.Unavezcorregidoelprograma
ytesteadosedocumentarmediante:
Documentacininterna:Encabezados,descripciones,declaracionesdelproblemaycomentariosqueseincluyendentro
delcdigofuente.
Documentacinexterna:Sonlosmanualesquesecreanparaunamejorejecucinyutilizacindelprograma.

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
En la fase de codificacin, hemos de tener en cuenta la del lenguaje para obtener el cdigo fuente o programa.
Posteriormente,stedeberseroparaquepuedaserejecutadoposteriormente.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

14/58

20/11/2014

eXe

4.3.Explotacin.
Cuandoelprogramayaestinstaladoenelsistemayestsiendodeutilidadparalosusuarios,decimos
queseencuentraenfasedeexplotacin.
Peridicamente ser necesario realizar evaluaciones y, si es necesario, llevar a cabo modificaciones
paraqueelprogramaseadapteoactualiceanuevasnecesidades,pudiendotambincorregirseerrores
nodetectadosanteriormente.Esteprocesorecibeelnombredemantenimientodelsoftware.

Mantenimientodelsoftware:eselprocesodemejorayoptimizacindelsoftwaredespusdesuentregaalusuariofinal.
Involucra cambios al software en orden de corregir defectos y dependencias encontradas durante su uso, as como la
adicindenuevasfuncionalidadesparamejorarlausabilidadyaplicabilidaddelsoftware.
Serimprescindibleaadirunadocumentacinadecuadaquefacilitealprogramadorlacomprensin,usoymodificacindedichos
programas.

5.Ciclodevidadelsoftware.

Casoprctico

Mara le pregunta a Juan: Juan, qu ocurre cuando terminas un programa? Se entrega al cliente y ya est? La
verdadesquelosprogramasquehehechohansidoparausopropioynoscmoterminaelprocesoconlosclientes.
ContestaJuan:Puesvers,cuandoterminasunprograma,ocreesquelohasterminado,hayquellevaracabotoda
clasedepruebasparaverdndepuedefallar.Despusmejoraslosposiblesfallosyposteriormenteseentregaalcliente,
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

15/58

20/11/2014

eXe

ahesdondevessitusoftwarehasidobienconstruido.Elclienteloutilizaryduranteun
tiempopuedeserquehayaquearreglaralgunacosilla.Ycuandoyaesttodocorrecto,en
ocasiones,seestableceuncontratodemantenimientoconelcliente.Comoves,desarrollar
softwarenoconsistesloenprogramaryyaest.

Seancualesseanlasfasesenlasquerealicemoselprocesodedesarrollodesoftware,ycasiindependientementedel,siemprese
debeaplicarunmodelodeciclodevida.
Ciclodevidadelsoftware:esunasucesindeestadosofasesporlascualespasaunsoftwarealolargodesu"vida".
Elprocesodedesarrollopuedeinvolucrarsiemprelassiguientesetapasmnimas:
EspecificacinyAnlisisderequisitos.
Diseo.
Codificacin.
Pruebas.
InstalacinypasoaProduccin.
Mantenimiento.
Existenvariostiposdeciclosdevidadelsoftware,acontinuacintemostramosunresumendelosmsimportantes.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

16/58

20/11/2014

eXe

Resumentextualalternativo

Autoevaluacin

Entre los distintos tipos de ciclo de vida del software, los modelos incremental y en cascada son modelos del tipo
evolutivo.
VerdaderoFalso

6.Lenguajesdeprogramacin.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

17/58

20/11/2014

eXe

Casoprctico

AdayJuanestnrecordandolocomplejosqueeranalgunoslenguajesdeprogramacin,
Ada comenta: Cuando yo empec en esto, haba relativamente pocos lenguajes de
programacinynopermitanhacerprogramascomolosqueahoradesarrollamos.
Juanindicaquelconocelascaractersticasgeneralesdealgunoslenguajes,peroquele
gustarasaberalgomssobrelosquehubo,hayyhabr.
Maraqueasienteconlacabeza,piensaqueaprendermssobreloslenguajesdisponibles
enlaactualidadpuedeayudaralahoradeelegirentreunosuotros.

Como hemos visto, en todo el proceso de resolucin de un problema mediante la creacin de software, despus del anlisis del
problemaydeldiseodelalgoritmoquepuedaresolverlo,esnecesariotraducirsteaunlenguajequeexpreseclaramentecadauno
delospasosaseguirparasucorrectaejecucin.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.
Gramticadellenguaje:Reglasaplicablesalconjuntodesmbolosypalabrasespeciales del lenguaje de programacin
paralaconstruccindesentenciascorrectas.
Lxico:Eselconjuntofinitodesmbolosypalabrasespeciales,eselvocabulariodellenguaje.
Sintaxis: Son las posibles combinaciones de los smbolos y palabras especiales. Est relacionada con la forma de los
programas.
Semntica:Eselsignificadodecadaconstruccindellenguaje,laaccinquesellevaracabo.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

18/58

20/11/2014

eXe

Hay que tener en cuenta que pueden existir sentencias sintcticamente correctas, pero semnticamente
incorrectas.Porejemplo,Unavestruzdiounzarpazoasucuidadorestbienconstruidasintcticamente,pero
esevidentequesemnticamenteno.
Una caracterstica relevante de los lenguajes de programacin es, precisamente, que ms de un programador
puedausarunconjuntocomndeinstruccionesqueseancomprendidasentreellos.Atravsdeesteconjuntose
puedelograrlaconstruccindeunprogramadeformacolaborativa.
Loslenguajesdeprogramacinpuedenserclasificadosenfuncindelocercaqueestndellenguajehumanoo
dellenguajedeloscomputadores.Ellenguajedeloscomputadoressoncdigosbinarios,esdecir,secuencias
deunosyceros.Detallaremosseguidamentelascaractersticasprincipalesdeloslenguajesdeprogramacin.

6.1.Lenguajemquina.
Esteesellenguajeutilizadodirectamenteporelprocesador,constadeunconjuntodeinstruccionescodificadas
enbinario.Eselsistemadecdigosdirectamenteinterpretableporuncircuitomicroprogramable.
Estefueelprimerlenguajeutilizadoparalaprogramacindecomputadores.Dehecho,cadamquinatenasu
propioconjuntodeinstruccionescodificadasencerosyunos.Cuandounalgoritmoestescritoenestetipode
lenguaje,decimosqueestencdigomquina.
Programarenestetipodelenguajepresentabalossiguientesinconvenientes:
Cadaprogramaeravlidosloparauntipodeprocesadoruordenador.
La lectura o interpretacin de los programas era extremadamente difcil y, por tanto, insertar modificaciones resultaba muy
costoso.
Losprogramadoresdelapocadebanmemorizarlargascombinacionesdecerosyunos,queequivalanalasinstrucciones
disponiblesparalosdiferentestiposdeprocesadores.
Los programadores se encargaban de introducir los cdigos binarios en el computador, lo que provocaba largos tiempos de
preparacinyposibleserrores.
A continuacin, se muestran algunos cdigos binarios equivalentes a las operaciones de suma, resta y movimiento de datos en
lenguajemquina.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

19/58

20/11/2014

eXe

Algunasoperacionesenlenguajemquina.OperacinLenguajemquinaSUMARRESTARMOVER
00101101
00010011
00111010
Dadalacomplejidadydificultadesqueofrecaestelenguaje,fuesustituidoporotrosmssencillosyfcilesutilizar.Noobstante,hay
quetenerencuentaquetodoslosprogramasparapoderserejecutados,handetraducirsesiempreallenguajemquinaqueesel
nicoqueentiendelacomputadora.

Parasaberms

Comorecordatorio,teproponemoselsiguienteenlacesobrecmofuncionaelsistemabinario.

Resumentextualalternativo

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

20/58

20/11/2014

eXe

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
Enellenguajemquinadealgunosprocesadores,lacombinacin00101101equivalealaoperacinde.

6.2.LenguajeEnsamblador.
Laevolucindellenguajemquinafueellenguajeensamblador.Lasinstruccionesyanosonsecuenciasbinarias,sesustituyenpor
cdigosdeoperacinquedescribenunaoperacinelementaldelprocesador.Esunlenguajedebajonivel,aligualqueellenguaje
mquina,yaquedependendirectamentedelhardwaredondesonejecutados.
Mnemotcnico:son palabrasespeciales,quesustituyen largas secuencias de ceros y unos, utilizadas para referirse a
diferentesoperacionesdisponibleseneljuegodeinstruccionesquesoportacadamquinaenparticular.
En ensamblador, cada instruccin (mnemotcnico) se corresponde a una instruccin del procesador. En la siguiente tabla se
muestranalgunosejemplos.
Algunas operaciones y su mnemotcnico en lenguaje Ensamblador. Operacin Lenguaje Ensamblador MULTIPLICAR DIVIDIR
MOVER
MUL
DIV
MOV
Enelsiguientegrficopuedesverpartedeunprogramaescritoenlenguajeensamblador.Encolorrojoseharesaltadoelcdigo
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

21/58

20/11/2014

eXe

mquinaenhexadecimal,enmagentaelcdigoescritoenensambladoryenazul,lasdireccionesdememoriadondeseencuentrael
cdigo.

Peroaunqueensambladorfueunintentoporaproximarellenguajedelosprocesadoresallenguajehumano,presentabamltiples
dificultades:
Losprogramasseguandependiendodirectamentedelhardwarequelossoportaba.
Losprogramadorestenan que conocer detalladamente la mquina sobre la que programaban, ya que deban hacer un uso
adecuadodelosrecursosdedichossistemas.
Lalectura,interpretacinomodificacindelosprogramasseguapresentandodificultades.
Todo programa escrito en lenguaje ensamblador necesita de un intermediario, que realice la traduccin de cada una de las
instrucciones que componen su cdigo al lenguaje mquina correspondiente. Este intermediario es el programa ensamblador. El
programa original escrito en lenguaje ensamblador constituye el cdigo fuente y el programa traducido al lenguaje mquina se
conocecomoprogramaobjetoqueserdirectamenteejecutadoporlacomputadora.

6.3.Lenguajescompilados.
Para paliar los problemas derivados del uso del lenguaje ensamblador y con el objetivo de acercar la
programacin hacia el uso de un lenguaje ms cercano al humano que al del computador, nacieron los
lenguajescompilados.Algunosejemplosdeestetipodelenguajesson:Pascal,Fortran,Algol,C,C++,etc.
Alserlenguajesmscercanosalhumano,tambinselesdenominalenguajesdealtonivel.Sonmsfcilesde
utilizar y comprender, las instrucciones que forman parte de estos lenguajes utilizan palabras y signos
reconociblesporelprogramador.
Culessonsusventajas?
Sonmuchomsfcilesdeaprenderydeutilizarquesuspredecesores.
Sereduceeltiempoparadesarrollarprogramas,ascomoloscostes.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

22/58

20/11/2014

eXe

Sonindependientesdelhardware,losprogramaspuedenejecutarseendiferentestiposdemquina.
Lalectura,interpretacinymodificacindelosprogramasesmuchomssencilla.
Pero un programa que est escrito en un lenguaje de alto nivel tambin tiene que traducirse a un cdigo que pueda utilizar la
mquina.Losprogramastraductoresquepuedenrealizarestaoperacinsellamancompiladores.

Compilador:Esunprogramacuyafuncinconsisteentraducirelcdigofuentedeunprogramaescritoenunlenguajede
altonivelalenguajemquina.Alprocesodetraduccinseleconoceconelnombredecompilacin.
Parailustrarelprocesodecompilacindeprogramasteproponemoselsiguienteenlace:
Procesodecompilacinenvariasplataformas
El compilador realizar la traduccin y adems informar de los posibles errores. Una vez subsanados, se generar el programa
traducidoacdigomquina,conocidocomocdigoobjeto.Esteprogramaannopodrserejecutadohastaquenoseleaadan
los mdulos de enlace o bibliotecas, durante el proceso de enlazado. Una vez finalizado el enlazado, se obtiene el cdigo
ejecutable.

Autoevaluacin

Durantelafasedeenlazado,seincluyenenelcdigofuentedeterminadosmdulos(bibliotecas)quesonnecesariospara
queelprogramapuedarealizarciertastareas,posteriormenteseobtendrelcdigoejecutable.
VerdaderoFalso

6.4.Lenguajesinterpretados.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

23/58

20/11/2014

eXe

Se caracterizan por estar diseados para que su ejecucin se realice a travs de un intrprete. Cada instruccin escrita en un
lenguaje interpretado se analiza, traduce y ejecuta tras haber sido verificada. Una vez realizado el proceso por el intrprete, la
instruccinseejecuta,peronoseguardaenmemoria.
Intrprete:Esunprograma traductor de un lenguaje de alto nivel en el que el proceso de traduccinydeejecucinse
llevan a cabo simultneamente, es decir, la instruccin se pasa a lenguaje mquina y se ejecuta directamente. No se
generaprogramaobjeto,niprogramaejecutable.
Los lenguajes interpretados generan programas de menor tamao que los generados por un
compilador,alnoguardarelprogramatraducidoacdigomquina.Peropresentanelinconvenientede
ser algo ms lentos, ya que han de ser traducidos durante su ejecucin. Por otra parte, necesitan
disponerenlamquinadelprogramaintrpreteejecutndose,algoquenoesnecesarioenelcasode
un programa compilado, para los que slo es necesario tener el programa ejecutable para poder
utilizarlo.
Ejemplosdelenguajesinterpretadosson:Perl,PHP,Python,JavaScript,etc.
A medio camino entre los lenguajes compilados y los interpretados, existen los lenguajes que podemos denominar pseudo
compiladosopseudointerpretados,eselcasodelLenguajeJava.Javapuedeversecomocompiladoeinterpretadoalavez,yaque
sucdigofuentesecompilaparaobtenerelcdigobinarioenformadebytecodes,quesonestructurasparecidasalasinstrucciones
mquina,conlaimportantepropiedaddenoserdependientesdeningntipodemquina(sedetallarnmsadelante).LaMquina
VirtualJavaseencargardeinterpretarestecdigoy,parasuejecucin,lotraduciracdigomquinadelprocesadorenparticular
sobreelqueseesttrabajando.

Debesconocer

PuedesentenderporquJavaesunlenguajecompiladoeinterpretadoatravsdelsiguienteesquema.
EllenguajeJavaescompiladoeinterpretado.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

24/58

20/11/2014

eXe

Autoevaluacin

En Java el cdigo fuente es compilado, obtenindose el cdigo binario en forma de bytecodes. Pero, Cul es la
extensindelarchivoresultante?

Extensin.obj.
Extensin.class.
Extensin.Java.

7.EllenguajedeprogramacinJava.

Casoprctico

AdaindicaaJuanyMaraqueellenguajeelegidoparasusdesarrollosvaaserJava.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
nuevasaplicacionesdeBKProgramacin.

7.1.QuycmoesJava?
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

25/58

20/11/2014

eXe

Javaesunlenguajesencillodeaprender,conunasintaxisparecidaaladeC++,peroenlaquesehaneliminado
elementoscomplicadosyquepuedenoriginarerrores.Javaesorientadoaobjetos,conloqueeliminamuchas
preocupaciones al programador y permite la utilizacin de gran cantidad de bibliotecas ya definidas, evitando
reescribircdigoqueyaexiste.Esunlenguajedeprogramacincreadoparasatisfacernuevasnecesidadesque
loslenguajesexistenteshastaelmomentonoerancapacesdesolventar.
UnadelasprincipalesvirtudesdeJavaessuindependenciadelhardware,yaqueelcdigoquesegeneraes
vlido para cualquier plataforma. Este cdigo ser ejecutado sobre una mquina virtual denominada Maquina
VirtualJava(MVJoJVMJavaVirtualMachine),queinterpretarelcdigoconvirtindoloacdigoespecficode
laplataformaquelosoporta.Deestemodoelprogramaseescribeunanicavezypuedehacersefuncionaren
cualquierlugar.Lemadellenguaje:Writeonce,runeverywhere.
AntesdequeaparecieraJava,ellenguajeCeraunodelosmsextendidosporsuversatilidad.Perocuandolosprogramasescritos
en C aumentaban de volumen, su manejo comenzaba a complicarse. Mediante las tcnicas de programacin estructurada y
programacinmodularseconseguanreducirestascomplicaciones,peronoerasuficiente.
FueentoncescuandolaProgramacinOrientadaaObjetos(POO)entraenescena,aproximandonotablementelaconstruccinde
programas al pensamiento humano y haciendo ms sencillo todo el 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:
ElcdigogeneradoporelcompiladorJavaesindependientedelaarquitectura.
Esttotalmenteorientadoaobjetos.
SusintaxisessimilaraCyC++.
Esdistribuido,preparadoparaaplicacionesTCP/IP.
Disponedeunamplioconjuntodebibliotecas.
Esrobusto,realizandocomprobacionesdelcdigoentiempodecompilacinydeejecucin.
Laseguridadestgarantizada,yaquelasaplicacionesJavanoaccedenazonasdelicadasdememoriaodesistema.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

26/58

20/11/2014

eXe

Debesconocer

Obtnunadescripcindetalladadelascaractersticasreseadasanteriormenteatravsdelsiguienteartculo:
CaractersticasdetalladasdellenguajeJava

7.2.Brevehistoria.
Javasurgien1991cuandoungrupodeingenierosdeSunMicrosystems trataron de disear un nuevo lenguaje de programacin
destinadoaprogramarpequeosdispositivoselectrnicos.Ladificultaddeestosdispositivosesquecambiancontinuamenteypara
queunprogramafuncioneenelsiguientedispositivoaparecido,hayquerescribirelcdigo.PoresolaempresaSunqueracrearun
lenguajeindependientedeldispositivo.
Pero no fue hasta 1995 cuando pas a llamarse Java, dndose a conocer al pblico como lenguaje de programacin para
computadores.Javapasaaserunlenguajetotalmenteindependientedelaplataformayalavezpotenteyorientadoaobjetos.Esa
filosofa y su facilidad para crear aplicaciones para redes TCP/IP ha hecho que sea uno de los lenguajes ms utilizados en la
actualidad.
ElfactordeterminanteparasuexpansinfuelaincorporacindeunintrpreteJavaenlaversin2.0delnavegadorWebNetscape
Navigator,loquesupusounagranrevueloenInternet.Aprincipiosde1997apareciJava1.1queproporcionsustancialesmejoras
allenguaje.Java1.2,mstarderebautizadocomoJava2,naciafinalesde1998.
El principal objetivo del lenguaje Java es llegar a ser el nexouniversal que conecte a los usuarios con la informacin, est sta
situadaenelordenadorlocal,enunservidorWeb,enunabasededatosoencualquierotrolugar.
ParaeldesarrollodeprogramasenlenguajeJavaesnecesarioutilizarunentornodedesarrollodenominadoJDK(JavaDevelopment
Kit),queproveedeuncompiladoryunentornodeejecucin(JREJavaRunEnvironment)paralosbytecodesgeneradosapartir
delcdigofuente.Aligualquelasdiferentesversionesdellenguajehanincorporadomejoras,elentornode desarrollo y ejecucin
tambinhasidomejoradosucesivamente.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

27/58

20/11/2014

eXe

Java2eslaterceraversindellenguaje,peroesalgomsqueunlenguajedeprogramacin,incluyelossiguienteselementos:
Unlenguajedeprogramacin:Java.
Unconjuntodebibliotecasestndarquevienenincluidasenla plataforma y que son necesarias en todo entorno Java. Es el
JavaCore.
Un conjunto de herramientas para el desarrollo de programas, como es el compilador de bytecodes, el generador de
documentacin,undepurador,etc.
Unentornodeejecucinqueendefinitivaesunamquinavirtualqueejecutalosprogramastraducidosabytecodes.
ElsiguienteesquemamuestraloselementosfundamentalesdelaplataformadedesarrolloJava2.

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

Parasaberms

SideseasconocermssobrelosorgenesdellenguajeJava,aquteofrecemosmsinformacin:
LosorgenesdeJava
HistoriadeJava
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

28/58

20/11/2014

eXe

LneadetiempodelahistoriadeJava

7.3.LaPOOyJava.
En Java, los datos y el cdigo (funciones o mtodos) se combinan en entidades llamadas objetos. El objeto tendr un
comportamiento(sucdigointerno)yunestado(losdatos).Losobjetospermitenlareutilizacindelcdigoypuedenconsiderarse,
ensmismos,comopiezasreutilizablesenmltiplesproyectosdistintos.Estacaractersticapermitereducireltiempodedesarrollode
software.
Porsimplificarunpocolascosas,unprogramaenJavasercomounarepresentacinteatralenlaquedebemosprepararprimero
cadapersonaje,definirsuscaractersticasyquvaasaberhacer.Cuandoestafaseestterminada,laobrasedesarrollarsacando
personajesaescenayhacindolesinteractuar.
Al emplear los conceptos de la Programacin Orientada a Objetos (POO), Java incorpora las tres caractersticas propias de este
paradigma: encapsulacin, herencia y polimorfismo. Los patrones o tipos de objetos se denominan clases y los objetos que
utilizanestospatronesopertenecenadichostipos,seidentificanconelnombredeinstancias.Pero,nohayquealarmarse,estos
conceptossevernmsadelanteensucesivasunidades.

Otroejemploparaseguiraclarandoideas,piensaenlosbloquesdejuegosdeconstruccin.Suponemosqueconocesloscubosde
plstico en varios colores y tamaos. Por una de sus caras disponen de pequeos conectores circulares y en otra de sus caras
pequeosorificiosenlosquepuedenconectarseotrosbloques,conelobjetivoprincipaldepermitirconstruirformasmsgrandes.Si
usasdiferentespiezasdellegopuedesconstruiraviones,coches,edificios,etc.Sitefijasbien,cadapiezaesunobjetopequeoque
puedeunirseconotrosobjetosparacrearobjetosmsgrandes.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

29/58

20/11/2014

eXe

Pues bien, aproximadamente as es como funcionalaprogramacindirigidaaobjetos:unimoselementos


pequeos para construir otros ms grandes. Nuestros programas estarn formados por muchos
componentes (objetos) independientes y diferentes cada uno con una funcin determinada en nuestro
softwareyquepodrcomunicarseconlosdemsdeunamanerapredefinida.

7.4.Independenciadelaplataformaytrabajoenred.
ExistendoscaractersticasquedistinguenaJavadeotroslenguajes,comosonlaindependenciadelaplataformaylaposibilidadde
trabajarenredo,mejor,laposibilidaddecrearaplicacionesquetrabajanenred.
Estascaractersticaslasvamosaexplicaracontinuacin:
a. Independencia: Los programas escritos en Java pueden ser ejecutados en cualquier tipo de hardware. El cdigo fuente es
compilado,generndoseelcdigoconocidocomoJavaBytecode(instruccionesmquinasimplificadasquesonespecficasde
laplataformaJava),elbytecodeserinterpretadoyejecutadoenlaMquinaVirtualJava(MVJoJVMJavaVirtualMachine)
queesunprogramaescritoencdigonativodelaplataformadestinoentendibleporelhardware.Conestoseevitatenerque
realizarunprogramadiferenteparacadaCPUoplataforma.
Portanto,lapartequerealmenteesdependientedelsistemaeslaMquinaVirtualJava,ascomolaslibreraso bibliotecas
bsicasquepermitenaccederdirectamentealhardwaredelamquina.
b. Trabajoenred:EstacapacidaddellenguajeofrecemltiplesposibilidadesparalacomunicacinvaTCP/IP.Parapoderhacerlo
existenlibrerasquepermitenelaccesoylainteraccinconprotocoloscomohttp,ftp,etc.,facilitandoalprogramadorlastareas
deltratamientodelainformacinatravsderedes.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

30/58

20/11/2014

eXe

Autoevaluacin

QuelementoesimprescindibleparaqueunaaplicacinescritaenJavapuedaejecutarseenunordenador?

QuedispongadeconexinaInternetydelhardwareadecuado.
QuetengainstaladounnavegadorwebyconexinaInternet.
QuetengalaMquinaVirtualJavaadecuadainstalada.

7.5.Seguridadysimplicidad.
Junto a las caractersticas diferenciadoras del lenguaje Java relacionadas con la independencia y el
trabajoenred,handedestacarsedosvirtudesquehacenaestelenguajeunodelosmsextendidos
entrelacomunidaddeprogramadores:suseguridadysusimplicidad.
a. Seguridad:Enprimerlugar,losposiblesaccesosazonasdememoriasensiblesqueenotros
lenguajescomoCyC++podansuponerpeligrosimportantes,sehaneliminadoenJava.
En segundo lugar, el cdigo Java es comprobado y verificado para evitar que determinadas
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

31/58

20/11/2014

eXe

secciones del cdigo produzcan efectos no deseados. Los test que se aplican garantizan que las operaciones, operandos,
conversiones,usodeclasesydemsaccionessonseguras.
Y en tercer lugar, Java no permite la apertura de ficheros en la mquina local, tampoco permite ejecutar ninguna aplicacin
nativa de una plataforma e impide que se utilicen otros ordenadores como puente, es decir, nadie puede utilizar nuestra
mquinaparahacerpeticionesorealizaroperacionesconotra.
Endefinitiva,podemosafirmarqueJavaesunlenguajeseguro.
b. Simplicidad:AunqueJavaestanpotentecomoCoC++,esbastantemssencillo.Poseeunacurvadeaprendizajemuyrpida
y, para alguien que comienza a programar en este lenguaje, le resulta relativamente fcil comenzar a escribir aplicaciones
interesantes.
SihasprogramadoalgunavezenCoC++encontrarsqueJavateponelascosasmsfciles,yaquesehaneliminado:la
aritmtica de punteros, los registros, la definicin de tipos, la gestin de memoria, etc. Con esta simplificacin se reduce
bastante la posibilidad de cometer errores comunes en los programas. Un programador experimentado en C o C++ puede
cambiaraestelenguajerpidamenteyobtenerresultadosenmuypocoespaciodetiempo.
MuyrelacionadoconlasimplicidadqueaportaJavaestlaincorporacindeunelementomuytilcomoeselRecolectorde
Basura (Garbage collector). Permite al programador liberarse de la gestin de la memoria y hace que ciertos bloques de
memoriapuedanreaprovecharse,disminuyendoelnmerodehuecoslibres(fragmentacindememoria).
Cuandorealicemosprogramas,crearemosobjetos,haremosquestosinteraccionen,etc.Todasestasoperacionesrequieren
de uso de memoria del sistema, pero la gestin de sta 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.ElentornodeJavaborrarlosobjetoscuandodeterminequenosevanautilizarms.Esteprocesoesconocido
comorecoleccindebasura.

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
En Java se ha simplificado la gestin de memoria a travs de la eliminacin de la Aritmtica de , por lo que la
incorporacindelGarbageCollectorevitaqueseproduzcauncrecimientodeloshuecoslibresenmemoria,querecibeel
nombrededememoria.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

32/58

20/11/2014

eXe

7.6.JavaylosBytecodes.
Un programa escrito en Java no es directamente ejecutable, es necesario que el cdigo fuente sea interpretado por la Maquina
VirtualJava.Culessonlospasosquesesiguendesdequesegeneraelcdigofuentehastaqueseejecuta?Acontinuacinse
detallancadaunodeellos.

Unavezescritoelcdigofuente(archivosconextensin.Java),steesprecompiladogenerndoseloscdigosdebytes,Bytecodes
oJavaBytecodes(archivosconextensin.class)queserninterpretadosdirectamenteporlaMaquinaVirtualJavaytraducidosa
cdigonativodelaplataformasobrelaqueseestejecutandoelprograma.

Bytecode:Sonunconjuntodeinstruccionesenlenguajemquinaquenosonespecficasaningnprocesadorosistema
decmputo.Unintrpretedecdigodebytes(bytecodes)paraunaplataformaespecficaserquienlosejecute.Aestos
intrpretestambinselesconocecomoMquinasVirtualesJavaointrpretesJavadetiempodeejecucin.
En el proceso de precompilacin, existe un verificador de cdigos de bytes que se asegurar de que se cumplen las siguientes
condiciones:
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

33/58

20/11/2014

eXe

ElcdigosatisfacelasespecificacionesdelaMquinaVirtualJava.
Noexisteamenazacontralaintegridaddelsistema.
Noseproducendesbordamientosdememoria.
Losparmetrosysustipossonadecuados.
Noexistenconversionesdedatosnopermitidas.
Paraqueunbytecodepuedaserejecutadoencualquierplataforma,esimprescindiblequedichaplataformacuenteconelintrprete
adecuado, es decir, la mquina virtual especfica para esa plataforma. En general, la Mquina Virtual Java es un programa de
reducidotamaoygratuitoparatodoslossistemasoperativos.

8.ProgramasenJava.

Casoprctico

JuancelebraqueBKProgramacinvayaadesarrollarsusprogramasenunlenguajecomoJava.Enalgunasocasiones
ha asistido a congresos y ferias de exposiciones de software en las que ha podido intercambiar impresiones con
compaerosdeprofesin sobre los diferentes lenguajes que utilizan en sus proyectos. Una gran mayora destacaba lo
fcilypotentequeesprogramarenJava.
Juan est entusiasmado y pregunta: Ada, cundo empezamos? Tienes cdigo fuente para empezar a ver la
sintaxis?Podremosutilizaralgnentornodedesarrolloprofesional?
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

34/58

20/11/2014

eXe

Ada responde sonriendo: Manos a la obra! Mara, preparada? Vamos a echarle un


vistazoaestefragmentodecdigo...

Hasta ahora, hemos descrito el lenguaje de programacin Java, hemos hecho un recorrido por su historia y nos hemos instruido
sobresufilosofadetrabajo,perotepreguntarsCundoempezamosadesarrollarprogramas?Quelementosformanpartede
unprogramaenJava?Qusenecesitaparaprogramarenestelenguaje?Podemoscrearprogramasdediferentetipo?
No te impacientes, cada vez estamos ms cerca de comenzar la experiencia con el lenguaje de programacin Java. Iniciaremos
nuestrocaminoconociendocualessonloselementosbsicosdeunprogramaJava,laformaenquedebemosescribirelcdigoylos
tiposdeaplicacionesquepuedencrearseenestelenguaje.

8.1.Estructuradeunprograma.
En el grfico al que puedes acceder a continuacin, se presenta la estructura general de un programa realizado en un lenguaje
orientadoaobjetoscomoesJava.

Vamosaanalizarcadaunodeloselementosqueaparecenendichogrfico:
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

35/58

20/11/2014

eXe

publicclassClase_Principal:Todoslosprogramashandeincluirunaclasecomoesta.Esunaclasegeneralenlaqueseincluyen
todos los dems elementos del programa. Entre otras cosas, contiene el mtodo o funcin main() que representa al programa
principal,desdeelquesellevaracabolaejecucindelprograma.Estaclasepuedecontenerasuvezotrasclasesdelusuario,pero
slounapuedeserpublic.Elnombredelfichero.Javaquecontieneelcdigofuentedenuestroprograma,coincidirconelnombre
delaclasequeestamosdescribiendoenestaslneas.

Recomendacin

Ten en cuenta que Java distingue entre maysculas y minsculas. Si le das a la clase principal el nombre
PrimerPrograma, el archivo .Java tendr como identificador PrimerPrograma.Java, que es totalmente diferente a
primerprograma.Java. Adems, para Java los elementos PrimerPrograma y primerprograma seran considerados dos
clasesdiferentesdentrodelcdigofuente.

public static void main (String[] args): Es el mtodo que representa al programa principal, en l se podrn incluir las
instrucciones que estimemos oportunas para la ejecucin del programa. Desde l se podr hacer uso del resto de clases
creadas.TodoslosprogramasJavatienenunmtodomain.
Comentarios: Los comentarios se suelen incluir en el cdigo fuente para realizar aclaraciones, anotaciones o cualquier otra
indicacinqueelprogramadorestimeoportuna.Estoscomentariospuedenintroducirsededosformas,con//ycon/**/.Conla
primeraformaestaramosestableciendounanicalneacompletadecomentarioy,conlasegunda,con/*comenzaramosel
comentarioystenoterminarahastaquenoinsertramos*/.
Bloques de cdigo: son conjuntos de instrucciones que se marcan mediante la apertura y cierre de llaves { }. El cdigo as
marcadoesconsideradointernoalbloque.
Puntoycoma:aunqueenelejemplonohemosincluidoningunalneadecdigoquetermineconpuntoycoma,hayquehacer
hincapi en que cada lnea de cdigo ha de terminar con punto y coma (). En caso de no hacerlo, tendremos errores
sintcticos.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

36/58

20/11/2014

eXe

Autoevaluacin

publicstaticvoidmain(String[]args)eslaclasegeneraldelprograma.
VerdaderoFalso

8.2.ElentornobsicodedesarrolloJava.
Ya conoces cmo es la estructura de un programa en Java, pero, qu necesitamos para llevarlo a la
prctica? La herramienta bsica para empezar a desarrollar aplicaciones en Java es el JDK (Java
Development Kit o Kit de Desarrollo Java), que incluye un compilador y un intrprete para lnea de
comandos.Estosdosprogramassonlosempleadosenlaprecompilacineinterpretacindelcdigo.
Comoveremos,existendiferentesentornosparalacreacindeprogramasenJavaqueincluyenmultitudde
herramientas, pero por ahora nos centraremos en el entorno ms bsico, extendido y gratuito, el Java
DevelopmentKit(JDK).SegnseindicaenlapropiapginawebdeOracle,JDKesunentornodedesarrollo
para construir aplicaciones, applets y componentes utilizando el lenguaje de programacin Java. Incluye
herramientastilesparaeldesarrolloypruebadeprogramasescritosenJavayejecutadosenlaPlataforma
Java.
Asmismo,juntoaJDKseincluyeunaimplementacindelentornodeejecucinJava,elJRE(JavaRuntimeEnvironment)paraser
utilizadoporelJDK.ElJREincluyelaMquinaVirtualdeJava(MVJJVMJavaVirtualMachine),bibliotecasdeclasesyotros
ficherosquesoportanlaejecucindeprogramasescritosenellenguajedeprogramacinJava.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

37/58

20/11/2014

eXe

Debesconocer

Para poder utilizar JDK y JRE es necesario realizar la descarga e instalacin de stos. Puedes seguir los pasos del
procesoacontinuacin:

Resumentextualalternativo

Para poder desarrollar nuestros primeros programas en Java slo necesitaremos un editor de texto plano y los elementos que
acabamosdeinstalaratravsdeJavaSE.

Autoevaluacin

PodemosdesarrollarprogramasescritosenJavamedianteuneditordetextosyatravsdelJREpodremosejecutarlos.
VerdaderoFalso
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

38/58

20/11/2014

eXe

8.3.LaAPIdeJava.
Junto con el kit de desarrollo que hemos descargado e instalado anteriormente, vienen incluidas
gratuitamentetodaslasbibliotecasdelaAPI(AplicationProgrammingInterfaceInterfazdeprogramacin
de aplicaciones) de Java, es lo que se conoce como Bibliotecas de Clases Java. Este conjunto de
bibliotecas proporciona al programador paquetes de clases tiles para la realizacin de mltiples tareas
dentrodeunprograma.Estorganizadaenpaqueteslgicos,dondecadapaquetecontieneunconjuntode
clasesrelacionadassemnticamente.
En dcadas pasadas una biblioteca era un conjunto de programas que contenan cientos de rutinas (una
rutina es un procedimiento o funcin bien verificados, en determinado lenguaje de programacin). Las
rutinas de biblioteca manejaban las tareas que todos o casi todos los programas necesitaban. El
programadorpodarecurriraestabibliotecaparadesarrollarprogramasconrapidez.
Una biblioteca de clases es un conjunto de clases de programacin orientada a objetos. Esas clases contienen mtodos que son
tilesparalosprogramadores.EnelcasodeJavacuandodescargamoselJDKobtenemoslabibliotecadeclasesAPI.Utilizarlas
clases y mtodos de las APIs de Java reduce el tiempo de desarrollo de los programas. Tambin, existen diversas bibliotecas de
clasesdesarrolladasportercerosquecontienencomponentesreutilizablesdesoftware,yestndisponiblesatravsdelaWeb.

Parasaberms

SiquieresaccederalainformacinoficialsobrelaAPIdeJava,teproponemoselsiguienteenlace(estenIngls).
InformacinoficialsobrelaAPIdeJava

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

39/58

20/11/2014

eXe

Autoevaluacin

IndicaqunoeslaAPIdeJava:

Unentornointegradodedesarrollo.
Unconjuntodebibliotecasdeclases.
UnapartedelJDK,incluidoenelJavaSE.

8.4.Afinandolaconfiguracin.
Para que podamos compilar y ejecutar ficheros Java es necesario que realicemos unos pequeos
ajustesenlaconfiguracindelsistema.Vamosaindicarledndeencontrarlosficherosnecesariospara
realizar las labores de compilacin y ejecucin, en este caso Javac.exe y Java.exe, as como las
librerascontenidasenlaAPIdeJavaylasclasesdelusuario.
LavariablePATH:ComoannodisponemosdeunIDE(IntegratedDevelopmentEnvironmentEntono
IntegradodeDesarrollo)lanicaformadeejecutarprogramasesatravsdelneadecomandos.Pero
slopodremosejecutarprogramasdirectamentesilarutahaciaellosestindicadaenlavariablePATH
delordenador.EsnecesarioqueincluyamoslarutahaciaestosprogramasennuestravariablePATH.
EstarutaserellugardondeseinstalelJDKhastasudirectoriobin.
Paraello,siguelasindicacionesquetemostramosacontinuacin:

Debesconocer

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

40/58

20/11/2014

eXe

EnlasiguienteanimacinaprenderscomoconfigurarlavariablePATHenWindows.

Resumentextualalternativo

Parasaberms

SideseasconocermssobrelaconfiguracindevariablesdeentornoensistemasWindowsyLinux,teproponemoslos
siguientesenlaces:
ConfigurarelPATHenWindows
ConfigurarvariablesdeentornoenUbuntu

LavariableCLASSPATH:estavariabledeentornoestablecedndebuscarlasclasesobiblitecasdelaAPIdeJava,ascomolas
clases creadas por el usuario. Es decir, los ficheros .class que se obtienen 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
utilizadosdirectamenteporelJDK,conteniendoensuinteriorarchivosconextensinclass.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\bin)
SinoexistelavariableCLASSPATHdebescrearla,paramodificarsucontenidosigueelmismomtodoquehemosempleadoparala
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

41/58

20/11/2014

eXe

modificacindelvalordelavariablePATH,anteriormentedescrito.Tenencuentaquelarutaquedebesincluirserellugardondese
instalelJDKhastasudirectoriolib.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\lib)

Autoevaluacin

Qu variable de sistema o de entorno debemos configurar correctamente para que podamos compilar directamente
desdelalneadecomandosnuestrosprogramasescritosenlenguajeJava?

CLASSPATH.
PATH.
Javac.exe.

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 realiza mediante el programa Javac incluido en el software de
desarrollodeJava.

Parallevaracabolacompilacindesdelalneadecomandos,escribiremos:
Javacarchivo.Java
DondeJavaceselcompiladordeJavayarchivo.Javaesnuestrocdigofuente.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

42/58

20/11/2014

eXe

Elresultado de la compilacin ser un archivo con el mismo nombre que el archivo Java pero con la
extensin class. Esto ya es el archivo con el cdigo en forma de bytecode. Es decir con el cdigo
precompilado.Sienelcdigofuentedenuestroprogramafiguraranmsdeunaclase,veremoscomoal
realizar la compilacin se generarn tantos archivos con extensin .class como clases tengamos.
Adems,siestasclasestenanmtodomainpodremosejecutardichosarchivosporseparadoparaver
elfuncionamientodedichasclases.
Para que el programa pueda ser ejecutado, siempre y cuando est incluido en su interior el mtodo
main,podremosutilizarelinterpreteincluidoenelkitdedesarrollo.

Laejecucindenuestroprogramadesdelalneadecomandospodremoshacerlaescribiendo:
Javaarchivo.class
DondeJavaeselintrpreteyarchivo.classeselarchivoconelcdigoprecompilado.

Ejercicioresuelto

Vamosallevaralaprcticatodoloquehemosestadodetallandoatravsdelacreacin,compilacinyejecucindeun
programasencilloescritoenJava.
Observael 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.Recuerdaqueelnombredelaclaseprincipal(enelcdigodeejemploMiModulo)debeserexactamenteigual
aldelarchivoconextensin.Java,sitienesestoencuentalaaplicacinpodrsercompiladacorrectamenteyejecutada.
/**
*LaclaseMiModuloimplementaunaaplicacinque
*simplementeimprime"MduloprofesionalProgramacin"enpantalla.
*/
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

43/58

20/11/2014

eXe

classMiModulo{
publicstaticvoidmain(String[]args){
System.out.println("MduloprofesionalProgramacin")//Muestralacadenadecaracteres.
}
}
Accedealalneadecomandosyteclea,enlacarpetadondehasguardadoelarchivoJava,elcomandoparacompilarlo:
JavacMiModulo.Java
El compilador genera entonces un fichero de cdigo de bytes: MiModulo.class. Si visualizas ahora el contenido de la
carpeta vers que en ella est el archivo .Java y uno o varios (depende de las clases que contenga el archivo con el
cdigofuente)archivos.class.
Finalmente,pararealizarlaejecucindelprogramadebesutilizarlasiguientesentencia:
JavaMiModulo.Java
Sitodohaidobien,versescritoenpantalla:MduloprofesionalProgramacin.

8.6.TiposdeaplicacionesenJava.
La versatilidad del lenguaje de programacin Java permite al programador crear distintos tipos de
aplicaciones.Acontinuacin,describiremoslascaractersticasmsrelevantesdecadaunodeellos:
Aplicacionesdeconsola:
Sonprogramasindependientesaligualqueloscreadosconloslenguajestradicionales.
Secomponencomomnimodeunarchivo.classquedebecontarnecesariamenteconelmtodo
main.
NonecesitanunnavegadorwebyseejecutancuandoinvocamoselcomandoJavaparainiciarla
Mquina Virtual de Java (JVM). De no encontrarse el mtodo main la aplicacin no podr
ejecutarse.
Lasaplicacionesdeconsolaleenyescribenhaciaydesdelaentradaysalidaestndar,sinningunainterfazgrficade
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

44/58

20/11/2014

eXe

usuario.
Aplicacionesgrficas:
Aquellas que utilizan las clases con capacidades grficas, como Swing que es la biblioteca para la interfaz grfica de
usuarioavanzadadelaplataformaJavaSE.
Incluyenlasinstruccionesimport,queindicanalcompiladordeJavaquelasclasesdelpaqueteJavax.swingseincluyan
enlacompilacin.
Applets:
Son programas incrustados en otras aplicaciones, normalmente una pgina web que se muestra en un navegador.
Cuando el navegador carga una web que contiene un applet, ste se descarga en el navegador web y comienza a
ejecutarse.Estonospermitecrearprogramasquecualquierusuariopuedeejecutarcontansolocargarlapginaweben
sunavegador.
SepuedendescargardeInternetyseobservanenunnavegador.LosappletssedescarganjuntoconunapginaHTML
desdeunservidorwebyseejecutanenlamquinacliente.
No tienen acceso a partes sensibles (por ejemplo: no pueden escribir archivos), a menos que uno mismo le d los
permisosnecesariosenelsistema.
Notienenunmtodoprincipal.
SonmultiplataformaypuedenejecutarseencualquiernavegadorquesoporteJava.
Servlets:
SoncomponentesdelapartedelservidordeJavaEE,encargadosdegenerarrespuestasalaspeticionesrecibidasde
losclientes.
Los servlets, al contrario de los applets, son programas que estn pensados para trabajar en el lado del servidor y
desarrollaraplicacionesWebqueinteractenconlosclientes.
Midlets:
SonaplicacionescreadasenJavaparasuejecucinensistemasdepropsitosimpleodispositivosmviles.Losjuegos
Javacreadosparatelfonosmvilessonmidlets.
Son programas creados para dispositivos embebidos (se dedican a una sola actividad), ms especficamente para la
mquinavirtualJavaMicroEdition(JavaME).
Generalmentesonjuegosyaplicacionesqueseejecutanentelfonosmviles.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

45/58

20/11/2014

eXe

Autoevaluacin

UnAppletestotalmenteseguroyaquenopuedeacceder,enningncaso,azonassensiblesdelsistema.Esdecir,no
podraborraromodificarnuestrosarchivos.
VerdaderoFalso

9.EntornosIntegradosdeDesarrollo(IDE).

Casoprctico

Ada,JuanyMaraestnnavegandoporInternetbuscandoinformacinsobreherramientas
quelesfacilitentrabajarenJava.Adaaconsejautilizaralgunodelosentornosdedesarrollo
integradoexistentes,yaquelasposibilidadesyrapidezqueofrecen,aumentaranlacalidad
yreduciraneltiemporequeridoparadesarrollarsusproyectos.
Juan,queestchateandoconunmiembrodeunforodeprogramadoresalquepertenece,
corroboraloqueAdarecomienda.
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
pasoposterior,necesitabaemplearunaterceraherramientaparaelensambladodelprograma.Porltimo,podaprobaratravsde
lalneadecomandoselarchivoejecutable.Elproblemasurgacuandoseproducaalgnerror,loqueprovocabatenerquevolvera
iniciarelprocesocompleto.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

46/58

20/11/2014

eXe

Estascircunstanciashacanqueeldesarrollodesoftwarenoestuvieraoptimizado.Conelpasodeltiempo,sefuerondesarrollando
aplicacionesqueincluanlasherramientasnecesariaspararealizartodoelprocesodeprogramacindeformamssencilla,fiabley
rpida.Paracadalenguajedeprogramacinexistenmltiplesentornosdedesarrollo,cadaunoconsusventajaseinconvenientes.
Dependiendodelasnecesidadesdelapersonaquevaaprogramar,lafacilidaddeusooloagradablequeleresultetrabajarconl,
seelegirentreunosuotrosentornos.
ParaellenguajedeprogramacinJavaexistenmltiplesalternativas,siendolosprincipales entornos de desarrollo NetBeans(que
cuenta con el apoyo de la empresa Sun), Eclipse y JCreator. Los dos primeros son gratuitos, con soporte de idiomas y
multiplataforma(Windows,Linux,MacOS).
Yculserconelquevamosatrabajar?Elentornoquehemosseleccionadollevaracabonuestrosdesarrollosdesoftwareeneste
mduloprofesionalserNetBeans,alhabersidoconstruidoporlamismacompaaquecreJava,serdecdigoabiertoyofrecer
capacidadesprofesionales.Aunque,notepreocupes,tambinharemosunrecorridoporotrosentornosdestacables.

9.1.Quson?
Son aplicaciones que ofrecen la posibilidad de llevar a cabo el proceso completo de desarrollo de software a
travsdeunnicoprograma.Podremosrealizar las labores de edicin, compilacin, depuracin, deteccin de
errores, correccin y ejecucin de programas escritos en Java o en otros lenguajes de programacin, bajo un
entornogrfico(nomediantelneadecomandos).Juntoalascapacidadesdescritas,cadaentornoaadeotras
queayudanarealizarelprocesodeprogramacin, como por ejemplo: cdigo fuente coloreado, plantillas para
diferentestiposdeaplicaciones,creacindeproyectos,etc.
Hay que tener en cuenta que un entorno de desarrollo no es ms que una fachada para el proceso de
compilacinyejecucin de un programa. Qu quiere decir eso? Pues que si tenemos instalado un IDE y no
tenemosinstaladoelcompilador,notenemosnada.

Parasaberms

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

47/58

20/11/2014

eXe

SideseasconoceralgomssobreloquesonlosEntornosIntegradosdeDesarrollo(IDE)accedealasdefinicionesque
teproponemosacontinuacin:
DefinicindeEntornoIntegradodeDesarrollo
DefinicindeEntornoIntegradodeDesarrolloenWikipedia

9.2.IDE'sactuales.
Existen en el mercado multitud de entornos de desarrollo para el lenguaje Java, los hay de libre distribucin, de pago, para
principiantes,paraprofesionales,queconsumenmsrecursos,quesonmsligeros,msamigables,mscomplejosqueotros,etc.
Entrelosquesongratuitosodelibredistribucintenemos:
NetBeans
Eclipse
BlueJ
Jgrasp
JcreatorLE
Entrelosquesonpropietariosodepagotenemos:
IntelliJIDEA
Jbuilder
Jcreator
JDeveloper

Debesconocer

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

48/58

20/11/2014

eXe

Cadaunodelosentornosnombradosmsarribaposeecaractersticasqueloshacendiferentesunosdeotros,peropara
tenerunaideageneraldelaversatilidadypotenciadecadaunodeellos,accedealasiguientetablacomparativa:
ComparativaentornosparaJava

Pero,culoculessonlosmsutilizadosporlacomunidaddeprogramadoresJava?Elpuestodehonor
selodisputanentreEclipse,IntelliJIDEAyNetBeans.Enlossiguientesepgrafesharemosunadescripcin
deNetBeansyEclipse,paraposteriormentedesarrollarlospuntosclavesdelentornoNetBeans.

Parasaberms

Siquieresconocerlasituacinactualdeusoycompararlosdiferentesentornosintegradosdedesarrolloparaellenguaje
deprogramacinJava,puedesampliardatosenelsiguienteartculo:
ArtculoconcomparativasobreutilizacindeentornosJava.(Eningls)
ParaaccederaloslugaresdeInternetdondeobtenerlosdiferentesentornosintegradosdedesarrollo,puedesutilizarla
listaqueteofrecemosenesteenlace:
ListadoconaccesoalaswebsdelosdiferentesentornosJava

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

49/58

20/11/2014

eXe

Autoevaluacin

CuldelossiguientesentornossloestsoportadoenlaplataformaWindows?

Eclipse.
IntellijIDEA.
Jcreator.

9.3.ElentornoNetBeans.
Comosehaindicadoanteriormente,elentornodedesarrolloquevamosautilizaralolargodeloscontenidosdel
mduloprofesionalserNetBeans.Porloquevamosprimeroaanalizarsuscaractersticasydestacarlasventajas
quepuedeaportarsuutilizacin.
Se trata de un entorno de desarrollo orientado principalmente al lenguaje Java, aunque puede servir para otros lenguajes de
programacin. Es un producto libre y gratuito sin restricciones de uso. Es un proyecto de cdigo abierto de gran xito, con una
comunidaddeusuariosnumerosa,encontinuocrecimientoyapoyadoporvariasempresas.
El origen de este entorno hay que buscarlo en un proyecto realizado por estudiantes de la Repblica Checa. Fue el primer IDE
creadoenlenguajeJava.Untiempomstarde,seformunacompaaqueseracompradaen1999porSunMicrosystems(quien
habacreadoellenguajeJava).Pocodespus,SundecidiqueelproductoseralibreydecdigoabiertoynaciNetbeanscomo
IDEdecdigoabiertoparacrearaplicacionesJava.
NetBeansllevatiempopugnandoconEclipseporconvertirseenlaplataformamsimportanteparacrearaplicacionesenJava.Hoy
en da es un producto en el que participan decenas de empresas con Sun a la cabeza. Sigue siendo software libre y ofrece las
siguientesposibilidades:
EscribircdigoenC,C++,Ruby,Groovy,Javascript,CSSyPHPademsdeJava.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

50/58

20/11/2014

eXe

PermitircrearaplicacionesJ2EEgraciasaqueincorporaservidoresdeaplicacionesJava(actualmenteGlassfishyTomcat)
CrearaplicacionesSwingdeformasencilla,alestilodelVisualStudiodeMicrosoft.
CrearaplicacionesJMEparadispositivosmviles.
Laltimaversinlanzadaen2011eslaNetBeans7.0.
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de
componentes de software llamados mdulos. Un mdulo es un archivo Java que contiene clases de
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. Debido a que los mdulos
pueden ser desarrollados independientemente, las aplicaciones basadas en esta plataforma pueden ser extendidas fcilmente por
cualquieraquedesarrolletambinsoftware.
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 desarrollo de aplicaciones Java en una sola descarga,
permitiendoalapersonaquevaarealizarelprogramacomenzaratrabajarinmediatamente.

Parasaberms

Encuentramsinformacinsobreestaplataformaenlosenlacesqueteproponemosacontinuacin:
InformacinoficialsobreNetBeans
VersionesdelentornoNetBeans

9.4.Instalacinyconfiguracin.
https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

51/58

20/11/2014

eXe

PararealizarlainstalacindelentornoNetBeans,seguiremoslossiguientespasosbsicos:
1. Descarga de la versin deseada desde la web oficial o desde los enlaces propuestos ms abajo. La
versincompletacontienetodaslasposibilidadesaunqueeslamspesada(unos240MegaBytes).En
nuestrocaso,porestarenfasedeiniciacin,podrasersuficientedescargarlaversinmsbsica(unos
60MegaBytes).
2. Seleccionarlaplataformaosistemaoperativo,existenversionesparaWindows,LinuxyMacOS.Tanto
enWindowscomoenLinux,sedescargaunarchivoejecutablequeseencargadelainstalacin.
3. Seleccionarelidioma.
4. Comenzar la descarga del archivo de instalacin ejecutable y una vez finalizada, lanzar ste,
comenzandolainstalacinennuestroequipo.
5. En las primeras pantallas, seleccionaremos los componentes a instalar. Como mnimo, para poder
programarenJavaserimprescindibleinstalarelIDEbsicoyJavaSE.
6. Posteriormente, establecemos el directorio donde se instalar NetBeans, as como la carpeta que contiene el JDK que se
utilizarpordefecto.
7. Finalmente,lainstalacinsecompletaydispondremosdeesteentornototalmenteoperativo.
Para llevar a cabo las operaciones descritas en el paso 1, te ofrecemos la posibilidad de descargar cada una de las partes por
separado,obien,enconjunto,atravsdelossiguientesenlaces:
DescarganicamenteNetBeanssitienesyainstaladoelJDK.(EstaversinannoincluyelenguajeEspaol)
DescargasloNetBeansenEspaol,sinJDK
DescargaNetBeansyJDKdesdelapginaoficialdeORACLE

Debesconocer

Paraaprendercmorealizarlainstalacincompleta,JDKyNetBeans,ensusltimasversionesesimportantequesigas
lasindicacionesquesemuestranenelsiguienteartculo:
GuaparalainstalacindetalladadelJDKyNetBeansensuversincompleta

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

52/58

20/11/2014

eXe

Parasaberms

Sieresdelosquelegustalaaccin,msqueleerlostutoriales,enestevdeopodrsseguirelprocesodedescargae
instalacindeNetBeansbajolasplataformasWindowsyLinux.

Resumentextualalternativo

9.5.Aspectodelentornoygestindeproyectos.
La pantalla inicial de nuestro entorno de desarrollo ofrece accesos directos a las operaciones ms usuales: aprendizaje inicial,
tutoriales,ejemplos,demos,losltimosprogramasrealizadosylasnovedadesdelaversin.
Para comenzar a describir el aspecto del entorno, es necesario crear un nuevo proyecto accediendo al men File New Project,
indicaremoseltipodeaplicacinquevamosacrear.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

53/58

20/11/2014

eXe

Debesconocer

Para continuar con la creacin de nuestro proyecto y la descripcin del aspecto del entorno, accede a la siguiente
presentacin:

Resumentextualalternativo

Cuando trabajemos con NetBeans, nuestros proyectos harn uso de clases para poder desarrollar las operaciones de
nuestros programas. Estas clases se agruparn en paquetes y en la siguiente presentacin puedes aprender cmo se
gestionanatravsdelentorno:

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

54/58

20/11/2014

eXe

Resumentextualalternativo

Una de las ventajas que ofrece este entorno es poder examinar nuestros proyectos a travs de la vista Archivos. Esta vista nos
ensealarealidaddelosarchivosdelproyecto,lacarpetabuildcontienelosarchivoscompilados(.class),lacarpetasrcelcdigo
fuenteyelresto,sonarchivoscreadosporNetbeansparacomprobarlaconfiguracindelproyectoolosarchivosnecesariosparala
correctainterpretacindelcdigoenotrossistemas(encualquiercasonohayqueborrarlos).Paraactivarestavista,seleccionaenel
menprincipalWindowsFiles.

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

55/58

20/11/2014

eXe

Autoevaluacin

Rellenaloshuecosconlosconceptosadecuados:
EnNetBeans,losarchivos.classdeunproyectoestnalojadosenlacarpetaylos.Javaenlacarpeta.

Anexo.Licenciasderecursos.
LicenciasderecursosutilizadosenlaUnidaddeTrabajo.Recurso(1)Datosdelrecurso(1)Recurso(2)Datosdelrecurso(2)
Autora:RdigerWlk
Licencia:CCBYSA
Procedencia:
http://commons.wikimedia.org/wiki/File:Wiener_Melange_0363wien_img_9691.jpg

Autora:Fil
Licencia:C
Procedenci
http://comm

Autora:barraquitofromSantaCruzdeTenerife,CanaryIslands,Spain
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:Cruce_de_caminos
El_Hierro.jpg

Autora:Ild
Licencia:C
Procedenci
29_Ball_po

Autora:Desconocido.
Licencia:DominioPblico.
Procedencia:http://commons.wikimedia.org/wiki/File:OstrichHead.JPG

Autora:KD
Licencia:G
Procedenci
http://comm

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

56/58

20/11/2014

eXe

Autora:German,usuarioespaoldeWikipedia
Licencia:Dominiopblico
Procedencia:http://commons.wikimedia.org/wiki/File:Codigo_de_maquina.png

Autora:Le
Licencia:D
Procedenci
http://comm

Autora:Robpatrik
Licencia:CCBYNCSA
Procedencia:http://www.flickr.com/photos/alkalinezoo/3595562784/

Autora:Pri
Licencia:D
Procedenci
02.jpg

Autora:ZikovanDijk
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:20101114_orr_ob_08.JPG

Autora:Ox
Licencia:G
Procedenci
http://comm

Autora:SasaStefanovic
Licencia:GNU/GPL
Procedencia:http://commons.wikimedia.org/wiki/File:Exquisitekcontrol.png

Autora:Sv
Licencia:C
Procedenci
http://comm

Autora:netbeans.org
Licencia:Copyright(cita),seautorizaelusosinrestricciones.
Procedencia:http://netbeans.org

Autora:ne
Licencia:C
Procedenci

Autora:NevitDilmen
Licencia:GNUFreeDocumentationLicense.
Procedencia:http://commons.wikimedia.org/wiki/File:Maldives_00147.JPG

Autora:Jo
Licencia:U
Procedenci
propiedadS

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

57/58

20/11/2014

https://aulavirtual.educa.jccm.es/Aula_Virtual/blocks/recopila/view.php?id=66441

eXe

58/58

Вам также может понравиться