Está en la página 1de 32

'L

Introduccin a las computadoras y a java

Captulo I

Introduccin a las computadoras y a java

|ntmd,_,-
I .2

I.9 Java y un tpico entorno de desarrollo

Computadoras: hardware y software

en Java
|.I0 Prueba de una aplicacin en Java

|.3 jerarqua de datos

|.| I Web 2.0: Las redes sociales

|.4 Organizacin de una computadora


I.5 Lenguajes mquina. lenguajes ensambladores
y gnguajes de am, nv|

Ian
general

HL/P

|.6

I.I2 Tecnologas de software

I.I 3 Cmo estar al da con las tecnologias


de informacin

introduccin a la tecnologa de los objetos

I.I4 Conclusin

I.7 Sistemas operativos


L8

lenguajes de programacin

Introduccin
Bienvenido a java: el lenguaje de programacin de computadoras ms utilizado en el mundo. Usted ya
esta familiarizado con las poderosas tareas que realizan las computadoras. Mediante este libro de texto,
usted escribir instrucciones para ordenar alas computadoras que ralicen esos tipos de tareas. El sqware

(las instrucciones que usted escribe) controla el hardware (hs computadoras).


Aprender sobre la pro_g'ramact`dn orierrrada a orron la metodologa de programacin clave de la

actualidad. En este texto crear y trabajar con muchos

desqware.

Iava el lenguaje preferido parasatisfaoer las necesidades de programacin empresariales de muchas


organizacions. Tambien se ha convertido en el lenguaje de eleccin para implementar aplicaciones basadas en Internet y software paradisposi tivos que se comunican a travs de una red.
Hoy en da hay en uso ms de mil millones de computadoras de propsito general, adems de miles
de millones de telfonos celulares, telfonos inteligentes (smartphones) y dispositivos porttiles (como

las computadoras tipo tableta) habilitados parajava. De acuerdo con un estudio realizado poreMarlteter,
el nmero de usuarios mvils de Internet llegar acerca de 134 millones para 2013.' Otros studies han
proyectado ventas de telefonos inteligentes que sobrepasa a las ventas de computadoras personales en
201 12 y ventas de tabletas que representarn cerca del 20% de todas las ventas de computadoras personalas para 2015.3 Para20l4, se esperaqueel mercado de las aplicaciones de telemos inteligente exceda los
$40 mil rnillones,' lo cual generar oportunidades importantes para la programacin de aplicaciones
mviles.
Ediciorus deam' SE, EE] .ME

java ha evolucionado con tanta rapidez que esta novena edicin de Cmo programar en java -basada
en ava Standard Edition 6 (java SE 6') con mdulos opcionales sobre las nuevas caracteristicas dejava
SE 7 -se public slo 15 aos dsputfs de la primera edicin. java se utiliza en un espectro tan amplio

de aplicaciones. que cuenta con otras dos ediciones. java Enterprise Edition (java EE) est orientada
hacia el desarrollo de aplimcions de red distribuidas, de gran mmla, y aplicaciones basadada en Web.

wm . ci rc 'I el d. con/ posts /nobi1e__1n ter'net_users_to_rea|:I'i_l34_Ilil1'lon by__ZOl3 / .

una _ pene r1d . con/a rt-I c e/171 380/more sua rtphones_than_desktop_pc s_by_201_'l . ho _
wm .forrester _ con/ER/Press/Relea se/O, 1169 . 134-0 .O0. ht||`I .
nk i x-I

Inc. tciembrede 20l0ener0 de 2011,

ll6-l23.

|.|

Introduccin

En el pasado, h mayoria de hs aplicaciones de computadora se ejecutaban en computadoras indepen-

dientes (que no estaban conectadas en red). En la actualidad, las aplicaciones se pueden acribir con
miras a comunicarse entre computadoras en todo el mundo por medio de Internet y Web. Ms adelante

en ste libro hablaremos sobre cmo crmr dichas aplicaciones basadas en Web con java.
java Micro Eiition (Java ME) est orientada hacia el desarrollo de aplicaciones para pequeos
Cllspositivns con memoria restringida, como los telfonos inteligenta Blltcrty. El sstcrna opetalvo

Android de Google -que se utiliza en muchos telefonos inteligentes, tabletas (pequeas computadoras
gotas y mviles con pantallas tctilm), lectora electrnicos y otros dispositivos- utilim una versin
personalizada de java que no se basa en java ME.
crgrrtacidrrerr la indurtkybt irrtritigcrr
ms son tiempos emocionante en el campo de la computacin. Muchas de hsempresas ms influyen-

nes y exitosas de las ltimas dos dcadas son compaias de tecnologa, como Apple, IBM, Hewlett
Pacltard. Dell, Intel, Motorola, Cisco, Microsoft, Google,Ama:r.on, Faoeboolt,Twitter, Groupon, Foursquare, Yal1oo!,eBay y muchas ms; queson rentes de empleo importantes para hs personas que estudian

ciencias computacionales, sistemas de informacin o disciplinas relacionadas. Al momento de escribir


ste libro, Apple era la segunda compaa ms valiosa del mundo, ctm la tecnologa ms preciada.,

las computadoras tambin se utilizan mucho en kt investigacin acadmica e industrial. La gura 1.1
provee unos cuantos ejemplos de las increbles formas en que se utilizan las computadoras, tanto en
la invstigacin como en la industria.

Internet

Internet --una red global de oompumdoms- se laico posible gradas: la


muwrfrmiade lamnrprrzaddrry lrttmrnrrrrnerriorres. Time sus races en

Iadordade I960;supauodnioestuvoatargodel Depor-rarnerrtodeDefmsa


de EstadosUrtidoc Diseadaen un prineipiopammnecrarlossiswnas de
cmputo principales de alrededor de una docena deuniveraidades yorgnizm

cionm de investigation, en la actualidad son miles dernillona de computadoras y

oontrolzlos por oomputadomen todo el mundo los que

utilizan Internet. Las computadoras deroompotren las extensas oansmisiones


un pequena en el extrano emisor, mvan lospaquetes a losreoeptiorm

destinadosyaseguran quesereoibanen secuenciaysin erroresenel extremo


receptor. Dcacuerdo con un estudio de Forresser Research, el consumidor
estadounidense promedio invierteen la actualidad la misma cantidad de
tiempo en lnm que el queprrsa en la televisin (forrester _ r:oq/rb/

les earth/onde rsta nd1ng_cl\anq^l ng_needs_of_us_on1'ltre_covrsuuer/g/


'ld/57351/I/2).

Proyecto
Genoma
I-lurnarro

ElProyeceoGenomaHumanosefundpomidentifrcnryana1izarlosms
de 20,000 genes en elADN humano. El proyecto utiliz programas de
computadora panrarralizar datos genticos complejos. dener-mirrarlaa
seurerrciasde los miles de rnillona de poresde bases qumims que componen

elADN humano yalmaoerrarla ini-'or-rrradrr en bares de datosque se ban


puesto a diqaosidn de loa itwutigadorea en muchos mmpos. Esta investicin ha ocasionado una tr-erneoda innovacin yerecirnieneo err la industria
de la biotecnologa.

I-ig. I.I I Unos cuantos usos para las computadoras (parte I de 3).

un _ zdnet . con/b'Iog/aap e/app e-becomes-wo r-1 ds- second-nos t-vai uab1e-corrpany/9047.

Captulo I

Introduccin a las computadoras y a Java

Red dela Comunidad


Mundial

La Red dela Comunidad Mundial (uurr.nor'Idoomun~I tyqr-Id.o1-g) es una


tedde oomputadn sin fines de luan. las personas decodo el mundo donan

el poderde procsamientode cmputo que no utilicen. mediante la


instalacin deun programa desoftwareseguro gratuito que paminea laRcd
de la Comunidad Mundial aproveclrareae poder sobranteorando las

computadoraseenfm

Elpoderdecmpumseuriliu en lugar delas

superoomputadoras para rmlimr proyectos de invsticin cientficos que

estn haciendo la diferencia. entre ellos: el demnollo de energia snlara un


precio asequible, el strministro deagua potableal mundo en dmrtollo, la

lucltaconnaelcncer. la ctuadeladistroa muscular, el hallazgode


medimmentos antivinrles contra la influenza, el cultivo de arroz ms
nutritivo para las regiones que combaten la hambruna y otros ms.
Imgenes para
diagnstico mdico

Lasertplonrcionet por tomografa computarizada (CF) con rayosX. tambin


cnnoddas tnmo CAT (tornograa axial computarizada). toman rayosX del
cuerpo desde cientos deirrgulos
Se utilizan computadoras para
ajusearlainnensidaddel rayo X,con locualse optimiaalaotploracin para
cada tipo detejido, para dupuoombinartodala infonnadnycrerruna
imagen tridirnenaional (5D).

GPS

Los dispositivos con Sistema de posicionarniento global (GPS) utilizan una


redde satines para obtener inliormacin con baseen la ubicacin. Varios
satitea mvan sdales con etiquetas de tiempo al dispotivo GPS, el cual

calorlaladirtaocia haciatardasaelineoonbaseenlairoraenquelasealli
del satice yse recibi. La ubimcin decada satlite yla disomcia hacia ada

unode ellosseutilizan para deterrninarla ubitadneaaaa del


Segn la ubicacin en la queusted seencuentte, los dispositivos GPS pueden
proveer indicadouer paso a poso, ayudarle a enoontraroon facilidad negocios
certanos (rmtaumntes, psolineras, etctera) ypuntos de inters, o ayuthrle a

encontrara sus amigos.


SYNCQ de Microsoft

Ahora muclros autos Ford cuentan con la tecnologia SYNC de Microsoft, la

cual provee tapacidadesde reconocimiento yaioeesis de vo: (para leer


rrreruajeadecmma

que lepermicen usaroomandosdevozpara

explorar msica, aolicitaralerms de cnfteo youaa oasas nula.


AMBE-R'Alert

ElSiseernadea1ertaA.MBER(DesaparecidosmAmerit:a:$iscunade
'Iiansmisin de Respuesta a Emergencias) se utiliaa para buscar nios
secuestrados. Lasautoridades notitarn tanto a lasdirsotas dc TV y radio

como a los rncionatios de carreteras estatales, quienes a su vea. transmiten


alermr en TV, radio, seales oompumrimdas en lascarreuenas, Internet ylos

dispositivos inalmbricos. AMBER Alert se asoci recientemente con


Facebook. Cuyo: usuarios pueden bacerclicen 'Lille' (Mc g|.Isnr"} en hs

pginas deA.MBERAler-tsegn la ubicacin, para recibiraler-ursen sus


transmisiones de noticias.

Robots

Losrobotsson mqtritrasoomputariaadasque puedenrm1ir.artarma(oomo


trabaossioou], responderalosestfnnrlnsyotraroomasepuedenutiliaar

para tareasdiarias (porejemplo. inspiradora Rootnbade illobot), deenneeenitniento (como la mascotas robdtim), combate militar, explotacin

enlapromdidsrddeloceano. manufactunyotrasm.En20lM.elootarnun.1smardanndelaNASAamnnolrumm-qtreulimbammdogajava-en

lord hsuper-deparrrqrrender-sobrelalrisnoriadelaguaenelplar-reta.

Fig. l.I | Llnostuantos usos para las computadoras [parte 2 de 3).

|.2 Computadoras: hardware y software

Nombre

Descripcin

Um laptop por nio

Une Laptop Por Nio (OLPC) ofrece lapoops eoonrniois, habilitadas para

(OLPC)

Innemer yde bajo oonsumo de energia para los nios pobres en nodo el

mundo; gracias s ello fomennn el aprendizsjey reduoen la separacin digital


(one.1aptop.or-9]. Al pmveeresmos recursos educativos, OLPC aumenta las
oportunidades de que los nios pobrsaprendan y hagan la diferencia en ms
comunidades.
Programacin
dejuegos

El negocio de los juegos de computadora es ms grande que el de las


pelculas de estreno. El denn-ollo de los videojuegos ms sofisticados puede
costar-lnsm $100 millones. El juego Call'oDu:_y2: Modem Wsrrede
Activision, lanzarlo al pblico en noviembre de 2009, obtuvo $310 millones

en slo un da en Norteamrica yel Reino Unido (news .cnet.eon/830113 772_3-103965 93- 52 _ MJI1 'tag-|Inco'I ;trt)l Losjuqursoeialfrerr linea,
que perrniuen a usueriosde nodo elmundo eornpetir-entre s. esuin creciendo con rapidez. Zyup-creadordc juegos en lina populares. como

lio-mslkyea Werr- se fund en 2007 yyacuenta con msde 215


millones de usuarios mensuales. Pam dsrcsbids al aumento en el trfico,
Zy-ug: ag:-ep casi 1,000 servidores porseuuna [tec hcru nch.
oonI/2010/O9/22/2yr9a-Uoves-1- pet byte-of -det e-dei 'ly-add s1000-servers-a -creek/)! 1.-as consolasde videojuegos tambin se esein
volviendo cada vez ms sofuticadss. El conuol remoto del Wii utilizo un
cekrmnr (pu: deteclarla inclinacin y la aoeleracin] junto con un

sensorque determina lucia donde apunta el dispositivo, lo cual le permite


responderal rnovimienrao. Al hacer adernaues con el control nemono del Wii

en ls mano, usted puede controlar el videojuego eu la pantalla. Con Kne-ct


pam el Xbox 360de Microsoft, usned -eljupdor- se conviene en el
controlador. Kinect utiliza una cmara, uu sensor de profundidad ysoftware
sofisticado parseguir el movimiento de su cuerpo, lo cual le permite
controlar el juego (en. ullvl pod*la.org/n'lk'I /X1 nect). (bn los juegos de

Kinecr puede bailar, hacer ejercicio. joy: deportes. entrenar animales


virtuales yvarias actividades ms.
Tvpor Internet

l-0sreoeptoresdcTVpor Internet (oomoAppleTVyGoogleTV)ledan

acceso a diversos tipos deoonrenido -como juegos, noticias. pelculas.


progumasdenelevsinyms-, oou locual usnedpuede aooedaunagmu

cantidad de contenido lnio dunsnds; ya no necesita dqsender de los


peovoedoresde televisin por mble o via satline pan recibir contenido.

Fig. I.I | Unoscuantos usos para las computadoras [parte 3 de 3).

Computadoras: hardware y software


Unaoompuradora es un dispositivo mpaz de realizar clculos y tornardecisiones lgicas con una rapida
increblemente mayor que los humanos. Muchas de hs computadoras personales contemporneas pueden realizar rnilm de milions declculos en un segundo --ms de lo que un humano podra realizar en

nda su vida. Las mp:-rmmputdomc ya pueden realizar miier de billoms de nsn-uoeiona por segundo!
Dicho de otra Forma, una oomputadora de mil billones de instmociou-es por segundo puede realizar en
un segundo ms de 100,000 clculos para cada una de or rabitanter delphneml Y estos lmi tes superiores stn aumentando oon rapidez!

Captulo I

Introduccin a las computadoras y a java

Las computadoras procesan datos bajo el control de conjuntos de instrucciones conocidas como

11-ogramaa de computadora. Los cuales guan a ki computadora a travs de conjuntos ordenados de


acciones especificadas por gente conocida oomo programadores de computadoras. A los programas

que se ejecutan en una computadora se la denomina software. En ste libro aprender la metodologa
de programacin clave de la actualidad que mejora la productividad del programador, con lo cual se
reducen lcs costos de desarrollo del software: programacin orimrada la objetos.

Una computadora consiste en varios dispositivos conocidos como lnrdwate (teclado, pantalla, ra-

tn, dkcos duros, memoria, unidades de DVD y unidades de procesamiento). los costos de las computadoras Inn diirnrnuido en forma especmcuhr, debido a los rapidos desarrollos en las tecnologias de
hardware y software. Las computadoras que ocupaban grandes habitaciones y que costaban millones

dedlares hacealgunasclcadas, ahora pueden colocarse en las superficies de chipsde silicio ms pequeos
que ima ua, y con tm costo de quiz unos cuantos dlaiu cada uno. Aunque suene irnico, el silicio
es uno de los materiales ms abundantes en el planeta (es uno de los ingredientes de El arena comn).
la tecnologa de los chips de silicio ha vuelto tan econmica a la tecnologa de la computacin que hay
ms de mil millones de computadoras de uso general Funcionando a nivel mundial, y se espera que esta
cifra se dupliqueen los prximos aos.

los chips de computadora (microproreradorrr) controlan innumerables dispositivos. Entre estos


liltelnl incrustados tstn: frenos antibloqueo cn los autos, sistemas de navegacin, electrodomsticos

inteligentes, sistemas de seguridad en el hogar, telfonos celulares y telfonos inteligentes, robots, intersecciones de trfico inteligentes (collision avoidance systems), controles de videojuegos y mas. La gran
mayora de los microprocesadores que se producen cada ao estan incrustados en dispositivos que no
son computadoras de propsito generalf

Lo' de Moore

Es probable que cada ao, espere pagar por lo menos un poco ms por la mayora de los productos y

servicios. En el caso de los campos de las computadoras y las comunicaciones se ha dado lo opumto, en
special con relacin a los costos del hardware que da soporte a estas tecnologas. Los costos del hardware
han disminuido con rapidez. durante varias dcadas. Cada uno o dos aos, las capacidads de las computadoras se dsrplirarr aproximadamente sin que el precio se incremente. Esta notable observacin seconoceen el ambito comn como la Leyde Moore, y debe su nombre ala persona que identific sta tenden-

cia: Gordon Moore, corndador de Intel, uno de los principales fabricantes de procesadores para las
computadoras y los sistemas incrustados de la actualidad. la Ley de Moore y hs observacons relacionadas son especialmente ciertas en cuanto a la cantidad de memoria que tienen las computadoras para los

programas, la cantidad de almacenamiento secundario (corno el almacenamiento en disco) que tienen


para guardar los programas y datos durante periodos extendidos de tiempo, y las velocidades de sus promsadorm: hs velocidades con que las computadoras ejecutan sus programas (realizan su trabajo). Se ha
producido un crecimiento similar en el ca.mpo de las comunicaciones, en donde los costos se han desplomado a medida que la enorme demanda por el ancho de banda de las comtmicacones (la capacidad de
transmisin de informacin) atrae una competencia intensa. No conocemos otros cambios en los que la

tecnologia mejore con tanta rapida y los costos dismin uyan de una manera tan drstica. Dicha mejora
fenomenal est fomentando sin duda la Revocddn de :lr infrrnacin.

l.3

jerarqua de datos
Los elementos de datos que procesan lascomputadoras forman una jerarquiade dato-aque se vuelve cada
va ms grande y compleja en mtructura, a medida que progrmamos primero a bits, luego a caracters,
despus a campos y asi en lo sucesivo. La gura 1.2 ilustra una porcin de lajerarqufa de datos. La figura

1.3 sinretiia los nivelm de la jerarqua de datos.


6

wm .eetl nes. con/electroni es-blogs/*I ndustr"laI-control -des'|gn`I 'l ne- b'I og/402?479/

Rea-nen-program 1 n-C?pa9eNulber-1.

|.3 jerarqua de datos

Judy

Negro

Tn

Azul

Indy

Verde

Ir! s

Naranja

Randy

Rojo

Vcfl

3 I-I 0 Y

A-d1vo

Hltw

Campo

OUIOOOW 01001010

S11 `Iy

Cfttcl' Lhitdt J

Bit

L2 I jerarqua de datns.

Nivei

Dtstiipin

Bts

Eldancnnodcdauosmispequcoenunaoompumdon pucdcnaunirdvalor
odvalor 1.h0c|nmmm dcdimsxlcdmmna l'|it(abrv'Bc6ndc
'dgim binario": un dgim que puede uum.i.r uno de dos valorcs). Esnmablc

que lasmpmuionanms mcones que realizan las cnmputadm-as slo impliquen


Iasmanipuladoncsms lnpksdci y1sa:ann'nr'II1arJnmHt, estaabker

dmhrdf unitenwrrdnubrdf |m:'r(de 1:00 det): 1).


C-amen:-ra

Esnediooopualaspcsonastmhujarmndamscrnclfonnamdcbajoniwcldelos
bi. En cambio. pmum Inbajax mn gmdedmmks (0-9), ktm (A-Z ya-1) y
:fnhlanea`ak:(por ejemplo, $,@. 95, 8. ', (, ). -, +,", ?y}. Losdlgms, lens:
ysimbolos especiales se conocen como cnrlctntel. El amianto dcuncluude
la oompumdom cscl conjunto dc nodos los qu: scutilinn para mcribirprogmmzi

yrepvescnurcknzulnosdedanoalasoomputadozassloprocunnlos 1ylos0,
por lo que dmnjunm dcamctua de una mmputadom lqarenmu a ada uno

cnmoun paundcloa1yIos0.]avausnancnems lhicodfqucutn


cnmpuams|cdos|IyI,mdaunodcloaq1aIcscnfonn|doam vlztocho

bits. Unicndeoonme anciana pan mudaosdc los idioma en el mundo. En el


apntlc Lobmcndd ms infonna-cin sobre Unicode. En cl apndice B mnom

ms infon-nadn scbrccl conjunto de cnncacru ASCII (Ccligoulindlr


slnclnunitlnnnepnnel nIzmImbiolein.fnnnn|:i6n}: elpnpular submnjunm
dcUnindcqucrcprcnahslctnsmayu1|aayminm|as, lnsdfgimsy

algunnscamcmerescspecalucomunes.

ng. 1.3 | wwe; da la jemqma amm; [pm 1 d 2).

Captulo l

Introduccin a las computadoras y a java

Nivel

Descripcin

Campoo

As como los cuneueresesen compueseoede bin, los eempoe lo ende por


mmcimesobyl. Unmmpo uungrupodemxacneresobymesque eransminenun

Por ejemplo, un campo oompucseode leuasmaydscislasymindsailas


xplsedeumrpam lepresenlarelnombredeuna pemona. yuno mmpueseode

dgimsdedmaler podrsrepreuemarsu edad.


Registros

Sepuleu usarvasios campos relacionados pan oomponerun Qiilm (el cual se

implementa como una dese eujava). Por ejemplo, en un siseema denomina. el


registro deun emplado podraconsistren
mmposoe posibles
tipos para hace semuerrmn entre parenees):
I Nmero de denecadn dd empleado (Im nmero meo-o)
Nombre (unaosdenadearaceeres)
' Direccin (llnamdeua de camcneres]

