Aplicar un marco analítico

Organizar y reutilizar valiosas técnicas, herramientas y ejemplos

Benjamin Lieberman
Publicado el 17 de abril de 2007

En algún lugar, en algún momento, alguien se ha enfrentado a un problema similar al suyo y ha descubierto cómo resolverlo. ¿Qué pasaría si pudieras capturar la información que tanto le costó obtener a esa persona y poner la solución en una forma reutilizable? Esto es exactamente lo que los patrones de diseño y análisis han estado proporcionando a los ingenieros de software durante la última década. Sin embargo, estos patrones generalmente discuten una solución específica; no proporcionan mucha orientación para aprender a identificar el patrón correcto y aplicar ese patrón en primer lugar.

Afortunadamente, puede recurrir a los marcos analíticos, que combinan soluciones reutilizables con patrones de análisis, investigación, técnicas de organización útiles y ejemplos específicos de enfoques exitosos. Un marco analítico es un poco como su propia biblioteca personal, adaptada específicamente a su propia experiencia y antecedentes.

Los patrones de análisis se han utilizado en el desarrollo de software durante muchos años para proporcionar soluciones para el acceso a los datos, la supervisión y la gestión de las transacciones, la seguridad, la mensajería, las interfaces de usuario y otras necesidades de la aplicación. No están pensados para ser implementados en el código, sino para permitir a los analistas entender dominios de problemas complejos.

Los marcos analíticos incorporan dichos patrones y también proporcionan una lista de habilidades, herramientas y técnicas que son necesarias para investigar un área particular, como el análisis de negocios o la arquitectura de sistemas. Esto puede ser una gran ayuda para las empresas que buscan habilidades específicas para satisfacer una necesidad actual. Si un candidato puede demostrar la experiencia y las habilidades enumeradas, es probable que tenga éxito con la tarea.

Comprender la estructura del marco analítico

Considere por un momento cómo alguien entrenado en el trabajo de la madera va a crear muebles. Un trabajador que se limita a unas pocas herramientas sencillas y a sus propios conocimientos personales puede tener dificultades y perder tiempo en la creación de nuevas piezas. En cambio, si la misma persona dispone de un taller completo, herramientas potentes y una completa biblioteca de planos y piezas de ejemplo, le resultará mucho más fácil crear muebles complejos e interesantes. Del mismo modo, el rendimiento de un analista puede mejorar si tiene acceso a un conjunto de patrones de análisis probados, potentes herramientas y técnicas analíticas y múltiples ejemplos de enfoques de modelado eficaces para la captura y presentación de información compleja.

Un marco analítico está compuesto por cinco componentes principales: un surtido de herramientas, un conjunto de patrones de solución útiles, uno o más formularios de modelos, múltiples técnicas y habilidades de investigación y métodos para agrupar información compleja. La tabla 1 muestra los elementos necesarios para un marco de análisis empresarial.

Tabla 1. Marco de análisis empresarial
Elemento Descripción
Herramientas Procesamiento de palabras, software de modelado, control de versiones de documentos
Patrones Patrones específicos de la industria, patrones de sistemas empresariales, estructuras de organización empresarial
Formas de modelado Organigrama, caso de negocio del Lenguaje Unificado de Modelado (UML), actividad UML, Marco de Zachman
Técnicas Observación, entrevista, estudio de documentos
Habilidades Toma de notas, escucha activa, facilitación de reuniones, liderazgo de equipos, pensamiento crítico, razonamiento por analogía
Categorización Marco de procesos de negocio, jerarquía de departamentos, casos de uso del negocio, gráfico de dependencia funcional del negocio

En este marco de análisis del negocio, las herramientas eficaces para el descubrimiento y la captura de los procesos de negocio incluyen el software de modelado (en particular, el modelado UML, si los requisitos de negocio se capturan como casos de uso), ayudas de procesamiento de textos, y alguna forma de control de versiones para los modelos y documentos. Las herramientas pueden adaptarse a necesidades específicas o pueden ser herramientas más generales, como una simple ayuda de dibujo visual.

