• Nenhum resultado encontrado

BVCCoN Tool

3.1 Modelo e Metamodelo BVCCoN

3.1.2 Sintaxe Concreta

Na seção anterior, nós descrevemos a sintaxe abstrata da linguagem de modelagem. Ana- lisamos as três visões da abordagem BVCCoN, identificamos alterações no metamodelo e realizamos essas alterações. Sempre buscando a coerência entre a sintaxe abstrata e concreta. Nesta seção, iremos descrever a sintaxe concreta para as visões citadas anteri- ormente. O modelo de processo de negócio já possui uma sintaxe concreta definida no metamodelo BPMN 2.0, por isso, não será necessário descrever a sintaxe concreta do BPMN.

3.1.2.1 Variabilidade

Os principais conceitos relacionados à variabilidade, são os VariationPoints e as Variants. Os VariationPoints estão associados aos elementos de fluxo do BPMN, indicam onde o ponto de variação começa, onde termina e quais são os elementos pertencentes ao ponto de variação. Estas informações são armazenas pelos atributos Begins, Ends e FlowElementsdo ponto de variação. Na sintaxe concreta, definimos que a notação gráfica de VariationPoint armazenará informações como Id, Name, os operadores lógicos AND, ORe XOR e as variantes que fazem parte do ponto de variação.

O operador lógico de um ponto de variação está relacionado com as variantes, por exemplo, o operador AND indica que todas as variantes daquele ponto de variação podem ser selecionadas. Analisando a Figura3.11, o ponto de variação VP0 possui o operador AND, portanto, as variantes Realizar Verificação de Segurança e Realizar Verificação Extra de Segurançapodem ser selecionadas simultaneamente. Interessante observar que existe um link chamado Requires entre a variante Realizar Verificação Extra de Segurança e a variante Realizar Verificação de Segurança. Isto indica que a presença de Realizar Verificação Extra de Segurançarequer obrigatoriamente a presença da variante Realizar Verificação de Segurança.

Para identificar os pontos de início e fim de um ponto de variação e os elementos que farão parte do mesmo, é necessário importar um modelo de processo de negócio na ferramenta. Assim, o ponto de variação terá acesso aos elementos de fluxo do processo que foi modelado. O processo de referência importado é o da Figura4.1, que apresenta as atividades para realizar check-in em um aeroporto.

A Figura 3.11 também apresenta os elementos da sintaxe concreta (a) e abstrata (b). Observe que VariationPoint (1) está conectado aos FlowElements (2) representados pelas tarefas Realizar Verificação de Segurança e Realizar Embarque e está associado

78

com as Variants (3) Realizar Verificação de Segurança e Realizar Verificação Extra de Segurança.

Figura 3.11 Sintaxe concreta do Ponto de Variação.

A associação entre um VariationPoint e uma Variant é feito através de um link, onde o source é a variante e o target o ponto de variação. Similar a um VariationPoint, uma Variantpossui elementos de fluxo modelados em BPMN. Essa associação ocorre através da indicação sobre onde a variante começa, onde termina e quais os elementos de fluxo

pertencentes àquela variante. Assim, importa-se o modelo BPMN e a variante terá total acesso aos elementos que foram modelados.

As variantes também podem se relacionar entre si. Isto ocorre com os links Requires e Excludes. O primeiro, quando uma variante está presente, requer que a outra também esteja. A segunda é o inverso, quando determinada variante está presente, a outra é excluída. Para informar em como uma Variant será alocada em um novo processo, é necessário associá-la a um WorkflowPattern, que pode ser: Sequence, Parallel, dentre outros. Uma variante também está associada a um ou mais contextos.

A Figura 3.12mostra um exemplo utilizando um processo de emergência quanto a existência de fogo. Este processo foi descrito na seção2.2.2e pode ser encontrado na Figura2.2. A próxima tarefa do processo após Verificar Risco e Resgatar qualquer pessoa em perigoé Tocar o alarme de Incêndio. O ponto de variação da Figura3.12está apontando para tarefa Tocar o alarme de Incêndio e possui duas variantes associadas, Tocar Alarme de Fogo Manualmentee Tocar Alarme de Fogo Automaticamente.