I Salario por bom (un nmero ooo pumeo decimal)


I Ingm|oscIelaoalafocl1a(un nmemoonpunno

0 Monm de impuesnoc :enenidos (un nmero con punno decimal)


Aiimmgistlnesungmpoderamposldadonadosndejernploaneerioimdos

loeounpoe perneoeoen al mismo anplesdo. Una compaa podra eener muchos


ernplmdosyllnrgistmdenminapammdauno.

Archivos

Unlehivoaungmpode|egsuoereIacionodoe.[Na'a:Diehoenformamds
Fneral, un chivo mneiene danos atbiuariosen fonnanos arbitrarias. En algunos

sinunasopu-uivos,unard1voaevemnslommomusawmakdrQ;eeanlquer
olnimcindeesosby'nes1unaml1ivn,eomocuanslose olpnizanlosdaoosen

regisuoages miavsencreadaporel progi-amadordelaap1icaci6n].Esmuyoomn


que umorpnilacin neogamuchoasrd1ivos,algunnsdeloscualespueden
oonoelzermiles de milions, o inclino billones decarxeeres de infonnacin.

Fig. I.3 | Niveles de Iajerarquia de datos [parte 2 de 2].

I.4 Organizacin de una computadora


Sin importar las diferencias en loapariencia Hsiea,es posible percibir a las computadoras como si estuvieran divididas en varias unidades ldgcaso secciones (figura 1.4).

Unidad logica

Descripcin

lhisllsl

Ema seedn receptora obtiene infonnacin (danos ypsogmmasde cmputo) de loa

deentrsda

dinpoliiivoldeennadaylaponeadrposidndehsouasunichdesparaquepueda
prooesarsn-.1.amsyor|1a.reedehinnna::i6n se inuoduceanavsdeloa eeclados,
pantallas nietilesyraeones. La informacin eembin puedeiouodudrse de mlwlus
oems formas, como hablar con su oolnpumdom, digiializarimner y

de

bon-ias. leerdisposicivos deelmaoennmieneo secundario (oomo discosdums, unidades


de DVD, Blu-ray Discnl y Flash USB -tambin conocidas como unidadesde

pulgar o "memoryseid:s"), recibir video deunadnnnwebeinformadnen su


mmputadom a naves de Innemet (mino cuando durasp viclms de YouTule'"*" o
libros elecuoniooe deunazon). las Iionnas mis eeiemes de amada son: leer los
datomdelnpoenanavs deun disposieivoGPS,yla informacin sobreel
movimimeo yla orientacin medianeeun aeleemeero en un telfono inoeliynee

o un controlador de juegos.

Fig. L4 | Unidades lgicas deuna computadora [parte I de 2).

|.4 Organizacion de una computadora

Llnidsd igica

Descripcin

[hidad

Esta seccinde 'embarque' coma nfonmein que ya ha sido procesada por lacompu-

rsalidn

mdomylamlomenlosdifermmsdipneivtldendgpomquesedisponible

fuer-ade la computadora. En la actualidad. la mayorparte de la inforrnacinde salida


de En compumdorz sedespli en pantallas, se imprime en papel, se reproduce como

audio o video en ieproduceores de medios porttiles (como los populares Pod de


Apple) y pantallas Qgaores en mradios deportivos, se transminea rravde Internet
o se utilin par-aoonu-olar ouosdiqsodvos, como rolsorsy apararos "inrel.ige|-ms".
Unidad de
memoria

Esta seccin de aimacrr deacoeso rpido, pero con relativa baja capacidad, retiene
La informacin que se introduce a naves de la unidad de entrada, para que este
disponibledemana inmediata y se pueda proccsarcuando su necesario. La unidad

de memoria tambin retiene la informacin proomda hasta que la unidad de salida


pucha colocarlaen losdirpositivos deaalida. La infonnacin en la unidad de memoria

es roldri por lo gnc:-al se pierde cuando seapag la computadora. Con frecuencia, a


la unidad de memoria se le conoce como memoria o nnrnoria prineipal.l.1s tpicas
memorias prindpales en las computadoras de esa-moi-io y pornitiles condenar entre
1 GB y 8 GB (GH se refiere a

un gigabyte equivale aproximadamenne

s mil millones de byeer).


Lhidad aritmtica

Esta seccin de 'nnnufacrura' reslim cifrulorcomo suma, resta, multiplicacin y

y lgica (ALU)

divisin.'l`mbin contiene los tnecanismosde drdsin que permiten a la computadora hacer cosas como, por ejemplo, comparar dos elementos de la unidad de

memoriaparadeeerminarsison igualeso no. En lossisremasseruales. laALU


se implementa porlogeneralcomo parce de lasiguienee unidad lgica, |aCPU.
Ulidadiral

Esmsccdo adminisuariva coordinaysarpervisalaoperncindelasder:nis.1.aCPU

de procesamiento
(CPU)

le indica a launidaddeerrtradsciuindodebegrabsrsels infonnscindeno-o dela


unidad derner-noria, a|aA1.U cundo debe urilintsela informacin dela unidad de
memoria para los diculos, ya la unidad desalida cundo enviarla i.nrtnacin

deatielaunidaddememotiahasraciermsdispositivosdesalida. Muchasdelsscomputadotas actuales contienen mltiples CPU y, por lo tanto, pueden rmlharmucbas

operacionra de manera simultnea. Un pmcendofnmltinlicleo impletnen varios


procesadores m un solo chip de circuinos integrados: unpmassdar drdale miden
(dual-eonr) time dos CPU yunpnasedwde cudruple ncleo (quad-mn) tiene mano
CPU. las computadoras de esericorio de la actualidad tienen procesadora que

pueden ejecutar milesdemllones deinsrruccicnes por-segundo.


Unidad de

sta es la seccin de 'alrnacn' de alta capacidad y de larga duracin. Los programas

Hmacenamienln

o danos que no utilizan hs dems unidadescon frecuencia se colocan en dispositi-

seenndario

vosdealrnnoenarnienro secundario (por ejemplo, el disco duro) hasta quese requieran


de nuevo, lo cual puede ser cuestin de horas. das, mesas o incluso aos
La inm-nacin en losdisposi tivos de alrnacenarnieneo secundario esperrssmre:
se conserva an ycuando se apaga la computadora. Eltiempo para acceder a la

informszin en alrnacenamienrosecundario es mucho mayor que el necemrio


para acceder a la de la memoria principal, pero el com por unidadde memoria
secundaria es rnucbo menor que el oorrespondienee a la unidad de memoria
principal. las unidad de CD, DVD yFlssh USB son ejemplos de dispositivos
de almacenamiento secundario, loscuales pueden contener hasta 128 GB.

Los discos duros dpicos en las computadoras de escritorio y porcitles pueden


contener hasta 2 TB (TB se refiere a oerabytes; un cerabyee equivale aproximada-

mente a un billn de bynes).

g. L4 | Unidades lgicas de una computadora [parte 2 de 2).

I0

Capitulo I

Introduccin alas computadoras y a java

I 5 Lenguajes mquina, lenguajes ensambladores


y lenguajes de alto nivel
Los programadores scriben instruccionts en diversos lenguajm de programacin, algunos de los cuales los comprende directamente h computadora, mientras que otros requieren pasos intermedios de
rraduccidrr. En laactualidad te utilizan cientos de lenguajm de computacin. stos se dividen en tres tipos
generales:
1.

Lenguajes mquina

2.

Lenguajes ensarnbhdores

3.

Lenguajes de alto nivel

Cualquier computadora puede entender de manera drectaslo su propio lenguaje mquina, elcual
se define segn su diseo de hardware. Por lo general, los lenguaja mquina consisten en cadenas de
nmeros (que nalmente se reducen a los 1 y 0) que instruyen a las computadoras para rmlizar sus operaciones ms elementalu, una a la va. Los lenguajes mquina son
de la
(es decir,

un lenguaje mquina en particular puede usarse slo en un tipo de computadora). Dichos lenguajes son
diciles de comprender para los bumarros. Por ejemplo, he aqui la seccin de uno de los primeros programas en lenguaje mquina, el cual suma el pago de las horas extras al sueldo base y almacena el resultado
en el sueldo bmro:
i-1300042 7 74
+1400 5934 19
+ 12002740 27

La programacin en lenguaje mquina era demasiado lenta y tediosa para la mayora de los programadores. En vez. de utilizar las mdenas de nmeros que hs computadoras podan entender de manera
directa, los programadores empezaron a utilizar abreviaturas del ingl para representar las operaciones
elementalm. Estas abreviaturas formaron la base de los lenguajes ensambladores. Se daarrollaron programar traductores conocidos como utsambladores para convertir los primeros programas en lenguaje
ensamblador a lenguaje mquina, a la velocidad de la computadora. La siguiente seccin de un programa en lenguaje ensamblador tambin suma el pago de las horas extras al sueldo base y almacena el resultado en el sueldo bruto:

'load
add
store

suel dobase
suel doextra
suel dobruto

Aunque ste cdigo 3 ms claro para los humanos. hs computadoras no lo pueden entender sino hasta
quese traduce en lenguaje mquina.
Eluso delascomputadoras se increment rpidarnentecon la llegada de los lenguajscnsambladorts,

pero los programadores an requeran de muchas instrucciones para llevara cabo incluso hasta hs tareas
ms simplm. Para agilizar el procwo de programacin se dmarrollaron los lenguajes de alto nivel, en
donde podan escribirse instrucciones individuales para rmlizar tareas importantes. Los programas traductores. denominados compilatlores, convienen programas en lenguaje de alto nivel a lenguaje mqui-

na. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que son muy similares
al ingls comn, y contienen la notacin matemtica comn. Un programa de nmina escrito en un

lenguaje de alto nivel podra conte ner una instruccin como la siguiente:
sue'IdoBruto = sueldoase + sueldolxtra
Desde el punto de vista del programador, los lenguajes de alto nivel son mucho ms recomendables
que los lenguajes mquina o ensambhdor. java es, por mucho, el lenguaje de alto nivel ms utilizado.

|.6

Introduccin a la tecnologa de los objetos

II

El proceso de compilacin de un programa escrito en lenguaje de alto nivel a un lenguaje maquina


puede tardar un tiempo considerable en la computadora. Los programas ntrprezrs se dmarrollaron
para ejecutar programas en lenguaje de alto nivel de manera directa (sin el retraso de la compilacin),
aunque con ms lentitud de la que se ejecutan en los programas compilados. Hablaremos mas sobre la

forma en que trabajan los intrpretes en la seccin 1.9. en donde aprender que java utiliza una astuta
mezcla de compilacin e interpretacin, optimizada con base en el rendimiento, para ejecutar los pro-

gramas. Los ejercidos 7.35-7.37 (en la Seccin especial: Cree su propia computadora) le guiarn a
travs del proceso de creacin de un programa intrprete.

6 Introduccin a la tecnologa delos objetos


Crmr software en forma rpida, correcta yeconrnica sigue siendo un objetivo dicil de alcanzar en
una poca en que la demanda de software nuevo y ms poderoso va en aumento. Los objetos, 0 dicho

en forma ms precisa -como veremos en el capitulo 3- las clase: de las que provienen los objetos,
son en esencia componentes de software reurilizables. Existen objetos de fecha, objetos de hora, objetos de audio, objetos de video, objetos de automviles, objetos de personas, etctera. Casi cualquier
mstan tivo se puede reprmen tar de manera razonable como un objeto de software en trminos de sus

arriban: (como el nombre, color y tamao) y mmporramimms (por ejemplo, calcular, moverse y comtulimrse). Los desarrolladores de software han dmcubierto que al usar una metodologia de diseo

e implementacin orientada a objetos y modular, pueden crea grupos de desarrollo de software ms


productivos de lo que era posible con las tcnicas populares anteriores, como la prograrnacin esn-ucturada por lo general los programas orientados a objetos son ms faciles de comprender, corregir
Y Incld-iff.

Elautomvil como un objeto


Para ayudarle a comprender los objetos y su contenido, empecemos con una analoga simple. Suponga
que desea conducir un auto] imcerquemya m: rpidos! oprimir elpedaldelaoelmrdor. Qu debe ocurrir

paraque usted pueda hacer sm? Bueno, anne; de que pueda conducir un auto, alguien tiene que uarla.
Por lo general, un auto empieza en forma de dibujos de ingeniera, similares a los plano: de construccin
que dscriben eldiseo de unacasa. Estos dibujos de ingenierfaincluyen ddiseo del pedal del acelerador.

El pedal ocuka los complejos mecanismos que se encargan de que el auto aumente su velocidad, de igual
forma que el pedal del teno oculta los mecanismos que disminuyen la velocidad del auto y el volante
oculta los mecanismos que hacen que el auto de vuelta. Esto permite que las personas con poco o nada
de conocimiento acerca de cmo iimcionan los motors, los enos y los mcmnismos de la direccin

puedan conducir un auto con facilidad.


Por dmgracia, asi como no Q posible cocinar en la cocina de un plano de construccin, tampoco

es posible conducir los dibujos de ingeniera de un auto. Antes de poder conducir un auto, ste debe
mrurrurrr a partir de los dibujos de ingeniera que lo dmcriben. Un auto completo tendr un pe
dal acelerador verdadero para hacer que aumente su velocidad, pero an as no es suficiente; el auto
no acelerar por su propia cuenta (esperernos que as seal), asl que el conductor debe oprimir el pedal
del acelerador para aumentar la velocidad del auto.

Mtodos] :laser
Ahora vamos a utilizar nuestro ejemplo del auto para introducir algunos conceptos clave de la programacin orientada a objetos. Para realizar una tara en una aplicacin se requiere un mtodo, el
cual aloja las instrucciones del programa que se encargan de ralizar sus tareas. El mtodo oculta al
usuario stas tareas, dela misma lorma que el pedal del acelerador de un auto oculta al conductor los
mecanismos para hacer que el auto vaya ms rapido. En java, creamos una unidad de programa llamada clase para alojar el conjunto de mtodos que rmiizan las taras de ma clase. Por ejemplo, una

