Patrones de Procesos

Anuncio
Patrones de Procesos
Conocimiento 01
Patrones
Muchos problemas recurrentes que se encuentran al modelar sistemas de negocio ya han sido resueltos.
Entonces, ¿por qué volver a resolverlos de nuevo? Los patrones permiten capturar y describir estos
problemas de modelado de negocio y sus correspondientes soluciones de modo que las soluciones se
puedan reutilizar. Las soluciones, en este contexto, no son código de programas. Comprenden una
realización que se usa para estructurar o modelar el negocio. Una solución no puede ser traducida
directamente a código.
Un patrón es una solución generalizada que puede ser implementada y aplicada en un problema (un
contexto), y así eliminar uno o más problemas inherentes con el fin de satisfacer uno o más objetivos. Los
patrones se pueden considerar prototipos para la producción. Una buena definición de patrón es la
siguiente:
“Cada patrón es una regla de 3 partes, la cual expresa una relación entre cierto contexto, un problema, y
una solución.

Como un elemento en el mundo, cada patrón es una relación entre un cierto contexto, un cierto
sistema de fuerzas, el cual ocurre repetidamente en ese contexto, y una cierta configuración
espacial, la cual permite que ellos se resuelven a sí mismos.

Como un elemento de lenguaje, un patrón es una instrucción, que muestra cómo se puede usar esta
configuración espacial, una y otra vez, para resolver el sistema de fuerzas dado en cualquier parte
donde el contexto lo haga relevante.

