• Nenhum resultado encontrado

A verificação de conformidade é realizada para identificar as não conformidades entre as perspectivas de processo e projeto. Não conformidades estão relacionadas às atividades previstas executada, atividades previstas não executadas, e atividades não previstas porém executadas.

Conformidade de processo é o grau de concordância entre o processo de desenvolvimento de software que é realmente executado e o processo que é definido para ser realizado (SØRUMGÅRD, 1997). Técnicas de análise de conformidade verificam se o comportamento observado registrado em um registro de execução corresponde a um comportamento modelado, neste sentido, este tipo de análise é crucial, porque muitas vezes as execuções de processos se desviam dos processos

estabelecidos (LEONI; MAGGI e VAN DER AALST, 2012). Neste sentido se faz necessário a implementação de mecanismos que permitam identificar não conformidades que ocorrem ao longo dos projetos de desenvolvimento de software, de forma a possibilitar o direcionamento de ações a partir desta identificação.

A Tabela 13 apresenta a descrição das atividades que englobam a solução de mapeamento para identificação de não conformidades. Nesta tabela, as atividades são listadas a seguir em negrito, e descrição é apresentada em itálico.

Tabela 13 – Atividades de Identificação de não Conformidades

Identificação de não Conformidades Obter o Modelo de Processo de Software

Envolve a obtenção do modelo de processo de software de referência para o projeto.

Identificar as não Conformidades

Envolve a verificação da execução, após a execução da iteração ou do projeto, para identificação de não conformidades. Na identificação de não Conformidades, é verificada a aderência dos processos executados às descrições de processo, padrões e procedimentos.

Gerar Relatório de não Conformidades

Envolve a geração do Relatório de não Conformidades, o qual apresenta as atividades do processo definido obrigatórias não selecionadas durante a execução do processo.

As seguintes atividades envolvem a identificação do processo de software executado: Obter o Modelo de Processo de Software, Identificar não Conformidades, e Gerar Relatório de não Conformidades. A estruturação dos registros de execução se dá pela aplicação das operações de instanciação, que além de estabelecer a ligação entre as perspectivas, também registra a instância do processo.

As atividades de Obter Modelo de Processo de Software (Seção 6.3.1), Identificar não Conformidades (Seção 6.3.2) e Gerar Relatório de não Conformidades (Seção 6.3.3) serão descritas em detalhes nas seções seguintes.

6.3.1 Obter Modelo de Processo de Software

Para a realização da verificação de conformidade o modelo de processo de referência para o projeto deve ser obtido, bem como as diretrizes de adaptação.

A partir desta obtenção, se faz necessário mapear os possíveis caminhos para que seja possível realizar a comparação entre os registros de execução e o modelo de processo. Para isto, a partir do modelo de processo, é gerada uma matriz de

adjacência e posteriormente é executado um algoritmo de listagem de caminhos (list_path). O pseudocódigo da geração da matriz de adjacência e do algoritmo de listagem de caminhos está disponibilizado no Apêndice E.

Portanto, no contexto dessa solução, o modelo de processo de processo deve estar no formato .bpmn. Ferramentas de modelagem na notação BPMN geralmente dão suporte a exportação dos modelos para este formato. Detalhes de como usar o apoio ferramental para a obtenção do modelo no Capítulo 7 e no Apêndice D.

Em seguida a obtenção do modelo de processo de software, a atividade de identificação de não conformidades pode ser realizada.

6.3.2 Identificar não conformidades

A identificação de não conformidade é realizada através da comparação entre as atividades previstas no modelo processo de software definido para o projeto, e as atividades que forem identificadas como executadas. Uma atividade é marcada como executada se estiver relacionada a uma ou mais tarefas, que contenham a data de fim da execução registrada.

Esta análise tem como entrada os valores relativos ao projeto e ao processo de software que serão analisados. Os valores relativos ao projeto é a lista de atividades de processo, associadas às tarefas executadas no projeto, e os valores relacionados ao processo é a lista de atividades previstas, por caminho possível no modelo de processo.

Após a obtenção destes valores de entrada é realizada a comparação sendo identificada as atividades previstas executadas, atividades previstas não executadas e atividades não previstas executadas, para cada caminho possível de execução das atividades.

A representação de elementos do processo nas tarefas dos projetos permite que a verificação de conformidade seja realizada de forma semi-automatizada, uma vez que, as informações do processo estão explícitas nos registros de execução

Cabe ressaltar que considerando uma abordagem construtiva, pela aplicação das operações, a verificação de conformidade pode ser realizada após a instanciação (criação de tarefas) ou após a execução (finalização das tarefas).