Captulo I

Introduccin las computadoras y a Java

dase que representa a urta cuenta bancaria podria contener un mtodo para depositar dinero en una
cuenta, otro para rerirary un tercero para roficirarel saldo actual. Una clase es similar en concepto a
los dibujos de ingeniera de un auto, que contienen el diseo de un pedal acelerador, volante de di-

reccin, etctera.

twancianuenro
As como alguien tiene que cortrrmir un num a partir de sus dibujos de ingenieria para que otra persona
lo pueda conducir despus, tambin es necesario crear un m de unaclase para que un programa pueda
realizar las tareas definidas por los mtodos de Ga chse. Al proceso de hacer esto se le denomina infrarr-

ciamimro. Entonces, un objeto viene siendo una instancia de su clase.


Iieutilrlnarin
Asi como los dibujos de ingenierade un auto se pueden rerrrilizarmuchas veces para construir muchos
autos, tambin m posible rerrrzr una clase muchas voces para orar muchos objetos. Al reutilizar las

dases existentes para crear nuevas clases y programas, alrorr-amos tiempo y esrerno. La reutilizacin
tambin nos ayuda a crm: sistemas mas conabla y efectivos, debido a que con 'eCuencia las clas y

bs componentes eristentes pasan por un extenso proceso de prueba, depuracin y optimizacin del
riaenrpea. De la misma rnaneraen quela nocin depieza: inzerramlriabkr fue crucial para la Revolucin
Industrial, las clases reutilizahles son cruciales para la revolucin de software incitada por la tecnologa
de objetos.

__, , Observacin de ingeniera de software l.l


- Ut: un rinda de o-msrruenrr en bloqaerpicn rmtrpmgranm. Evite reirtvemw la ruda: tor prlrsas
"'-'-"eh eriraerues riempnqnesfsjtatiie Erre rnitiiieadrrdesmareer rm hmqido :Lua-de lapmgrmrrrrridn
orientada a jerw.

Mmsnjuy llamadas a mirado:


Cuando conduce un auto, al oprimirel pedal del acelerador enva tm mensaje al auto paraque rmlice
una tarea: aumentar la velocidad. De manera similar, es posible enviar memqet a un orto. Cada men-

saje se implementa como llamarla a mtodo, para indicar a un mtodo del objeto que rmlice su tara.
Por ejemplo, un programa podra llamar al mtodo depositar de un objeto cuenta de banco especlco

para aumentar el saldo dew. cuenta.

Atributos] varriclries de irrsrancia


Ademas de tener capacidades para realizar tareas, un auto tambin tiene atributos: color, nmero de
puertas, cantidad de gasolina en el tanque, velocidad actual y registro del total de kilmetros recorridos
(Q decir, la lectura de su velocmetro). Al igual que sus mpacidadm, los atributos del auto se representan
como parte desu diseo en sus diagramas de ingeniera (que, por ejemplo, agrego un velocmetro y un
indimdor de combustible). Al conducir un auto real, aros atributos van incluidos. Cada auto conserva