Los patrones de análisis recurrentes pueden ser eficaces cuando se aplican a un dominio de análisis particular. En el marco del análisis empresarial, estos patrones incluyen patrones de sistemas empresariales (como la entrada de pedidos, el control de inventarios y la resolución de operaciones), patrones específicos de la industria (como el enrutamiento de la telefonía, el envío y la programación de paquetes y los controles de fabricación de medicamentos) y estructuras empresariales (como las matrices, las jerarquías y las organizaciones distribuidas). Los patrones son temas que se repiten en determinadas áreas de negocio. Para obtener más información sobre las formas de capturar los temas empresariales recurrentes, consulte «Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML». (Consulte la sección Temas relacionados para obtener más información.)

Puede utilizar una selección de formas de modelos para capturar información compleja. Para el análisis analítico complejo, existen varias formas de modelo útiles, como el Lenguaje de Modelado Unificado (UML) para los sistemas de software intensivo, el Lenguaje de Modelado de Sistemas (SysML) para la ingeniería de sistemas, y el Marco de Zachman para las preocupaciones transversales de la organización. En el ejemplo de marco de análisis empresarial que se muestra en la Tabla 1, las formas de modelo útiles para estudiar los procesos empresariales incluyen UML (para el modelado de procesos y casos de uso), organigramas jerárquicos y una forma potencialmente modificada del modelo de Zachman.

Las técnicas y habilidades son un aspecto crucial de cualquier enfoque de análisis. Es importante poder proporcionar una evaluación de las habilidades actualmente disponibles de un individuo o equipo. Por ejemplo, la técnica de la entrevista requiere las habilidades de tomar notas y escuchar activamente. Dirigir un taller de grupo requiere habilidades de facilitación y liderazgo de equipo. El análisis de sistemas se basa en la capacidad de pensar de forma crítica sobre el problema (reconociendo cómo el problema puede dividirse en ámbitos más pequeños y sencillos) y aplicar soluciones similares encontradas en otras áreas.

El objetivo del análisis es presentar las conclusiones a un público. El mejor analista del mundo no tendrá éxito si no puede organizar la información de forma significativa y presentable. Las herramientas automatizadas sólo aportan una parte de la solución a este problema; la organización general de la información determina cómo utilizará los datos el público al que van dirigidos. En el marco de análisis del negocio, estos principios de categorización están representados por los procesos de negocio (donde el negocio se divide en subdominios), los gráficos de dependencia entre los casos de uso del negocio y la estructura de organización general (típicamente, jerárquica).

Aplicación de un marco analítico

Ahora que sabe lo que comprende un marco analítico, necesita aprender a usar uno. Hay al menos tres situaciones en las que un marco analítico puede ser útil. La primera es cuando una persona debe cambiar de función. Por ejemplo, un analista de negocio puede pasar a desempeñar un papel de analista de sistemas o de analista de pruebas. Cada función tiene diferentes responsabilidades y produce un conjunto de documentación y productos de trabajo completamente diferentes. Si la persona puede recurrir a un marco analítico preexistente (con ejemplos apropiados), será mucho más fácil la preparación y la transición a la nueva función. El individuo debe aprender qué herramientas, técnicas, patrones, modelos y enfoques organizativos funcionan mejor en cada situación. El acceso a un patrón analítico para cada una de estas áreas puede reducir en gran medida el tiempo dedicado a la búsqueda de soluciones.

La segunda área en la que los marcos analíticos pueden resultar útiles es en la evaluación de las habilidades y la preparación de un grupo de externalización. La mayoría de las organizaciones que recurren a la subcontratación en el extranjero se basan en la experiencia pasada de los equipos para evaluar su capacidad de entregar los artefactos acordados. Si el equipo de subcontratación se rige por una norma concreta, definida por un patrón analítico específico que ha demostrado ser eficaz, hay una mayor confianza en que el equipo tendrá la colección correcta de materiales y habilidades. Lo mismo puede decirse de los equipos internos, aunque normalmente estos equipos ya han probado un enfoque particular, que proporciona la fuente para el marco analítico.