A Figura3.12mostra duas Variants associadas a um VariationPoint. Observe que a Variant Tocar Alarme de Fogo Automaticamente(1), está conectada ao VariationPoint VP0 (5) e está associada ao FlowElement (3) Tocar Alarme de Fogo Automaticamente. Também está conectada ao WorkflowPattern (4) EXCLUSIVE_CHOICE. (2) são as propriedades da variante Tocar Alarme de Fogo Automaticamente. Esta variante está apontando seus atributos Begins e Ends para uma tarefa BPMN também chamada Tocar Alarme de Fogo Automaticamente. Como os atributos Begins e Ends apontam para uma única tarefa, o atributo FlowElements só contém uma tarefa. A Variante Tocar Alarme de Fogo Automaticamenteestá relacionada com o contexto ServiçosDeBackupEstãoFuncionando, portanto, esta variante só poderá ser selecionada quando este contexto estiver ativo.

O atributo IsDefault quer dizer que se não existir outra variante válida esta será a escolhida, a ideia é deixar sempre um caminho possível. No caso da variante Tocar Alarme de Fogo Automaticamente, este atributo é falso. O tipo de WorkflowPattern associado a esta variante é o EXCLUSIVE_CHOICE, indicando que os elementos de fluxo BPMN da variante serão incluídos no processo através de uma escolha exclusiva. O atributo Var Points indica a qual ponto de variação a variante pertence. O número 3 é um elemento de fluxo BPMN, uma tarefa que faz parte da variante e, por fim, número 4 é o WorkFlowPatternque está associado a variante.

80

Figura 3.12 Sintaxe concreta de uma Variante.

3.1.2.2 Requisitos Não-Funcionais

A perspectiva de Requisitos Não-Funcionais foi adaptada do NFRFramework [30]. De acordo com este framework, os NFRSoftgoals são nós em formatos de nuvens que são associados por NFRSoftgoalContribution e pelos links NFRSoftgoalCorrelation. Sim- plificamos a notação visual trocando o símbolo da nuvem por um retângulo com bordas

tracejadas e vértices arredondados, afim de que a ferramenta desenhe adequadamente, além de otimizar o tempo no desenvolvimento da mesma.

Quando dois NFRSoftgoals são conectados, são utilizados os links AndContribution e OrContribution. Ambos são representados por um link com um label AND e OR respec- tivamente. Por outro lado, quando NFRSoftgoals conectam NFROperationalization, as contribuições são MakeContribution, HelpContribution, EqualContribution, HurtContri- butione BreakContribution. Representados graficamente por links com os respectivos labels: ++, +, =, - e - -.

No NFRFramework, NFROperationalization possui a mesma representação de NFR- Softgoal, uma nuvem, porém, com bordas mais sólidas. Em nosso caso, o que irá representar as operacionalizações são as Variants. A representação gráfica das variantes podem ser encontradas na seção3.1.2.1.

A Figura3.13apresenta um exemplo levando em consideração o processo de check-in em aeroporto (ver Figura 4.1), mais especificamente a tarefa Realizar Verificação de Segurançado processo. O requisito não-funcional que é levado em consideração é o Segurança, que é decomposto em outros RNFs. A variante Realizar Verificação Extra de Segurançae suas ligações de contribuições com os Softgoals também são exibidas.

Neste caso, se a variante Realizar Verificação Extra de Segurança for ativada e os elementos de fluxo BPMN pertencentes a esta variante forem inclusos no processo principal, ela irá contribuir positivamente para a Confidencialidade e Controle de Acesso, gerando Segurança para o processo de negócio.

A Figura 3.13 descreve os elementos da sintaxe concreta (a) e a sintaxe abstrata (b). O compartimento NFRModel (1) é responsável por armazenar os NFRSoftgoals, ou seja, a visão de requisitos não-funcionais e suas associações estarão presentes dentro deste compartimento. O NFRSoftgoal (2) com o label Confidencialidade está conectado aos NFRSoftgoals Confidencialidade Interna e Confidencialidade Externa por meio do link AndContribution(3). O NFRSoftgoal Confidencialidade Interna está recebendo um MakeContribution(4) da Variant Realizar Verificação Extra de Segurança. Por último, (5) exibe as propriedades do Softgoal, Id, Name e a prioridade, que deverão ser definidas pelo analista.

3.1.2.3 Contexto