Na Instanciação o plano de projeto é criado. O plano de projeto criado é composto por um conjunto de tarefas, onde são informadas as datas de início e fim previsto, o ator, artefatos a serem produzidos e a atividade do processo de referência quando possível. No caso da operação Add, não é registrada a atividade do processo.

Na Execução as tarefas criadas são realizadas tanto pelos desenvolvedores quanto automaticamente. A partir da Execução são gerados os registros de execução.

Assumindo o encerramento da criação de tarefas, a Verificação da Conformidade do Plano de Projeto pode ser executada. Nesta atividade ocorre a verificação de conformidade do plano com o modelo de processo a fim de identificar não conformidades. Quando não houver mais alterações a serem feitas no plano a etapa seguinte pode ser realizada. Uma vez executadas as tarefas é possível iniciar a etapa Verificação da Conformidade da Execução. Nesta etapa ocorre a verificação de conformidade dos registros de execução com o modelo de processo a fim de identificar não conformidades.

A realização da Verificação da Conformidade do Plano de Projeto possibilita que os benefícios do mapeamento, na identificação de conformidades, sejam alcançados ao longo do projeto e não somente ao final, permitindo ao gerente do projeto tomar a decisão sobre as formas de resolução das não conformidades identificadas no decorrer do projeto de software.

A partir de um estudo de observação realizado em uma reunião de planejamento de projeto e das boas práticas recomendadas pelas normas e modelos de maturidade, um conjunto de atividades e tarefas para verificação de conformidade do plano de projeto e da execução foi definido. O Apêndice G apresenta as orientações para verificação de conformidade.

Portanto, no contexto dessa solução, a comparação realizada para identificação de não conformidades, é realizada pelo apoio ferramental. Detalhes de como usar o apoio ferramental está descrito no Capítulo 7 e no Apêndice D. No Apêndice F é apresentado o pseudocódigo da identificação de não conformidade relacionada às atividades.

Em seguida a identificação de não conformidades, um relatório de não conformidade é gerado.

6.3.3 Gerar Relatório de não Conformidades

A análise de conformidade entre o modelo de Processo de Software de Projeto e o Processo de Software Executado, gera uma lista dos elementos de processo, a qual é composta das não conformidades ocorridas ao longo de cada execução do processo. Para representar as não conformidades identificadas é utilizado o mecanismo localContribution e Supression, da extensão BPMNt (PILLAT; OLIVEIRA; FONSECA, 2012) para destacar as alterações de inclusão e remoção de atividades.

6.4 Considerações Finais

Este Capítulo apresentou orientações para identificar o processo de software executado e identificar não conformidades, a partir de uma base de dados de execução de projetos criada e estruturada por meio da solução de mapeamento entre as perspectivas de processo proposta nessa tese.

O Capítulo seguinte apresenta o apoio ferramental desenvolvido para dar suporte ao mapeamento entre as perspectivas de processo e projeto de software.

7 Apoio Ferramental

Este capítulo apresenta o apoio ferramental desenvolvido para suporte ao mapeamento entre representações de processo e projeto de software. As operações de instanciação definidas foram implementadas visando apoiar, de forma semi-automatizada, o mapeamento entre as perspectivas de processo e projeto.

7.1 Introdução

Considerando o objetivo específico apresentado no Capítulo 1 na Seção 1.3 – Oferecer apoio ferramental ao mapeamento entre as perspectivas; um apoio ferramental foi desenvolvido para dar suporte à solução de mapeamento entre as perspectivas de processo e projeto de software.

Conforme apresentado no Capítulo 5 o processo de aplicação da solução proposta nesta tese é composto das seguintes etapas: Definição (obtenção do modelo do processo de software), Instanciação (criação de tarefas) e Execução (finalização de tarefas). Neste sentido, um apoio ferramental foi desenvolvido para dar suporte a estas etapas. A ferramenta também provê suporte à identificação do processo de software executado, por meio da exportação dos registros no formato .xes, bem como a identificação de não conformidades, por meio da geração de relatórios composto das atividades previstas executadas, atividades previstas não executadas e atividades não previstas executadas, para cada caminho possível de execução das atividades.

O apoio ferramental é intitulado Maptracys. Este nome foi escolhido para remeter a seu objetivo que é realizar o mapeamento entre as perspectivas, mantendo o registro (trace) deste mapeamento. Uma versão da MapTracys pode ser acessada pelo seguinte endereço https://maptracys-test.herokuapp.com/.