La tercera área en la que los marcos analíticos resultan útiles es en la formación. Si se estudia el marco presentado en la Tabla 1, debería ser evidente que éstos pueden constituir la base de un plan de formación para la mejora del equipo. Puede realizar una evaluación para determinar si la colección adecuada de elementos, herramientas, patrones y habilidades del marco ya están disponibles entre los miembros del equipo o deben añadirse mediante la compra de una herramienta o la formación del personal.

Creación y adaptación de marcos

Un marco analítico sólo es útil si las herramientas son familiares para el modelador. Recordando al talentoso carpintero, las mejores herramientas son inútiles sin la aplicación creativa de un artesano capacitado y talentoso. Del mismo modo, la construcción de modelos estéticamente agradables requiere adaptar uno o varios marcos analíticos a un dominio de problemas. Hay que saber seleccionar el marco más relevante, familiarizarse con los elementos del marco y adaptar los elementos del marco al problema en cuestión.

Muchos problemas tienen aspectos recurrentes, por lo que a menudo se puede adaptar un marco estrechamente relacionado. Por ejemplo, casi todos los sistemas informáticos heredados necesitan algún tipo de investigación de diseño, aunque sólo sea para formar a los nuevos desarrolladores en el mantenimiento y la ampliación del sistema. Por lo tanto, un marco de diseño de sistemas sería más aplicable que un marco de procesos de negocio.

La creación de un nuevo marco puede ser tan simple como clonar un marco existente y añadir nuevos patrones y ejemplos. Por otro lado, los marcos más complejos, como el que puede desarrollarse para el análisis y la gestión de proyectos de sistemas embebidos, pueden tener poco en común con otros marcos existentes, por lo que puede ser necesario crearlos desde cero. Hay que empezar por considerar las herramientas y técnicas que se pueden aplicar al ámbito. Por ejemplo, es posible que tenga que modificar las técnicas existentes, como las entrevistas o la facilitación de grupos, para apoyar el nuevo dominio. Es posible que pueda proporcionar otras herramientas al modelador para tareas específicas, como la ingeniería de software asistida por ordenador (CASE) para organizar el contenido de una federación de sitios web. A medida que avance el tiempo, podrá ampliar el marco para incluir múltiples ejemplos. Finalmente, al concluir el proyecto, puede capturar formalmente las técnicas y los patrones que resultaron más útiles como patrones de análisis para utilizarlos en el siguiente problema aplicable.

Es posible que tenga que adaptar un marco analítico antes de que sea utilizable en un contexto particular. La adaptación de un marco implica la inclusión de nuevos patrones o esquemas organizativos para que se ajusten mejor a las necesidades del tema. De este modo, se pueden ampliar y desarrollar estos marcos para dominios de problemas novedosos. A medida que se disponga de nuevas herramientas y técnicas, y se descubran y codifiquen nuevos patrones de análisis, podrá añadirlos a su conjunto de herramientas y organizarlos en un marco modificado. Si el nivel de modificación es significativo, puede indicar que debe construir un marco de trabajo completamente nuevo.

Poniendo en práctica el marco de trabajo analítico

Imagínese que usted es un desarrollador senior que acaba de ser asignado a un nuevo puesto de arquitecto para un sistema heredado. Usted no estuvo involucrado en el trabajo de desarrollo original, pero debe aprender rápidamente el sistema y poner al día a una plantilla de nuevos miembros del equipo, lo que requiere que usted se ponga al día primero. Afortunadamente, tiene algunas cosas a su favor. En primer lugar, tienes un buen conjunto de arquitectura de ejemplo de otros sistemas similares en la empresa. En segundo lugar, tiene acceso al patrón analítico para la arquitectura de software (ver Tabla 2).