El patrón es, en resumen, al mismo tiempo una cosa, que pasa en el mundo, y la regla que nos dice
cómo crear aquella cosa, y cuándo debemos crearlo. Es un proceso y una cosa; una descripción de
una cosa que está viva, y una descripción del proceso que generará aquella cosa."
Los patrones son soluciones generalizadas establecidas que solucionan los problemas que son comunes a
situaciones diferentes de negocio. Ellos pueden ser reutilizados repetidamente y pueden ser combinados y
adaptados de muchos modos diferentes. Es importante comprender que los patrones no son "inventados";
se encuentran en modelos existentes que describen sistemas de negocio de la vida real. En otras palabras,
el modelo es realmente el resultado de un modelador experimentado quien ha identificado soluciones
generales para problemas comunes.
Ellos también sirven como el medio para mejorar el vocabulario de negocio; los modeladores que
entienden el patrón subyacente pueden usar el nombre del patrón para describir y comunicar estructuras
complejas de negocio y relaciones.
Los patrones se encuentran en todas las fases de desarrollo, desde el modelado de negocio hasta la
codificación real y las etapas de pruebas. Los patrones encontrados en modelos de negocio se conocen
como un patrón de negocio; los patrones encontrados en diseño de sistemas como patrones
arquitectónicos (patrones de sistemas de alto nivel); patrones más cercanos al nivel de programación se
denominan patrones de diseño.
Hay que tener presente, sin embargo, que los patrones no solucionan cada problema. Para beneficiarse de
los patrones, el contexto en el cual el patrón es requerido para ser usado debe ser entendido totalmente.
La solución a un problema presentado en el patrón se aplica dentro del contexto descrito en el patrón.
Cuando es aplicado incorrectamente, el patrón puede causar problemas, como modelos mal estructurados.
Hay también un riesgo evidente de sobrecarga para el patrón; es decir, el uso rutinario de patrones sin
considerar los problemas al alcance de la mano o solamente por usar patrones. Nuevamente, los patrones
no son soluciones a todos los problemas; un patrón debería ser usado sólo para el tipo de problema que
puede enfrentar.
Conocimiento 02
Patrón de Negocio
Los patrones de negocio tratan con problemas dentro del dominio del negocio, típicamente situaciones de
análisis tales como cómo modelar y estructurar los recursos del negocio que incluyen facturas,
organización, información, etcétera. Los patrones negocio también se orientan a cómo organizar y
relacionar procesos de negocio, reglas de gestión, visiones corporativas, y objetivos.
La primera etapa en todos los tipos de resolución de problemas es comprender el área involucrada. Esto
se puede lograr usando un método de análisis, tal como inducción y deducción en la teoría de ciencias, el
método de resolución de problemas de Polya en matemáticas, el Proceso Unificado (Rational Unified
Process) en ingeniería de software, o las metáforas de Gareth Morgan en teoría de la organización. Los
patrones de negocio se pueden usar como herramientas para ayudar, primero, a comprender una situación
problema en un contexto de modelado de negocio y, segundo, cómo tratar con el problema en esta
situación.
El entendimiento de una situación de problema no depende únicamente del método de análisis usado;
también depende del conocimiento y la experiencia del modelador, los modelos y frameworks existentes, el
proceso perceptual - como se perciben y entienden cosas en el mundo alrededor de uno - y los patrones
aprendidos. Los patrones son un complemento al método de análisis y son útiles en el análisis de
situaciones de negocio - la etapa de modelado del negocio. El análisis se puede enfocar en la comprensión
de una situación de negocio existente a través del modelado; puede ser un intento de modelar un nuevo
negocio o una mejora de negocio con el fin de implementarlo.
Como se mencionó anteriormente, es importante destacar que los patrones de negocio no son
transferibles directamente a código. Se usan para crear modelos de negocio comprensibles y flexibles, que
describan la estructura y conducta de un negocio; más tarde, estos modelos se pueden usar como la base
para crear sistemas de información que apoyen el negocio, así, en una etapa posterior se transformará en
código de programa (e indirectamente será la base para el código de programa). El diseño de los sistemas
de información puede entonces implementar patrones de arquitectura o patrones de diseño. Los patrones
de negocio también son útiles para remodelar un modelo de negocio existente. De la misma manera, los
modelos no estructurados de vez en cuando pueden ser remodelados y mejorados por el empleo de
patrones. De hecho, los patrones de negocio no son solamente un instrumento para producir o mejorar
modelos, ellos son también un modo excelente de enseñar buenas técnicas de modelado. Los patrones de
negocio a menudo se combinan unos con otros o se adaptan a la situación a mano. Sin embargo, es
importante mantener el objetivo principal del patrón en mente cuando se combinan o se adaptan. Cuando
se combinan de manera errónea o se emplean mal, pierden su utilidad en la solución de problemas.
Cambiar radicalmente un patrón puede diluir o eliminar la ventaja del patrón; de hecho, al hacerlo podría
cambiar el patrón a uno totalmente diferente, no probado, y no testeado.
También se pueden personalizar los patrones, especialmente si se trabaja mucho en un dominio de
negocio particular y uno se encuentra resolviendo el problema una y otra vez. Los patrones evolucionan
desde estructuras o interacciones que ocurren con frecuencia en aquel dominio, y un modelador
experimentado puede ver aquellas estructuras e interacciones.
Conocimiento 03
Patrones en UML
Ha habido un creciente interés en los patrones, y UML es el primer lenguaje de modelado que proporciona un
símbolo específico y visual que representa un patrón. Este símbolo UML es la llamada colaboración. Se usa para
representar tanto la estructura (típicamente un diagrama de clases) como la conducta (típicamente un
diagrama de secuencia o colaboración) en un patrón. El símbolo de colaboración es una elipse dibujada con una
línea de guiones y el nombre del patrón dentro de ella.
El símbolo de colaboración representa un patrón.
La elipse representa un patrón. Si un usuario quiere estudiar la estructura y conducta del patrón (es decir, ver
sus diagramas de clases y posiblemente también un diagrama de secuencia) debería expandir (hacer un
“zoom”) el patrón (a través de un comando en la herramienta de modelado). Cuando se expande el patrón, se
muestra el diagrama que describe el patrón genérico. Si el símbolo Definición de Términos se expandiera,
debería mostrar la estructura de ese patrón específico. En este caso, se debería mostrar el diagrama de clases,
donde las clases, en el patrón, se muestran con sus relaciones entre ellas. Si el patrón también tiene conducta,
también se debería mostrar un diagrama de secuencia al expandir el patrón.
Cuando se expande un patrón, se muestra la estructura del patrón, en este caso el patrón Definición de
Término se muestra como un diagrama de clases.
Un patrón (o colaboración en términos UML más genéricos) también puede parametrizarse, para lo cual, las
clases en el patrón son listadas en un rectángulo en la esquina superior derecha de la elipse. Al listar las clases
en el patrón, es posible mostrar como el patrón se usa en una implementación concreta, o uso del patrón. Un
patrón parametrizado se puede usar en otros diagramas. El símbolo del patrón se muestra con una lista de las
clases que son parte del patrón (las clases parámetros formales del patrón). Las líneas con guiones conducen a
las clases concretas usadas en esta implementación del patrón. Sobre cada línea con guiones está el nombre
del rol que tiene la clase concreta en el patrón. En la siguiente figura, el Nombre de la clase toma el rol de la
clase Término en el patrón. Cuando un patrón se expande, las clases concretas remplazan las clases parámetro
en el patrón.
El uso de un patrón en un caso específico, donde las clases concretas tienen líneas con guiones hacia el
símbolo de la colaboración, y el nombre del rol que ellas tienen en el patrón.
Cuando se expande el patrón, se muestran las clases concretas en sus roles en el patrón.
Debido a que UML tiene un símbolo específico para patrones, es fácil modelar y usar patrones con una
herramienta de modelado que soporte esto. Hay que recordar que no todas las herramientas UML soportan los
símbolos de patrones. Todos los patrones pueden representarse por colaboraciones UML y se pueden usar
fácilmente en los modelos de negocio.
Conocimiento 04
Ejemplos gráficos de Patrones de Procesos de Negocio

Secuencia

Separación Paralela

Sincronización

Decisión Excluyente

Combinación Simple

Decisión Múltiple

Combinación Múltiple

Discriminador

N out M join

Combinación Sincronizada

Ciclos Arbitrarios

Terminación Implícita

Múltiples Instancias con un Diseño de Conocimiento de Tiempo a priori

Múltiples Instancias con Conocimiento Runtime a priori

Múltiples Instancias sin Conocimiento a priori

Múltiples Instancias requiriendo Sincronización

Decisión Aplazada

Enrutamiento Intercalado

Hito

Actividad Cancelada

Caso Cancelado
Descargar