Uma expressão de contexto é composta por uma fórmula de predicados. Os predicados são: Statement, Fact e PredicateDecomposition. A representação gráfica de um Statement pode ser ligado a uma ContextExpression para indicar que a mesma é a raiz da análise.

82

Figura 3.13 Sintaxe concreta de RNF.

Essa ligação é realizada através de um link chamado CELink que significa ContextEx- pressionLink. Os atributos de um Statement são um Id e um texto para descrever o elemento.

Um Statement pode receber links de Facts ou de outros PredicateDecomposition. O tipo de link que realiza ligações entre PredicateDecomposition é o PredicateLink. Os Factsestão associados às Variables, que contém informações que podem ser monitoradas

durante a configuração do processo de negócio. Quando necessário decompor a expressão de contexto, pode-se utilizar os operadores AndDecomposition, OrDecomposition e NotDecomposition.

Uma das maneiras de realizar check-in para embarcar em um avião é fazê-lo online. A Figura3.14apresenta informações de contexto para avaliar se o check-in online está disponível. O contexto C_0 está implicito pelo Statement S0: check-in online está disponível. O Statement é apoiado por uma decomposição que termina fatos. Os fatos InternetEstáOn e Sistema de Checkin Está Funcionando podem ser avaliados como verdadeiro ou falso e o Statement apoiado por estes fatos podem ser validados.

A Figura3.14descreve o modelo de contexto apresentando a sintaxe gráfica concreta (a) e a sintaxe abstrata (b). Os números marcados indicam a ContextExpression (1), o Statement(2) representado pela forma S0: check-in online está disponível, um Predicate- Decomposition(3) com o operador AND, os Facts (4) com as descrições InternetEstáOn e Sistema de check-in está funcionando e por último, as Variables (5) InternetEstáOn e Sistema de check-in está funcionando.

3.2

A Ferramenta

Nesta seção apresentamos uma visão geral da ferramenta, visto que os detalhes encontram- se disponíveis no apêndiceA.

A Figura3.15apresenta o editor da ferramenta BVCCoN-Tool. É composta por uma área de trabalho onde serão criados os modelos de requisitos não-funcionais, variabi- lidade e informação contextual e à direita um menu, onde encontram-se os elementos necessários para a realização da modelagem: Variability Nodes, Variability Links, Models, ContextNodes, Context Links, NFR Node e NFR Links. A Figura3.16exibe o menu de seleção com mais detalhe.

Os modelos que serão exibidos em seguida são de exemplos citados anteriormente, portanto, dispensa apresentações, com exceção do modelo de contexto.

A Figura3.17exibe um compartimento NFR Model com 5 NFRSoftgoals inseridos. Eles estão relacionados através do link de contribuição AndContribution. A Figura3.18

apresenta o mesmo modelo da Figura 3.17, com a diferença que existe a inclusão do modelo de variabilidade.

Neste outro modelo, um ponto de variação e duas variantes são inseridas. Os links de contribuição MakeContribution e HelpContribution são utilizados para realizar as ligações entre Variants e NFRSoftgoal. O padrão de WorkflowPattern que está associado com as

84

Figura 3.14 Sintaxe concreta de Contexto.

variantes é o comportamento SEQUENCE. Por último, as variantes estão associadas com o ponto de variação.

O modelo da Figura 3.19 apresenta um exemplo de informação de contexto para avaliar se o alerta de segurança está alto. O Contexto C_0 está implícito pelo Statement

Figura 3.15 Editor da Ferramenta BVCCoN-Tool

Figura 3.16 Menu de seleção da ferramenta

S0: Alerta de Segurança Está Alta. Este Statement é apoiado pelo fato F0: Alerta de Segurança, que pode ser avaliado como verdadeiro ou falso. Caso esta informação de contexto seja verdadeira, a variante Realizar Verificação Extra de Segurança é ativada e

86

os elementos de fluxo BPMN pertencentes a esta variante são inseridos no modelo de processo de negócio principal de forma sequencial, já que o WorkflowPattern associado é o SEQUENCE. Por fim, a Figura 3.20 apresenta um modelo BVCCoN com todas as informações representadas, requisitos não-funcionais, variabilidade e informações contextuais.

Figura 3.17 Modelo RNF

Figura 3.19 Modelo de Contexto

Figura 3.20 Modelo BVCCoN

Documentos relacionados