sus proprbr atributos. Por ejemplo, cada uno sube cunta gasolina hay en su tanque, pero no cuanta hay
en los tanque de otros autos.
De manera similar, un objeto tiene atributos que lleva consigo a medida que se utiliza en un pro-

grama. Estos au-ibutos se especifican como parte de la clase del objeto. Por ejemplo, un objeto cuenta
bancaria tiene un atributo :chia que representa la cantidad de dinero en h cuenta. Cada objeto cuenta bancaria conoce el saldo de la Cuenta que reprmenta, pero rra los saldos de las tiras cuentas en el

banco. Los atributos se especifican mediante las variables de instancia de la clase.

l.7 Sistemas operativos

I3

Eruapnlanurrto
las class enmpsttlnn (envuelven) los atributos y mtodos en objetos; los atributos y mtodos de un
cbjeto estn muy relacionados entre sl. Los objetos se pueden comunicar entre sl, pero por lo general
no se les permite saber cmo estan implementados otros objetos; los detall de implemerttacin stan

ocultos dentro de los mismos objetos. Este ocultamiento de informacin, como veremos mas adelante,
G crucial para la buena ingeniera de software.

Here'm1'a
Es posible crm: una nueva clase de objetos con rapidez y de manera conveniente mediante la herencia:
la nueva clase absorbe las caracteristicas de una clase existente, con ia posibilidad de personalizarlas
y agregar aracrer1'stit'as nicas propias. En rrumtra analoga del auto, sin duda un objeto de la clase
convertible er un objeto de la chse ms genera! llamada automvil pero, de manera ms erpecica, el
techo puede ponerse o quitarse.

/Indiinlry diseo orientado rr oetos (A/DOO)


Pronto escribir programas en java. Cmo crear el

(es decir, las instrucciones) parasus progra-

mas? Tal va, al igualque muchos prograrnadores,slo entender su computadora y empezar a escribir.
Quizs este mtodo funcione para pequeos programas (como los que presentarnos en los primeros captulos del libro), pero qu tal si le pidieran crmr un sistema de software para controlar miles de cajeros
automaticos para un banco importante? O si le piden que
con un equipo de 1,000 desarrolladores de software para crear el nuevo sistema de control de trfico areo en Estados Unidos? Para proyecms tan grande y complejos, no es conveniente tan slo sentarse y empezara escribir programas.

Para crear las mejores soluciones, debe seguir un proceso de anlisis detallado para determinar los
requerimientos de su proyecto (denir qu!se supone que debe hacer el sistema) y dmarrollar un diseo
que los satisfaga (decidir oimo debe hacerlo el sistema). Lo ideal serla pasar por este proceso y revisar el
diseo con cuidado (ademas de pedir a otros profutionales desoftware que lo revisen) antes de escribir
cualquier cdigo. Si este proceso implica analizar y disear su sistema desde un punto de vista orientado
aobjetos, se denomina proceso de anlisis y diseo orientado a objetos (ADOO]. Los lenguajm como

java son orientados a objetos. La programacin en un lenguaje de este tipo, conocida como prognntacin orientada tt objetos (POD), le permite implementar un diseo orientado aobjetos como un sistema tncional.

El Ull. (Inrguaje urri`cad'a de modelado)


Aunque existen muchos procesos de AJDOO distintos, hay un solo lenguaje grlco para comunicar los
rmultados de cualquier proceso de A/DOO que se utiliza en la mayora de los casos. Este lenguaje, conocido como Lenguaje unicado de modelado (UML), es en la actualidad el esquema grfico mas utilizado

para modelar sistemas orientados a objetos. Prmenramos nuatros primeros diagramas de UML en los
captulos 3 y 4; despus los utilizamos en nuestro anlisis ms detallado de la programacin orientada a
objetos en el captulo ll. En nustro ejemplo prctico apcirmaide ingeniera de software del ATM en los

captulos 12 y I5 presentarnosun subconjunto simple de lascaracterlsticas del UML, mientras lo guiamos


por una experiencia de diseo orientada a objetos.

I.7

Sistemas operativos
Los sistemas operativos son sistemas de software que se encargan de hacer ms conveniente el uso de
hs computadoras para los usuarios, dsarrolladors de aplimciona y administradora de sistemas. Los

sistemas operativos proveen servicios que permiten acada aplicacin ejecutarse en forma segura, eficien-

Captuio I

Introduccin alas computadoras y a Java

te y conrurrmte (es decir, en paralelo) con otras aplicaciones. El software que contiene los componentes

bsicos del sistema operativo se denomina lteenel. Los smemas operativos de escritorio populares son:
Linux, Wndows 7 y Mac OS X. Los sistemas operativos mviles populares que se utilizan en telfonos inteligentts y tabletas son: Android de Google, BlackBerry OS y Apple iOS (para sus dispositivos

iPhone, iPad e Pod Touch).

W't'n.d'ows.' un sistema operarivapropietanb


A mediados de la dcada de 1980 Microsoft desarroll el sistema operativo Windows, el cual consiste en una interz grfica de usuario creada sobre DOS: un sistema operativo deoomputadora personal

muy popular en la epoca en que, para interactuar con l, los usuarios tecleaban comandos. Windowrs
tom prestados muchos conceptos (como los iconos, mens y ventanas) que se hicieron populares
gracias a los primeros sistemas operativos Apple Macintosh, desarrollados en un principio por Xerox
PARC. Windows 7 es el sistema operativo ms recien te de Microsoft; algunas de sus ciracterlsticas son;
mejoras en la interfaz de usuario, un arranque mas veloz, un mayor grado de renarniento en cuanto a
hs m.racterlstitas de seguridad, soporte para pantalla tctil y multitctil, y otras ms. Windows es un

sistema operativo propietario; esta bajo el control exclusivo de una compaa. Windows es por mucho
el sistema operativo ms utilizado en el mundo.

Imx: un .tissmur operativo de cdxlgonrrre abierto


El sistema operativo Linus m tal va el ms grande xim del movimiento de cdignimue abierto. El
cdigo fuente abierto es un estilo de desarrollo de software que se desva del duarrollo propietario, el
Cual predomin durante los primeros aos del software. Con el dxrrollo de cdigo fuente abierto,

individuos y compaias unen sus esfuerzos para desarrollar, man tener y evolucionar el software a cambio del derecho de usarlo para sus propios fines, por lo general sin costo. Por lo general el cdigo fuente abierto es escudriado por una audiencia mucho mayor que la del software propietario, de modo

que casi siempre los errors se eliminan con ms rapidez. El cdigo iente abierto tambin fomenta
una mayor innovacin. Sun abri el cdigo de su implementacin del Kit de desarrollo de Java y de
mu-Chas de sus tecnologas de java relacionadas.

Algunas organizaciones en la comunidad de cdigo fuente abierto son: la fundacin Eclipse (el
Entorno integrado de desarrollo Eclipse ayuda a los programadores de java a desarrollar software
de manera convenien te), la fundacin Mozilla (creadores del navegador Web Firefox), la fundacin de

software Apache (creadores del servidor Web Apache que se utiliza para desarrollar aplicaciones basadas en Web) y SourceForge (quien proporciona las herramientas para administrar proyectos de cdigo fuente abierto; tiene ms de 260,000 de estos proyectos en dsarrollo). Las rapidas mejoras en la

computacin y las comunicaciones, la reduccin en costos yel software de cdigo fuente abierto han
logrado que sea mucho ms fcil y econmico crm: un negocio basado en software en la actualidad
de lo que era hace unas cuantas dcadas. Facebook es un gran ejemplo de ello; este sitio se inici desde
un dormitorio universitario y se Cre con software de Odigo fuente abicrtof
El kernel de Linux es el ncleo del sistema operativo de cdigo iente abierto ms popular y lleno
de funcionalidadu, que se distribuye en forma gratuita. Es daarrollado por un equipo de voluntarios
organizados de manera informal; es popular en servidors, computadoras personales y sistemas incrustados. A diferenciado los sistemas operativos propietarios como Windows de Microsoft y Mac OSXdeApple,
el cdigo fuente de Linux (el cdigo del programa) est disponible al pblico para que lo exarninen y
modifiquen; adems se puede descargar e instalar sin costo. Como resultado, los usuarios del sistema
operativo se benefician; de una comunidad de desarrolladores que depuran y mejoran el kernel de

deveopers.faceboolncon/opensource/.

1.7

Sistemas operativos

IS

maneta continua, de la ausencia de cuotas y restricciones de licencias, y de la habilidad de poder personalizar por completo el sistema operativo para cumplir necesidades mpecms.
En 199], Linus Torvalds, un estudiante de 21 aos en H Universidad de Helsinlti en Finlandia,
empat a dcsarrolhr el kernel de Linux oomo un pasatiempo (El nombre Linux se deriva de "Linus" y

UNIX: un sistema operativo desarrollado por los Laboratorios Bell en 1969). Torvalds quera mejorar
el diseo de lt/linint, un sistema operativo amdtnioo crudo por el profuor Andrew Tanenbaum de la

Vrije Universiteit en Amsterdam. El cdigo fuente de Minix estaba disponible al pblico para que los
profesora pudieran demostrar los conceptos basicos de la implementacin de sistemas operativos a sus
atudiantes.
Torvalds liber la primera versin de Linux en 1991. La respuesta favorable condujo a la creacin de

unaoornunidad que ha continuado con el desarrollo y soporte de Linux. Los desarrolladora descargaron,
probaron y modificaron elcdigo de Linux; dupus enviaron correcciones deerrores y retroalimentacin
aTorvalds, quien revis esa informacin y aplic las mejoras al cdigo.

La liberacin de Linux en 1994 integr muchas caractersticas que se encontraban por lo general en
un sistema operativo maduro, con lo cual Linux se convirti en una alternativa viable con respecto a
UNIX. las compaas de sistemas emprsarialm oomo IBM y Oracle se interesaron cada vez ms en Li-

nux, a medida que ste se vo Iva mas estable yse extenda a nuevas plataformas.
Son varhs cuestiona -el poder de mercado de Microsoft, el pequeo nmero de aplimcionu Linux
amigables para los usuarios y hi diversidad de distribuciones de Linux, tales como Red Hat Linux, Ubuntu Linux y muchas m:ls- las que han impedido que se popularioe el uso de Linux en las oomputadoras
de escritorio. Sin embargo, este sistema operativo se ha vuelto muy popular en servidores y stemas incrustados, oomo los telfonos inteligentes basados en Android de

Android
Android _el sistema operativo para dispositivos mvil@ y tellbnos inteligents, cuyo crecimiento ha
sido el ms rapido hasta ahora_ est basado en el kernel de Linux y en java. Los programadores aperimentados de java no tienen problemas para entrar y participar en el desarrollo de aplicaciones pa.raAndroid. Un beneficio de desarrollar este tipo de aplicaciones es el grado de apertura de la plataforma. El
sistema operativo es gratuito y de

fuente abierto.

El sistema operativo Android fue desarrollado por Android, Inc., compaa que adquiri Google en
2005. En 2007 se form la Alianza para los dispositivos mviles abiermf" (O HA) -un consorcio de
34 compaas en un principio, yde 79 para el ao 2010-, paracontinuar con eldesarrollo de Android.
Al mes de diciembre de 20 l 0, se activaban ms de 300,000 telfonos inteligentes con Android a diariol'
Ahora los telfonos Android se venden mas que los iPhone. El sistema operativo Android se utiliza en
varios telfonos inteligentes (Motorola Droid, HTC .EVOTM 4G, Samsung VibrantTM y muchos ms),
dispositivos lectores electrnicos (como el Noble Nookm de Barnes and Noble), computadoras tipo
tableta (Dell Strealt, Samsung Galaxy Tab y otras mis), quioscos con pantallas tctiles dentro de las tiendas, autos, robots y reproductores multimedia.
Los telfonos inteligenta Android tienen h lncionalidad de un telfono mvil, cliente de Internet
(para navegar en Web y comunicarse a travs de Internet), reproductor de MP3, oonsoladejuegos, cama-

radigital y dems, todo envuelto en dispositivos porttiles conparmzllar mubirdrriks a todo color -stas
pantallas le permiten controlar el dkpositivo con ademaru: en los que se requieren uno o varios toques
simultneos. Puede dmcargar aplicaciones de manera directa a su dispositivo Android. a travs del Android Market yde otros mercados de aplicaciones. Al mes de diciembre de 2010 haba cerca de 200,000
aplitacionts en el Android Market de Google.

wwu.pc|Iag.con/ar1:'lc'Ie2/03817.23?-l-076.00.asp.

mas hable .cun/2010/08/02/and raid-outsel 1 ng-iphone-2 /.

IG

Captulo I

Introduccin a las computadoras y a java

0'?rulos de deserrolfo de plr'cacionesndrodeu :I n'tr'o We mnrplennntario


Rbido alenorme inters en los yapiicaeiones basadasenndroid, hemos integrado en elsio
Web complementario del libro una introduccin de tres captulos al desarrollo de aplicaciones Android,

bs cuales pertenecen a nusrro nuevo libro, An.dro1`d_f`r Prgmmmm-:An App-Driven Approach. Dcspus
de que aprenda Java, descubrir que no es tan complicado empezar a desarrollar y ejecutar aplicaciones
Android. Puede colocar sus aplimciones en el Android Market en lnea (own .market.andro'Id. col) y, si
se vuelven populares, tal vu. hasta pueda iniciar su propio negocio. Slo recuerde: Facebook, Microsoft

y Dell se iniciaron donde un dorrnimrio.

e I

I.8 Lenguajes de programacion


En esta seccin veremos unos cuantos comentarios breve sobrevarios lenguajes de programacin popuIaru (gura 1.5). En la siguiente seccin veremos una introduccin ajava.

Fortmn

Forum (FOR.m1.lla TRANs|amr, Traductor de fnnulas) fue desarrollado por IBM

Corporation a mediados dela dcada de 1950 para urilimxseen aplicaciones cientificas


yde ingeniera que requeran dleulos manemcos complejos. An se utiliza mucho y

sus versiones mas reciensessnn orientadasa objems.


CDB01-

COBOL (COmmon Business Orieneed Language. Lenguajecnmn orientado a nego-

cios) fue dmnollado afnales dela dcada de 1950 por fabrimnmde compuesdoras.
el gobierno esndounidens: yusuarios de computado de la industria. con baseen
un lenguaje desarrollado por Grace Hopper. un ocial de la Marina de Estados Unidos
yciendfco

COBOL an se utiliza rnucbo en aplicaciones comerciales

que requieren de una manipulacin precisa y ecienoede grandes volmenes dedasos.


Su venn misrecienne sopona la programacin oriemadaa objenos.

Pascal

Ada

Las actividades de invesrigcin en la dcada de l960diemn como resultado la


pmgrmnadueruauredaz un mtodo
paraescribirprogramas quesan
rnds daros y fidlesdepsobar, depurar. ydemodiear que los programas exnensos
producidos con momias anreriorm. Uno de los ruulmdos ms tangibles de esta
'nvestigicin fue ei dan-ollo del lenguaje de prognmadn Pasos] por el profesor
Niklauswreh en 1971. Sedisel pamlaenselanzadelaprogramaein umlcnlrada
yre popular en loscursos universimrios duranuevarias deudas.
Ada, un

basado en Pasml, se denrroll bajo ei patrocinio del Depanramenm

deDefensa (DOD) de los Estados Unidos dumnee la dcada de 1970 y a principios de


la ddoada de 1980. El DOD queda un solo lenguajeque pudiera sarisfaeerla mayora
de sus necesidades. El nombre de este lenguajebesado en Pascal s en honordelady
Ada lnveiace, hija del poem Lord Byron. A ella se learribuye el baberesuim el peimer
progmmapammmputadoms eneirnundo,a principiosdela dmda de 1800 (pan la

Maquina Analtica, un dispositivo de cmputo mecnico diseado por Charles


Babbage). Su versin mas reeienmesoporta la programacin oiienlada a objetos.
Basic

Basiesedoerrroll en ladmdade l960en el Daremourh Collge, paminuodueiralos


princphnnesa la programacin. Muchas de sus versiones ms reeieneesson orienmdas
a objems.
C Fue implementado en 1972 por Dennis Risehie en los Iaboraeorios Bell. En un principio sr hizo muy popular como el lenguaje dedmnollo del sistema openarivo UNIX.
En laaceua1idad,|a maynradelcdign pan lnssisnernas operativnsdepmpsim
general seeserbe en C o C++.

ng. |.s | om; lenguajesde pmgfamafn (pm 1 de 2).

L8 Lenguajes de programacin

Lenguajede
programacin
C++

Descripcin
C++, una utensin tk C, fue denrrollado por Bjame Srroustrupa principios dela

dcada de 1980 en los Iaboraeorios Bell. C++ proporciona varias raracseris-ticas que
'pulen' al

C, pero lo mas importance G que proporciona la mpacidadet de

ma programacin orientada a objenos.


Objeczive-C

Objecr.ivoC es un

orientado a obietosbasado en C. Se desarroll a principios

dela decada de l980ydespues fueadquirido porla empresa Next, que asu vezfue
comprada por

Se ha convenido en el lenguajede programacin clave para el

sisaerna operativo Mac OS X ytodos los dispotivos operados porel OS (como los
dispositivos iPod. iP|\onee iPad).

Visual Basic

El lenguaje Visual Basic de Microsoft se introdujo a principios de la dcada de 1990


pam

el desarrollo de aplicadon pm Microsoft Windows. Sus versions

ms recientes soportan la programacin orientada a objetos.


Vimal C8

Los tres principrl

de programacin de Microsoft son Visual Basic, Visual

C++ (basado en C++) yCI (basado en C++ yjava; desarrollado para insegrarlnternet
y Web en las aplimciones de computadora).

PHP

PHP es un lenguaje orientado a objeeos de sentencias de comandos' y 'codigo fuenae


abienao' (vea la seccin 1.7), el cual recibe soporne por medio de una comunidad de

usuarios ydmrtolladotes; se utiliza en numaosos sitios Web, entre ellos


y Facebook. PHP es independiente de la plamfbnna: eeisuen implementaciones para

todos los principales sistemas operativos UNIX, Lirunt. Mae ywindows. PHP tarnbin
soporta muchas bases de datos, mmo MySQL.

Python

Pytbon, otro lenguaje orientado a objeses de secuencias deootnandos, se liber al


pblico en 1991. Fueduarmlladn por Guido van Rossum del Institum Nacional de

investigacin para laslvlatzerntieas yCienciasComputacionales en An-tseerdarn (CWl);


la mayorpartede Python se bamen Modula-3: un lenguaje de programacin de

sis-nernas. Python es "e1mensible: puede eiteenderse a travs de dases e interfaces


de programacin.
javaSct-ipt

_lavaStr-pt esel lenguaje de secuencias decomandos ms utilizado en el mundo.


Su principaluso esparaagregarpacidadde pmgruna.citSnalaspigi.nasWeb

porejernplo, anintacioneseinteractividad con el usuario. Los principales nav@.dore.s


Web cuentan con H.

Ruby on Rails

Rubyfuecreadoarnediadosde ladecada de l990porY.1ltihiroMa|sumoto;es


un lenguaje de programacin orimtado a objecos de
ueneeabierso, con una
ntaxis
que es sin-ihra Python. Rubyon Railsoombina el lenguaje de secuencias deoomandoa Ruby con el marco de

deaplimdones Web Rails, duarrollado

pot57Sigsals. Su libro, (.m`sgReal(gett1ngres'I .37s1a1s.coU/*hoc .php). es una


lecnrra obligtoria para los desarrolladores Web. Muchos desarrolladores de Rubyon

Rails han reportado ganancias de productividad superioresa las de otros lenguajes.


al utilizar aplimciones Web que trabajan de manera innensiva con basesde danos.
Rubyon Railsse utiliz paracrearlainterfazde usuario deTwin:er.
Scala

Sala

scale-'Iang .ong/nodo/273), abreviacin un ingls de lenguaje esmlable',

lite diseado porMartin Odersley, un profesoren la cole Polynedtnique Fderale


deI.ausanne CF.PFL)en Suiza. Selanzalpblioo en 2003; utiliza losparadigrnasde
orientacin a objetos yde programacion funcional, yuri diseado para integrarse
mn ]ava. Si programa en Sula, podr reducir demanera oonsidble la mnridad

