UML Domine el lenguaje de modelado más utilizado en la actualidad
8. MODELADOAVANZADO INGENIERIA INVERSA En todos los procesos de desarrollo, la etapa de codificación es siempre una de las últimas o, al menos, inicia las actividades finales del proceso. Esto se debe a que la codificación en sí es una de las actividades de menor nivel de abstracción, por lo que se realiza cuando se tiene un nivel de conocimiento importante y pro fundo sobre el sistema. En cambio, las etapas de análisis y diseño se realizan den tro de las etapas iniciales para ayudarnos a comprender todas las características del sistema y observar cómo éstas se combinan y potencian. Su objetivo es la construcción de modelos de alto nivel que reflejen y transmitan el comporta miento y la estructura del sistema. Estos modelos son la entrada natural para la parte de codificación que, básicamente, los traducirá a algún lenguaje de pro gramación particular que se elija para concretar el desarrollo. Este suele ser el camino tradicional y natural de desarrollo, desde los modelos al código, y forma una parte trascendental dentro de la Ingeniería de Software. Sin embargo, en situaciones particulares nos conviene transitar por el camino inverso. Esto es, partir de un código fuente y llegar a obtener modelos que reflejen esa codi ficación particular. Un ejemplo claro de estas situaciones es cuando nos encargan el mantenimiento de un sistema que no hemos desarrollado o sobre el cual no tene mos una documentación apropiada. Sabemos lo complejo de procesar código, espe cialmente si no hemos participado en su creación. En estas situaciones particulares, daríamos lo que fuera por conseguir los modelos del sistema. Con ellos, podríamos entender cómo se relacionan ios distintos com ponentes, cómo se procesan y fluyen la información y los datos. Así, introducir cambios y modificaciones se volvería una tarea menos compleja. Existen técnicas y herramientas capaces de llevar a cabo esta tarea. Toman como entrada un código fuente y obtienen como salida los modelos que los representan. Estas técnicas y herramientas se conocen como Ingeniería Inversa, ya que realizan el camino opuesto a la Ingeniería de Software tradicional. En lo que queda del capítulo intro duciremos las nociones básicas de esta interesante y poderosa cualidad de Ingeniería y ejemplificaremos su uso dentro de la herramienta de desarrollo Visual Paradigm, marcando sus puntos fuertes y sus limitaciones más sobresalientes. REINGENIERIA En este libro nos concentramos en un subconjunto estricto de la ingeniería Inversa, que se refie re a la generación de modelos UML a partir de código fuente. Sin embargo, la Ingeniería Inversa conlleva muchas más variantes y versiones dentro de las Ciencias de la Computación. Tanto la entrada como la salida del proceso de Reíngeniería pueden variar según el contexto. 242
RkJQdWJsaXNoZXIy MjI4NDcx