Académique Documents
Professionnel Documents
Culture Documents
eXe
AVISO:Estapginahasidogeneradaparafacilitarlaimpresindeloscontenidos.Losenlacesexternosa
otraspginasnosernfuncionales.
Introduccinalaprogramacin.
Casoprctico
1.Introduccin.
Cuntas acciones de las que has realizado hoy, crees que estn relacionadas con la
programacin?Hagamosunrepasodelosprimerosinstantesdelda:tehadespertadola
alarmadetutelfonomviloradiodespertador,haspreparadoeldesayunoutilizandoel
microondas, mientras desayunabas has visto u odo las ltimas noticias a travs de tu
receptor de televisin digital terrestre, te has vestido y puede que hayas utilizado el
ascensor para bajar al portal y salir a la calle, etc. Quiz no es necesario que
continuemos ms para darnos cuenta de que casi todo lo que nos rodea, en alguna
medida, est relacionado con la programacin, los programas y el tratamiento de algn
tipodeinformacin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
1/45
22/10/2015
eXe
2.Programasyprogramacin.
Casoprctico
2.1.Buscandounasolucin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
2/45
22/10/2015
eXe
Generalmente,laprimeraraznquemueveaunapersonahacia
elaprendizajedelaprogramacinesutilizarelordenadorcomo
herramientapararesolverproblemasconcretos.Comoenlavida
real, la bsqueda y obtencin de una solucin a un problema
determinado, utilizando medios informticos, se lleva a cabo
siguiendo unos pasos fundamentales. En la siguiente tabla
podemosverestasanalogas.
ResolucindeproblemasEnlavidareal...EnProgramacin...
Observacin
dela
situacino
problema.
Anlisisdelproblema:requierequeel
problemaseadefinidoycomprendido
claramenteparaquepuedaseranalizadocon
tododetalle.
Pensamos
enunao
varias
posibles
soluciones.
Diseoodesarrollodealgoritmos:
procedimientopasoapasoparasolucionarel
problemadado.
Aplicamosla
solucinque
estimamos
ms
adecuada.
Resolucindelalgoritmoelegidoenla
computadora:consisteenconvertirel
algoritmoenprograma,ejecutarloy
comprobarquesolucionaverdaderamenteel
problema.
Quvirtudesdeberatenernuestrasolucin?
Correccinyeficacia:siresuelveelproblemaadecuadamente.
Eficiencia:silohaceenuntiempomnimoyconunusoptimodelosrecursosdel
sistema.
Paraconseguirlo,cuandoafrontemoslaconstruccindelasolucintendremosquetener
encuentalossiguientesconceptos:
1. Abstraccin: se trata de realizar un anlisis del problema para descomponerlo en
problemasmspequeosydemenorcomplejidad,describiendocadaunodeellos
de manera precisa. Divide y vencers, esta suele ser considerada una filosofa
generalpararesolverproblemasydeaququesunombrenosloformepartedel
vocabularioinformtico,sinoquetambinseutilizaenmuchosotrosmbitos.
2. Encapsulacin: consiste en ocultar la informacin para poder implementarla de
diferentesmanerassinqueestoinfluyaenelrestodeelementos.
3. Modularidad:estructuraremoscadaparteenmdulosindependientes,cadaunode
ellostendrsufuncincorrespondiente.
Citasparapensar
RogerPressman:Elcomienzodelasabiduraparauningenierodesoftware
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
3/45
22/10/2015
eXe
esreconocerladiferenciaentrehacerqueunprogramafuncioneyconseguir
quelohagacorrectamente.
2.2.Algoritmosyprogramas.
Despusdeanalizarendetalleelproblemaasolucionar,hemosdedisearydesarrollar
elalgoritmoadecuado.Pero,Quesunalgoritmo?
Algoritmo: secuencia ordenada de pasos, descrita sin ambigedades, que
conducenalasolucindeunproblemadado.
Los algoritmos son independientes de los lenguajes de
programacinydelascomputadorasdondeseejecutan.Un
mismo algoritmo puede ser expresado en diferentes
lenguajes de programacin y podra ser ejecutado en
diferentesdispositivos.Piensaenunarecetadecocina,sta
puedeserexpresadaencastellano,inglsofrancs,podra
ser cocinada en fogn o vitrocermica, por un cocinero o
ms, etc. Pero independientemente de todas estas
circunstancias, el plato se preparar siguiendo los mismos
pasos.
La diferencia fundamental entre algoritmo y programa es que, en el segundo, los pasos
que permiten resolver el problema, deben escribirse en un determinado lenguaje de
programacinparaquepuedanserejecutadosenelordenadoryasobtenerlasolucin.
Los lenguajes de programacin son slo un medio para expresar el algoritmo y el
ordenadorunprocesadorparaejecutarlo.Eldiseodelosalgoritmosserunatareaque
necesitar de la creatividad y conocimientos de las tcnicas de programacin. Estilos
distintos,dedistintosprogramadoresalahoradeobtenerlasolucindelproblema,darn
lugaraalgoritmosdiferentes,igualmentevlidos.
En esencia, todo problema se puede describir por medio de un algoritmo y las
caractersticasfundamentalesquestosdebencumplirson:
Debeserprecisoeindicarelordenderealizacinpasoapaso.
Debe estar definido, si se ejecuta dos o ms veces, debe obtener el mismo
resultadocadavez.
Debeserfinito,debetenerunnmerofinitodepasos.
Pero cuando los problemas son complejos, es necesario descomponer stos en
subproblemasmssimplesy,asuvez,enotrosmspequeos.Estasestrategiasreciben
elnombredediseodescendenteodiseomodular(topdowndesign).Este sistema se
basaenellemadivideyvencers.
Para representar grficamente los algoritmos que vamos a disear, tenemos a nuestra
disposicindiferentesherramientasqueayudarnadescribirsucomportamientodeuna
formaprecisaygenrica,paraluegopodercodificarlosconellenguajequenosinterese.
Entreotrastenemos:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
4/45
22/10/2015
eXe
Diagramasdeflujo:Estatcnicautilizasmbolosgrficosparalarepresentacindel
algoritmo.Sueleutilizarseenlasfasesdeanlisis.
Pseudocdigo: Esta tcnica se basa en el uso de palabras clave en lenguaje
natural, constantes, variables, otros objetos, instrucciones y estructuras de
programacinqueexpresandeformaescritalasolucindelproblema.Eslatcnica
msutilizadaactualmente.
Tablas de decisin: En una tabla son representadas las posibles condiciones del
problema con sus respectivas acciones. Suele ser una tcnica de apoyo al
pseudocdigocuandoexistensituacionescondicionalescomplejas.
Debesconocer
Acontinuacinteofrecemosdosenlacesmuyinteresantes:
Enelprimervdeopuedesverloselementosgrficosfundamentalesque
seutilizanparalageneracindediagramasdeflujo.
Enelsegundovdeoserealizalaconstruccindeundiagramadeflujo
conunaherramientagrficaysutransformacinapseudocdigo.
Resumentextualalternativo
Resumentextualalternativo
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
5/45
22/10/2015
eXe
Autoevaluacin
Rellenaloshuecosconlosconceptosadecuados:
A los pasos que permiten resolver el problema, escritos en un lenguaje de
programacin,paraquepuedanserejecutadosenelordenadoryasobtener
lasolucin,selesdenomina:.
3.Paradigmasdelaprogramacin.
Casoprctico
AdacomentaconJuanyMaralosdistintosenfoques
paraeldesarrollodeprogramasquehanexistidoalo
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 permita construir programas
adaptadosalasnuevasnecesidadesdesusclientes.
Cuntasformasexistendehacerlascosas?Supongoque
estars pensando: varias o incluso, muchas. Pero cuando
se establece un patrn para la creacin de aplicaciones
nos estamos acercando al significado de la palabra
paradigma.
6/45
22/10/2015
eXe
siguienteenlace:
Resumentextualalternativo
Como habrs podido apreciar, existen mltiples paradigmas, incluso puede haber
lenguajesdeprogramacinquenoseclasifiquennicamentedentrodeunodeellos.Un
lenguajecomoSmalltalkesunlenguajebasadoenelparadigmaorientadoaobjetos.El
lenguaje de programacin Scheme, en cambio, soporta slo programacin funcional.
Python,soportamltiplesparadigmas.
Parasaberms
Autoevaluacin
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
7/45
22/10/2015
eXe
ProgramacinEstructurada.
ProgramacinDeclarativa.
ProgramacinOrientadaaObjetos.
4.Fasesdelaprogramacin.
Casoprctico
4.1.Resolucindelproblema.
Paraelcomienzodeestafase,esnecesarioqueelproblemaseadefinidoycomprendido
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
8/45
22/10/2015
eXe
claramenteparaquepuedaseranalizadocontododetalle.Asuvez,lafasederesolucin
delproblemapuededividirseendosetapas:
a. Anlisis
Porlogeneral,elanlisisindicarlaespecificacinde
requisitosquesedebencubrir.Loscontactosentreel
analista/programador y el cliente/usuario sern
numerosos,deestaformapodrnserconocidastodas
las necesidades que precisa la aplicacin. Se
especificarnlosprocesosyestructurasdedatosque
sevanaemplear.Lacreacindeprototipossermuy
tilparasaberconmayorexactitudlospuntosatratar.
El anlisis inicial ofrecer una idea general de lo que se solicita, realizando
posteriormente sucesivos refinamientos que servirn para dar respuesta a las
siguientescuestiones:
Culeslainformacinqueofrecerlaresolucindelproblema?
Qudatossonnecesariospararesolverelproblema?
Larespuestaalaprimerapreguntaseidentificaconlosresultadosdeseadosolas
salidas del problema. La respuesta a la segunda pregunta indicar qu datos se
proporcionanolasentradasdelproblema.
En esta fase debemos aprender a analizar la documentacin de la empresa ,
investigar,observartodoloquerodeaelproblemayrecopilarcualquierinformacin
til.
Ejercicioresuelto
Vamosailustrarestafaserealizandoelanlisisdelsiguienteproblema:
Leerelradiodeuncrculoycalculareimprimirsusuperficieycircunferencia.
Estclaroquelasentradasdedatosenesteproblemasereducenalradiodel
crculo,peropiensaqusalidasdedatosofrecerlasolucin?
Lassalidassern...
Variable de salida SUPERFICIE: ser la superficie del crculo. (Te
acuerdas?ElnmeroPiporelradioalcuadrado).
Variable de salida CIRCUNFERENCIA: ser la longitud de la
circunferencia del crculo. (Y de sta? Dos por el nmero Pi y por el
radio)
Ylaentrada...
VariableRADIO:serelradiodelcrculo.
Estas variables RADIO, SUPERFICIE y CIRCUNFERENCIA podrn ser
detiporeal(nmerosconparteenteraypartedecimal,porejemplo:3,57)
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
9/45
22/10/2015
eXe
b. Diseo
Enestaetapaseconviertelaespecificacinrealizadaenlafasedeanlisisenun
diseo ms detallado, indicando el comportamiento o la secuencia lgica de
instruccionescapazderesolverelproblemaplanteado.Estospasossucesivos,que
indicanlasinstrucciones a ejecutar por la mquina, constituyen lo que conocemos
comoalgoritmo.
Consiste en plantear la aplicacin como una nica operacin global, e ir
descomponindolaenoperacionesmssencillas,detalladasyespecficas.Encada
nivel de refinamiento, las operaciones identificadas se asignan a mdulos
separados.
Hay que tener en cuenta que antes de pasar a la implementacin del algoritmo,
hemosdeasegurarnosquetenemosunasolucinadecuada.Paraello,tododiseo
requerir de la realizacin de la prueba o traza del programa. Este proceso
consistir en un seguimiento paso a paso de las instrucciones del algoritmo
utilizando datos concretos. Si la solucin aportada tiene errores, tendremos que
volveralafasedeanlisispararealizar las modificaciones necesarias o tomar un
nuevo camino para la solucin. Slo cuando el algoritmo cumpla los requisitos y
objetivos especificados en la fase de anlisis se pasar a la fase de
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
detallanacontinuacin.
a. Codificacinoconstruccin
Esta etapa consiste en transformar o traducir los resultados obtenidos a un
determinadolenguajedeprogramacin.Paracomprobarlacalidadyestabilidadde
laaplicacinsehanderealizarunaseriedepruebasquecompruebenlasfunciones
de cada mdulo (pruebas unitarias), que los mdulos funcionan bien entre ellos
(pruebas de interconexin) y que todos funcionan en conjunto correctamente
(pruebasdeintegracin).
Cuando realizamos la traduccin del algoritmo al lenguaje de programacin
debemos tener en cuenta las reglas gramaticales y la sintaxis de dicho lenguaje.
Obtendremos entonces el cdigo fuente, lo que normalmente conocemos por
programa.
Peroparaquenuestroprogramacomienceafuncionar,antesdebesertraducidoa
unlenguajequelamquinaentienda.Esteprocesodetraduccinpuedehacersede
dosformas,compilandoointerpretandoelcdigodelprograma.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
10/45
22/10/2015
eXe
Autoevaluacin
Rellenaloshuecosconlosconceptosadecuados:
En la fase de codificacin, hemos de tener en cuenta la del lenguaje para
obtenerelcdigofuenteoprograma.Posteriormente,stedeberseropara
quepuedaserejecutadoposteriormente.
4.3.Explotacin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
11/45
22/10/2015
eXe
5.Ciclodevidadelsoftware.
Casoprctico
Seancualesseanlasfasesenlasquerealicemoselprocesodedesarrollodesoftware,y
casiindependientementedel,siempresedebeaplicarunmodelodeciclodevida.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
12/45
22/10/2015
eXe
Ciclo de vida del software: es una sucesin de estados o fases por las
cualespasaunsoftwarealolargodesu"vida".
Elprocesodedesarrollopuedeinvolucrarsiemprelassiguientesetapasmnimas:
EspecificacinyAnlisisderequisitos.
Diseo.
Codificacin.
Pruebas.
InstalacinypasoaProduccin.
Mantenimiento.
Existen varios tipos de ciclos de vida del software, a continuacin te mostramos un
resumendelosmsimportantes.
Resumentextualalternativo
Autoevaluacin
Entrelosdistintostiposdeciclodevidadelsoftware,losmodelosincremental
yencascadasonmodelosdeltipoevolutivo.
VerdaderoFalso
6.Lenguajesdeprogramacin.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
13/45
22/10/2015
eXe
Casoprctico
AdayJuanestnrecordandolocomplejosque
eran algunos lenguajes de programacin, Ada
comenta: Cuando yo empec en esto, haba
relativamentepocoslenguajesdeprogramacin
y no permitan hacer programas como los que
ahoradesarrollamos.
Juan indica que l conoce las caractersticas
generales de algunos lenguajes, pero que le
gustarasaberalgomssobrelosquehubo,hayyhabr.
Mara que asiente con la cabeza, piensa que aprender ms sobre los
lenguajesdisponiblesenlaactualidadpuedeayudaralahoradeelegirentre
unosuotros.
Comohemosvisto,entodoelprocesoderesolucindeunproblemamediantelacreacin
de software, despus del anlisis del problema y del diseo del algoritmo que pueda
resolverlo,esnecesariotraducirsteaunlenguajequeexpreseclaramentecadaunode
lospasosaseguirparasucorrectaejecucin.Estelenguajerecibeelnombredelenguaje
deprogramacin.
Hay que tener en cuenta que pueden existir sentencias sintcticamente correctas, pero
semnticamente incorrectas. Por ejemplo, Un avestruz dio un zarpazo a su cuidador
estbienconstruidasintcticamente,peroesevidentequesemnticamenteno.
Unacaractersticarelevantedeloslenguajesdeprogramacines,precisamente,quems
de un programador pueda usar un conjunto comn de instrucciones que sean
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
14/45
22/10/2015
eXe
comprendidasentreellos.Atravsdeesteconjuntosepuede lograr
laconstruccindeunprogramadeformacolaborativa.
Loslenguajesdeprogramacinpuedenserclasificadosenfuncinde
lo cerca que estn del lenguaje humano o del lenguaje de los
computadores. El lenguaje de los computadores son cdigos
binarios, es decir, secuencias de unos y ceros. Detallaremos
seguidamente las caractersticas principales de los lenguajes de
programacin.
6.1.Lenguajemquina.
Este es el lenguaje utilizado directamente por el procesador, consta
deunconjuntodeinstruccionescodificadasenbinario.Eselsistema
de cdigos directamente interpretable por un circuito
microprogramable.
Este fue el primer lenguaje utilizado para la programacin de
computadores.Dehecho,cadamquinatenasupropioconjuntode
instruccionescodificadasencerosyunos.Cuandounalgoritmoest
escrito en este tipo de lenguaje, decimos que est en cdigo
mquina.
Programarenestetipodelenguajepresentabalossiguientesinconvenientes:
Cadaprogramaeravlidosloparauntipodeprocesadoruordenador.
Lalecturaointerpretacindelosprogramaseraextremadamentedifcily,portanto,
insertarmodificacionesresultabamuycostoso.
Losprogramadoresdelapocadebanmemorizarlargascombinacionesdecerosy
unos, que equivalan a las instrucciones disponibles para los diferentes tipos de
procesadores.
Los programadores se encargaban de introducir los cdigos binarios en el
computador,loqueprovocabalargostiemposdepreparacinyposibleserrores.
Acontinuacin,semuestranalgunoscdigosbinariosequivalentesalasoperacionesde
suma,restaymovimientodedatosenlenguajemquina.
Algunas operaciones en lenguaje mquina. Operacin Lenguaje mquina SUMAR
RESTARMOVER
00101101
00010011
00111010
Dadalacomplejidadydificultadesqueofrecaestelenguaje,fuesustituidoporotrosms
sencillosyfcilesutilizar.Noobstante,hayquetenerencuentaquetodoslosprogramas
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
15/45
22/10/2015
eXe
parapoderserejecutados,handetraducirsesiempreallenguajemquinaqueeselnico
queentiendelacomputadora.
Parasaberms
Comorecordatorio,teproponemoselsiguienteenlacesobrecmofuncionael
sistemabinario.
Resumentextualalternativo
Autoevaluacin
Rellenaloshuecosconlosconceptosadecuados:
En el lenguaje mquina de algunos procesadores, la combinacin 00101101
equivalealaoperacinde.
6.2.LenguajeEnsamblador.
Laevolucindellenguajemquinafueellenguajeensamblador.Lasinstruccionesyano
son secuencias binarias, se sustituyen por cdigos de operacin que describen una
operacinelementaldelprocesador.Esunlenguajedebajonivel,aligualqueellenguaje
mquina,yaquedependendirectamentedelhardwaredondesonejecutados.
Mnemotcnico:sonpalabrasespeciales,quesustituyenlargassecuenciasde
cerosyunos,utilizadasparareferirseadiferentesoperacionesdisponiblesen
eljuegodeinstruccionesquesoportacadamquinaenparticular.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
16/45
22/10/2015
eXe
Enensamblador,cadainstruccin(mnemotcnico)secorrespondeaunainstruccindel
procesador.Enlasiguientetablasemuestranalgunosejemplos.
AlgunasoperacionesysumnemotcnicoenlenguajeEnsamblador.OperacinLenguaje
EnsambladorMULTIPLICARDIVIDIRMOVER
MUL
DIV
MOV
Enelsiguientegrficopuedesverpartedeunprogramaescritoenlenguajeensamblador.
En color rojo se ha resaltado el cdigo mquina en hexadecimal, en magenta el cdigo
escrito en ensamblador y en azul, las direcciones de memoria donde se encuentra el
cdigo.
Peroaunqueensambladorfueunintentoporaproximarellenguajedelosprocesadoresal
lenguajehumano,presentabamltiplesdificultades:
Losprogramasseguandependiendodirectamentedelhardwarequelossoportaba.
Los programadores tenan que conocer detalladamente la mquina sobre la que
programaban, ya que deban hacer un uso adecuado de los recursos de dichos
sistemas.
La lectura, interpretacin o modificacin de los programas segua presentando
dificultades.
Todoprogramaescritoenlenguajeensambladornecesitadeunintermediario,querealice
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 conoce como programa objeto que ser directamente
ejecutadoporlacomputadora.
6.3.Lenguajescompilados.
Parapaliarlosproblemasderivadosdelusodellenguajeensambladoryconelobjetivode
acercarlaprogramacinhaciaelusodeunlenguajemscercanoalhumanoquealdel
computador, nacieron los lenguajes compilados. Algunos ejemplos de este tipo de
lenguajesson:Pascal,Fortran,Algol,C,C++,etc.
Al ser lenguajes ms cercanos al humano, tambin se les denomina lenguajes de alto
nivel. Son ms fciles de utilizar y comprender, las instrucciones que forman parte de
estoslenguajesutilizanpalabrasysignosreconociblesporelprogramador.
Culessonsusventajas?
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
17/45
22/10/2015
eXe
Autoevaluacin
6.4.Lenguajesinterpretados.
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
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
18/45
22/10/2015
eXe
instruccinseejecuta,peronoseguardaenmemoria.
Intrprete:Esunprogramatraductordeunlenguajedealtonivelenelqueel
proceso de traduccin y de ejecucin se llevan a cabo simultneamente, es
decir,lainstruccinsepasaalenguajemquinayseejecutadirectamente.No
segeneraprogramaobjeto,niprogramaejecutable.
Los lenguajes interpretados generan programas de menor
tamao que los generados por un compilador, al no
guardar el programa traducido a cdigo mquina. Pero
presentanelinconvenientedeseralgomslentos,yaque
handesertraducidosdurantesuejecucin.Porotraparte,
necesitan disponer en la mquina del programa intrprete
ejecutndose, algo que no es necesario en el caso de un
programacompilado,paralosquesloesnecesariotener
elprogramaejecutableparapoderutilizarlo.
Ejemplosdelenguajesinterpretadosson:Perl,PHP,Python,JavaScript,etc.
Amediocaminoentreloslenguajescompiladosylosinterpretados,existenloslenguajes
que podemos denominar pseudocompilados o pseudointerpretados, es el caso del
Lenguaje Java. Java puede verse como compilado e interpretado a la vez, ya que su
cdigofuentesecompilaparaobtenerelcdigobinarioenformadebytecodes,queson
estructurasparecidasalasinstruccionesmquina,conlaimportantepropiedaddenoser
dependientesdeningntipodemquina(sedetallarnmsadelante).LaMquinaVirtual
Javaseencargardeinterpretar este cdigo y, para su ejecucin, lo traducir a cdigo
mquinadelprocesadorenparticularsobreelqueseesttrabajando.
Debesconocer
Autoevaluacin
Extensin.obj.
Extensin.class.
Extensin.Java.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
19/45
22/10/2015
eXe
7.EllenguajedeprogramacinJava.
Casoprctico
7.1.QuycmoesJava?
Javaesunlenguajesencillodeaprender,conunasintaxisparecidaa
ladeC++,peroenlaquesehaneliminadoelementoscomplicadosy
quepuedenoriginarerrores.Javaesorientadoaobjetos,conloque
elimina muchas preocupaciones al programador y permite la
utilizacin de gran cantidad de bibliotecas ya definidas, evitando
reescribir cdigo que ya existe. Es un lenguaje de programacin
creado para satisfacer nuevas necesidades que los lenguajes
existenteshastaelmomentonoerancapacesdesolventar.
Una de las principales virtudes de Java es su independencia del
hardware, ya que el cdigo que se genera es vlido para cualquier
plataforma. Este cdigo ser ejecutado sobre una mquina virtual
denominadaMaquinaVirtualJava(MVJoJVMJavaVirtualMachine),queinterpretar
el cdigo convirtindolo a cdigo especfico de la plataforma que lo soporta. De este
modoelprogramaseescribeunanicavezypuedehacersefuncionarencualquierlugar.
Lemadellenguaje:Writeonce,runeverywhere.
Antes de que apareciera Java, el lenguaje C era uno de los ms extendidos por su
versatilidad. Pero cuando los programas escritos en C aumentaban de volumen, su
manejocomenzabaacomplicarse.Mediantelastcnicasdeprogramacinestructuraday
programacin modular se conseguan reducir estas complicaciones, pero no era
suficiente.
Fue entonces cuando la Programacin Orientada a Objetos (POO) entra en escena,
aproximando notablemente la construccin de programas al pensamiento humano y
haciendomssencillotodoelproceso. Los problemas se dividen en objetos que tienen
propiedades e interactan con otros objetos, de este modo, el programador puede
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
20/45
22/10/2015
eXe
centrarseencadaobjetoparaprogramarinternamenteloselementosyfuncionesquelo
componen.
LascaractersticasprincipalesdelenguajeJavaseresumenacontinuacin:
ElcdigogeneradoporelcompiladorJavaesindependientedelaarquitectura.
Esttotalmenteorientadoaobjetos.
SusintaxisessimilaraCyC++.
Esdistribuido,preparadoparaaplicacionesTCP/IP.
Disponedeunamplioconjuntodebibliotecas.
Es robusto, realizando comprobaciones del cdigo en tiempo de compilacin y de
ejecucin.
La seguridad est garantizada, ya que las aplicaciones Java no acceden a zonas
delicadasdememoriaodesistema.
Debesconocer
7.2.Brevehistoria.
Javasurgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de
disearunnuevolenguajedeprogramacindestinadoaprogramarpequeosdispositivos
electrnicos.Ladificultaddeestosdispositivosesquecambiancontinuamenteyparaque
un programa funcione en el siguiente dispositivo aparecido, hay que rescribir el cdigo.
PoresolaempresaSunqueracrearunlenguajeindependientedeldispositivo.
Pero no fue hasta 1995 cuando pas a llamarse Java, dndose a conocer al pblico
como lenguaje de programacin para computadores. Java pasa a ser un lenguaje
totalmenteindependientedelaplataformayalavezpotenteyorientado a objetos. Esa
filosofaysufacilidadparacrearaplicacionespararedesTCP/IPhahechoqueseauno
deloslenguajesmsutilizadosenlaactualidad.
ElfactordeterminanteparasuexpansinfuelaincorporacindeunintrpreteJavaenla
versin2.0delnavegadorWebNetscapeNavigator,loquesupusounagranrevueloen
Internet.Aprincipiosde1997apareciJava1.1queproporcionsustancialesmejorasal
lenguaje.Java1.2,mstarderebautizadocomoJava2,naciafinalesde1998.
ElprincipalobjetivodellenguajeJavaesllegaraserelnexouniversalqueconectealos
usuariosconlainformacin,eststasituadaenelordenadorlocal,enunservidorWeb,
enunabasededatosoencualquierotrolugar.
Para el desarrollo de programas en lenguaje Java es necesario utilizar un entorno de
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
21/45
22/10/2015
eXe
ActualmentehaytresedicionesdelaplataformaJava2:
J2SE: Entorno de Sun relacionado con la creacin de aplicaciones y applets en
lenguajeJava.
J2EE:PensadaparalacreacindeaplicacionesJavaempresarialesydelladodel
servidor.
J2ME:PensadaparalacreacindeaplicacionesJavaparadispositivosmviles.
Parasaberms
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
22/45
22/10/2015
eXe
7.3.LaPOOyJava.
EnJava,losdatosyelcdigo(funcionesomtodos)secombinanenentidadesllamadas
objetos.Elobjetotendruncomportamiento(sucdigointerno)yunestado(losdatos).
Los objetos permiten la reutilizacin del cdigo y pueden considerarse, en s mismos,
como piezas reutilizables en mltiples proyectos distintos. Esta caracterstica permite
reducireltiempodedesarrollodesoftware.
Por simplificar un poco las cosas, un programa en Java ser como una representacin
teatralenlaquedebemosprepararprimerocadapersonaje,definirsuscaractersticasy
quvaasaberhacer.Cuandoestafaseestterminada,laobrasedesarrollarsacando
personajesaescenayhacindolesinteractuar.
AlemplearlosconceptosdelaProgramacinOrientadaaObjetos(POO),Javaincorpora
las tres caractersticas propias de este paradigma: encapsulacin, herencia y
polimorfismo. Los patrones o tipos de objetos se denominan clases y los objetos que
utilizan estos patrones o pertenecen a dichos tipos, se identifican con el nombre de
instancias. Pero, no hay que alarmarse, estos conceptos se vern ms adelante en
sucesivasunidades.
Otroejemploparaseguiraclarandoideas,piensaenlosbloques
dejuegosdeconstruccin.Suponemosqueconoceslos 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 pueden conectarse otros
bloques, con el objetivo principal de permitir construir formas
ms grandes. Si usas diferentes piezas del lego puedes
construir aviones, coches, edificios, etc. Si te fijas bien, cada
piezaesunobjetopequeoquepuedeunirseconotrosobjetos
paracrearobjetosmsgrandes.
Pues bien, aproximadamente as es como funciona la programacin dirigida a objetos:
unimos elementos pequeos para construir otros ms grandes. Nuestros programas
estarn formados por muchos componentes (objetos) independientes y diferentes cada
unoconunafuncindeterminadaennuestrosoftwareyquepodrcomunicarseconlos
demsdeunamanerapredefinida.
7.4.Independenciadelaplataformay
trabajoenred.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
23/45
22/10/2015
eXe
Existen dos caractersticas que distinguen a Java de otros lenguajes, como son la
independenciadelaplataformaylaposibilidaddetrabajarenredo,mejor,laposibilidad
decrearaplicacionesquetrabajanenred.
Estascaractersticaslasvamosaexplicaracontinuacin:
a. Independencia:LosprogramasescritosenJavapuedenserejecutadosencualquier
tipo de hardware. El cdigo fuente es compilado, generndose el cdigo conocido
comoJavaBytecode(instruccionesmquinasimplificadasquesonespecficasdela
plataforma Java), el bytecode ser interpretado y ejecutado en la Mquina Virtual
Java (MVJ o JVM Java Virtual Machine) que es un programa escrito en cdigo
nativodelaplataformadestinoentendibleporelhardware.Conestoseevitatener
querealizarunprogramadiferenteparacadaCPUoplataforma.
Portanto,lapartequerealmenteesdependientedelsistemaeslaMquinaVirtual
Java, as como las libreras o bibliotecas bsicas que permiten acceder
directamentealhardwaredelamquina.
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
accesoylainteraccinconprotocoloscomohttp,ftp,etc.,facilitandoalprogramador
lastareasdeltratamientodelainformacinatravsderedes.
Autoevaluacin
QuedispongadeconexinaInternetydelhardwareadecuado.
QuetengainstaladounnavegadorwebyconexinaInternet.
QuetengalaMquinaVirtualJavaadecuadainstalada.
7.5.Seguridadysimplicidad.
Junto a las caractersticas diferenciadoras del lenguaje Java relacionadas con la
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
24/45
22/10/2015
eXe
Autoevaluacin
Rellenaloshuecosconlosconceptosadecuados:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
25/45
22/10/2015
eXe
EnJavasehasimplificadolagestindememoriaatravsdelaeliminacinde
laAritmticade,porloquelaincorporacindelGarbageCollector evita que
se produzca un crecimiento de los huecos libres en memoria, que recibe el
nombrededememoria.
7.6.JavaylosBytecodes.
UnprogramaescritoenJavanoesdirectamenteejecutable,esnecesarioqueelcdigo
fuenteseainterpretadoporlaMaquinaVirtualJava.Culessonlospasosquesesiguen
desdequesegeneraelcdigofuentehastaqueseejecuta?Acontinuacinsedetallan
cadaunodeellos.
Una vez escrito el cdigo fuente (archivos con extensin .Java), ste es precompilado
generndoseloscdigosdebytes,BytecodesoJavaBytecodes(archivosconextensin
.class) que sern interpretados directamente por la Maquina Virtual Java y traducidos a
cdigonativodelaplataformasobrelaqueseestejecutandoelprograma.
Bytecode:Sonunconjuntodeinstruccionesenlenguajemquinaquenoson
especficas a ningn procesador o sistema de cmputo. Un intrprete de
cdigo de bytes (bytecodes) para una plataforma especfica ser quien los
ejecute. A estos intrpretes tambin se les conoce como Mquinas Virtuales
JavaointrpretesJavadetiempodeejecucin.
En el proceso de precompilacin, existe un verificador de cdigos de bytes que se
asegurardequesecumplenlassiguientescondiciones:
ElcdigosatisfacelasespecificacionesdelaMquinaVirtualJava.
Noexisteamenazacontralaintegridaddelsistema.
Noseproducendesbordamientosdememoria.
Losparmetrosysustipossonadecuados.
Noexistenconversionesdedatosnopermitidas.
Para que un bytecode pueda ser ejecutado en cualquier plataforma, es imprescindible
que dicha plataforma cuente con el intrprete adecuado, es decir, la mquina virtual
especficaparaesa plataforma. En general, la Mquina Virtual Java es un programa de
reducidotamaoygratuitoparatodoslossistemasoperativos.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
26/45
22/10/2015
eXe
8.ProgramasenJava.
Casoprctico
8.1.Estructuradeunprograma.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
27/45
22/10/2015
eXe
Enelgrficoalquepuedesaccederacontinuacin,sepresentalaestructurageneralde
unprogramarealizadoenunlenguajeorientadoaobjetoscomoesJava.
Vamosaanalizarcadaunodeloselementosqueaparecenendichogrfico:
publicclassClase_Principal:Todoslosprogramashandeincluirunaclasecomoesta.Es
unaclasegeneralenlaqueseincluyentodoslosdemselementosdelprograma.Entre
otras cosas, contiene el mtodo o funcin main() que representa al programa principal,
desdeelquesellevaracabolaejecucindelprograma.Estaclasepuedecontenerasu
vezotrasclasesdelusuario,peroslounapuedeserpublic.Elnombredelfichero.Java
quecontieneelcdigofuentedenuestroprograma,coincidirconelnombredelaclase
queestamosdescribiendoenestaslneas.
Recomendacin
TenencuentaqueJavadistingueentremaysculasyminsculas.Siledasa
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 clases diferentes dentro del cdigo
fuente.
public static void main (String[] args): Es el mtodo que representa al programa
principal,enlsepodrnincluirlasinstruccionesqueestimemosoportunasparala
ejecucindelprograma.Desdelsepodrhacerusodelrestodeclasescreadas.
TodoslosprogramasJavatienenunmtodomain.
Comentarios: Los comentarios se suelen incluir en el cdigo fuente para realizar
aclaraciones, anotaciones o cualquier otra indicacin que el programador estime
oportuna. Estos comentarios pueden introducirse de dos formas, con // y con /* */.
Con la primera forma estaramos estableciendo una nica lnea completa de
comentario y, con la segunda, con /* comenzaramos el comentario y ste no
terminarahastaquenoinsertramos*/.
Bloques de cdigo: son conjuntos de instrucciones que se marcan mediante la
apertura y cierre de llaves { }. El cdigo as marcado es considerado interno al
bloque.
Puntoycoma:aunqueenelejemplonohemosincluidoningunalneadecdigoque
termineconpuntoycoma,hayquehacerhincapienquecadalneadecdigoha
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
28/45
22/10/2015
eXe
Autoevaluacin
publicstaticvoidmain(String[]args)eslaclasegeneraldelprograma.
VerdaderoFalso
8.2.Elentornobsicodedesarrollo
Java.
YaconocescmoeslaestructuradeunprogramaenJava,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.
Estosdosprogramassonlosempleadosenlaprecompilacine
interpretacindelcdigo.
Como veremos, existen diferentes entornos para la creacin de
programasenJavaqueincluyenmultituddeherramientas,pero
por ahora nos centraremos en el entorno ms bsico, extendido y gratuito, el Java
DevelopmentKit (JDK). Segn se indica en la propia pgina web de Oracle, JDK es un
entorno de desarrollo para construir aplicaciones, applets y componentes utilizando el
lenguajedeprogramacinJava.Incluyeherramientastilesparaeldesarrolloypruebade
programasescritosenJavayejecutadosenlaPlataformaJava.
Asmismo,juntoaJDKseincluyeunaimplementacindelentornodeejecucinJava,el
JRE(JavaRuntimeEnvironment)paraserutilizadoporelJDK.ElJREincluyelaMquina
VirtualdeJava(MVJJVMJavaVirtualMachine),bibliotecasdeclasesyotrosficheros
quesoportanlaejecucindeprogramasescritosenellenguajedeprogramacinJava.
Debesconocer
ParapoderutilizarJDKyJREesnecesariorealizarladescargaeinstalacin
destos.Puedesseguirlospasosdelprocesoacontinuacin:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
29/45
22/10/2015
eXe
Resumentextualalternativo
Autoevaluacin
PodemosdesarrollarprogramasescritosenJavamedianteuneditordetextos
yatravsdelJREpodremosejecutarlos.
VerdaderoFalso
8.3.LaAPIdeJava.
Juntoconelkitdedesarrolloquehemosdescargadoeinstalado
anteriormente, vienen incluidas gratuitamente todas las
bibliotecasdelaAPI(AplicationProgrammingInterfaceInterfaz
deprogramacindeaplicaciones)deJava,esloqueseconoce
como Bibliotecas de Clases Java. Este conjunto de bibliotecas
proporciona al programador paquetes de clases tiles para la
realizacin de mltiples tareas dentro de un programa. Est
organizada en paquetes lgicos, donde cada paquete contiene
unconjuntodeclasesrelacionadassemnticamente.
Endcadaspasadasunabibliotecaeraunconjuntodeprogramasquecontenancientos
de rutinas (una rutina es un procedimiento o funcin bien verificados, en determinado
lenguajedeprogramacin). Las rutinas de biblioteca manejaban las tareas que todos o
casi todos los programas necesitaban. El programador poda recurrir a esta biblioteca
paradesarrollarprogramasconrapidez.
Unabibliotecadeclasesesunconjuntodeclasesdeprogramacinorientadaaobjetos.
Esas clases contienen mtodos que son tiles para los programadores. En el caso de
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
30/45
22/10/2015
eXe
Java cuando descargamos el JDK obtenemos la biblioteca de clases API. Utilizar las
clasesymtodosdelasAPIsdeJavareduceeltiempodedesarrollodelosprogramas.
Tambin,existendiversasbibliotecasdeclasesdesarrolladasportercerosquecontienen
componentesreutilizablesdesoftware,yestndisponiblesatravsdelaWeb.
Parasaberms
Autoevaluacin
IndicaqunoeslaAPIdeJava:
Unentornointegradodedesarrollo.
Unconjuntodebibliotecasdeclases.
UnapartedelJDK,incluidoenelJavaSE.
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
encontrarlosficherosnecesariospararealizarlaslaboresde
compilacinyejecucin,enestecasoJavac.exeyJava.exe,
as como las libreras contenidas en la API de Java y las
clasesdelusuario.
La variable PATH: Como an no disponemos de un IDE
(IntegratedDevelopmentEnvironmentEntonoIntegradode
Desarrollo)lanicaformadeejecutarprogramasesatravsdelneadecomandos.Pero
slopodremosejecutarprogramasdirectamentesilarutahaciaellosestindicadaenla
variablePATHdelordenador.Esnecesarioqueincluyamoslarutahaciaestosprogramas
en nuestra variable PATH. Esta ruta ser el lugar donde se instal el JDK hasta su
directoriobin.
Paraello,siguelasindicacionesquetemostramosacontinuacin:
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
31/45
22/10/2015
eXe
Debesconocer
Resumentextualalternativo
Parasaberms
La variable CLASSPATH: esta variable de entorno establece dnde buscar las clases o
biblitecas de la API de Java, as como las 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
enlosformatoszipojarquepuedenserutilizadosdirectamenteporelJDK,conteniendo
ensuinteriorarchivosconextensinclass.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\bin)
SinoexistelavariableCLASSPATHdebescrearla,paramodificarsucontenidosigueel
mismomtodoquehemosempleadoparalamodificacindelvalordelavariablePATH,
anteriormentedescrito.Tenencuentaquelarutaquedebesincluirserellugardondese
instalelJDKhastasudirectoriolib.
(Porejemplo:C:\ProgramFiles\Java\jdk1.6.0_25\lib)
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
32/45
22/10/2015
eXe
Autoevaluacin
CLASSPATH.
PATH.
Javac.exe.
8.5.Codificacin,compilaciny
ejecucindeaplicaciones.
Una vez que la configuracin del entorno Java est completada y tenemos el cdigo
fuentedenuestroprogramaescritoenunarchivoconextensin.Java,lacompilacinde
aplicacionesserealizamedianteelprogramaJavacincluidoenelsoftwarededesarrollo
deJava.
Parallevaracabolacompilacindesdelalneadecomandos,escribiremos:
Javacarchivo.Java
Donde Javac es el compilador de Java y archivo.Java es nuestro cdigo
fuente.
Elresultadodelacompilacinserunarchivoconelmismo
nombre que el archivo Java pero con la extensin class.
Esto ya es el archivo con el cdigo en forma de bytecode.
Esdecirconelcdigoprecompilado.Sienelcdigo fuente
de nuestro programa figuraran ms de una clase, veremos
comoalrealizarlacompilacinsegenerarntantosarchivos
con extensin .class como clases tengamos. Adems, si
estasclasestenanmtodomainpodremosejecutardichos
archivosporseparadoparaverelfuncionamientodedichasclases.
Paraqueelprogramapuedaserejecutado,siempreycuandoestincluidoensuinterior
elmtodomain,podremosutilizarelinterpreteincluidoenelkitdedesarrollo.
33/45
22/10/2015
eXe
Javaarchivo.class
Donde Java es el intrprete y archivo.class es el archivo con el cdigo
precompilado.
Ejercicioresuelto
Vamosallevaralaprcticatodoloquehemosestadodetallandoatravsde
lacreacin,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
queprefieras.Recuerdaqueelnombredelaclaseprincipal(enelcdigode
ejemplo MiModulo) debe ser exactamente igual al del archivo con extensin
.Java, si tienes esto en cuenta la aplicacin podr ser compilada
correctamenteyejecutada.
/**
*LaclaseMiModuloimplementaunaaplicacinque
*simplementeimprime"MduloprofesionalProgramacin"enpantalla.
*/
classMiModulo{
publicstaticvoidmain(String[]args){
System.out.println("MduloprofesionalProgramacin")//Muestralacadena
decaracteres.
}
}
Accedealalneadecomandosyteclea,enlacarpetadondehasguardadoel
archivoJava,elcomandoparacompilarlo:JavacMiModulo.Java
Elcompiladorgeneraentoncesunficherodecdigodebytes:MiModulo.class.
Sivisualizasahoraelcontenidodelacarpetaversqueenellaestelarchivo
.Java y uno o varios (depende de las clases que contenga el archivo con el
cdigofuente)archivos.class.
Finalmente,pararealizarlaejecucindelprogramadebesutilizarlasiguiente
sentencia:
JavaMiModulo.Java
Si todo ha ido bien, vers escrito en pantalla: Mdulo profesional
Programacin.
8.6.TiposdeaplicacionesenJava.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
34/45
22/10/2015
eXe
35/45
22/10/2015
eXe
Generalmentesonjuegosyaplicacionesqueseejecutanentelfonosmviles.
Autoevaluacin
UnAppletestotalmenteseguroyaquenopuedeacceder,enningncaso,a
zonassensiblesdel sistema. Es decir, no podra borrar o modificar nuestros
archivos.
VerdaderoFalso
9.EntornosIntegradosdeDesarrollo
(IDE).
Casoprctico
Ada,JuanyMaraestnnavegandoporInternet
buscando informacin sobre herramientas que
les faciliten trabajar en Java. Ada aconseja
utilizar alguno de los entornos de desarrollo
integrado existentes, ya que las posibilidades y
rapidez que ofrecen, aumentaran la calidad y
reduciran el tiempo requerido para desarrollar
susproyectos.
Juan, que est chateando con un miembro de un foro de programadores al
quepertenece,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,pasabaautilizaruncompiladoryconlobtenaelcdigocompilado. En
un paso posterior, necesitaba emplear una tercera herramienta para el ensamblado del
programa. Por ltimo, poda probar a travs de la lnea de comandos el archivo
ejecutable. El problema surga cuando se produca algn error, lo que provocaba tener
quevolverainiciarelprocesocompleto.
Estascircunstanciashacanqueeldesarrollodesoftwarenoestuvieraoptimizado.Conel
paso del tiempo, se fueron desarrollando aplicaciones que incluan las herramientas
necesariaspararealizartodoelprocesodeprogramacindeformamssencilla,fiabley
rpida. Para cada lenguaje de programacin existen mltiples entornos de desarrollo,
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
36/45
22/10/2015
eXe
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 o en otros lenguajes de programacin,
bajounentornogrfico(nomediantelneadecomandos).Juntoalas
capacidades descritas, cada entorno aade otras que ayudan a
realizarelprocesodeprogramacin,comoporejemplo:cdigofuente
coloreado,plantillasparadiferentestiposdeaplicaciones,creacindeproyectos,etc.
Hayquetenerencuentaqueunentornodedesarrollonoesmsqueunafachadaparael
procesodecompilacinyejecucindeunprograma.Ququieredecireso?Puesquesi
tenemosinstaladounIDEynotenemosinstaladoelcompilador,notenemosnada.
Parasaberms
9.2.IDE'sactuales.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
37/45
22/10/2015
eXe
ExistenenelmercadomultituddeentornosdedesarrolloparaellenguajeJava,loshay
delibredistribucin,depago,paraprincipiantes,paraprofesionales,queconsumenms
recursos,quesonmsligeros,msamigables,mscomplejosqueotros,etc.
Entrelosquesongratuitosodelibredistribucintenemos:
NetBeans
Eclipse
BlueJ
Jgrasp
JcreatorLE
Entrelosquesonpropietariosodepagotenemos:
IntelliJIDEA
Jbuilder
Jcreator
JDeveloper
Debesconocer
Pero,culoculessonlosmsutilizadosporlacomunidadde
programadores Java? El puesto de honor se lo disputan entre
Eclipse, IntelliJ IDEA y NetBeans. En los siguientes epgrafes
haremos una descripcin de NetBeans y Eclipse, para
posteriormente desarrollar los puntos claves del entorno
NetBeans.
Parasaberms
38/45
22/10/2015
eXe
ParaaccederaloslugaresdeInternetdondeobtenerlosdiferentesentornos
integrados de desarrollo, puedes utilizar la lista que te ofrecemos en este
enlace:
ListadoconaccesoalaswebsdelosdiferentesentornosJava
Autoevaluacin
Eclipse.
IntellijIDEA.
Jcreator.
9.3.ElentornoNetBeans.
Comosehaindicadoanteriormente,elentornodedesarrolloquevamos
a utilizar a lo largo de los contenidos del mdulo profesional ser
NetBeans. Por lo que vamos primero a analizar sus caractersticas y
destacarlasventajasquepuedeaportarsuutilizacin.
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
restriccionesdeuso.Esunproyectodecdigoabiertodegranxito,conunacomunidad
deusuariosnumerosa,encontinuocrecimientoyapoyadoporvariasempresas.
Elorigendeesteentornohayquebuscarloenunproyectorealizadoporestudiantesdela
RepblicaCheca.FueelprimerIDEcreadoenlenguajeJava.Untiempomstarde,se
form una compaa que sera comprada en 1999 por Sun Microsystems (quien haba
creado el lenguaje Java). Poco despus, Sun decidi que el producto sera libre y de
cdigo abierto y naci Netbeans como IDE de cdigo abierto para crear aplicaciones
Java.
NetBeans lleva tiempo pugnando con Eclipse por convertirse en la plataforma ms
importante para crear aplicaciones en Java. Hoy en da es un producto en el que
participan decenas de empresas con Sun a la cabeza. Sigue siendo software libre y
ofrecelassiguientesposibilidades:
EscribircdigoenC,C++,Ruby,Groovy,Javascript,CSSyPHPademsdeJava.
PermitircrearaplicacionesJ2EEgraciasaqueincorporaservidoresdeaplicaciones
Java(actualmenteGlassfishyTomcat)
CrearaplicacionesSwingdeformasencilla,alestilodelVisualStudiodeMicrosoft.
CrearaplicacionesJMEparadispositivosmviles.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
39/45
22/10/2015
eXe
Laltimaversinlanzadaen2011eslaNetBeans7.0.
LaplataformaNetBeanspermitequelasaplicacionessean
desarrolladas a partir de un conjunto de componentes de
softwarellamadosmdulos.UnmduloesunarchivoJava
que contiene clases de Java escritas para interactuar con las APIs de NetBeans y un
archivoespecial(manifestfile)queloidentificacomomdulo.
Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole
nuevos mdulos. Debido a que los mdulos pueden ser desarrollados
independientemente,lasaplicacionesbasadasenestaplataformapuedenserextendidas
fcilmenteporcualquieraquedesarrolletambinsoftware.
Cadamduloproveeunafuncinbiendefinida,talescomoelsoportedeJava,edicin,o
soporte para el sistema de control de versiones. NetBeans contiene todos los mdulos
necesariosparaeldesarrollodeaplicacionesJavaenunasoladescarga,permitiendoala
personaquevaarealizarelprogramacomenzaratrabajarinmediatamente.
Parasaberms
9.4.Instalacinyconfiguracin.
Para realizar la instalacin del entorno NetBeans, seguiremos los
siguientespasosbsicos:
1. Descargadelaversindeseadadesdelaweboficialodesde
los enlaces propuestos ms abajo. La versin completa
contiene todas las posibilidades aunque es la ms pesada
(unos240MegaBytes).Ennuestrocaso,porestarenfasede
iniciacin, podra ser suficiente descargar la versin ms
bsica(unos60MegaBytes).
2. Seleccionar la plataforma o sistema operativo, existen
versionesparaWindows,LinuxyMacOS.TantoenWindows
como en Linux, se descarga un archivo ejecutable que se
encargadelainstalacin.
3. Seleccionarelidioma.
4. Comenzar la descarga del archivo de instalacin ejecutable y una vez finalizada,
lanzarste,comenzandolainstalacinennuestroequipo.
5. En las primeras pantallas, seleccionaremos los componentes a instalar. Como
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
40/45
22/10/2015
eXe
mnimo,parapoderprogramarenJavaserimprescindibleinstalarelIDEbsicoy
JavaSE.
6. Posteriormente,establecemoseldirectoriodondeseinstalarNetBeans, as como
lacarpetaquecontieneelJDKqueseutilizarpordefecto.
7. Finalmente, la instalacin se completa y dispondremos de este entorno totalmente
operativo.
Parallevaracabolasoperacionesdescritasenelpaso1,teofrecemoslaposibilidadde
descargar cada una de las partes por separado, o bien, en conjunto, a travs de los
siguientesenlaces:
DescarganicamenteNetBeanssitienesyainstaladoelJDK.(Estaversinanno
incluyelenguajeEspaol)
DescargasloNetBeansenEspaol,sinJDK
DescargaNetBeansyJDKdesdelapginaoficialdeORACLE
Debesconocer
Paraaprendercmorealizarlainstalacincompleta,JDKyNetBeans,ensus
ltimas versiones es importante que sigas las indicaciones que se muestran
enelsiguienteartculo:
GuaparalainstalacindetalladadelJDKyNetBeansensuversincompleta
Parasaberms
Sieresdelosquelegustalaaccin,msqueleerlostutoriales,enestevdeo
podrs seguir el proceso de descarga e instalacin de NetBeans bajo las
plataformasWindowsyLinux.
Resumentextualalternativo
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
41/45
22/10/2015
eXe
9.5.Aspectodelentornoygestinde
proyectos.
La pantalla inicial de nuestro entorno de desarrollo ofrece accesos directos a las
operaciones ms usuales: aprendizaje inicial, tutoriales, ejemplos, demos, los ltimos
programasrealizadosylasnovedadesdelaversin.
Paracomenzaradescribirelaspectodelentorno,esnecesariocrearunnuevoproyecto
accediendo al men File New Project, indicaremos el tipo de aplicacin que vamos a
crear.
Debesconocer
Resumentextualalternativo
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
42/45
22/10/2015
eXe
Resumentextualalternativo
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 contiene los archivos compilados (.class), la carpeta src el
cdigo fuente y el resto, son archivos creados por Netbeans para comprobar la
configuracin del proyecto o los archivos necesarios para la correcta interpretacin del
cdigoenotrossistemas(encualquiercasonohayqueborrarlos).Paraactivarestavista,
seleccionaenelmenprincipalWindowsFiles.
Autoevaluacin
Rellenaloshuecosconlosconceptosadecuados:
EnNetBeans,losarchivos.classdeunproyectoestnalojadosenlacarpeta
ylos.Javaenlacarpeta.
Anexo.Licenciasderecursos.
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
43/45
22/10/2015
eXe
LicenciasderecursosutilizadosenlaUnidaddeTrabajo.Recurso(1)Datosdelrecurso
(1)Recurso(2)Datosdelrecurso(2)
Autora:RdigerWlk
Licencia:CCBYSA
Procedencia:
http://commons.wikimedia.org/wiki/File:Wiener_Melange_0363wien_img_9
Autora:barraquitofromSantaCruzdeTenerife,CanaryIslands,Spain
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:Cruce_de_caminos
El_Hierro.jpg
Autora:Desconocido.
Licencia:DominioPblico.
Procedencia:http://commons.wikimedia.org/wiki/File:OstrichHead.JPG
Autora:German,usuarioespaoldeWikipedia
Licencia:Dominiopblico
Procedencia:http://commons.wikimedia.org/wiki/File:Codigo_de_maquina.
Autora:Robpatrik
Licencia:CCBYNCSA
Procedencia:http://www.flickr.com/photos/alkalinezoo/3595562784/
Autora:ZikovanDijk
Licencia:CCbysa
Procedencia:http://commons.wikimedia.org/wiki/File:20101114_orr_ob_0
Autora:SasaStefanovic
Licencia:GNU/GPL
Procedencia:http://commons.wikimedia.org/wiki/File:Exquisitekcontrol.png
Autora:netbeans.org
Licencia:Copyright(cita),seautorizaelusosinrestricciones.
Procedencia:http://netbeans.org
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
44/45
22/10/2015
eXe
Autora:NevitDilmen
Licencia:GNUFreeDocumentationLicense.
Procedencia:http://commons.wikimedia.org/wiki/File:Maldives_00147.JPG
https://aulavirtual.castillalamancha.es/Curso_1516/blocks/recopila/view.php?id=118776
45/45