UML Domine el lenguaje de modelado más utilizado en la actualidad
H e rram ientas avanzadas de m o d e lado Herramientas automáticas Existen diferentes y variadas técnicas que nos proveen asistencia automática para la generación de software. Cuando hablamos de herramientas automáticas nos referi mos a aquéllas donde la intervención del usuario sea casi mínima y que todo el pro ceso se reduzca a presionar un botón y esperar los resultados. Sin embargo, esta situa ción es muy difícil de llevar a cabo. Existe siempre un juego de balanza relativo a la automatización de procesos. Cuanto más simple sea la tarea, más sencilla será la auto matización. Cuando una tarea es compleja, muchas veces se la suele simplificar para lograr una automatización más efectiva. Podemos ver un ejemplo en la herramienta automática Java Path Finder, basada en el lenguaje de programación orientado a objetos Java. Esta herramienta es utilizada para la verificación formal de código Java nativo (bytecode). Puede detectar bloqueos y excepciones del sistema, entre otras funcionalidades. Sin embargo, no es capaz de trabajar con un programa Java con todas sus características, sino que éstas están limitadas para no hacer imposible la tarea de verificación. Entre las limitaciones, por ejemplo, no es posible utilizar algunas librerías estándar del lenguaje ni la mayoría de las funcionalidades para entrada/salida, como también limitaciones de memoria y espacio. Para pensar en otro ejemplo más familiar de asistencia automática, tomemos el fiincionamiento de un compilador. Su prime ra tarea consiste en verificar que la sintaxis del programa sea correcta y válida. La mayoría de los compiladores frena su ejecución al encontrar la primera falla, y mues tra un mensaje de error, por ejemplo, falta un (;) en la línea 123. Sin embargo, otros emplean una táctica más audaz. Intentan adivinar lo que el programador quiso escri bir y siguen adelante con la detección de errores y la validación. Si bien estas técnicas tienen mucho que mejorar y sus resultados no son siempre los deseados, es un inten to válido para mejorar el funcionamiento automático del compilador. TránsactKinService.iava _U SsrviceMansg«r.)<iví ¡í| Ssrvice.lava S "«JS*»'W'>*-B'Ooerties ¡ Q •MtdaS.l.tct | 12l todIsoS.l.tit ■1¿ lotflecotil.Bva . .._____________________________ » 5.816 0 inf» D#«Tjptioft A R«$0(rc9 9 £rrors (39 Items) O annotation type pdttarrLS only at ^va ScoirtDBanca levelor abova LoggtriQ.ai O dissp^tharrc»: unaUcUifindorg.a««ct!,laft9,3cwiPoini(checkmat aspect«.}*r Bin your OeslgnPaffern Exar^jies O 34va 6.0 compb«*ic» ievei is unsuDCHVtad enSases de O34vd6.0compkaoce>eveiK<jr6UD0orted 'llaMPtfa O }avd$.Qcomplidricalavei(Suh9j|X>orted DesignPatternEx^pt»s 0 lava6.0comcAancelevettsuTtfuDported C&coba O 6.13ccvripkance levet ISuriM’PO'tdd O Java6.0 ccrnptoncebvtteorfftjoported PoritLn O Java 6.0 compldnce level is ur>$jppoited RcHnUjr« 2 A 0 v O Jave6.Q eofTvianceleveiis ur»uoported PondMlTD ho*amur«dùAntìadc/hm Loceüs) flr>94 ijri^xiown UnknoMi ünknowTi ünkfKMn Ür*jiown LWjwín \JrtW3¥fí\ uriknovi?! O Java6.0 compkence levâtksurtsupoorted O Java6.0 cofTiplance levai6 un»jpported O Java6.0 cofTtpKanceleva!s unsupported O Java6.0 compftdDCalevet is üT^a.Ciported O Java6.0 complarce level 5 mA43ptvted O log camot be resolved G hogcannoCbe resolved O log cannot be re«o^ed O log cariDoCbe resolved O bg canrot be resolved PortUwTJP achus i^arsgirna hdamundoAnotdde Rapfeationiog.iava Rep^abcnlog,java ReplicaOgnLog.java ReplicatonL,og.]ava Rep4icabonLog.]ava Unknown unknowTi Unknatwn LMnowri Ur*/>o«vri fefsgtma/írcAiet/iava/cíevys.,. Itr«45 ^ef«girriA/sri;/rtet/)ava/dev/$,Une 52 fersglfPie/src/fieVjeva/dew/s... line54 Per$9ma/9i!/nety)ava/dev/s... line79 tersguna/sTc/neÜjava/dev/á... line94 F igu ra 2. La salida de un compilador muestra diversos errores sintácticos en Java dentro del entorno Eclipse. 229
RkJQdWJsaXNoZXIy MjI4NDcx