de

en sus aplicaciones. Twitter y Fouuquate usan Sala.

Fig. I.$ | Otros lenguajes de pmgramacin (parte 2 de 2).

I1

la

Captulo I

Introduccin alas computadoras y a Java

I.9 ,lava y un tpico entorno de desarrollo en java


la contribucin mas importante ala fecha de la revolucin del microprocmador es que hizo posible el

desarrollo de las computadoras personales. Los microprocesadores estn teniendo un profundo irnpacto en los dispositivos electrnicos inteligentes para uso domstico. Al reconocer esto, Sun Microsystems patrocin en 1991 un proyecto interno de investigacin corporativa dirigido por james
Gosling, que result en un lenguaje de programacin orientado a objetos y basado en C++, al que
Sun llam java.
Un objetivo dave de java m poder escribir programas que se ejecuten en una gran variedad de siste-

mas computacionales y dispositivos controlados por computadora. A esto se le conoce algunas veces
como mcribir una vez, ejecutar en
parte.
La popularidad del servido Web se intensific en 1993; en ese entonces Sun vio el potencial de usar

]ava para agregar mrrtemde dinmico, como interactividad y animaciones, alas pginas Web. java gener la atencin de la comunidad de negocios debido al fenomenal inters en Web. En la actualidad,
java se utiliza para dsarrollar aplicacions empresarials a gran escala, para mejorar la rncionalidacl de

los servidores Web (las computadoras que proporcionan el contenido que vemos en nuestros exploracbrs Web), para proporcionar aplicaciones para los dispositivos de uso domstico (como telfonos
celulares, telfonos inteligentes, receptores de televisin por Internet y mu cho ms) y para muchos otros

propsitos. En 2009, Oracle adquiri Sun Microsystems. En la conferencia ]avaOne 2010, Oracle
anunci que el 97% de todas ias computadoras de escritorio, tres mil millones de dispositivos porttiles
y 80 milions de dispositivos de televisin ejecutan java. En la actualidad hay cerca de 9 milions

de desarrolladores de java, en comparacin con los 4.5 millones en 2005. ' Ahora java es el lenguaje de
desarrollo de software m utilizado en todo el mundo.

Bilrbrecns de clases Jejrrwr


Usted puede crear cada clase y mtodo que necmite para formar sus programas de java. Sin embargo,
la mayoria de los programadores en ]ava aprovechan hs ricas colecciones de clases existentes en hs bi-

bliotecas de clases de java, que tambin se conocen como API (Inter-Faces de programacin de
aplicaciones) de java.

.,___

Tip de rendimiento I.|

- .rrtiizd ilrrdsrery modosde l'asAPId:]er.u1r tired: :rcrir rrtrpmpiar rxrrionrrpue-

'

Jrrugiomrelrrnriruirnmderrepregrrmer,yaqrrerrrardrtrrr_ymms'orrrrnerrrarde
nsarremaridadorapamrndsnar-mrrmde. Eimomrarnirnduaelnkmpo
derermodelsrrpmgrurmsx.