Tabla 2. Marco analítico de la arquitectura de software
Elemento Descripción
Herramientas Perfilador de código, herramienta de informe de base de datos, plantilla de documento de arquitectura de software, software de modelado, análisis de código
Patrones Patrones de despliegue de software, patrones de arquitectura, patrones de diseño de sistemas, patrones de almacenamiento de datos
Modelos Modelos dinámicos (como secuencia UML, diagramas de algoritmos, estado UML y actividad UML), diagramas entidad-relación de bases de datos, modelos estructurales (como el mapa de llamadas a clases y funciones UML), diagramas de flujo de datos, modelos de sistemas empresariales
Técnicas Pensamiento abstracto, organización y categorización, análisis crítico, toma de notas
Habilidades Estructura del código, análisis de flujos, perfilado de hardware, comportamiento del sistema
Categorización Comportamiento funcional, dependencia del subsistema, dependencia del componente, empaquetado del despliegue

Usando el marco de la arquitectura del software, su primer paso es reunir todas las herramientas recomendadas. La herramienta de modelado proporciona la capacidad de visualizar el código existente en un modelo UML, lo que le permite investigar la estructura existente del código. El perfilador de tiempo de ejecución es valioso para registrar las pilas de llamadas mientras se ejecuta la funcionalidad de la aplicación.

A continuación, puede investigar los patrones arquitectónicos comunes presentes en la aplicación. Puedes identificar estos patrones, si están presentes, utilizando las descripciones de patrones comunes anotadas en el framework, especialmente los patrones de análisis y diseño. Se publican muchos de estos patrones; conocer los más comunes a menudo será suficiente para un esfuerzo de análisis arquitectónico.

La familiaridad con una variedad de formas de modelos, como los diagramas entidad-relación (ERD), UML, y otros enfoques de modelado orientados al sistema, le proporcionará una amplia gama de opciones de modelado. La categorización de estos modelos por comportamiento funcional, lógica comparada con la estructura física y estados de comportamiento interno producirá un registro útil de la arquitectura general del sistema. Por último, es importante conocer sus propias limitaciones. La autoevaluación es una tarea difícil pero necesaria para garantizar y asegurarse de que el equipo dispone de todas las habilidades realmente necesarias. El uso del conjunto de habilidades esperadas que se enumeran en el marco analítico de la arquitectura de software proporciona un buen punto de partida para determinar los tipos de habilidades requeridas para una tarea de análisis arquitectónico. El marco analítico le proporciona una lista de verificación de la cantidad mínima de elementos que necesita para tener éxito. Pueden requerirse habilidades adicionales para arquitecturas especializadas, como las redes de transporte.

Resumen

Estudiar y comprender sistemas de software complejos puede ser una tarea desafiante. Para tener éxito, debe emplear una variedad de herramientas y técnicas para reunir, ordenar y presentar las descripciones del sistema. Al crear y adaptar marcos analíticos, puede prepararse con mucha antelación y recopilar herramientas y ejemplos útiles para utilizar en su situación actual. Ahora que sabe qué elementos componen un marco analítico exitoso, cómo reutilizar los marcos y cómo crear nuevos marcos, estará bien preparado para abordar muchas de las situaciones comunes que se encuentran en los problemas complejos de hoy.

Recursos descargables

  • PDF de este contenido
  • Para más información sobre los arquetipos empresariales, lea Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, de Jim Arlow e Ila Neustadt (Addison-Wesley Professional, 2003).
  • Consulte la serie de tres partes (PDF) de Ben Lieberman sobre El arte del modelado, que le enseña a construir un marco analítico, la organización y construcción de modelos y la composición visual (developerWorks, agosto de 2003).
  • Aprenda a modelar con formas estructurales, temas organizativos y pivotes de diagramas en el artículo de Ben Lieberman, «Build effective system models» (developerWorks, marzo de 2007).

Deja un comentario