You are on page 1of 65
Hivel 1 Problemas, Soluciones y Programas 1. Objetives Pedagégicos Al final de este nivel el lector ser capaz de ‘= Explicar el proceso global de solucién de un pro: blema usando un programa de computador. Esto Induye las etapas que debe seguir para resolverio ¥ los distintas elementos que debe ir produciendo ‘2 medida que construye la solucén *Analizar un problema simple que se va a resolver usando un programa de computador, construyen do un modelo con los elementos que intrvienen cen el problema y especificando los servicios que el programa debe ofrecer © Eplcar la estructura de un programa de compu tador y el papel que desempeta cada uno de los elementos que lo componen. ‘© Completar una solucién parcial aun problema (un programa incompleto esctito en el lenguaje Java), usando expresiones simples, asignaciones e invo- ‘aciones a métados. Esto implica entender los con- ceptos de pardmetro y de creacion de objetos. ‘= Utiizar un ambiente de desarolio de programas y tin espacio de trabajo predefinido, para completar una solucion parcial a un problema, N Fuso ot rota, Wt 2. Motivacién La computacién es una dscplina joven comparada con las matematicas, a fisica 0 la ingenevia cv. A pesar de su juventud, nuestra vida modema depende de os computadores. Desde la nevera de a casa, hasta el au taméuil ye teléfono celular, todos requiren de prog ‘mas de computador pare funciona. Se ha preguntado alguna vez, jcuantas lineas de cédigo tienen las pro ‘gramas que permiten volar a un avin? La respuesta es ‘varios millones El computador es una herramienta de trabajo, que nos permite aumentar nuestra productvidad y tener acceso 2 grandes vollmenes de informacién. Es asi como, con ‘un computador, podemas escribir documentos, cons tar los horaros de cine, bajar misica de Internet, jugar (ver peliculas. ero ain ms important que el uso pr sonal que le poderos dara un computador, es el uso que hacen de &lotasciscpinas. Seria imposible sin los computadoreslegar al nivel de desarollo en el que nos encontamos en discplnas como la biologi (equé seria del estudio del genoma sin el computador?) la medina, a ingeniria mecca o fa seronutica. El computador nos ayuda a almacenar cranes cntidades de informacién (por ejemplo, ls tres mil millones de pares de bases del genom hurano, fs millones de piseles que conforman una imagen que llega desde un salt) ya manipulrla a alta velocidades, para poder as eecutartareas que hasta hace sto algunos aos eran imposibes para nosotrs. £1 usuario de un programa de computador es aquél ‘que, como parte de su abajo o de su-vida personal, uiliza ls aplicaciones desrrolads por otos para re solver un problema, Todos nosotros somos usuarios de ecitores de documentos 0 de navegadores de Internet, ¥ ls usamos como herramientas para resoher proble 1s. Un programador, por su parte, es la persona que 5 capaz de entender los problemas y necesidades de un usuaioy, parti de dicho conacimiento es capaz de construir un programa de computador que los re- selva (0 ls ayude a resolve) Vista de esta manera, la programacién se puede considerarfundamentalmente una actividad de servicio para otras disciplines, cuyo bjetiv es ayudar a resoer problemas, constuyendo solucones que utiian come heramienta un compu tad ‘Cando et problema es grande (como el sistema de informacion de una empresa). compleo (como crear una visualzain tridimensional de un dso) o at: «0 (como contiolar un tren), la solucén la constuyen eps de ingeniers de software, enrenados espe desarrollo pueda entender sin dfcutad lpragimaor gent os ‘oes cr ce reayachrd problems \P—= spate lil pera seccién nos concetvaos ena defincin de problema, en a segunda en el proceso de constucién de a en a tercera, en el contenido estructura del soln misma. ‘= Paso 3: El programador instala el programa que resuelve el problema en un computador y deja que el usuario lo utlice para resolver el pro- blema, Fijese que no es necesario que el cliente y el usuario sean la misma persona. Piense por ejemplo que el cliente puede ser el gerente de produccién de una fabricay, el usuario, un ope- rario de la misma, « el oes asec ge Songun pe sll dl pease tne 24 Tasoleson pina lo que espera el cliente de la soluctn sta etapa se de- roi andlisis la slid de esta etapa la lamamos la especifcacion de problema, ara introducir los elementos de la especcacén, vamos a hacer el paralelo con otras ingenieias, que ompartenproblematicas similares. Considere el aso de un ingriero cil que se enfrenta al problema de consti ura carretera Lo primero que ést debe hacer es tratar de entender y especicar el problema que le 3 2 3 Z : i plantean, Pare eso debe trata de identical menos tees aspects del problema: (1 los requerimientos del usuario (entre qué puntos quire el clente la carete- ra, cadntos cartes debe tener, para qué tipo de fico debe ser la career} (2) el mundo en el que debe re- Soherse el problema (el tipo de teeno la cantidad de Hvala temperature, y (3) as restricions y condo nes que plntea el cliente (el presupuesto maximo, que las pendientes no sobrepasen el 5%)-Seria una pérdida de tiempo y de recursos para el ingeier civil intentar constr la caretera si no ha entenido y defnido la- ramente los tres puntos antes mencionados.Y més que tiempo y recursos, habré perdido algo muy importante en ua profesiin de servicio como es la ingenieria, que esa confinca del cliente En general, todos los problemas se pueden diviir en ‘estos tes aspectos Por una parte, se debe identifica lo ‘que el cliente espera de la solucén. Esto se denomina Un requerimiento funcional. Enel caso dela progra- macién, un requeimiento funcional hace referencia » ‘un senicio que el programe debe proveer al usvari, segundo aspecto que conforma un problema es el ‘mundo o contexto en el que ocurte el problema. Si alguien vaaesciir un programa para una empresa, no le basta con entender la funcionalidad que éste debe tee, sino que debe entender algunas cosas de la es- ‘ructuay funcionamiento dela empresa Por ejemplo, si hay un fequerimiento funcional de calcula el salaio e un empleado, la descripcén del problema debe in- lui las normas dela empresa para calcula un salvo. 1 teceraspecto que hay que considera al definr un ptoblems son las requerimientos no funcionales, {que corresponden a as restriciones o condiciones que Impone el cliente al programa que se le va a constui. Fjese que estos timos se utlizan para limita las slu- iones posible. En el caso del programa de una empre- sa, una resticién podria ser el tiempo de entega del programa, ola cantdad de usuarios simulténeos que lo deben poder utilizar. En a figura 1.2 se resumen los tues aspectos que conforman un problema Fig. 12 Aspectes que hacen parte del anilisis de un problema |B pralzar un problema es tratar de eter Esta etapa busca garntiae {ue tatemos de esol un problems erent al queen lente BB Descomponere problems en sus tes aspects fundamentals facial trea de etender: en cada etapa nes poderos Concetta’ e so uno de ells lo cual singin wabjo. Bi txt desconposn se puede gnerazar ara estudio de problemas, no Sélo se tien problemas cya slain sea un programa de computa. (Bo seas do ertender el potions, debomos ‘exper lo qe entendemos squiendo algunas comenciones (By Ai ermine a etapa deans deers generar auto de documentos que {tec esa carpe del obema, Cn des documents odes ‘ier mv wabj presenti lente y dectondo cond. Las agencas deve del pais RR: dadas dos ciudades C1 y C2, el programa debe dar el itinerario para ir de C1 a C2, _usanda los wueos dela empresa En est eerpo sé hay unrequetimiento funcional ‘explito, Sin embargo, lo usual es que en un problema haya varios de els. Enel enuncado no est expt, pero para poder esl el problema es necsario conocer todos los wuelos dela empresa yt de cudades a as cuales va, De cada wuelo es necesatio tener la udad de equ par, a ciudad ala que lea, fa ova desl ia uracn dl wel. Aqui debe ir toc econacmiento que tenga a empresa qu pueda ser neces para resoer os equtinientsfunconaes. inc requermientono funcional mencionado en el enunciado es el de dstribucin, yo {que las agencias de viaje estn geordficamente dispersasy se debe tener en cuenta esta | Garattersica al momento deconstur el programa. salagiseiva i a Prodanaacon, Ns 3.2. EI Proceso y las Herramientas Entender y especificar el prablema que se quie- re resolver 5 sélo la primera etapa dentro del proceso de desarrollo de un programa, En la figu- fa 1.3 se hace un resumen de las principales eta- as que constituyen el proceso de solucién de un problema, Es importante que el lector entienda {ue si el problema no es pequefo (por ejemplo, » det el roger ue con ap Dojo deheramient lenges conn ‘Analisis del problema: el objetivo de esta etapa es entender y espciicarel problema que se quiere re- solves Al terminar, deben estar especifiados ls » ‘Analizarun problema significa entendetl e identifica las tres aspectos en ls cuales siempre se puede descompone: os requrimientosfunconales, l mundo de problema y los requermientos no funcionales. Esta division es vida pra problemas de cualquier amet, = El proceso debe se entendido como un orden enel ua se debe desarrlar un serie de actividades que van 2 permit construr un programa. El proceso plateedo tine tes etapas principals todas elas apoyedas por herramientas ylenguajes especales: el sistema de informacién de una empresa}, o si los requerimientos no funcionales son crtcos (por ejem- pla, el sistema va a ser utlizado simulténeamente Por cincuenta mil usuarios), o sel desarrollo se hace en equipo (por ejemplo, einte ingeniers trabajando al mismo tiempo), es necesaria adapta las etapas y la manera de trabajar que se plantean en este li- bro. En este libro solo abordamos la problematica de construccién de programas de computador para resolver problemas pequefis. « de BL primera etapa para resoherun problema es analiza Para facitar ste esti, se debe descomponr et problema en sus tres pats B voy ue pobena ahs tren sho exes en un lege ese pueda ede sn antigo pss oes de Stet a ebenes nage o ‘hn Snr pares eon canpone: may comin comer ‘step defend une eae (Banc el seh et termina, ssamos a costuirla sol, ‘equeriientos funconales debe estar establecida fa informacion del mundo del problema y deben «star defnids os equerinents no funconaes * _Diseio de la solucén el objetivo es detala, usan- o algin lenguaje (pianos, dibujo, ecuaciones, ciagramas, texto, etc) las caracteiticas que ten- dd la solucion antes de ser construida, Los dse- fs nos van a permit mostrar la solucion antes de comenzar el proceso de fabricacin propiamente dicho. Es importante destacar que dicha especif- «cacion es parte integral de la soli. © Construccién de la solucén: tiene coma objetivo implementar el programa @ partir del diseo y probar su correctofuncionamiento, e exeesdl progam ecrto coulengaje de ex sonlos rogram ue ysis ela Solus ‘seoress Cada una de las etapas de desarrollo est apoyada por herramientas ylenguajes, que van a permit al proge madbor expresar el producto de su trabajo. En la etapa de consruccién de la soluciin es conveniente contar con un ambiente de desarrollo que ayuda, entre ‘otras cosas, a editar los programas y a encontrar las crores de sintaxis que puedan exist 3.3. La Solucién a un Problema La solucdn a un problema tiene varias componentes, los cuales se ilustan en la figura 1.4 El primero es el disefio (os planos dela solucién) que debe definir la estructura del programa y falta su posterior manteni mint. El segundo elemento es el cédigo fuente del programa, escrito en algin lenguaje de programa- ‘i6n como Java, C, C# 0 C++. El cédigo fuente de un programa se crea y edita usando el ambiente de desa- rrollo mencionado en la seccidn anterior. ura pre mpotne de ssladenesd tao. Ase eee ae toss quese nts | tesa econ clcbig genase del i eo fuente los dor de puch sma Taito uc ps snare pegntan in uaaonesS. Ror Casa Jonce A E xisten muchos tipas de lenguajes de progtamacién, entre los cuales los més utiizados en la actualidad son los lamados lenguajes de programacién orientada a objetos. En este libro uilizaremos Java que es un lenguaje orientado a objetos muy difundido y que ie- ‘mos presentando paca a poco, a medida que vayamas necesitando sus elementos para resolver problemas. Un programa esa secuencia de Instucciones (escrtas en un lenguaje ‘de programacin) que debe eecutar un ‘computador para resolver un problema, 1 tercer elemento de la solucién son los archivos de ‘onstruccién del programa. En ellos se explica la ma- neta de utilizar el cigo fuente para crear el cbdigo ‘ejecutable. Est titimo es el que se instal yejecuta cen el computador del usuario El programa que permite ttaducir el cédigo fuente en cédigo ejecutabe se deno- ‘mina compilador, Antes de poder constuir nuestro primer programa en Java, por ejemplo, tendremos que conseguir el respectvo compilador del lenguale timo elemento que forma parte de la slucén son las pruebas. All se tiene un programa que es capaz de probar qu e xagrama que fue entegado al lente funciona corectamente.Dicho programa funciona so- bre un conjunto predefinido de datos, y es capaz de valida que para esos datos predefnidos ly que simulan datos reales) el programa funciona bien La solucibn de un problema tiene tes partes: (1) lise, (2) e programa 1) las pruebas de correccén del rogram, Estos son os elementos que se deben entrar al inte Es comin que, ademas dels tres elementos citados anterionments, la solu incuya un manual del usuario, que expique fl funcionamiente del programa Si por alguna razén el problema del cliente evolucona (por ejemplo sie cliente pide un nuevo requermiento funcional), cualquier programador debe poder leer » y entender e dsefio, aiadtle ls madifcacin pedi, ‘ajustar el programa y extender las pruebas para verifi- carla nueva extensién, a figura 1.5 muestra dos mapas conceptuales (parte a yparte b) que intentan resumirlo visto hasta el momen- tan este capitulo. Fig 15 (0) Mapa conceptual de ta SS Los tes casos de estudio que se presentan a cont- ruacién serin utiizados en el resto del capitulo para iustrar Jos conceptos que se vayan introduciendo, Se ‘ecomienda eerlos detenidamente antes de continuary tratar de imaginar el funcionamiento de los programas ‘que resuelven los problemas utlizando para esto las figuras que se muestran. Al final del capitulo enconra- 18 otos casos de estudio diferentes, con las respectvas hojas de trabajo para desarcallartos, de estudio vamos a considerar un pro- sa [a informacién de un empleado. -ennombxe, un apelido un género (mas una fecha de nacimiento yuna imagen tiene una fecha deingreso ala sao yun sla sic asignado. se debe poder cambiar el saario de que hacer los siguientes clculos isponible: (1) edad actual, (2) anti- 2:2 (3) pestacanes alas que tiene mas comunes en el mundo i= zacén desimulaciones que permitan el rendimiento de sus productos a contemplando diferentes escenario es que se pesenten programa que haga la simulacién en ta bancata deun cliente. Un lente yun nimero de cédula el cual identif- cuenta, por su parte esté consttuida inandiesos basicos:(1) una cuenta de ahora, (2) una cuenta coriente y (3) un certficado de depésiteatérmino (COT) Estos productos son indepen- lentes y tienen compartamients partiulres. El saldo total de a cuenta es la uma de lo que ellen te tiene en cada uno de dichos products. En la cuenta coriente e cliente puede deposiaro retar dinero. Su principal caracteristica es que no recibe ningin interés por el dinero que se encuente all depositad. En la ‘uenta de ahora, se paga un interés mensual del 0,696 sobre el saldo, Cuando el clente are un CDT, define la cantidad de dinero que quate invert negocia con el banco el interés mensual que va a recibir A diferencia de la cuenta corente ola cuenta de ahoro, en un CDT no se puede consignar ni retirar dinero. La tnica ope racién posible es cerato, en cuo caso, el dinero y sus intereses pasan ala cuenta coriente. Se quiere que el programa permita @ una persona si: rmular el manejo de sus productos bancarios, dindole las faclidades de: (1) hacer las operaciones necesarias sobre los productos que conforman la cuenta, y (2) ‘avanzat mes por mes en el tiempo, para que e cliente pueda vere esutado de sus movimientos bancarios y ¢ endimiento de sus versiones. By comet botén marcado coma *>>* el usuario puede nzar mes ames en el sinuladeryverls resultados de ‘ss imversiones. {B contr si btones de partner do ventana, star pus slr mon que aa ace ees produces que fan ate desu certs ara By Enis parte esa def vertan,apareen el sao que tee en cada padi yl it ge et ean en omens 05S. | Rua Csnas AQ) a °o Foaweos ve Prosauacon Nag. 1 43, Caso de Estu Un Triangulo En est caso se quiere constr un programa que per rita manejar un tridngulo. Esta figura geometica est defnida por tes puntos, cada uno de los cuales te- ne dos coordenadas X,Y. Un tridngula tiene ademés un color para ls lneas yun color de relleno. Un color or su part, est dfnido por res valores numtios ene 0 y 255 (estindar RGB por Red-Green- Blue). El primer valor numérico define la intensidad en rojo, el segundo en verde yl terceroen azul Mas infomaciin sobre esta manera de represetar ls colores la puede encontrar por Internet Cul sel igo RGB del color negro? ¢¥ de color blanco? &1 programa debe permit: (1) bua et tisngulo en la pantalla, (2) clear el perimetro del trnguo, (3) Cala el érea dl riéngulo y() calcula a ature de twidnguo. B contos res botones de ia iequierda, el usuario puede ‘cambiar los puntos que definen el tidngul, color de aslineas ye coor del fondo, BW Ena zona marcada como “informacién”, el usuario puede ver el permet, el area ya ature del ‘viéngulo (en pies. GB Enta parte derecha aparece dibujado el tridngulo ds oenaCorente se lana “oety | fll hc de que na cuenta banca ere ta cet covet como parted la. Gh Fes ue as techs nen una ec. ich teccn esiablee qué eniad ila ala oe como parte desus aracerstias Ba Aamo la dase CuentaBancaria como la dase COT © tienen una asoiacién hacia la clase Mes, nla primera clase sive para modelar el mes actual de _lasimulacién En la segunda, representa el mes. “ence que se bri el COT. wis sitce de nuevo el enunciado, se dard cuenta de ‘ue el diagrama de clases se limita aexpresarlo mismo que alli aparece, pero usando una sintaxis cri, que tee lava denoseranbae, ‘cellar 0 desde un navegador de Internet, o que el tiempo de respuesta de cualquier consulta sea menor 20,0001 segundos. Los requerimientos no funcionales estin muchas veces relacionados con resticcones sobre la tecnologia que se debe usar el volumen de los datos que se debe ma- near ola canted de usuarios. Para problemas gran- des, los requerimientosnofuncionales son la base para 4 cisefo del programa. Piense en lo distinto que sera tun programa que debe trabajar con un cio usuario, de otro que debe funcionar con miles de elas simulté- ‘neamente. En el contexto de est iba, datos los objetivosy el tamafo de los problemas slo vamos a considerar los equerimientos no funcionales de interaccin y visua- lizacin, que estén ligados con la intefaz de ls pro- grams. En este punto elector deberia ser capar de ler el enunciado ‘de un problema senciloy, 3 patide st, (1) espeficar los ‘equermientosfuncionales, (2) crear ef modelo del ‘mundo de problema usando UML y (3) lista os requerimientos no funconaes. 6.Elementos de un Programa act pre del capo prsertamos es sts eros que oman parted un pera No pretend Serna expen exhaust, eos es nest abe tho da na vs bl ds distin aspects que imevienenen un pogaa En algunos casos la presentacién de los conceptos es ‘muy superiil.Ya nos tomaremos el lempo en los ni- veles posterior de profundizar poco a poco en cada uno de ellos. Por ahora lo tnico importante es paderios usar en cass imitados Esta manera de presentar ls » teas nos va a permitir generar las habilidades de uso de manera incremental, sin necesidad de estudiar oda fa teat lgadaa un concept antes de poder usa 6.1, Algoritmos e Instrucciones Los algortmos son uno dé los elementos esenciales de un programa. Un algoritmo se puede ver coma la so- lucién de un problema muy preciso y pequefo, en el ‘ual e define la secuecia de istrccones que se debe seguir para reslverlo. Imagine, entonces, un programa amo un conjnto de algorits, cada uno responsable de una parte dela solucin del prablems global Un algortma, en general, es una secuencia ordenada de pasos para realizar una actividad. Suponge, por ejemplo, qu le vamos a exlicar a alguien lo que debe hacer pata vj en el met parsno El siguiente es un ‘algoritmo de lo que esta persona debe hacer paa llegar ‘una deci dada: 11+ Compre un tquete devia en los puntos de venta ‘que se encuetan ala entrada de cada una de las estacones del metro 2 Identfique en el mapa del metro la estacion donde etd el punto adonde necesita i 3 Localce el nombre de la estacion de metro més cer cana al lugar de destino 4 Vetfique si, apart de donde ests, hay alguna rea que pase por la estacén destin. 5~ Si enconté la linea, busque el nombre dela misma nla direc de destino. 6 Suba al meta en el andén dea ne identfcada en ‘el paso anterior y bese en la estcin de destino. N Jonee A. Muaaans S. f Rut CSAS 6. OO Uiliceeste espacio para anotar sus cndsiones: : i 3 una sintsis dels resutads obtenisos: 5 el computador el que sigue un algortmo caso del computador se habla de ejecutar), es que las instuccones que le demos no pueden ‘como las defnidas en el algoitm del metro de Pa- Dado que el computador no tiene nada parecido al : las instrucciones que le definamos estar escitas en un lenguaje que no dé espacio na ambiqiedad (imaginemos al computador de nave espacial dicendo “es que yo cre que eso era ue ustedes querian que o hiciera"), Por esta azén ‘algoitmos que consttuyen la solucién de un pro- se deben traduci @ un lenguae inceblemente ingidoy limitado (pero a su vez poderoso si vemos lo que con él podemos hacer), denominado un uaje de programacion. Todo lenguale de pro- aciontene su propio conjunt de regla para decir cosas, denominado la sintaxs del lenguje. n muchos lengujes de programacién en el mundo, uno con sus props caractersticas y vntaas, Como 305 anterionmente, en este libro utiiaremos el len cde programacién Java que es un lenguale de props general (no fue escrito para resolver problemas en un io especico), muy utlizado hoy en cia en el mundo 0, tanta a nivel centfico como empresa. ‘Un programa de computador est compuesto por un cnjunto de algotmos, escrtos en un lenguaje de programacén Dichosalgortrnos ‘stn esructuras de tal forma queen conju son capaces de resolver el problema. Clases y Objetos clases son los elements que defnenlaestuctura de 1 programa Tal como vias en la etapa de als, a las clases representan entidades del mundo del pro- blema (més adelante veremnos que también pueden pertenecer a lo que denominaremos el mundo de la solucién, Por ahora y para que se pueda dar una idea de lo que es un programa completa, imagine que los algoitmas estén dentro de las clases, y que son estas ‘timas las que establecen la manera en que los 2igo- ritmos colaboran para resolver el problema global ver figura 1.9). Esta visién la iremos refinando a medida que avancemas en el lito, pero por ahora es suficiente ara comencar a trabajar. fio, 9 Vision intuitiva de la estructura de un programa Hasta ahora es claro que en un programa hay una clase Por cada entidad del mundo del problema. Per, cqué asa shay varias nstancias” (es decir varios ejempla- res) de alguna de esas entidades? Plense por efemplo aque en vez de crea un programa pare manejarun em leado, coma en el primer caso de estudio, resolvemos hacer un programe para manear todos los empleados de una empresa, Aunque todos fos empleados tienen las mismas cractersticas (nombre, apelido etc) cada uno tiene valores distints para ellas (cada uno va a tener un nombre y un aplid distnto). Es aqui don de aparece el concepto de objeto, la base de toda la pragramacién orientada a objetos. Un objeto es una instancia de una clase (la cual define los atibutos que debe tener que tene sus propos valores para cada uno de os atributos El conjunto de valores de los atributos se denomina el estado det objeto, Para ciferenciar N u ms. J Raney Casas 6 : 2 Faux las clases de los abjetos, se puede decir que'una clase define un tipo de elemento del mundo, mientras que un objeto representa un elemento individual Piense por ejemplo en el caso del tiéngulo. Cada uno de lospuntos que definen las aitas dela figura geométiia «a son objets distintos, todos petenecentes a la dase Punto. Ena figura 1.10 usta la cfevencia entre cla- ey objeto paraelcaso del risngulo. ese quela dase Punto dice que todos los objetos de esa clase deben te- ner dos atrbuts (x), ero son sus instancias las que tienen ls valores para esas dos caracteisticas. Ba casetiangulo tiene wes asocadones hacia le clase Punto punto puro? ypu). £50 ‘quiere deci que ade ceo dee dase Tanguo tend tes bets asad cada uno de els petenecentea la case Punt, B tomiso sure con as dos esociaciones hai la clase Coo be haber dos objets dea dase Color or ada objeto dea clase argu, Bi cata vogue entonces epresentad por & objets cnecades entze une dea ase Trang tresdela case Punto y ds dela le Cloe By cata uno des objets tiene asciado el nombre Para representa los objets vamos @ ular la sin- taxis propuesta en UML (ciagrama de objetos), que consist en caja con bordes redondeados, en la cual hay un valor asocado con cada atbuto.Podemos pensar en un dagrama de objetos como un ejemplo > ‘ue se denen el arama de cases B cprimer punto det wiinglo esa en las cooréenadas (00,10). Bi segundo pune det widnguo est ens Ceordenadas (20, 20. (BD street puta det wing et en ts coordenads (60,70, (By Las lneas del wisnqul son de color defini por el cig RGB de valor (5, 170,47). cA qu color ‘amesponde ese cio? {Bi Estees sto un erp de todos es winguios que potin defise a par del agama dels, D ena parte super de cad objeto aparece acs lacual petnece de ls objetos que se pueden construir apart de la defincién de un diagrama de clases. En el ejemplo 7 se ilustra la manera de visualizar un conjunto de ‘objetos para el caso del empleado. ‘techatngresa . 1990 Sechatisciniento é fechaingzeso Di cate ober dela case Epleado ten unvalor para cada uno de sus stbtos yun obj par cae una ess ascciadones B Esta dase detne los atibutos de {odes los emleados dela erpresa, (Berane ita una dase puede ee ps tery ssc soncnses. By cada empleado ser representado con tes ojos uno dea dase Empladoy dos dea dase Fecha. Gi Ese es rn emp deun pedo de a ens Sellana anu na 6 eno de 1971 camera wba ena npn eld apost de 1990)u ‘salario es de dos millones de pesos. urns ecu de un progiana eden aparece ata bjs como Sean ncesais pra rereserar el uno dl problema, ien ls empresa ay 500 empleads en a efecuctn del program hab 1500 abjetosrepresentndols (3 objetos por emplead).. (te gup de bjs reesenta or -empleado de la empresa. B nce que cada emplead ten sus ‘propios valores para los aributos el iio que compare os dos empleados es la clase a le cual perenecen cul establece lista ‘eats que eben tne. N N“ Jone A aon 5. Runty Casas. ee en 63. Java como Lenguaje de Programacién Esisten muchas lenguajes de programacién en el mun 4. Los hay de dstntos tipo, cada uno adaptado a resolver dtintos tipos de problemas. Tenemas ls lenguajes funcionales como ISP 0 CML, ls lenguajes imperatives como C, PASCAL 0 BASI, los lenguajes lagicos camo PROLOG y os lngusjs orentados a ob jetos como Java, Cy SMALITALK Java es un lenguaje creado por Sun Microsystems en 1995, muy utiizado en la actualdad en todo el mundo, sobre todo gracias a su independencia dela pataforma en la que se ejecta, Java es un lenguae de propé: sito general, con el cual se pueden desarrlar desde quis programas para resolver problemas simples, hasta grandes aplicaciones indus o de apoyo ala imvestgacén. En esta seccién comenzamos a estudiar la manera de ‘expresar en el lenguae avalos elementos dentficados hasta ahora. Comenzamas por las clases, que son las «elementos fundamentales de todos ls lenguaesotien- tados a objtos. Lo primero que debemas decir es que ‘un programa en Java esté formado por un conjunto de clases, cada una de ells descrita siguiendo ls reglas sintacticas exgidas por ellengue Cada clase se debe querdar en un archivo dstinto, cao nombre debe ser igual al nombre de la clase, y cwya extensin debe ser java Por efemplo, la clase Empleado debe estar en el archivo Empleado. java y la clase Fecha en la dase Fecha. java. ‘Un programa escrito en Java est frmado por un conjunt de archivos, cada uno des cuales contiene una clase. Para describr una clase en Java, se deben seguir de manera esticta ls eglas sintdcticas del lenguae. ST Objetivo: Mosrara sans sa dl rqule ave pura dear ura dase. ames ec de ud epleado para introduc la sintans ee we hase ‘Aichive: BapLeado. java ot public class Empleado { // Rqoi va 1a declaracion de 1a clase Enpleado Clase Adie: Fecha. java public class Fecha { // Kaus va 1a declaracién de 1a clase Fecha lengua Java, todo lo que va entre dos corche- CE" y 7") se llama un bloque de instruciones. En Ja, entre los corchetes de la clase del elemplo ng la declaracién de la clase. Ali se deben hacer tos tanto los aributos com los agoritmos dela ‘También es posible agregar comentarios, que ignorados por el computador, pero que le sven |programador para indicar algo que considera impor dentro del cédigo. En Java, una de las maneras ntroducir un comentario es con los caracteres tl se muestra en el eemplo 8. yama del simulador bancaio, por eemplo,cons- 10 clases cistrbuidas dela siguiente manera 5 clases pata el modelo del mundo, almacenadas en [0s archivos cuentasancaria. java, ‘GuentaCorriente. java, CuentaAhorros. Java, CDT.java y Mes. java. © clases para la interfaz usuario, en 4 archivos Sava * 1 clase para as pruebas del programa, en 1 archivo java Es aconseable en este momento mirar en la seccién 8 de este capitulo la localizacién de dichos archivos den- to del CD que acompafia el libro, Vale la pena también dar una mirada al contenido de los archivos que vamos mencionando en esta parte. Puesto que un programa puede estar compuesto por miles de clases Java tiene el concepto de paquete, @ través del cuales posible estructura as cases por gru- os jerdrquico. Esto faciita su localzacin y manejo. Ena figura 1.11 se muestra la estructura de paquetes ‘del caso del simulador bancaio, |\11-Bjemplo de ta estructura de paquetes del caso de estudio del simulador bancario sta clase std en el paquete cup simuladorBanari inte : sinvladorsancario InterfazSimalador CventaBancaria Panelopciones Cuentaahorras, Panelsaldes, cor D asciez dases cet ora e cen tt pages uo con tesa delat de ua oquels ape inpleertn a ‘eran os boone, Un cone modo ‘mind, ot con asda ne pa serconpaidascon es prema (por ejemplo, la clase Mes Sepediafcnere rea) yun tine onan iss ves ctivnterest Pues D errombre completo de aa dase es ronbre delpomete ene qe semaieta sgi fideo ak. i Fonentos oe Procanacon Natt 1 A o Toda clase en Java debe comenzar por la defiicién del paqueteenel ualestasitadalaclase,comosemuesta package uniandes.cupi2.empleado; oe + sta clase representa un * enpleado ue public class Enpleado ( ) En todo lenguaje de programacin existen las que se ddenominan palabras reservadas,Dichas palabras no laspodemos utilizar para nombrarnuestras clases oar butos Hasta el momento hemos visto las siguientes pa- labrasresewvades: package, public y class. i Unclerento de na clase ededara i public endo queemos ques visible dese otras clases. En el ejemplo anterior se puede apecar otra mane rade incr un comentario dentro de un programa: utizan los simboos/* para comenzary los sibs 1 para termiat. El comentario puede exendese por varios renglones sn singin problema, a diferencia de los comentarios que comienzan pr ls imbolos i que terminan cuando se acaba el renglon os comentarios ‘que se introducen como aparece en el ejemplo sven para descibir los pringpales elementos de una dase y tienen un uso especial que se vrd més adelante en el tbo. en el siguiente fragmento de programa del casa de es ‘utio del empleado: GB Et nombre det paquete es una secuencia de identificadores eparads por un puro. GB inancesc2.enpeadosmpleado ese nome completo dela case. B Evetmanero de desarolunprogana se ‘eben sable paquetes que sean 2 uta En ues cao, el rare de paqute ‘es conlomat por el none dea instucion (uae) agi ore one del proyecto (cn) y ego el nab etc et a forma parte la dase (empleado). Bi ads empresa de esr sige 5s poias comencones pata dts nembres de os paquets 64. Tipes de Datos Cada lenguaje de programacién cuenta con un conjun to de tpos de datos a través de los cuales el progra- mador puede representar los atibuts de una clas. En ‘este rive nos vamos a concentrar en dos tpos simples de datos los enteos (tipo me), que permiten mode- Tar caraceristcas cays valores posibles son los valores rumérios de tipo entero (pr ejemplo, el ia en la clase Fecha), y los reales (tipo double), que permitenre- presenta valores numéricos de tip real (pr ejemplo, al interés de una cuenta de ahores). También vamos a estudiar un tipo de dotos para manejar ls cadenas de carateres (tipo sexing), que permite repesentar dentro de una case una caracteristica como el nom- bye de una persona o una dieccién. En los siguientes nivees,itemosintroducendo nuevos tpos de datos 2 medida que ls vayamosnecestando En Java, en el momento de declarar un arbuto, es ne cesario declarar el tipo de datos al cual crresponde, utlizandol sintais que se ilustraen el ejemplo que se ‘muestra a continuacio: uniandes.cupi2.empleado; clase representa un empleado class Swleado el atrbuto “Sexo”, debemos utilizar algu- de datos con los que cuenta el lenguaje. este caso es utizar-un atrbuto de tio en- convencion de que si dicho atributo tiene est repesentando un empleado hombre y, ‘empleado mujer. Este proceso de asociar = ite int sexo; 2 = masculino, 2 = femenino */ BD hriciaimente se decaran los tributos nombre y apellido, de tipo String (cadenas de caraceres). BB os avibutos se declaran como privads (private) pra evitar su manipulaciin desde fuera dela dase, B Elativutasaario se declara de tipo int, puesto que en el andl se establecié que slo se iban a ‘manejar valores enteros (no centavos) ( conlas res detaracones que aparecen ene empl, e computador entende que cualquier objeto de clase Empleado debe tener valores para esas tres caractersicas. B® clo queds pendiente por deccir el tipo del atributo sexo, que no coresponde a ninguno de los tipos wists; eso lo haremas més adelante. valores enteros y una convenciin par interpretarlos es algo que se hace cada vez que los valores posibles de un atributo no corresponden drectamente con las de aigin tipo de datos. Fjese que una cosa es el valor que usamos (que es arbitario) y ota la interpretacion que hacemos de ese valor, Ese punto ser profundizado en el rive 2 BA deciarar un atrbuto para el cual se uti una convencin especial para representa os valores posibles, es importante agregar un comentario en |e declarecin del mismo, expicando la interpreta- cn que se debe dar a cada valor. B Enelejemplo, decidimos representar con un 1 el valor masculino,y con un 2el valor femenino, Enel diagrama de clases de UML, por su parte, usa- mos una sintaxs similar pata mostrar los aributos. Enla figura 1.12 aparece la manera en que se incli- yen los atributosy su tipo en el caso de estudio del ‘empleado. Depentiendo de la herramienta que se utilice para defini el ciagrama de clases, es posible ‘aue la sintaxs varie levemente, nos S. 1 Rosny CHSALAS Gh once A.V Furs ve Procauncon Noes 1 AD N Lo nico que nos falta incur en el cBdigo Java es la de- claracin de las asociaciones. Para esto vamos a utii- zat una sintaxi sila a presentada anteriormente, » Ene figura 1.13 aparece el diagrama de cases comple- to de caso de estulo del empleado, fering nosbre String apellide int sexo utlizando el nombre de a asociacin coma nombre de atrbut ye nombre de a case como su tp tal como se presenta en el siguiente fragmento de cbdigo: ine die een w w Jone A. Viuaonos . 1 Rusby Casas w 4, Fotos ot Procanacon, Noe. 1 6.5, Métodos Después de haber defini los atributos dels lases en Java, sigue el tumo para lo que hemos llamado hasta ahora “los algoitmos” de a clase. Cada uno de ess a- gattmos se denomina un método,y petende resolver Un problema puntual, dentro del context del problema alobal que se quiere resolver. También se puede ver un método como un senvco que la dase debe prestar 2 las demés clases del modelo (0 a ella misma si es el caso, para que elas puedan resolver sus respectivas problemas, Un método esta compuesto por cvato elementos: + Un nombre (por ejempla, canbiarsatario, para el caso de estucio del empleado, que seis ara modifcar el salro del empleado). “© Unalista de pardmetros, que cotesponde al con Junto de valores (cada uno con su tipo) neesarios para poder resoher ef problema puntal (Se pro- Bema es cambiar el sala el empleado, po ejem- plo, es necesario que alguien exemo al empleedo deel ruevo sala. Sin esa informacion es impos ble escbic el método). Para defn los paréetros aque debe ener un metodo, debemas pregutarnos = nea imposible ambit l salto del empleado. Note qe al defn un parameto se debe dar unnombealaorque se eset unto Retoe:ringuo (voi puesto au objetivo dl _método no es calcularningénvaloy sino modfiar el valor de un ato del emplado. Descipcin:cambia!: sional el se entega como parémetro. qué informacion, que no tenga ya el objeto es ins ‘pensable para poder esolver el problema puntual? + Untipo de respuesta, que incica tipo de datos ‘que pertenece el esutado que va a retoma el méto- <4. Sino hay una respuesta se indica el tipo vot. Eleuerpo del método, que coresponde al lis: ta deinstrucciones que representa el aigoritmo que resueve el problema puntval Tipcamente, una dase tiene entre cinco y veinte mé- tados (aunque hay casos en los que tiene decenas de ellos), cada uno capaz de resolver un problema puntual de la clase a la cual pertenece. Dicho problema siempre est relaconado con a informacién que contiene lacla= se Piense en una clase como la responsable de manejar la informacién que sus objtos tienen en sus atrbutos, los métodas como e medio para haceto. Enel cuerpo de un método se explica entonces la forma de utilizar los valores de los atibutos para calcula alguna infor- ‘macion ola forma de mociicaros sie el caso encaberado del método (un método sin ol cuerpo) se denomina su signatura Uf Aqws va €1 cuerpo del método be: darsalario mets: nguno, puesto que con la informacion tienen is objets de la clase smpleado es le resolve el problem. emo el slr actual del empeado, de tipo entero. signatura sé se dice el tipo de datos que se vaa a pero no se dice cémo se retomard. én: retomael salto actual del empleado. : ealcularPrestaciones 10s: ningun. A igual ue en el método jo nose necesita infrmaén externa a ead para poder calcula sus prestaciones. o las pestaciones anuaes alas que tiene eco el empleado, Dado que el salaries entero, os a supones que ls prestaciones también lo son. ipcén: etoma el valor dels prestacones anales qu tiene derecho el empleado. aumentarsalario in: aumenta el salario del empleado en un centje que corresponde al inflacin anual de son los métodos que se deben tener en una 2 Esa es una pregunta que se contestard en ni- posteriores. Pr ahora, supongamos que la clase 2 defnidos los métodas que necesita para po- esolver la parte del problema que le corresponde sen el cuerpo de ellos public int darsalario( ) If Ragas va el cuerpo del. método public int calcularPrestaciones( ) U1 Aqui va el cuerpo del método Enel diagrama de clases de UML, se utiliza a tercera zona de la caja de una clase para poner las signatu- ras de los métodas, tal como se ilustra en la figura 1.14 055. | Rus CSAs. OY Jonae A. i i s Parbmetos: Reto: Descipcin: Nombre: darsaido Pardmetosringuno. Retro: valor de po entero (igor oscentaves ene momento de dar el slo). Descipcin tora el saldo de la cuenta de aoros. Nombre: retirarvalor Pardretos:vlr de tipo ener, qu indica monto que se quiere retard ls cuenta de horos. Retro: ingune, Desc eta de la cuenta de ahora el valor que se eniega como pare, public void consignarvalor( int valor ) ( Nombre: dartnteresvensual Pareto ringuno. Retomo: valor de ipo real. Descipcn: tora el interés mensual que paga une | eenta de ahoros, Nombre: actualizarsaldoPorPasottes Parbmeteos: ninguna a Reto inguno. Descipcin: actual el aldo de la cuenta de aborros sulando que acaba de tanscuir un mes que se eben agregar os corespondlentesintereses gonads. La Instruccién de Retorno cuerpo de un método van las instruciones que tun problema puntual 0 prestan un servicio 5 cases, El computador obedece las instruc tuna después de otra, hasta llegar al final del del método. Hay instrucciones de diversas ti mas sencla de las cuales es la instruccién de » private String noubre; private String apellido; private int salario; private int sexo; ‘que declare en su signatura que va @ er un resultado (todos los métodos que no son » retdmo (return). Con esta instruccén le decimos al método cuales el resuitado que debe dar como solu- u 05S, Runny Casas : S a 1 Fons Poets. No Fig 1.18 Arquitectura de paquetes del caso de estudio del empleado Bislaslatie Ereloadotest BD nel ierama de paquets se pede leer que alguna case del paquteuiandes cup enpleadaintetr ula agin servicn de ura clase dl poqute uniandescupi2 ‘enpeedo.muno. En este arama nos ena en detalles sobre cul dase es aque tne lela, ‘dlagame de poets smi parade una de dea src del proaa, neste nel stares inresados nar por de el pauet cons ces del mana En ives pesto os nteresaeros prs denis cases. Sinetir por ahora en mayores detalles poderos decr que en el paquete del interaz estar as cases que implementan ls elementos rics y de interaccén, lo misma que ls clases que implemetan ls requer- mients funconaes yas clases que cean ls nstancias del modelo del mundo. s ali donde estn aqrupadas todas esas responsbildades. Ete es el tema del nivel 5 de est libro. Por ahora, pacienca..» oxen 73. EI Disefio de las Clases El objetivo de esta parte dela etapa de seo es mos- tar los detalles de cada una de las clases que van 2 hacer parte de programa. Para esto vamos a utilizar el diagrama de clases de UML, con toda la informacin que presentamos en las seciones anteriores (cases, atvibutosy signatures de los métodos). En el nivel 4, veremos la manera de precisa as responsabilidades y compromisos de cada una delosmétodos(exactaente ‘que debe hacer cada método), de manera que la perso- 1a que vaya a implementar los métodos no deba guiar- se Gnicamente pr los nombres de os mismos. 8. Construcci6én de la Solucién 8.1. Visién Global En la etapa de construccién de la solucién debernos ceseibir todos los elementos que forman parte del pro drama que fue disefado en la etapa anterior, y que resuelve el problema plantead por el cliente. Dicho programa ser instalado en el computador de! usuario y luego ejecutado, Fo. 119-Rmtradas y salidas de la etapa de construccion de la solucion si En Is figura 1.19 aparecen las entradas y las salidas de esta etapa. Ali se puede apreciar que un progra- ma consta de un conjunto estructurado de archivos de distntos tipos (no sélo estén las archivos de las clases Java) La descripcién de todos ells se haré en a secciin 8.2. También se puede ver que la etapa de construccin debe seguir ciertas reglas de organizacién, las cuales varlan de empresa a empresa de desarrollo de software, yque deben hacerse explicitas antes de comenzar el tra- bajo. Estas reglas de organizaciin son el tema de la sec- cién 8.3 Al terminar la etapa de construccién, algunos archivos empaquetads y algunos archivos ejecutables irén al computador del usuario, pues en ellos queda el programa listo para su uso. El resto de los archivos se entregan al diente, quien los pod utilizar en el futuro para darle mantenimiento al programa, permitiendo asi inclu nuevas opciones y dando al diente la oportuni- dad de adaptar el programa a los cambios que puedan aparecer en el mundo del problema 8.2. Tipes de Archivos Dentro de cada uno de los proyectos de desarrollo en Java incluidos en este libro, aparecen nueve tipo distin- tos de archivos los cuales contienen partes dela solu- A continuacion se describe cada uno de ellos: Desde cualquier editor bat Esun archivo de text, que contiene Se puede usar de dos maneras: ‘una lista de commandos para el desde la consola de comandos de texto, camo el bloc de computador (para ser precsos, son delsistema operative, ohaciendo __notas (notepad, | comands para el sistema operativo ~“ Jonce A. VitaLonos S. J Ruger Casas 6. b © Fuwoamenos oe Paocnamacion, Niet 1 programa Rational ROSE®, an ee | cenjunto de archivos Tene la venta | | dequelos almacenademanea © compra y hace que oupen menos | evade, | i 83. Organizacién de los Elementos de Trabajo Sigamos con el paralelo que estabamos haciendo con el eaificio. Una vez terminados los planos debemos pasar a la etapa de construccién. Antes de empezar a abrir el hhueco para los cimientos y de comprar los materiales ue se necesitan, es necesario fijar todas las normas de organizacién. Lo primero es decidir dénde se va a po- ner cada elemento para la construccidn: dénde van los ladillos, dinde va el cemento, etc. Luego, cémo vamos a llamar las cosas. Si hay varios tipos de puertas, por ejemplo, nos debemos poner de acuerdo en la manera de etiquetarla. Esto timo es lo que se denomina una convencién, Tanto la organizacién como las convencio- nes no son universales y en cada edifcio que se va a construir pueden cambiar. Lo importante es que antes de iniciar la construccién toda el mundo est informado Y se comprometa a respetar dichas normas. Se le pasa al compilador pare que archivos. CCualquier programa de imagenes Cunard queenpoquta un | Muchas erat ene mercado periten manejar este tipo de archivos Si ene alguna de cllasinstalada en su computador, un doble clic desde el explrador | | | de archivos inci a apicacion | ee ee ee | sera postrormenteelectad por | ambiente de desarallo. | elcomputador | Eclipse vaa permite | i | etareste tipo de archiva, | | | dindonosayudas para | j | detectar eres de sits. | imdl_ | Esunarchivo con los diagramas de Se requete tener insalado en el —_-Se.crea, modifica e imprime | dasesyde rater cepa, | conputerlnaptacin aol. | ded a apleactin aoa | Estin escrito en el formato de Rational | ROSE. Para abrio asta con Rose, Rose. | acer able cicen el ela | Es unarchivo con una imagen Lousamas | Se creancon cualquier para mostrar los distintos diagramas: | (incluso los navegadores de | editor de imagenes. } ¢elprograna ts pemtevunlzal | Inte puden er estos | seo azcuelos quero cuenen con el | archives. i } | Se onsruyen utzon ls | ‘mismas herramientas que permiten exter de alls. | archives queconenen Para la construccin de un programa se sigue la mis- ma idea: se define una organizacin (siempre debernos saber dénde buscar un elemento de la solucin) y un conjunto de convenciones (por ejemplo, el archivo en el que estan los requerimientos funcionales siempre se va a llamar de la misma manera). Nuestros elementos estan siempre en archivos, y nuestra estructura de orga- nizacién de basa en el sistema de directorios. 83.1. Proyectos y Directorios seguido del nombre del caso de estudio (por ejem- plo, n1_empleado}.. Un proyecto de desarrollo va siempre en un direc- torio, cuyo nombre indica su contenido. En nuestro Dentro del directorio principal, se encuentran siete cirec- aso el nombre del directorio comienza por el nivel, » tors, con el contenido que se muestra en la figura 1.20. outdo toesiara ts Steeetertes donee ee preyerte Se ern aia © © ni_empleado : archivos 3 bn ejecutables cddigo compilado ————> @ asses ® © data <—___—_ ——> 8 Bdocs ® © source <—__ pruebas del B Btest programa archivos documentacién y de datos mpoieee archivos fuente CComencemos entonces a recorrer cada uno de estos di-- del caso de estudio del empleado. En la tarea 11 se dan Tectoros, utilizando para estoel proyecto de desarrollo los pasos para poder comenzar este recorrido. 1 opie de CO del bro al disco de su computador el proyecto de nivel 1 llamado n1_emp1eado. Descomprimala (est en formato zip) y recorra los cirectoris interno uizando el explorador de archivos. 2 | Veifique que en su computador se encuenteinstalado e complador de Java, Sino est instalado, vaya al ane A del iro ysigalasinstrucciones para instalaro. Algunos programas del libro estin escrts para versiones, de Java posterior aa versin 1.4 3. ‘erfique que en su computador se encuente instalado el ambiente de desarrollo Edipse. Sino est instal, vaya al anexoB del libro ysga las instrucciones pare instalela eo Jonat A. Vacs 5. / Rueee CSAs 6. AQ ur Funoauenros Prostatacion, Nive 1 83.2. El Directorio bin i directorio bin (por binary) contiene todos lo archivos ejecutables del proyecto (archivos .bat), que permiten, entre otras cosas, eecutar e! programa, ejecutar las pruebas y generar la documentacién del cédigo. En este directorio hay siempre siete archivos, que incluyen las instrucciones para hacer las tareas que se describen a continuacin ‘© bulla: permite compilar el programa (todos los Java) y generar el archive empaquetado (,jar) que seréinstalado en el computador del usuario, + buildTest.bat: permite compilar las pruebas del programa y generar el respectivo archivo empa- quetado (ar) + lean.bat: bora todos fos archivos del proyecto que pueden ser calulados a partir de otros. Esto es, 2 Toren 12 ‘Siga los pasos que se dan 2 continuacién. elimina de los directorios todos los archivos class, los archivos jar generados y los archivos .html que co- rresponden a la documentacin creeda por Javadoc. cleenTest bat: borra todos los archivos de las prue- bas que pueden ser calculados a partir de otros docbat: genera la documentacién del programa {erchivos him), utlizando la herramienta Javadoc runbat: ejecuta el programa, Este es el dnico ar chivo ejecutable que va al computador del usuario. Debe ser invocado después de haber ejecutado el archivo build, puesto que utiliza los archivos empa- quetados para la ejecucién, runTestbat: ejecuta las pruebas del programa. Debe ser utlizado después de haber ejecutado el archivo buildTest, puesto que utiliza los archivos ‘empaquetados para la ejecucin. _ Objetivo: Recorrer y utlizarlos archivos que se encuentran en e! directorio bin de un proyecto. 1. | Abra el explorador de archivos y sitiese en el directorio bin del proyecto que instalé en la tarea 11. 2.) Seleccione cualquiera de los archivos y utile la opcién de ecitar. Esto debe inciar el loc de notas y debe permite leer su contenido. Por ahora no es importante que entienda lo que all vers 3. Ejecue el archivo build.bat (con un doble clic por ejemplo). Esto debe abrir una ventana como la que aparece 2 continuacién, en la que el computador informa los resultados de la compilacién del programa E Li] Ha) 4, jecute el archivo run.bat sto debe ejecutar el programe que se construy para el caso del empleado. Utlice la interfa de usuario para datle los datos del empleado y usar las opciones de cdlaulo que propone. Pruebe que todo funcione correctamente 5, Ejecute el archivo buldTest.bat. Esto debe compilar las pruebas del programa. 6. Ejecue el archivo runTes.bat y vea cémo se ejecutan las pruebas del programa, usando la plataforma JUnit, Por ‘ahora no es importante entender lo que hacen las pruebas: imagine que son un programa que verifica que otro programa est bien escrito. 7. jecute el archivo doc.bat, para generar la documentacién del programa. Si quire ve ls instrucciones que o hacen, eit el archivo y mire cémo se ejecuta la herramienta Javadoc. 8.3.3. El Directorio source En este directorio encontrara los archivos fuente, en los que esta la implementacién en Java de cada una de las clases. Cada clase est en un archivo distinto, » fo \2|-Relacion entre fos paquetesy Ia Jerarquia de directories entro de un directorio que refeja la jerarquia de pa- quetes. Esta relacin entre paquetes y directoros es Ja que permite al compilador encontrar las clases en el espacio de trabajo. En la figura 1.21 se iusta esta relacién. canto aS 1. Abra el explorador de archivos y sitiese en el directorio source del proyecto que instal en la tarea 11. 2. Entre al directorio “uniandes". Dentro de éste entre al directorio “cupi2” y luego al directorio “empleaco". Al deben aparecer los dectovios“interfaz” y el contenido de un archivo java mundo". Entre en cualquiera de ellos yutlice el bloc de notas pare ver Es importante decir que si se mueve un archivo a otro directorio, o se cambia el paquete al que pertenece sin clesplazarfiscarenteel archivo al nuevo directorio el programa nose va‘ compiler cvrectamente 8.3.4. El Directorio classes En este directorio estan todos los archivos .class. Tie ne la misma jerarquia de directorios que se usa pata los archivos fuente. No es muy interesante su conte- nido, porque para poder ver estos archivos por den- tro se necesitan editores especiales. Si intenta abrir uno de estos archivos con editores de texto norma- les, va a obtener unos caracteres que aparentemente no tienen ningén sentido. Estos archives tienen por dentro el bytecode (cicigo bina tio) producto de compilar la cortespondiente case Java 8.3.5. El Directorio test En este directorio estin todos los archivos que hacen las pruebas automsticas del programa. Por ahora lo Liico importante es saber que en su interior hay varios, directorios, con archivos class, jar y java. En un nivel — 08 5. / Rutey Casauas 6. Jose A. Via uw N Funoawentos o& Prosnanacion, Niet 1 posterior entraremos a mirar este directorio. Por ahora, con saber ejecutar las pruebas con el respectvo archivo bat es suficiente 83.6. El Directorio docs En este directorio hay dos subdirectorios: * specs: contiene todos los documentos de dise- fio, Alli encontraré: (1) el archivo Descripcién. doc, con el enunciado del caso de estudio, (2) el archivo RequerimientosFuncionales.doc con la especificacién de los requerimientos funcionales, G) el archivo Modelo.mdl con los diagramas de clases del disefio y (4) un conjunto de archivos = de ta visualizacion de vsualtencion de w un archive de docin Greta cue wo vac, con litres meal oe pap el anc jpg con las imagenes de los dstintos diagramas de clases. api: contiene los archivos de la documentacién de las clases del programa, Estos archivos son generados automaticamente por la aplicacién Javadoc. En la raiz de este directorio encontrar un archivo llamado index.html". Al abrirlo po- r& comenzar a navegar por toda la dacumen- tacién del programa. Si no puede encontrar este archivo, ejecute el archivo doc.bat del directorio bin, que es el encargado de generar esta docu- mentacién. La figura 1.22 muestra un ejemplo de cémo se visualiza un archivo de documenta- cién de una clase, ‘wid aceon sxnrsalasPortasaen() 8.3.7. El Directorio lib En este directorio encontraré el archivo empaguetado para insalar en el computador del usuario. En el caso de estudio del empleado dicho archivo se llama emplea- dojar. Este archivo tiene la misma estructura interna de un archivo zip, asi que si desea ver su contenido pue- de utilizar cualquiera de los programas que permiten mane esos archivos. En su interior deberd encontrar todas los archivos class del proyecto, 83.8. El Directorio data Este directorio contiene archivos con informacién que utiliza el programa, ya sea para almacenar datos (si tu- vigramos una base de datos estaria en ese directorio) » © para leetlos (por ejemplo, en el caso de estudio del empleads, ali se guarda la foto en un archivo con for- mato jpeg). 8.4, Eclipse: Un Ambiente de Desarrollo Un ambiente (0 entomno) de desarrollo es una aplicacién que facilta la construccién de programas. Principalmen: ‘te, debe ayudamos a escribir el cédigo, a compilarlo y a ejecutarlo. Eclipse es un ambiente de miitiples usos, uno de los cuales es ayudar al desarrollo de programas escritos en Java. Es una herramienta de uso gratuito, muy flexible y adaptable a las necesidades y gustos de los programadores. {{Cémo abrir en Ecipse el programa n1_empleado? | Puede hacerlo de dos formas: nombre del proyecto (n1_empleado). propiedades de! proyecto. Opcién 2: importando el proyecto dela estructura de drectorios: ' Descomprima el archivo zip que contene el proyecto (por ejemplo en C:temp) « Elja la opcién de importacién (mend Fil/Import...). En el dilago en el que le preguntan la fuente de la importacén seleccione “Existing Project into Workspace” | Opcién 1: Creando el proyecto drectamente en la estructura de diretoros: ‘ Descomprima el archivo zip que catiene el proyecto (por ejemplo en C:/temp). + Cree un proyecto lava en Eclipse (mend Fle/New/Project, con a ruta del directorio (C/tempint_ernpleado) y el * Puede aceptar la creacién ahora (botén “ Finish"), 0 navegar ala siguiente ventana (“Next”) para ver las | ‘= Seleccione la carpeta del proyecto (C:/tempin1_empleado) y fialice. uw w Josce A. Vizatones 5. J Rusey Casnuas 6, 2.' Como explorar en Eclipse el contenido de un proyecto abierto? |» Utlice la vista lamada navegador. Sila vista no est disponible, basquela en el mend Window/Show View! Navigator, | ‘Revise la estructura de directorios del proyecto n_empleado y recuerde el contenido de cada uno de ellos ||» (puede ocuric que algunos directories no contengan archivos en el proyecto que est explarando). wn 4 Fuoauenros Paoctamacion. Nv 1 {{Cémo explora en Eclipse un proyecto Java que estéabierto? * Utlice la vista lamade * Package Explorer’. Sila vista anterorno est disponible, bisquela en el meni Window/ ‘Show View/Package Explorer. + Revise las propiedades del proyecto. Puede eta las propiedades haciendo clic derecho sabe el proyecto © mediante el mend Project/Properis. * Seleccione de la ventana de propiedades (de as opciones que aparecen ala iaquerda) las opciones de construccion de Java ("Java Bulld Path) revise la configuracion del proyecto * Observe la estructura de paquetes del proyecto, {Cémo editar una dase Java? * Utiizando la vista lamada * Package Explore localce el directorio con los archivos fuente del proyecto, * Dando doble dlc sobre cualquiera de ls archivos que all se encuentran (Zmpleado.. java, por ejemplo) el editor lo abrey permite al programador que lo modtfique i ‘ Agregue un comentario en algin punto de la dase Empleaco, teniendo cuidado de no afetarel contenido del archivo, y sAlvelo de nuevo con la opcién del mend File/Save, * Ciere el archivo después de haber salvado. {{Cémo ejecutar el programa en un proyecto abierto en Ecipse? * Utiizando la vista lamada “Package Explore” localice el directorio con los archivos fuente del proyecto. * Localice la clase IntexfazEmpleado en el paquete que contene las cases dela interfaz. Cada programa en Java tiene una clase por la cual comienza la ejecucion. Siempre se debe localiza esta dase para poder inciar el | programa * Blja el comando * Run/Jeva Application”. Puede hacerlo desce la barra de herramientas el mend principal oe! ment emergente que aparece a hacer clic derecho sobre la clase * Con este comando el programa comienza su ejecucién. El programa y Eclipse siquenfuncionando simultineament. Para terminar el programa, basta con cerar su ventana, * Locale la vista llamada consoia. il vista no ests disponible, bisquela en el mend Window/Show View/Console. ‘Al pueden aparecer algunos mensajes de error deejecucin. En esa vista hay un bot6n rojo pequeo, que permite ‘erminar la ejecucién del programa, Sa Complete las siguientes defniiones como una manera de resumir los conceptos aprenidos en el rive } Asegtrese de entender bien el significado de cada uno de estos términos, puesto que son la base para ‘poder continuar con los niveles que siquen en el libro. Aes ‘Ambiente de desarrollo; Expres: Implementacin: Tipo de datos: Requeriiento funcional, uv u Jonse A. Viuaceues $, J Roney Casauas G. uw a Foams of Prosanacon, Ne 1 10. Hojas de Trabajo wu Jct A. Vuuonos S.J Roar Casts GS Funoauenes Prostate 1 AL Cees | RangoEncuesta [ocr icenee fener erent | Nombre | darNunerocasados | | Pardmetros | Ninguno. 1 “ Retomo | Elnimero de personas casadas que | _esfonderen ences, ene argo de | | edad dela clase. | | | Descipcién Retoma el mero de personas casadas | | | que respondieron la encuesta, en elrango | | tL _ de edad dea dase | T Mass darTotalopinionCasados Ninguno. La suma de todas las opiniones de los ‘encuestados casados en el rango de edad | dela case Retora la suma de todas las opiniones Clase | RangoEncuesta | edad dela dase. | “ etoma el promeri de la encvesta en Descipcién | el ango de edad dela clase. Para esto suma todas las opiniones y divide por el | "El promedio dela encuestaen el rango de | al de encuestados. | | nero | Clase Rangosncuesta ] ‘ - | “Nombre agregaropinionCasado | { =e | Parémetios Opinin de encuestado. | | Retormo —_Ninguno. | Descripcién fade la opinin de una persona casadia en el rango de edad que representa la clase. uw oo Jonce A. Vaiatosos S. 1 Runsy Casaus G. a °o Fonoaveros o¢ Prachamacion. Nivet 1 | darProneaiocasados | | Ninguno. | "El promedi de is encuestaenelrango de edad dela clase considerend slo os | | cscs : | Descpcén | Retr epromedio dela encesta en | | elrango de edad de a clase. Para esto | suma todas las opiniones de los casados y | divide por el nimero total de ellos fetomo | Ninguno. = | Descripcién | Afiade la opinién de una persona | | ssadaenel argo de edad 1 dela | | encuesta [Case [Encuesta | Pardmetros (0 estado ci) opin, | Retomo | Ninguno, } . | esicén | Atade la opinion de una petsona | | | soltera en el rango de edad 2 de la j lence | Retomo El promedio de la encuesta en todos los | rangos de edad, Descripcién Retoma el promedio dela encuesta en | todos los rangos de edad. Para esto suma | todas las opiniones y divide por el nimero | total de encuestados. | dos | | etme Elpromedio dela encuestaen todos los "rang de edad dela ase, consierando Descrgcién Retoma el promedio de a encuesa en | todos los rangos de edad. Para esto suma [sta Jas opiniones de os casas y i | kid po el nero total de ellos. tl 1 ~ Guardar una moneda de §20 en a akcanca, once A. Viuatonos S, J Russ Casauas Ge a N Funoawentos ne Prosrawacion, Nivet 1 3 — Calcular el total de dinero ahorrado en la alcancia. R4— Romper la alcancia, ‘AgregarWonedas00 case ‘Alcancia ‘Nombre GarTotalDinero Parietos ———— Reto Descrpcén = i a u lovee A.VauaonsS. Rone Cass 6.

You might also like