Tip de portabilidad LI
Amgrre er mdtdcil esrrir pmgrrenuu portable: (programar que se prredr

en

Ld madres tipos r`nr'nm.r Jr mrprmrdonsr) rrrrua que en la :sugera dr los orrru bngrnjer
depmgrauadn, fo:rdr_'jr|mtr`ar mas lssmmpiladerrr, r.rl/Ivfyilarcranrprrtarrasprrednr
ocasionar que sea drlcignar kponadad Elrrslple Indra de esotiirprvgmnrcr en
farsa nogrnmrtrita hptalidsd.

Ahora explicaremos los pasos tipicos utilizados para crear y ejecutar una aplicacin en java, me-

diante el uso de un entorno de desarrollo (el cual se ilustra en las figuras 1.6-1.10). Por lo general. los
programas en java pasan a trav de cinco Pisa: edicin, compilacin, carga, verificacin y ejecucin.
Hablaremos sobre estos conceptos en elcontertro del Kit de desarrollo de java SE (JDK). Puede descargar

el IDK ms actualizado y su documentacin en rwm.orac'Ie .com/technetwork/javafjavasel

10 jaxenter _ con/ hawnany- java- devei opers -are-there 104 62 _ htn.

|.9 Java y un tpico entomo de desarrollo en java

I9

dounoads/'I ndex _ html. Lea la .tensin Ama de ernprar este lbropara rmgurarrede configurar su compu-

mdam en rnu: apropiada para mmpilar y g'e-usar programas en wz. Tal vez tambin dmee visitar el
centro para principiantes dejava (New to java Center) de Oracle en:
wm .orac'Ie.cc|n/technetwork/top'l cs/newtojava/overvi eu/1 ndex . hun`I
[Nom este sitio Web proporciona las instrucciones de instalacin para Windows, Linux y Mac OS X.
Si no utiliza uno de emos sistemas operativos, consulte la documentacin del entorno de java de su sisuema o pregunte a su instructor cmo puede realizar estas tareas con base en el sistema operativo de su
mmputadora. Si encuentra un problema con te o cualquier otro vnculo mencionado en este libro,

visite el sirio vmw.de^i tel . com/books/j htp9/ para consulta: la fe de erratas y notifiquenos su problema

al correo electrnico deite1@de1te1.com].

Iizse I: Crenrlrr de unpragrama


la la.-we l consiste en editar un archivo con un programa de edicin, conocido comnmente como editor
(figura 1.6). Usted escribe un programa en java (conocido por lo general como
lilente) por medio
del editor, rmliza las con-eocions necesarias y guarda el programa en un dispositivo de almacenamiento
secundario, oomo su disco duro. Un nombre de archivo que termina con la extensin . java indica que

m contiene cdigo fuente en java.

_
ha : dcn

`-

um,

FJ progamasecrea en un
ditory Se 'almacena en cisco.

__

er un rdwocuyo nombre
en-nina con . java.

Hg 1.6 | momo de amfmll tipico deJava; fase de edicion.


Dos de los editores muy utilizados en sistemas Linux son vi y amics. En Windows, basta con usar el
Bloc de Notas. Tambin hay muchos editores de freeware y shareware disponibles en lnea, como Edit-

Plus (vmv.ed1tp1us.com),TextPad (mu. textpad.com)y Edit (vmn.jed1t.org).


Para las ornizaciones que desarrollan .stenxas de informacin extensos, hay entornos de desarrollo integrados (IDE) disponibles de la mayora de los proveedores de software. Los IDE proporcionan herramientas que dansoporte al proceso de desarrollo del software, incluyendo editores pataesctibir

yeditar programas, y depurador-es para localizar stores lgicos: errores que provocan que los programas se ejecuten en forma incorrecta. Los IDE populares son Eclipse (ww.ec`| 'pse.org) y NetBeans

(wuw.netbeans.org).

Rzse2: Crmq:'c:'n de un programa enjavapra convertira en cdigos de bytes


En la fase 2, el programador utiliza el comando javac (el compilador de Java) para compilar un progra
ma (figura 1.7). Por ejemplo, para compilar un programa llamado B1 enven do. java, escriba

javac 81 envenido . java


en kt ventana de comandos de su sistema (es decir, el Smbolo del sistema en Windows, el indicador de
:hellen Linux o h aplicacin Terminal en Mac O5 X). Si el programa se compila, el compilador produce
un archivo .clan llamado Bi envenido . class que contiene hversin oornpihda del programa.

20

Captulo I

Introduccin a las computadoras y a java

_.,

FJ compilador crea codigos de


5112:.: ;:-"'11-=

-*-`_f.r/

trmma con

_ C1

ass

Hg L7 I Entorno de desarrollo tipico dejava: ase de compilacin.


El compihdcr dejava traduce el cdigo fuentedejava en

aejecutar en la fase de ejecucin (Base 5). La

bytes que representan hs taras

virtual dejan (IVM), que formaparte delIDI(

yes h base de la platalbrma java, ejecuta los cdigos de bytes. Una


(VL) es una aplicacin de software que simula aunacomputadora, pero oculta elsternaoperalivo yel hardware subyacen-

es de los programas que interactan con sta. Si se implementa la misma VM en muchas plataformas
mmputacionals, las aplimcions que ejecute se podrn utilizar en todas mas phtaformas. La IVM es
unadelas mquinas virtualesms utilizadas en laactualidad. la plataforma NETde Microsoft utilizauna

arquitectura de mquina virtualsimilar.


A diferencia del lenguaje mquina, que depende del hardware de una computadora especlca, los

cdigos de bytes son instruccions independientes de la phraforma; no dependen de una pkmfomm de


hardware en especial. Entonces, los cdigos de bytes de java son portables: es decir, se pueden ejecutar
bs r:n`mnos cdigos de bytes en cualquier plaralbrma que contenga una]VM que comprenda h versin

de java en la que se compihron los cdigos de bytes sin necesidad de volver a compilar elcdigo fuente.
I.aIVM se invoca mediante el comando java. Porejemplo, paraejecutar una aplimein en java llamada
B1 enverrl do, debe escribir el comando

java Bienvenido
en una ventanade comandos para invocar la]VM,que asu ver inicia los pasos necesarios paraejecutar la
aplicacin. Esto comienza la fase 3.
E123: Ginger rrprgrnma en memoria
En la fase 3, HIVM coloca el programa en memoria para ejecutarlo; a esto se le conoce como cargar

(figura 1.8). El cargador de clases roma los archivos .class que contienen los cdigos de bytes del
programa y los transfiere a la memoria principaL El cargador de chses tambin carga cualquiera de los

archivos .class que su programa utilice, y que sem proporcionados por java: Puede cargar los archivos .cass desde un disco ensusistemao atravs de una red (como la desu universidad local ola red
de la empresa, o incluso desde Internet).

Mernonh

principal

mi 1; cup

mdnrdrdansn
r
p
.-.
n

Hg L8 I Entorno de desarrollo tipico dejavaz Fase de carga.

El cargador de clases
lee los archivos .dass
que contienen cdigos
de bytes del disco
yoolota esos cdigos
de bytes en la memona.

|.9 java y un tpico enwmo de desarrollo en java

2I

.Firm-4: lbriracidn Jelcddrgode b_yu.r


En hfase, a rnedidaquese cargan lasclases, elvetioador de cdigosde bytesexaminasus cdigos
de bytes para asegurar quesean vlidos y que no violen las restricciones de seguridad dejava (ligura 1.9).
java implementa una estrecha seguridad para asegurar que los programas en java que llgn a trav

delared no daensusarcl1ivososusistema(como podranhacerlo losvirusdecomputadoraylos


gusanos).

Mernoria

,j

nriwl

me 4: ve-nacion
"

.-

El velcacbr de codigo
de bytes torirrna que

lodos los codigos de


bftes sean validos y
no violen las restricciones
de seguridad de java.

Hg. l.9 | Entorno de desarrollo tipico dejava: ase de verificacin.

su 5.- James
En la fase 5, la_[VM ejecuta hs cdigos de bytm del programa, realizando as las acciones

porel mismo (figura 1.10). En las primeras versiones dejava, la]VM era tanslo un intrpretede cdigos
& byte de java. Esto hacia que k mayora de los programas se ejecutaran con lentitud, ya que la IVM
tenia que interpretar y ejecutar un cdigo de byte a h vez. Algunas arquitecturas de computadoras mo-

dernas pueden ejecutar varias instruccions en

Por lo generaL las_jVM actuales ejecutan cdigos

tk bytes medianoe una combinacin de h interpretacin y la denominada compilacin justo a tiempo

{_]IT). En me procmo, la]VM analiza los cdigos de bytes a medida que se interpretan, en busm de
punto: carisma: partesde los cdigos de bytesque seejecutan con frecuencia. Par-aestas partes, un compilador
a tiempo (]'I'l"') (conocido como compilador Hotpot de java) traduce los cdigos de byts
al lenguaje mquina correspondiente a la computadora. Cuando la]`VM encuentra estas partes compila-

lkrncria

, .

F 5' E"'"

;s'_j_|rr-g_|vt9
`

Pf"P"

I'

'

'

Eara q'eo.|rareIprograma.laJVM

un es wing de we; y es empata


'justo a liempo' UIT):esdec|r.
los traduce en un lenguaie que la
tomputadora pueda enlenrler.
A medi que se q`ecua el programa.

ecise la posibilidad de ox almatene


hs valoresde los datos en la
memoria principal.
1

Hg I. I 0 | Entorno de desarrollo tpico de java: fase de ejecucin.

22

Captulo I

Introduccin alas computadoras y a Java

das de nuevo, se ejecuta el cdigo en lenguaje mquina, que es ms rpido. Por ende, los programas en
java en rulidad pasan por do: fases de compilacin: una en la cual el cdigo fuente se traduce acdigo de
bytes (para tener portabilidad a travs de las ]VM en distintas plataformas computacionales) y otra en la
que, durante la ejecucin, los cdigos de bytes se traducen en lenguaje mquina para la computadora

actual en la que se ejecuta el programa.


B-blemas quepuedeu ocurrir en tiempo de ejecucin
Fs probable que los programas no mcionen la primera vez. Cada una de las litses anteriores puede fallar,
debido adiversos errores que dacribiremos en este texto. Por ejemplo, un programa en ejecucin podra

intentar una divisin entre cero (una operacin ilegal para la aritmtica con nmeros enteros en java).
Esto hara que el programa dejava imprimiera un mensaje de error. Si esto ocurre, tendra que regrmar a
la liise de edicin, hacer las correcciones necesarias y proseguir con las fases restantes de nuevo, paradeterminar que las correocioms hayan resuelto el(los) prol)lema(s)
la mayora de los programas en
java reciben o producen datos. Cuando decimos que un programa muestra un mensaje, por lo general
queremos decir que aparece en la pantalla de su computadora. Los mensajts y otros datos pueden enviar-

se a otros dispositivos, como los discos y las impresoras, o incluso a una red para transmitirlos a otras
computadorasl.

Error comn de programacin I.I


Isn-ram, mnwhvnenmamcmnrnemdaquxqfemtunprvgwnmde
nnsneraqueaemnfermrrsrelesfhmaerforesen Il`nnpo'ecm:`d1r.Latenm'I:
imles en
de gieccidll Iman que las progrnnlnr ltrmnm de inmediato. .fn
lnserraclieadiiensunudjb. L0.n11rens0faal:ersls'enod'g'e:uenp:rnr:en
mlwpmgrmnrgf:aur:emurmir:ar'mtm6.rg'0, laqueamenudprduarrsuimds
lnmrmrrox.

I. I 0 Prueba de una aplicacin en java


En esta seccin, ejecutar su primera aplimcin en java e interactuar- con ella. Para empezar, ejecutar
una aplicacin de ATM, la cual simula las transacciones que se llevan a cabo al utilizar una mquina de

cajero automtico, o ATM (por ejemplo, retirar dinero, rmlizar depsitos y verilicar los saldos de hs
cuentas). Aprender acreat esta aplicacin en el ejemplo prctico qodmmlotientado aobjetos que se incluye en los captulos 12 y 13. Para los nes de estaseccin vamos a suponer que est utilimndo Microsoft
Windows."
En los siguiente pasos, ejecutar la aplicacin y realimr varias transaccionm. Los elementos y la
mcionalidad que podemos ver en esta aplicacin son tipicos de lo que aprender a programar en este

bro [Nam utilizamos firen tes para diferenciar las caractersticas que se ven en una pantalla (por ejemplo. el Sinbolo del sistema) y los elementos que no se relacionan de manera directa con una pantalla.
Nuestra convencin es enfatizar las caractersticas de la pantalla como los ttulos ymens (por ejemplo,
el men Archivo) en una iente I-Iolvetlce sana-aodfen semi-negritas, y enfatizar los elementos que no
son de la pantalla, como los nombra de archivo o los datos de entrada (como Nombl'ePrograma. j ava)

en una rente Lucida sans-ser f. Como tal vez ya se haya dado cuenta, la ocurrencia de definicin de
cada trmino en el texto se establece en
En las figuras en esta seccin, resaltamos en una pantalla gris claro la entrada del usuario requerida por cada paso y sealamos las partes importantes de la

ll

En mm. de*lte1.co||/books/jI1tp9/. oeoernos una versin en Linux de esta prueba. Tambin oeoernos vnculos a videos
quele ayudarn a empaar a

con varios entornos de duarrollo integrados populars (IDE), como el Kit de desarmllo

de java SE 6 parawindows, el SKI) de Eclipse paraWindows, NetBeans, jGRASP. Drjava, Blue] y rJ editor de te:tto'l`stPad
para Windmn.

|.|0 Prueba de una aplicacin en java

23

aplicacin. Para aumentar la visibilidad de estas caractersticas, modicamos el color de fondo de las

ventanas del Sknbolo del sistema a blanco y el color de las letras a negroi. sta m una versin simple
que consiste de texto solamente. Ms adelante en el libro, aprender las tcnicas para redisear este

ejemplo mediante el uso de las tcnicas de GUI (interfaz gr-ca de usuario).


1.

Revisa su
La la seccin Antes de empezar este libro para confirmar que haya
instalado java de manera apropiada en su computadora, y copiado los ejemplos del libro en

su disco duro.
2.

completa. Abra una ventana Snbolo del sistema. Paraello, puedeselec-

cionar Inicio | Todos los pogramss [Accesorios linbolo del sistema. Par-ammbiar aldirectnro
de la aplicacin del ATM, escriba cd C:\ej| emp'los\cap01\ATH y despus oprima Intro (gura
1.11). .EJ comando cdse utiliza para cambiar de direcmrio.

Uso del comando ctlpsra

Lbicatin del archivo de Is aplicacin

ambiu de drecm rio

del cjero automticc (RTM)


i

'

'

I || I|

:\cd c:\eX-iIB1ss\th0L\A1N

:\ex@'l es\ch01\ATH

:J

Hg. I .I 1 | Abrir una ventana Smbclodsl sistema en Windows XP y cambiar de directorio.

3. genere la
IMM Escriba el comando java Ejempovract-coA11| y oprima
Intro (figura 1.12). Recuerde que el comando java, seguido del nombre del archivo _ c1 ass de
la aplicacin (en este caso, Ej empl OP racti COATM), ejecuta El aplimcin. Si mpecitamos la
extensin _ c'I ass al usar el comando java se produce un error [Notre los comandos en javason

sensiblm a mayscuhslrninscuhs. Es importante escribir el nombre de esta aplimcin con las


|etrasA,TyM rnayscubsen "A'I`M",una letraE rnaysculaen Ejplo y una letraP maysculacn "Practico". De lo contrario, la aplicacin no se ejecutar] Si recibe el mensaje deetror

Exception 'In thread mai n" java . 'Iang .NOC1 assDefFoundError : Ej e|np1oP racti coATM",
entoncs su sistema tiene un problema con CLASSPATH. Consulte la seccin Antm de ernpaar
este libro paraobtener instrucciones acerca de cmo corregir este problema.

fe

.-.lilll

