-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #52 from ucudal/feature/usecases
Feature/usecases
- Loading branch information
Showing
12 changed files
with
439 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
# 2 Técnicas y herramientas | ||
|
||
## 2.4 Modelos de comportamiento | ||
|
||
### 2.4.4 Diagramas BPMN | ||
|
||
BPMN significa *business process model and notation* —modelado y notación de | ||
procesos del negocio—. Es un estándar para el modelado de procesos del negocio | ||
que provee una notación gráfica similar a los [diagramas de actividades | ||
UML](/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md). | ||
|
||
Este documento está basado en BPMN 2.0.2[^1]. | ||
|
||
El objetivo de BPMN es dar soporte a la gestión de los procesos del negocio, | ||
pero también proveer una correspondencia entre los gráficos de la notación y las | ||
construcciones subyacentes de los lenguajes utilizados por herramientas de | ||
automatización de procesos como WS-BPEL[^2]. | ||
|
||
Los diagramas BPMN tienen típicamente los siguientes elementos gráficos: | ||
|
||
* **Objeto de flujo**: evento, actividad, pasarela —*gateways*—. | ||
|
||
* **Datos**: objeto de datos, entrada de datos, salida de datos, | ||
almacenamiento de datos. | ||
|
||
* **Objeto conector**: flujo de secuencia, flujo de mensajes, asociación, | ||
asociación de datos. | ||
|
||
* **Andarivel**: piscinas y carriles. | ||
|
||
Un evento es algo que sucede durante el curso de un proceso (ver página 235) o | ||
una coreografía (ver página 339). Estos eventos afectan el flujo del modelo y | ||
generalmente tienen una causa —desencadenante— o un impacto —resultado—. Los | ||
eventos se representan con círculos con centros en blanco para permitir agregar | ||
marcadores en el interior para diferenciar diferentes desencadenantes o | ||
resultados. Hay tres tipos de eventos, según cuándo afectan el flujo: inicio, | ||
intermedio y final. | ||
|
||
![Eventos de inicio, intermedio y final](/diagrams/BPMN_Diagram_Events.svg) | ||
|
||
*Figura 1: Eventos de inicio, intermedio y final.* | ||
|
||
Una actividad es un término genérico para el trabajo que realiza el negocio en | ||
un proceso. Una actividad puede ser atómica o no atómica —compuesta—. Los tipos | ||
de actividades que forman parte de un modelo de procesos son sub-procesos y | ||
tareas, que se representan con rectángulos redondeados. Las actividades se | ||
utilizan tanto en procesos estándar como en coreografías. | ||
|
||
![Tareas y sub-procesos](/diagrams/BMPN_Diagram_Activities.svg) | ||
|
||
*Figura 2: Tareas y sub-procesos* | ||
|
||
Una pasarela —*gateway*— se utiliza para controlar la divergencia y convergencia | ||
de los flujos de secuencia en un proceso y en una coreografía. Por lo tanto, | ||
determinará la ramificación —*branch*—, bifurcación —*fork*—, fusión —*merge*— y | ||
unión —*join*— de caminos. Los marcadores internos indicarán el tipo de | ||
comportamiento. | ||
|
||
![Algunas pasarelas](/diagrams/BPMN_Diagram_Gateways.svg) | ||
|
||
*Figura 3: Algunas pasarelas* | ||
|
||
Algunos tipos de pasarelas son: | ||
|
||
* Pasarela exclusiva —XOR—: Crea caminos alternativos en un flujo de proceso. En | ||
una pasarela usada como ramificación, una expresión está asociada a los flujos | ||
de secuencia de salida; el flujo de control pasará por aquél en que la | ||
expresión sea verdadera; las condiciones son excluyentes —no pueden ser todas | ||
verdaderas a la vez—; puede haber un flujo sin expresión, que se tomará si no | ||
se cumple ninguna de las otras expresiones. Cuando esta pasarela es usada como | ||
fusión, combina el flujo de control previamente separado en ramas por una | ||
pasarela exclusiva. | ||
|
||
* Pasarela inclusiva —OR—: Crea caminos alternativos o paralelos en un flujo de | ||
proceso. En una pasarela usada como ramificación, una expresión está asociada | ||
a los flujos de secuencia de salida; el flujo de control pasará en paralelo por | ||
todas los flujos de secuencia cuyas condiciones se cumplan; puede haber un | ||
flujo de secuencia sin expresión, que también se ejecuta en paralelo. Cuando | ||
esta pasarela es usada como fusión, combina el flujo previamente separado por | ||
una pasarela inclusiva. | ||
|
||
* Pasarela paralela: Crea caminos paralelos en un flujo de procesos. En una | ||
pasarela usada como bifurcación, todos los flujos de salida se ejecutan en | ||
paralelo. Cuando esta pasarela es usada como unión, combina el flujo | ||
previamente separado en ramas paralelas. | ||
|
||
* Pasarela compleja: Análoga a la inclusiva pero con un estado interno que | ||
indica si fue activado o si fue reiniciado. | ||
|
||
Los flujos de secuencia se utilizan para mostrar el orden en el que se realizan | ||
las actividades en un proceso o en una coreografía. | ||
|
||
![Algunos flujos de secuencia](/diagrams/BPMN_Diagram_Sequence_Flows.svg) | ||
|
||
*Figura 4: Algunos flujos de secuencia* | ||
|
||
Algunos tipos de flujos de secuencia son: | ||
|
||
* Flujo normal: Refiere a caminos de flujo de secuencia que no comienzan desde | ||
un evento intermedio adjunto al límite de una actividad. Estos flujos se | ||
representan con una flecha. | ||
|
||
* Flujos no controlados: Refiere al flujo que no se ve afectado por ninguna | ||
condición o que no pasa a través de una pasarela; por ejemplo, un flujo de | ||
secuencia que conecta dos actividades. También puede aplicarse a múltiples | ||
flujos de secuencia que convergen o divergen de una actividad. | ||
|
||
* Flujo condicional: Un flujo de secuencia puede tener una expresión de | ||
condición que se evalúa en tiempo de ejecución para determinar si se utilizará | ||
o no el flujo de secuencia. Cuando el flujo condicional sale de una actividad, | ||
tendrá un pequeño diamante al comienzo del conector; no tiene ningún símbolo | ||
adicional si sale de una pasarela. | ||
|
||
* Flujo predeterminado: Para puertas de enlace exclusivas basadas en datos o | ||
puertas de enlace inclusivas, un tipo de flujo es el flujo de condición | ||
predeterminado —sin expresión asociada—. Este flujo se utilizará solo si el | ||
resto del flujo condicional saliente no es verdadero en tiempo de ejecución. | ||
Estos flujos de secuencia tendrán una barra diagonal que se agregará al | ||
comienzo del conector. | ||
|
||
* Flujo de excepción: Este flujo ocurre fuera del flujo normal del proceso y se | ||
basa en un evento intermedio adjunto al límite de una actividad que ocurre | ||
durante la ejecución del proceso. | ||
|
||
* Flujo de mensaje: Se utiliza para mostrar el flujo de mensajes entre dos | ||
participantes que están preparados para enviarlos y recibirlos en una | ||
colaboración. | ||
|
||
|
||
[^1]: OMG. (2013). Business Process Model and Notation (BPMN). Disponible | ||
[aquí](https://www.omg.org/spec/BPMN/2.0.2/PDF). | ||
[^2]: OASIS. (2007). Web Services Business Process Execution Language Version | ||
2.0. Disponible | ||
[aquí](http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,114 @@ | ||
# 3 Plantillas | ||
|
||
## 3.2 Escenarios | ||
|
||
Esta es la plantilla para el escenario de un caso de uso del negocio o de un | ||
caso de uso del producto. Las entradas | ||
de la plantilla están marcadas <span style="color:#0969DA;font-weight: bold;">así</span> | ||
y el texto a completar en el color normal. Tomado de [^1]. | ||
|
||
Los escenarios muestran la funcionalidad de un caso de uso dividiéndolo en una | ||
serie de pasos fácilmente reconocibles, escritos en lenguaje natural para que | ||
sean accesibles para todos los interesados. | ||
|
||
<table> | ||
<tr> | ||
<td style="color:#0969DA"> | ||
<b>Nombre del caso de uso del {negocio|producto}</b> | ||
</td> | ||
<td valign="top"> | ||
Un nombre significativo para el caso de uso. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Desencadenante —<i>trigger</i>—</b> | ||
</td> | ||
<td> | ||
El mecanismo por el cual se inicia el caso de uso. Habitualmente | ||
consiste en datos o un evento que llega desde fuera del area de | ||
trabajo. También puede ser cada cierto tiempo o después de cierto | ||
tiempo de ocurrido otro evento. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Precondiciones</b> | ||
</td> | ||
<td> | ||
Estado en el que tiene que estar el | ||
<a href="/4_Conceptos/4_Trabajo_y_area_de_trabajo.md">trabajo</a> | ||
al inicio del caso de uso. Habitualmente implica que otros casos de | ||
uso debieron ocurrir antes para que este caso de uso tenga sentido. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Partes interesadas</b> | ||
</td> | ||
<td> | ||
Las personas que tienen interés en el resultado del caso de uso —que | ||
serán afectadas por la forma en que se haga el trabajo y por los | ||
datos que produzca—. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Actores</b> | ||
</td> | ||
<td> | ||
Las personas o sistemas que hacen el trabajo en el caso de uso. | ||
Habitualmente uno de los actores desencadena el caso de uso y los | ||
demás participan en él. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Pasos del caso normal</b> | ||
</td> | ||
<td> | ||
Una secuencia paso a paso, en lenguaje natural, sin sesgo | ||
tecnológico, de lo que ocurre en el caso de uso cuando transcurre | ||
sin inconvenientes. La secuencia de pasos se numera de 1 en | ||
adelante. | ||
</br> | ||
Para el caso normal, las alternativas y las excepciones es posible | ||
usar <a href="/2_Tecnicas_y_herramientas/2_4_1_Diagramas_de_actividades_UML.md"> | ||
diagramas de actividades</a> o un <a href="/2_Tecnicas_y_herramientas/2_4_4_Diagramas_BPMN.md"> | ||
diagram BPMN</a>. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Alternativas</b> | ||
</td> | ||
<td> | ||
Aparecen cuando el usuario tiene intencionalmente la posibilidad de | ||
elegir diferentes acciones en uno de los pasos del caso normal. | ||
Cada alternativa se numera de 1 en adelante, anteponiendo la letra | ||
<code>A</code> y el número del paso del caso normal donde aparece la | ||
alternativa. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA" valign="top"> | ||
<b>Excepciones</b> | ||
</td> | ||
<td> | ||
Desvíos indeseados pero inevitables del caso normal. Cada excepción | ||
se numera de 1 en adelante, anteponiendo la letra <code>E</code> y | ||
el número de paso del caso normal donde puede ocurrir la excepción. | ||
</td> | ||
</tr> | ||
<tr> | ||
<td td style="color:#0969DA"> | ||
<b>Resultado</b> | ||
</td> | ||
<td> | ||
La situación deseada cuando el caso de uso termina de forma exitosa. | ||
</td> | ||
</tr> | ||
</table> | ||
|
||
[^1]: Robertson, S. & Robertson, J. (2012). Mastering the Requirements Process: | ||
Getting Requirements Right, 3<sup>rd</sup> Edition. Addison-Wesley Professional. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Conceptos | ||
|
||
## Trabajo y área de trabajo | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
<mxfile host="65bd71144e"> | ||
<diagram id="9AlIKVe4MQfbpUhIRnks" name="Page-1"> | ||
<mxGraphModel dx="640" dy="540" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> | ||
<root> | ||
<mxCell id="0"/> | ||
<mxCell id="1" parent="0"/> | ||
<mxCell id="2" value="Tarea" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=abstract;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="40" y="40" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="4" value="Servicio" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=service;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="180" y="40" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="5" value="Envío" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=send;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="40" y="120" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="6" value="Recepción" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=receive;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="180" y="120" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="7" value="Usuario" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=user;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="40" y="200" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="8" value="Manual" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=manual;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="180" y="200" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="9" value="Regla del negocio" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=businessRule;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="40" y="280" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="10" value="Script" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=script;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="180" y="280" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="11" value="Tareas" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="150" y="360" width="60" height="30" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="12" value="Bucle" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=abstract;isLoopStandard=1;isLoopSub=1;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="480" y="40" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="13" value="Multi-instancia" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=abstract;isLoopSub=1;isLoopMultiParallel=1;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="340" y="120" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="14" value="Compensación" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=abstract;isLoopSub=1;isLoopComp=1;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="480" y="120" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="15" value="Sub-proceso" style="points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];shape=mxgraph.bpmn.task;whiteSpace=wrap;rectStyle=rounded;size=10;html=1;taskMarker=abstract;isLoopSub=1;fillColor=none;fontColor=#006EAF;strokeColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="340" y="40" width="120" height="60" as="geometry"/> | ||
</mxCell> | ||
<mxCell id="17" value="Sub-procesos" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=#006EAF;" parent="1" vertex="1"> | ||
<mxGeometry x="425" y="200" width="100" height="30" as="geometry"/> | ||
</mxCell> | ||
</root> | ||
</mxGraphModel> | ||
</diagram> | ||
</mxfile> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.