Ulisses Telemaco edited Desafios.md  almost 9 years ago

Commit id: 544d3845d50a44f6c33e9fc888122d6baa095257

deletions | additions      

       

A Composição de Processos é uma operação complexa que envolve uma série de desafios. A seguir, serão apresentados os principais problemas associados a esse tipo de operação:  ## P1 -  Normalização dos Conceitos usados na representação dos Elementos Um PDS é formado minimamente pelos seguintes elementos: Eventos, Atividades, Artefatos e Papéis. Se considerarmos a notação BPMN, essa lista pode ser extendida com outros elementos: Regras de Negócio, Mensagens, Swimming Lanes, etc. Ao compor processos distintos, não existe nenhuma garantia que elementos iguais - com o mesmo valor semântico - tenham sido representados com os mesmos termos. Assim, um dos desafios da Composição de Processos é normalizar todos os termos equivalentes que receberam identificações distintas nos processos que estão sendo combinados. \cite{Fleurey_2008} apresenta uma proposta para tratar a composição de modelos. Os autores discutem o problema de existir conceitos semelhantes descritos de forma diferente nos modelos que estão sendo compostos e propõem uma solução que executa um algoritmo em duas fases: _matching_ e _merging_. Na primeira fase, os elementos que representam o mesmo conceitos mas que foram representados de forma distinta nos modelos são identificados. Na segunda fase, um modelo com os termos unificados é gerado. Portanto, uma operação de Composição de Processos deve ser capaz de identificar os termos equivalentes (que são descritos de forma distintas mas que tem o mesmo valor semântico) e normalizar a sua representação. O Processo resultante de uma Composição de Processos não deverá conter termos ambíguos.  ## P2 -  Normalização da Granularidade de Representação dos Elementos A Normalização de Granularidade é um desafio semelhante ao problema de Normalização de Conceitos. Isso porque os elementos que compõem os PDS's que estão sendo combinados podem ter sido representados com diferentes níveis de granularidade. A operação de Composição de Processos deve ser capaz de identificar essa diferença (quando ela ocorrer) e ser capaz de normalizar a granularidade de representação desses elementos. O Processo resultante de uma Composição de Processos não deverá conter elementos com níveis de granularidade distintos.   ## P3 -  Regras de Composição As Regras de Composição são mecanismos para indicar a dependência ou exclusão mútua entre componentes reutilizáveis \cite{Oliveira2006}. Essas regras podem ser classificadas em **inclusivas** e **exclusivas**. A primeira define relações de dependência entre Processos indicando que eles devem ser usados em conjunto. Já a segunda indica uma relação de exclusão mútua entre Processos, ou seja, indica quando dois PDS não podem ser utilizados em conjunto. A Operação de Composição de Processos deve ser capaz de lidar com essas regras e garantir que o Processo resultante seja consistente com as regras de composição especificadas.  ## P4 -  Definição de Ordem (Paralelismo, Sequencial) Outro problema ao compor dois Processos está na forma como as atividades no Processo resultante deverão ser sequenciadas. Simplificadamente - para efeito de entendimento do problema - a decisão a ser tomada é se os processos serão combinados de forma sequencial ou paralela. \cite{Istoan_2012} propõe operadores para a notação BPMN que permitem combinar processos de forma sequencial ou paralela. No entanto, num contexto mais realista, a composição das tarefas poderá assumir um fluxo mais complexo: com sequenciamentos e paralelismos de tarefas sendo combinados de forma intercalar. Esse é um problema bastante complexo e provavelmente irá depender de alguma intervenção manual. Uma ferramenta/notação que suporte a operação de Composição de Processos deverá oferecer mecanismos para que essas decisões de ordenamento sejam realizadas de forma apropriada.   ## P5 -  Unificação de Atividades Semelhantes Considere o seguinte requisito: ao compor dois Processos de Software que possuem uma atividade semelhante, o Processo de Software resultante não deverá apresentar a atividade duplicada. Ao invés disso, o Processo resultante deverá conter apenas uma atividade desse tipo. A operação de Composição, portanto, deverá ser capaz de identificar esse requisito e unificar as tarefas semelhantes.  ## P6 -  Exclusão de Atividades Desnecessárias Esse é um problema semelhante ao problema de Unificação de Atividades. No entanto, ao invés de tentar unificar tarefas semelhantes, esse problema consiste em tentar identificar (e remover) no Processo resultante tarefas que se tornaram desnecessárias nesse novo Processo. Uma operação de Composição de Processos deverá ser capaz de identificar tarefas desnecessárias e removê-las do processo resultante.