:\cd C:\exq`les\d'|01\ATM

El

:\n-p1s\h01\A11-ijava Acuostudy

_]

Fig. I.I 2 | Uso del comando java para ejecutar la aplicacin del ATM.
4. Ertra un minero de camu. Cuando la aplicacin se ejecuta por primera vez, muestra
el mensaje |B'ienven1do|" y le pide un nmero de cuenta. Escriba 12345 en el indicador
"Escri ba su nunero de cuentan" (gura 1.13) y oprima bum.

24

Captulo I

Introduccin a las computadoras y a java

Nbnsje de bienvenida del ATM

indicador para introducir el nmero de cuenta

hi_? aTIjav Altasetudy

lcolel

lease enter your account nudser: 12345

-J

Hg. I.I 3 | La aplicacin pide al usuario un nmero de cuenta.


5. Escribe un NH! Una ver que introduzca un nmero de cuenta vlido, la aplicacin mostrar
el indicador Esc ri ba su NIP:". Escriba $4321 como su NIP (Nmero de Identificacin
Personal) vlido y oprima Intro. A continuacin aparecer el rnen principal del ATM, que
contiene una lista de opciones (figura 1.14). En el capitulo 14 le mostraremos cmo puede

introducir un NIP en forma privada mediante el uso de un objeto JPassrnordF1e1d.

Introduzca un NIF vlido


t.

___.- cone

__

___

lease enter your

Men principal ATM


,_

E___

I HI
j

countntrdrer: 12345

nter your PIN: 54321

'rf-

an menu: ~
- vien ly baunee
- uritbdran cash
- Deposit funds

- Exit

er a choice:

Iig. I. I 4 [ El usuario escribe un nmero NIPvlido yaparece el men principal de la aplicacin del HTM.

6. Revia decido de la camera. Seleccione la opcin 1, "Ver mi Saldo del men del ATM (frgura 1.15). Acontinuacinlaaplicacinmostrardosnrneros: Sa`I do disp-on1b`le(S1 ,000.00)

y Saldo total ($1 , 200.00). El saldo dkponibles la mximacantidadde dinero en su cuenta,


disponible para retirarla en un momento dado. En algunos casos, ciertos fondos como los depsitos recientes, no estan disponiblm de inmediato para que el usuario pueda retirarlos, por
lo que el saldo disponible puede ser menor que el saldo total, como en este caso. Despus de
mostrar la informacin de los saldos de la cuenta, se vuelve a mostrar el men principal de la
aplicacin.

7. krenno de la cuenta. Seleccione h opcin 2, Reti rar efectivo", del men de h aplicacin. A continuacin aparecer (figura 1.16) una listade montos en dhres (por ejemplo: 20,

40, 60, 100 y 200). Tambin tendr laoportunidad de cancelar la transaccin y regresar al men
principal. Retire $100 seleccionando la opcin 4. La aplicacin mostrar el mensaje "Tone su

efectivo ahora"y regresar-al men principal. [Nora.- por desgracia, esta aplimin slo .timula
elcomportamiento de un verdadero ATM, por lo cual no dispensa efectivo en realidadl.

|.l0 Prueba de una aplicacin en java

25

hiormacion del saldo de la cuenta


;
nur a

-ice:

almce Information:

- Avaabie balance:
- Total balance:

.|g|r|

LIL

ss

ln Ienu:

- view Iy baance
- irithdrarr cash

3 - Degosit funda
' EX!!

er a cho-ice:

Fig. I.I 5 I La aplicacin del HTM muestra la informacin del saldo de la cuenta del usuario.

Men de retira del ATM


Ki
nter a c

1:1:

'tlvdrar`| Menu'

- szo

- sw

3 5 -

$60
S100
S200
_
Cance i:ransac1:1on

-|n|II|
_]
'_'

lia

Q a wthkna Dount: 4
Please take your cash now.

in new:
- View Iy halnce
- irithdraw cash

3 - Degosit funds

- Exit

er a choice:

_v_|

Hg. I.I 6 I Se retira el dinero de la cuenta y la aplicacin regnzsa al men piincipal.


8. Cournu qual: inmudn dela cuestan bcyactualisdo. En el men principal, seleccione la opcin 1 de nuevo para ver el saldo actual de su cuenta (figura 1.17). Obsenre que
anto el saldo disponible como el saldo total se han actualizado para reejar su transaccin

de retiro.
9. .lalim la trnnman. Para naliur su smin actual en el ATM, seleccione la opcin 4,
"Sa'I1r" del men principal (gura 1.18.) El ATM saldr del sistema y mostrar un mensaje

de
al usuario. A ooncinuarzin, la aplimcn regrsar a su indicador original, pidiendo el nmero de cuenca delsiguienre usuario.
10. Salga de fa qlicain defA?|:_y cierre la ventosa Slrrlioio doi alalnma. La mayora de las
aplicaciones cuentan con unaopciu para salir y regresar al directorio del Srrbolo del tlthlna

desde el cual me ejecut la aplicacin. Un ATM ral no proporciona al usuario la opcin de


apagar la ruquina ATM. En vez de ello, cuando el usuario ha completado todas las causasciones deseadas y elige la opcin del men para salir, elATM se reinicia y muestra un indiador para el nmero de cuenta del siguiente usuario. Como se muestra en la figura 1.18, la

Captulo I

Introduccin a las computadoras y a java

nter a

1ce:

L 1
f

:c'|i;1:rim 5900,00
- Total balance:

S1.1D0.00

Conlirmadn de la informacin actualizada del saldo


de la cuerta despus de la transaccin de retiro.

_|

sin genu:
- View uy baiance
- nthdren cash
`G__"_-1' - Degosit 'Funds
- Exit

nter a choice:

Hg I.I7 | Verificacin delnuevosaldo.

'

rvter 1 c

.*_'

1ce:

mm

Llu

- xiting the system..


you! Goodbyel NErIq'e1hdBpetIdIde|HTM

=l="=!

naaa-la pa-i peinar amm

lease enter your account number:- decuenta dels`guienbe usmrio

Hg I.I I | Finalizacin de una sesin de transacciones con el ATM.


aplicacin del ATM se comporta de manera similar. Al elegir la opcin del men para salir

.slo se termina la smin del usuario actual con el ATM, no roda laaplicacin completa. Para
salir realmente dela aplicacin del ATM, haga clic en el botn de cerrar (x) en la esquina superior derecha de la ventana Slfrbolo del slthoma. A1 cerrar la ventana, la aplicacin termina
su ejecucin.

I I I Web 2.0: Las redes sociales


literalmente, la Web cobr fuerza a mediados de la dcada de 1990, pero surgieron tiempos dificiles a
principios del ao 2000, debido al daplcme econmico de punto com. Al rmurgimemn que empez
alrededor de 2004, se le conoce como Web 2.0. A Google se leoonsidera en muchas partes como laoompalacaracrersrica de Web 2.0. Algunas otras compaas con caractersticas de Web 2.0 son: YouTube

(sitio para compartir videos), FaceBook (red social), Twitter (microblogs), Groupon (comercio social),
Foursquare (reportes o check-ins mvils), Salmforce (software de negocios quese ofrececomo servicios

en lnea), Craigslist (listados gratuitos de anuncios clasificados), Flickr (sido para compartir fotos), Second Life (un mundo virtual), Skype (telefona por Internet) y Wikipedia (una enciclopedia en linea
gratuita).

Google
B1 1996, los candidatos a un doctorado en ciencias computacionales de Stanford, Larry Page y Sergey
Brin, empezaron acolaborar en un nuevo motor de bsqueda. En 1997 le cambiaron el nombre a Goo-

gle con base en el trmino matemtico grol(en ingls, googol), una cantidad representada por el nmero uno seguido de 100 ceros (o l0""): un nmero de un tamao asombroso. La habilidad de
Google para devolver resultados de bsquedas con extrema prechin le ayud aconvertirsecon rapidez
en el motor de bsqueda ms utilizado, ademas deser uno de los sitios Web ms populares en el mundo.

l.||

Web 2.0: Las redes sociales

21

Google contina siendo un innovador en hs tecnologas de bsqueda. Por ejemplo, Google Goggles
5 una fascinante aplicacin mvil (disponible en Android e iPi1one) que permite al usuario rmlirar una
bsqueda, con la novedad de que utiliza una fotograa en vez de tuto. Usted slo tiene que tomar fo-

mgraas de puntos de referencia, libros (cubiertas o cdigos de barras), logotipos, arte o etiquetas de
botellas de vino, y Google Gcggles escanm la fotograa para devolver los resultados de la bsqueda.
'Tambin puede tornar una forograa de texto (por ejemplo, el men de un restaurante o un anuncio)
yGoogle Gogles lo traducirpor usted.

Smnror Weby mnrbupr


Fn este libro incluimos un tratamiento detallado sobre los servicios Web (capitulo 31 ) y presentamos la
nueva metodologa de drmrrollo de aplicacionu conocida como marlvupr, en la que puede desarrollar
con rapidez aplicaciones poderosas e intrigantes, al oombinarservicios Web complementarios (a menudo gratuitos) y otras formas de fuents de informacin (figura 1.19). Uno de los primeros mashups

fue ww. housingnaps .con, que combina al instante los listados de bienes races proporcionados por
\nvu.craigs1lst.org con las capacidad@ de generacin de mapas de Guage Maps para ofrecer mapas
que muestren las ubicaciones de los apartamentos en renta dentro de cierta rea.

fuentede serviciosWeb

Cmo se utiizan

Google Maps

Servicios de mapas

Facebook

Redee sochler

Four-square

Reports (chedt-ios) mviles

Linkedln

Redes sociales para nego-dos

YouTube

Bsquedas de video

Twitter

Microblop

Grnupon

Comercio social

Netirt

Renta de pelculas

eBay

Subas-las en Ineernet

Wikipedia

Enciclopedia colaborativa

PayPal

55*

Lascfm

Radio por Innerner

Amazon eCommerce

Compra de libros yonos artculos

Salesforoecorn

Adminisuaein delas relaciones con el diente (CRM)

sm

Telefona por Internet

M icrosofr Bing

Bsqueda

Flickr

