2.3 PERFIL PARA SISTEMAS EDOC
2.3.1 O Perfil para Processos de Negócio
A Tabela 2.3, mostra uma síntese com a definição dos principais conceitos de modelagem que fazem parte do perfil de UML para processos de negócio. Estes conceitos permitem a descrição dos processos de negócio em termos de:
i) uma composição de atividades,
ii) critérios para selecionar as entidades que executam essas atividades e iii) comunicação e coordenação entre elas.
Os conceitos apresentados na Tabela 2.3 correspondem aos elementos do metamodelo que implicitamente suportam o perfil de UML para processos de negócio. Para facilitar a refe- rência a outros documentos, a descrição de cada meta-entidade citada é acompanhada pela respectiva transcrição em Inglês, tal como aparece na fonte original.
Para facilitar a diferenciação com os conceitos que fazem parte dos metamodelos de workflow que foram introduzidos nas sessões 2.1 e 2.2, os conceitos extraídos do perfil EDOC serão escritos em negrito, sublinhados os que provêm do modelo da WfMC e em itálico sublinhados os que provêm do modelo da Nortel.
Tabela 2.3 Síntese dos conceitos do Perfil para Processo de Negócio.
ProcessoDeNegócio (BusinessProcess): Representa a especificação do processo de ne- gócio como um todo. O ProcessoDeNegócio é um ComponenteDeProcesso (Process- Component) .Um ComponenteDeProcesso define uma unidade de comportamento que é configurável e pode ser usada em outras Composições19 (CCA Composition). Através da ComponenteDeProcesso o ProcessoDeNegócio expõe portas (ports) que definem inter- faces, operações e eventos a serem usados nas Composições. O ProcessoDeNegócio é o ponto de entrada da modelagem de processo na Arquitetura de Colaboração de Compo- nentes20 (Component Collaboration Architecture-CCA). Um processo de negócio é de- finido por uma TarefaComposta (CompoundTask). Em outras palavras, um Processo- DeNegócio é visto externamente como um ComponenteDeProcesso e internamente como uma TarefaComposta.
TarefaComposta (CompoundTask): Uma TarefaComposta define a forma de coorde- nar um conjunto de Atividades relacionadas, que combinadas realizam uma atividade de maior escala, no contexto de um ProcessoDeNegócio. É também um recipiente das Ativi- dades, dos FluxosDeDados (DataFlows) entre essas Atividades e dos PapeisNoProcesso (ProcessRoles) que modelam os enlaces com os objetos que são utilizados por essas Atividades.
Atividade (Activity): Representa a execução de uma parte do ProcessoDeNegócio. A Atividade modela uma ação que pode ser descrita na forma de outra TarefaComposta ou diretamente realizada por objetos interligados a instâncias da meta-entidade PapelNoPro- cesso (ProcessRole). A Atividade pode estar associada de três formas diferentes com Pa- pelNoProcesso (ProcessRole):
• associação tipo, realizadaPor (performedBy) : representando a execução de algu-
19 Composições: Na arquitetura de Colaboração de Componentes vários ComponentesDeProcesso podem ser
usados para especificar outros ComponentesDeProcesso mais complexos, processo chamado de composição. Uma Composição pode ser representada usando os Diagramas de Colaboração de UML ou a notação própria do CCA.
20 Arquitetura de Colaboração de Componentes (‘Component Collaboration Architecture’): Esta arquitetura é
composta pelo conjunto dos diferentes sub-perfis que fazem parte do Perfil EDOC e detalha como os concei- tos de UML de Classe, Colaboração, e Grafo de Atividades podem ser usados para modelar a estrutura e comportamento dos componentes que fazem parte de um sistema (especificação de componentes para um processo colaborativo )
21 Um UsoDePorta de Entrada pode ser entendido como um correlacionador de vários valores de entrada provenientes de fluxos diferen-
tes e seria análogo a um conjunto de lugares para os parâmetros de um método os quais necessitam de um valor como argumento antes de que o método possa ser executado com algum significado verdadeiro.
ma funcionalidade de um objeto ligado a uma instância de PapelNoProcesso; • associação tipo, usaArtefato (usesArtifact);
• associação tipo, responsávelPor (responsibleFor).
A Atividade pode alimentar com dados as entidades usadas na execução, através do U- soDePortas (PortUsages), representando diferentes formas de inicialização (um UsoDe- Porta age como um correlacionador21 ). Essas entidades contêm um ou mais Conectores- DePortasDeProcesso (ProcessPortConnectors) representando FluxoDeDados (Data- Flows). Cada Atividade pode ter Pre CondiçõesDeAtividade (ActivityPreCondition(s)) e PósCondiçõesDeAtividade (ActivityPostCondition(s)) que adicionalmente restringem o começo e término de Atividade.
EntidadeDeProcessoDeNegócio (BusinessProcessEntity): é um processo de negócio que também é uma entidade, com identidade própria. É usada para modelar processos de longa duração que possam requerer administração ou interação durante seu tempo de vida.
PapelNoProcesso (ProcessRole): define um lugar para colocar as entidades de um pro- cesso que realizam uma Atividade ou que são usadas na realização de uma Atividade ( componentes usados pela Atividade para fazer o seu trabalho). Define um lugar para defi- nir um comportamento. O proprietário de um PapelNoProcesso é uma TarefaComposta e o comportamento de PapelNoProcesso é parte do comportamento das Atividades com as quais está associado. Contém RegrasDeSeleção, que são expressões para buscar os objetos a serem interligados no momento de execução. O PapelNoProcesso está relacionado com as Atividades via uma associação do tipo: realizadaPor, e/ou usaArtefato, e/ou respon- sávelPor.
FluxoDeDados (DataFlow): representa um relacionamento de causa num processo de negócio. O FluxoDeDados também propaga valores de dados entre ConectoresDePortas- DeProcesso (ProcessPortConnectors) que estejam relacionados. A semântica de execução é a seguinte: uma instância de FluxoDeDados é criada quando a instância da TarefaCom- posta que a contem é criada. A habilitação da fonte do FluxoDeDados causa a habilitação do FluxoDeDados, que então propaga os valores desde o ConectorDePortaDeProcesso fonte até ao ConectorDePortaDeProcesso destino.
ConectorDePortaDeProcesso (ProcessPortConnector): representa o uso de uma Por- taDeFluxoDeProcesso (ProcessFlowPort) no contexto de uma TarefaComposta. Um ConectorDePortaDeProcesso pode ser fonte ou destino de um FluxoDeDados.
PortaDeFluxoDeProcesso (ProcessFlowPort): É a forma mais simples de Porta (as Portas definem os pontos de interação entre as ComponentesDeProcesso) a qual pode pro- duzir ou consumir só um tipo de dados e representa os dados usados nas entradas e saídas de uma TarefaComposta. Uma instância de uma PortaDeFluxoDeProcesso (Process- FlowPort) é representada, numa Atividade, por um ConectorDePortaDeProcesso (repre- senta seu uso). Uma PortaDeFluxoDeProcesso tem um atributo (multiplicidade) para indi- car o menor e o maior número de valores que devem ser recebidos ou enviados pelo Conec-
PortaMultiplaDeProcesso (ProcessMultiPort): representa um conjunto relacionado de portas do tipo PortaDeFluxoDeProcesso (ProcessFlowPort), usadas para descrever as entradas e saídas de uma TarefaComposta. A PortaMultiplaDeProcesso age como uma forma de correlação de FluxoDeDados (DataFlow). A semântica de execução associada é a seguinte: Uma instância de PortaMultiplaDeProcesso (ProcessMultiPort) só poderá ser ativada quando todas as instâncias de PortaDeFluxoDeProcesso (ProcessFlowPort) que contem forem ativadas (semântica AND). Uma PortaMúltiplaDeProcesso pode ser assín- crona ou síncrona.
GrupoDeEntrada (InputGroup): É uma especialização de PortaMúltiplaDeProcesso (ProcessMultiPort) que representa o recipiente de um número determinado de PortasDe- FluxoDeProcesso as quais são as entradas de uma TarefaComposta e age como um corre- lacionador de FluxoDeDados. A semântica de execução é a seguinte: O GrupoDeEntrada deve ser ativado antes de que a Atividade possa entrar no estado “–Running”.
GrupoDeSaída (OutputGroup): É uma especialização de PortaMúltiplaDeProcesso (ProcessMultiPort) que representa o recipiente de um número determinado de PortasDe- FluxoDeProcesso. Representa as possíveis saídas de uma TarefaComposta, e age como um correlacionador dos dados associados com essa saída.
GrupoDeExcepção (ExceptionGroup) : representa o resultado de uma TarefaCompos- ta que falhou em completar sua função.
Executor (Performer): O PapelNoProcesso tipo Executor é usado especificamente pa- ra identificar uma entidade que possa executar a Atividade com a qual está associado (rea- liza o trabalho da Atividade)
Artefato (Artifact): O PapelNoProcesso tipo Artefato é usado especificamente para i- dentificar uma entidade usada como recurso por uma Atividade (é um recurso usado pelo Executor)
ParteResponsável (ResponsibleParty): O PapelNoProcesso tipo ParteResponsável é usado especificamente para identificar uma entidade que tem responsabilidade pela Ativi- dade com a qual está associado.
A Figura 2.4 mostra, num diagrama de classes simplificado (sem incluir os atributos de cada classe), os principais conceitos que fazem parte do metamodelo de processos de negó- cio
ProcessoDeNegocio
TarefaComposta
GrupoDeEntrada GrupoDeSaída
GrupoDeExcepção
Executor
Artefacto ParteRes ponsável
PortaDeFluxoDeProcesso ConectorDePo rtaDeProcesso
ComponenteDeProcesso usa UsoDeComponente n 1 Atividade PapelNoProcesso 0..* 0..* 0..* 0..* +executadaPor 0..* 0..* +usaArtifacto 0..* 0..* +responsávelPo r PortaMultipleDeProcesso PropietarioDePorta Porta * 1 +portas * +proprietario 1 UsoDePorta Nó FluxoDeDados conecta representa n 1
Figura 2.4 Diagrama de classes mostrando os principais conceitos do metamodelo de Processos de Negócio segundo EDOC. (adaptado de [2.3])
2.3.1.1 Síntese sobre o modelo para processos de negócio
Os principais elementos de modelagem usados na descrição de um processo de negócio são: ProcessoDeNegócio, TarefaComposta e Atividades. O ProcessoDeNegócio repre- senta a especificação completa do processo de negócio. As Atividades representam os dife- rentes trabalhos requeridos para completar um processo. As TarefasCompostas são recipi- entes para um conjunto de Atividades e para os FluxoDeDados que definem as dependên- cias temporais e de dados entre elas. Os ConectoresDePortaDeProcesso representam for- malmente as entradas e saídas de uma TarefaComposta. Os FluxosDeDados permitem a conexão dos ConectoresDePortaDeProcesso de uma TarefaComposta. O FluxoDeDados tipicamente vai desde a entrada do ConectorDePortaDeProcesso de uma TarefaCompos- ta à entrada do ConectorDePortaDeProcesso de uma Atividade contida pela Tarefa- Composta, e logo, desde o ConectorDePortaDeProcesso de saída da Atividade, ao Co- nectorDePortaDeProcesso de entrada de outra Atividade ou ao ConectorDePortaDePro- cesso de saída da TarefaComposta.
Os GruposDeEntrada e os GruposDeSaida são usados para agregar as PortasDe- FluxoDeProcesso, e indicam que cada uma das PortaDeFluxoDeProcesso pertencentes a um Grupo deve receber valores do FluxoDeDados antes de que algum dos valores possa ser transmitido pela TarefaComposta que os contem. Os GruposDeEntrada e de Saída
Adicionalmente uma Atividade pode especificar: i) Executores (PapelNoProcesso) da Atividade, ii) Artefatos (PapelNoProcesso) que selecionem entidades requeridas como recursos e iii) PartesResponsáveis (PapelNoProcesso) que selecionem pessoas ou outros papeis que sejam responsáveis pela Atividade. Cada Atividade pode ter PreCondiçõesDe- Atividade e PósCondiçõesDeAtividade que adicionalmente restringem o momento de início da Atividade e o como ela é completada.
Os PapeisNoProcesso têm três classes de relacionamentos com as Atividades. Uma A- tividade pode ser executadaPor um PapelNoProcesso ou também é possível que uma Atividade tenha uma associação tipo usaArtifacto com o PapelNoProcesso, ou tipo res- ponsávelPor no caso em que um PapelNoProcesso seja responsável por uma Atividade. O mesmo PapelNoProcesso pode ter várias associações com diferentes Atividades, por e- xemplo ser o Executor para uma Atividade enquanto pode ser um Artefato para outra, ou ser ao mesmo tempo ParteResponsável e o Executor de uma Atividade. Em tempo de execução o PapelNoProcesso representa uma variável de estado da TarefaComposta que posui esse PapelNoProcesso e uma instância concreta que satisfaz os requerimentos esta- belecidos nos atributos do PapelNoProcesso. A Figura 2.5 ilustra na notação de EDOC o uso destes conceitos num diagrama de uma componente de software composta por outras três componentes de software. Activity CT B A C RP PR2 AR PR1 Porta
(de CCA) UsoDePorta(de CCA)
1 n +representa 1 n ConectorDePorta (de CCA) Transição (de CCA) No (de CCA) 1 n saindo n +fonte 1 n 1 +entrando n +destino 1 PortaDeFluxo (de CCA) PortaMultiple (de CCA) PortaMultipleDeProcesso GrupoDeEntrada GrupoDeSaída GrupoDe Excepção PortaDeFluxoDeProcesso ConectorDePortaDeProcesso FluxoDeDados Conexão (de CCA) conecta Atividade ComponenteDeProcesso
(de CCA) UsoDaComponente
(de CCA) n 1 n +usa 1 Composição (de CCA) n 1 +usa n +proprietário 1 TarefaComposta ProcessoDeNegocio EntidadeDeProcessoDe Negocio Entidade (de Entidade) Artefato ParteResponsavel PapelNoProcesso +responsavelPorr +usaArtefato +realizadaPor Executor