(hmparr fotografias

Zillow

Precios de biena races

Yahoo South

Bsqueda

Wmtberllug

Clima

Fig. l.I 9 | Algunos servicios Web populares [mu _ programnabl eweb. con/api s/
di rec tory/`l '?sort-mashu ps).

Ajax
Aiaxes una de las tecnologas de software mas importantes de Web 2.0, ya que ayuda a las aplicaciones
basadas en Internet a funcionar como las aplicaciones de meritorio; una tarea dicil, dado que dichas

28

Capitulo I

Introduccin a las computadoras y a lava

aplicaciones sufren de retrasos en la transmisin, a medida que los datos se intercambian entre su computadora y las computadoras servidores en Internet. Mediante el uso de Ajax, las aplicaciones como
Google Maps han logrado un desempeo excelente, adems de que su aparienciavisual se asemeja a las
aplicaciones de escritorio. Aunque no hablaremos sobre la programacin pura con Ajax en este libro

(que es bastante compleja), en el captulo 30 le mostraremos cmo crear aplicaciones habiii tadas para
Ajax mediante el uso de los componentes dejavaServer Faces (ISP) habilitados para Ajax.

/bhconer reciclar
Durante los ltimos aos se ha producido un aumento considerableen el nmero de aplicaciones sociales en Web. An y cuando la industria de la computacin ya alcanz la madura, estos sitios fireron
capaces de tener un xito fenomenal en un periodo de tiempo relativamente corto. La Figura 1.20 analza unas cuantas de las aplicaciones sociales que estn generando un impacto.

Facebook

Facebook inici desde un domritorio en I-larvarden el ao 2004, graciass


los alumnos Mall: Zuclterberg, Chris Hughes, Dustin Mosltovlz y Eduardo

Snverin, yalronr tiene un valor estimado de 70 mil millones de dlares.


Para enero de 2011, Facebook era el sirio ms activo en Internet con ms
de 600 millonesde usuarios --casi 9% de la poblacin mundial--, quienes

invierten 700 mil millones de minutos en Facebook al mes. Segn su rasa


de crecimiento actual (cerca del 5% mensual), en 2012 Facebook ller

a rnil millones de usuarios de los dos mil millones de Internet! La actividad


en este sido lo hace muy atractivo para los dcnarmlhdoresde aplicaciones.

Cada dia, los usuariosde Facebook instalan ms de 20 millonesde aplicaciones


(http: //uuu. facebook-con/press/info.php?stat'l stlts).
Twitter

jack Dorsey, Evan Williams e Isaac Bit Stone lrndaron Twitteren 2006:
todo desde lacornpola de podcasts, Odeo. Twitter revolucion los rricmbgr.

Los usuarios publican "rvveers': mensajes de hasta 140 caracteres de longitud.


Se publicancerca de 95 millones de tweems diario (twitter. cul/about).

Usted puede seguir los rweets de amigos, artistas, negocios, representantes del
gobierno (incluso el ncsidenre de Estados Unidos, quien tiene 6.3 millones
de seguidores), etctera, 0 seguir rweeu del terna para darseguimiento a
noticias, tendencias y mucho ms. Al momento dc escribiresre libro,

1adyGaga tenia el mayor nmero de seguidores (ms de 7.7 millones).


Tvvitterse convirti en el punto de orign para muchas noticias de ltima
bora en todo el mundo.
Groupon

Groupon, un s`rr`cemmrr:'r`oss:r'1,l"uc lanzado porlindrcw Mason in 2008.

Paraenerode 201! la compaia estaba valuada alrededorde los $15 rnil


millones con lo cual se convirti en h compaia con ms rapido crecimiento
hasta esa fecha! Ahora est disponible en cientosde mercados en todo el
mundo. Groupon muestra una oferta diaria en cada mercado para restaurantes,
vendedores al detalle, servicios, atrincioncs y dems. Las ofertas se xtivan

slo hasta que se inscribe el minimo nmero de personas requeridas para


comprar el producto o servicio. Si usted se inscribe en una oferta ytodava

no curnplecon el mnimo, talvezsevea tentado aclaravisoa ou-as personas


sobre esa oferta porcorreo electrnico, Facebook, Twitter, etctera. Si la oferta

no cumple con el minimo de ventas. se cancela. Una de las ofertas de Groupon


msexitosasa nivel nacional a Iafeclra fue un cutiftcado de $50 dlares en

mercancia de una importante compaa de ropa a slo $25. Se vendieron ms


de 440,000 cupones en un solo dia.

Fg. |.20 I Aplicaciones sociales(parte I de 2).

l.| 2 Tecnologas de software

Compaia
Foursquare

Ducripcin
Pou square --creada en 2009 por Dennis Cmwley y Nnveen Selvedunties una nplimdn pam tmln: reportan (oeclr-im) mviles, la cul! le pennine

notiosrn sm amigos los lugar-es que visies. Puede detmrgeris aplicacin en


su telfono nneligmne y vinculath mn sus cumms de Fsmbook y Twmer. de
modo que nu amigos puedan seguido desdevariasplatafonnas. Si no tiene
un raelfono innelinm. puede leporeatse medium un menajecle tramo.
Faursqusu-e utiliza el ser-vicio GPS para denerminsr su ubicacin es-neu.
1.asempmernsusan Foursquate para emriarofettasa los usuarios que se
encuentren oerm. Foutsquare

sus opemcionesen marzo de 2009

yyaareutamnmsdernillonesdettsrrarioseneodoelmundo.
Skype

Skypeaunproducno desoftwztequelepeuninemelizarlhmadaidevozyde
vidtn (Ia mayoria son gratuitas): travs de luntmct, medianee el uso de una
nemologa lhmath WIP (Wamba IP; IP se refiere: "Protocolo delnaernef).

Nilda Zennstnm yDane]anus Friiis mdamn Skype en 2003. Dosalios


dapuds. vendieron la compaia a eBay por $16 mil millones.
YouTube

YouTube esun sido pum compartir videos quese fund en 2005.Antsde


que transcurriers un ao, Google compr la compaa por $1.65 mil milions.
En la actualidad, YouTube es responable del 10% del um soul en Internet
(uuur.rrebprone\rs . con/topnefrrs/2010/04/16/farnebook-and-you'tubn-ger:-tzlm
rlost- busi ness-i nternet-trsfi e). Menos de un ao despus de la liberacin
del Phone BGS de Apple -el primer modelo del Phone en ofrecer video-

lss transfuencias desde dispositivos mviles a YouTube aumentaron un 400%

(rm- hypebot - con/hwebot/2009/06/voucubs-rsprw 11oo-jurp- 1 rrnob e-video. ht ).

Hg. I.20 I Aplicaciones sociales (parte 2 de 2).

I I2 Tecnologas de software
la gum 1.21 muem-auna lktade palabras de moda que escucharen laoomunidad de clsarmlio de

software. Creamos Centros de Recursos sobre h mayora de esuus temas, y hay muchos por vemt

Tecnologa

Descripcin

Snftwateigii

Elthnuollodgildesownreesunooujunwdemenodologlasquetmmnde
implementatsoftwste con ms rapidez y menosrecuntrs quelas metodologas
eneeriores. Visiee losstiosdeAgileAlliance(vrrru.ag11ee11ienee .of~g] yAgile
Nlaniferm (rrurr.agHerlanIfesm.org). Tambien puede visimrel sitio en espaol
mmege-sps1n.eon.

Refaemtmddn

Iallflcustiznridnimplita tefonnularelcdgopamlncerlomsdamydl

de mantener, al tiempo quese preserva su

Es muy utilizado en

las meeodolgll de desamollo gil. Muchos IDE cnntienen lrm'rn'n|mrJ:

'$alrsa:|`drr inegradespera reeliurlamayorpereedei pu-ooesode refectorizscin de man aummtim.

Patrones
de diseo

Los petmneede diseo son arquneeturas probadas pen oonsetuitsoftware


otienmdo a objems ratibley que pueda lmnnenerse. El mmpo de los patmne: de
diseo una deenumetarn los patrones r-ecu.ner-ames. ydealeamte iosdiseadores
desoftwatepsnque Insreutiliomypuedan desanollutm softwaredemejor
mlidad con menos tiempo, dineto y esfuerzo. En el apndieeQarulmremos
lospotmna de diseo dejara.

Hg. I.2I | Tecnologas de software(parte I de2).

rCapitulo
I

.
Introduccin
a las computadoras y a java

Tecnologa

Descripcin

LAMP

MySQLuunsisuumdeadminisu1ddndebesesdedaeosdeo6digoreneeebierto.
PHPeedlengtnjede'xa1mdasdemmandosddlsdosavidordeodigarmte
bierno mspopular-pe.r:eldessnoliodespiio|cionetW`eb. IAMPesunser6nin'ro
fuemseabierm quellsilnmuehosduanolideres en iaucecindenplicaciones Web: se reeren Linux, Apmise, MySQL y

PHP (o Pedo Pytl:on;ottosdosienguajadeseurenr:issdemu1andos}.


Software mm
un servicio
($1.15)

Por lo gener-el, elsowaresiernpre se ha vino oomo un producen; la mayora an


se ofrece deesm forma. Para eiecumtum aplicacin. hayque mmpmda a un
distribuidor desowale. Despus la inslalanrosen laoomputndora ylo ejecutamos
mando m nom;-io. Ameddz que aperemn nuevas versiones, actualizamos el
nfrwam, lo cual gen con frecuencia un gsm considerable. Esne proceso puede

serioornodopemlasorganineiones oondeceaasde miles desisnerms, alos quese


debedarmeneenimienno en una diversa seleccin de equipo de ompuno. En el
Soflwnreoomoun servicio (SeeS),steejeeumen servidores ubimdoeen
clnlquierpomede Innemet. Quealsaaetualimdos, loscliemes en nodoel mundo
ven lasnuevnscnpneidrtdes sin neoesidaddeunn instalacin ioceL Podemos
amederal servido a nnvsde un navegador. Los mvegedores son bnseanne
portables, por lo que podemos ver las rnisrnns apliosdones en una amplia variedad
de computadoras desde eualquierperne del mundo. Salmfomemm, Google,
Microsoft Oioe Live yW'mdows Live ofrecen SaaS.
Phmfonna

I-1Pllllfnrmneom0nnIe'icio(PenS)pmveeunap|atafommdeompum

oomo un
eervido(SaS)

para desmollnry ejecutan- aplicaciones oomo un servicio a nnv deWeb, en vez


densmlarlasher-rsmmr:uenn1mmpumdn1=.lnsproveedotr=dePaaSms
importance: son: Google App Engine, Amazon EC2, Bungee Labs, entre otros.

Computacin
en la nube

SHS y PaaS son ejemplos de onunpnueidn en llnnbeen donde elsnwrue, las


nmfomms y le infraestructura (por ejemplo, el poder de prooessmienno y el
dmar:.ena|nienmo)seaIojansg|n Iadernnndaaunv delnmmee. Fmooem
e los urnlnrios exibilidad, amiabilithd yun ahorro en ios cosmos. Hs: ejemplo.

considere lasoocesidedesdealmaceoarnienuo declanosdeuna mmpallla. que


pueden ucnnrdemanem oondetable en el tmnseumo deun ao. En vez de

aver-tirenhatdwaxedealrnaoetmmiennodegmn escala-cuyocosnodemmpra,
mantenimiento yasegummienm puede seroondemble, :dems de que no

siempre es posible aproveche: su capacidad nota!-. la oontpefa podra oontpnr


:rvicios bandos en la nube (como Amamn S3, Goog|eSmmge, Microsoft

Windowshzumen', I\irvanix' yotros) segn Iosfuern requiriendo.


Kitde

LoIl(1IdedeInnvoilodeeuftwnne(SDK) incluyen nmmisrsirennmienuuoomo

desarrollo de

le doeurnenmcin que utilizan los desntroliedorespen ptogrematapiimeiones.

software (SDK)

Por ejemplo, uned usar el Kit dedesannlio dejan (IDK) pum crear yejeeumr

aplicaciones dejava.

Fig. I.2l I Tecnologas de software (parte 2 de 2).


Liguxa 1.22 dmcribe hs earegorlas de liberacin de versions de los productos clesoftware

Wrsin
Alfa

Descripcin
Eistftwamaaizpdmuavemndeunptoducmodesuwnmmyodesanollo

anseezicuerrtrearsvo. Poriogenerallsversionesalfatienenmucbosenureeson
inoompletasyereI1|esxinsebemnaunpt:|ueonmodedmrmlheknen

pe.nqueeve|enlsnuevnseunmerfsdees,pemobemerreuoelimumdnbmis
ptonoo posi|sle,etc-Enero.

Hg. I.22 | Terminologa deliberacin de versiones de productos de software (parte I de 2).

LI 3 Como estar al dia con las tecnologas de informacin

Versin

Descripcin

Besa

Las versiones hu se libaan a un nmero mayordedesarrolladoresen una etapa

II

posneriordelproode denuro|Io,u.ns\'e2quesehaoon'egido|a|s|ayorhdelos

errores irnponantesylasnuevas rarsoeerfs-:iras enn casi oomplesas. Elsuftwase


hera esmsesrable. pero todava puede sufrir-muchos cambios.
Candidasos

Engmas1.losesdempnnEbemddndenenmdassusonnaviiesmu5ol-

paraliberacin

Mnutin

(Release
Candidata)

udee,oonlocualseIograrmeneomodepruebadiversodsofrwareseutili:a
en distinocs sistemas, con resrricnionesvadablm ypara muchos fina diferentes.
Cualquier- er-rorqueapareamsecorrigegen un momenm dado,eI producen
oalseliberaalpblirn engeneral. Aoserrudmlasmmpallasdesofrware

libresdeermresylisnosparaquelaoomunidadlos

discribuyen sctualizadones incrernenraler a nav delneemet.


Beta
perrnsnenne

Elsowarequesedmnollamednneummeeodoporlogroeralnotiene
nrmeroadeversidn (por ejemplo, la bsquedadeGoogleo GmaiI).Eree
mware, que se aloja en la nube (no se nsnrla en su mmpumdom), evoluciona
demanera constante de modo que los usuarios siempre dispongan dela versin
ms rceir.-noe.

Hg. l.22 | Terminologa deliberacin deversiones de productos desoitware (parte 2 de2].

I.I3 Cmo estar al da con las tecnologas de informacin


La figura 1.23 muestra una lista de las publicaeions tcnicas y comerciales que le ayudarn a permanecer actualizado oon la tecnologia., las noticias y las tendencias ms recientes. Tambin encontrar
unalisra ada vez ms grande de Centros de recursos relacionados con Internet yweh en http : //rms.
dei te'I .com/Ilesou rceCenters .ht|n1.

Blqgmbfx

WI. bil! IGSSIGIK - 1

CNET

nerrs.cnet.ooa

Compurser Wodd
Enpdget

rrrrrr. crssputerrrorid . con


mrrr.er1gsrIge1: .een

eWeelr

rrrrmelreek. con

Fast Company

rrvrrr. fsstoonpany. con/

Fortune

|Ioney.enn. con/nagazi nesfortunel

Infowodd

rrrrrr.1nforror1d . con

Mashable

rssshsl e. een

PCWodd

rrrrrr. pcrrorld. con

SD Tunes

urrrrr.sdc1nes. con

Slashdot

s'I ashdo1:.orq/

nar-ser Technology

rsrrr. snartertechnoiogy. con

Technolog Review

teehno ogyrevierr. ene

Teehmmch

teehcruneh . con

Wired

nsrn.rr'l red. con

Hg. I.23 | Publicaciones tcnicas y comerciales.

32

Capitulo I

Introduccin a las computadoras y ajava

I . I 4 Conclusin
En este capitulo analizamos el hardware y software de computadora, los lenguajes de programacin y los
sistemas operativos. Vimos las generalidades de un entorno tpico dc desarrollo de programas de java y
probamos una aplicacin de Java. Introclujirnos los fundamentos de la tecnologa de objetos. Aprendi
acerca de algunos de los emocionantes y nuevos acontecimientos en cl campo de las computadoras.Tambin analzamos cierta termino logia clave del desarrollo de software.

En el capitulo 2 crear sus primeras aplimciones dcjava. Podr ver cmo a que los programas muestran mensajes en la pantalla y obtienen informacin del usuario mediante el teclado para procesarla.
Utilizar los tipos de datos primitivos y los operadores artmticos de java en clculos que emplean los
operadores de igualdad y relacionales de Iava para escribir instrucciones simples de roma de decisiones.

También podría gustarte