ANÁLISE DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UTILIZANDO REDES DE PETRI ANALYSIS OF SOFTWARE DEVELOPMENT PROCESS USING PETRI NETS Lucas Vinícius Rodrigues Grabert 1 Rodrigo Palucci Pantoni 2 Data de entrega dos originais à redação em: 26/08/2014 e recebido para diagramação em: 30/03/2015. Processo de desenvolvimento de software (PDS) é o conjunto de ações e atividades que fazem parte da transformação dos requisitos do sistema em um sistema de software construído. Essas atividades são repletas de procedimentos direcionados que geram entradas e saídas para processos menores a fim de atender ao objetivo proposto. É comum as empresas não documentarem esses processos, o que pode atrapalhar a sua melhoria contínua. Sendo assim, a utilização de técnicas para melhorar o PDS da empresa se torna necessária para identificar e analisar possíveis problemas, na estrutura da organização que prejudiquem ou dificultem o alcance de seus objetivos. Neste contexto, neste trabalho é aplicada a ferramenta de Redes de Petri, que é uma forma de modelagem gráfica, a fim de analisar o PDS de uma empresa localizada na cidade de São João da Boa Vista, estado de São Paulo. Com a modelagem e as análises realizadas, foi possível a criação de um diagnóstico sobre o processo existente, o que permitiu melhorias do processo existente. Como resultado, foram propostas alternativas para a otimização do PDS da empresa, que se mostraram com melhor desempenho se comparadas qualitativamente e quantitativamente ao PDS original. Este trabalho levou a conclusão que o uso de redes de Petri para diagnosticar falhas e melhorias no PDS é válido e pode ser aplicado em outras empresas de pequeno porte. Palavras-chave: Redes de Petri. Modelagem de Sistemas. Software – Desenvolvimento. Sistema de Gerenciamento de Workflow. Software Development Process (SDP) is a set of actions and activities that are part of the transformation of the system requirements into software. These activities are full of procedures targeted to generate inputs and outputs for smaller processes in order to achieve the intended target. Companies do not usually document these processes, which can disrupt their continuous improvement. Therefore, the use of techniques to improve the company SDP becomes necessary to identify and analyze potential problems in the structure of the organization. Those problems may jeopardize or make difficult to achieve the company’s goals. In this paper. Petri nets tool, a form of graphical modeling, will be applied in order to analyze the SDP of a company located in São João da Boa Vista. After the modeling and reviewing, it was possible to create a diagnosis of the existing process, which allowed improvements to it. Alternatives procedures were proposed to optimize the SDP of the company and they demonstrated an improved performance when compared qualitatively and quantitatively to the original case. This paper led to the conclusion that the use of the Petri Nets as tool to diagnosis fault and improvements in the SDP is valid and can also be applied to other smalls business. Keywords: Petri Net. Systems Modeling. Software – Development. Workflow Management Systems. 1 INTRODUÇÃO Com a crescente demanda por sistemas informatizados é imprescindível que as empresas criadoras de software disponibilizem seus produtos com qualidade e confiabilidade. Porém, com a evolução das tecnologias, os sistemas se tornam mais complexos, tornando o mercado mais competitivo e exigindo cada vez mais controle das técnicas e ferramentas utilizadas para melhorar o processo de desenvolvimento de software (PDS). Tais ferramentas, estudadas pela Engenharia de 1 Tecnologia em Sistemas para Internet. E-mail: < [email protected] >. 2 Instituto Federal de Educação, Ciência e Tecnologia, São João da Boa Vista -SP. 60 http://www2.ifsp.edu.br/edu/prp/sinergia Sinergia, São Paulo, v. 16, n. 1, p. 60-64, jan./mar. 2015 ANÁLISE DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UTILIZANDO REDES DE PETRI Lucas Vinícius Rodrigues Grabert/Rodrigo Palucci Pantoni Software, garantem que os PDS assegurem a inclusão de todas as características pretendidas pelo cliente final no software criado (DUARTE, 2002). Uma destas ferramentas é a modelagem de software, com ela é possível a construção de modelos que capturem e documentem a estrutura e o comportamento do sistema (VALE, 2009), ou seja, por meio da modelagem de software é possível construir representações gráficas dos PDS viabilizando o detalhamento do fluxo de atividades e tarefas realizadas pelos envolvidos no processo. Neste trabalho é realizado um estudo de caso em que será analisado e modelado o processo de desenvolvimento de software (PDS) de uma empresa utilizando redes de Petri (RdP). Com isso, espera-se propor melhorias no PDS existente baseadas na análise e modelagem feita e, finalmente, efetuar uma comparação qualitativa e quantitativa entre o modelo existente e o modelo alternativo com as alterações. Redes de Petri (RdP), é uma ferramenta de modelagem utilizada para criar representações gráficas de sistemas de software utilizando fundamentos matemáticos (MACIEL, 1996). As RdPs oferecerem características positivas para a modelagem de sistemas entre as quais vale destacar, primeiramente, a linguagem gráfica simples, intuitiva e de fácil aprendizado; além disso, possuem fundamentação matemática que permite verificações importantes, possibilitam também a utilização de diversas técnicas de análises como a análise do comportamento do sistema modelado através de sua dinâmica de funcionamento e, por fim, é uma ferramenta gratuita. O esboço deste trabalho foi inspirado no já realizado por Passos (2008), onde foram utilizadas RdPs para modelar PDS, focando processos de negócio, em uma empresa de médio porte. 2 PESQUISA BIBLIOGRÁFICA 2.1 Processo de Desenvolvimento de Software O Processo de desenvolvimento de software (PDS) é uma área estudada na Engenharia de Software que trata o processo de transformação dos requisitos do sistema no sistema de software construído, ou seja, as atividades, procedimentos e recursos envolvidos durante a construção dessa solução são chamados de processo de desenvolvimento de software (OLIVEIRA, 2006). No mesmo enfoque que Oliveira, Pressman (2011) também diz que o processo de desenvolvimento de software é composto por três etapas: definição, desenvolvimento e manutenção. Definição é a etapa em que o projeto é definido e planejado, é estudado Sinergia, São Paulo, v. 16, n. 1, p. 60-64, jan./mar. 2015 nessa fase a viabilidade do projeto, além da definição do escopo, requisitos e as atividades envolvidas. Na fase de desenvolvimento são realizadas as atividades focadas na fabricação do software, estão inclusas nessa fase as atividades de concepção, especificação, design, prototipagem, codificação e etc. Por sua vez, manutenção é onde ocorre atividades relacionadas a manutenção do software, além da criação e documentos para futuras análises de como foi o processo. 2.2 Modelagem de Sistemas O processo de desenvolvimento de sistemas pode ser representado de diferentes formas. Uma das principais formas é através da criação de modelos. A modelagem do sistema é uma representação gráfica dos principais aspectos de um PDS onde são listados os recursos do processo e as interrelações existentes entre eles. Segundo Kellner e Hansen (1988), um dos objetivos desse tipo de representação é facilitar o aperfeiçoamento contínuo do processo de software. Existem diversas técnicas que apoiam a modelagem de processos de negócio e de desenvolvimento de software como UML, BPMN (Business Process Management Notation) e Redes de Petri, como anteriormente já indicado, para o presente trabalho será proposto o uso de redes de Petri. 2.3 Redes de Petri Rede de Petri (RdP) é uma ferramenta de modelagem inventada por Carl Adam Petri em 1939, que permite a representação gráfica de sistemas, utilizando equações matemáticas como fundamentos (MACIEL, 1996). RdP é uma ferramenta gráfica que possibilita o estudo de sistemas que processam informações, podendo ser utilizada em diversas áreas além de sistemas de informação, como compiladores e linguagens formais (MURATA, 1989). Existem diversos motivos para se utilizar RdPs para a modelagem de processos de desenvolvimento de software, entre estes destacam-se: I. Natureza gráfica: RdP possui uma linguagem gráfica intuitiva, simples e de fácil aprendizado; II. Propriedade: Possui fundamentação matemática firme que permite conclusões e verificações importantes; III. Análise: Disponibilidade de diversas técnicas de análise como: ● Quanto ao fluxo (presença de deadlocks); ● Métricas de performance (tempo de resposta, espera, taxa de ocupação); ● Workflows alternativos. IV.Gratuidade. [email protected] 61 ANÁLISE DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UTILIZANDO REDES DE PETRI Lucas Vinícius Rodrigues Grabert/Rodrigo Palucci Pantoni Uma rede de Petri simplificada deve ser representada graficamente da seguinte maneira: Figura 1 – Rede de Petri Simplificada ● Lugar: representa um estado, um recurso, uma espera, etc.; ● Ficha: indica uma condição associada ao lugar, ou um objeto; ● Transição: representa as ações ou eventos que ocorrem no sistema; ● Arcos orientados: fazem a conexão dos lugares com as transições e estas com os lugares. 2.4 Análise de Processos de Negócio e de Desenvolvimento de Software As técnicas de análise disponibilizadas pela rede de Petri nos permite uma melhor avaliação dos processos de negócio, possibilitando a proposição de novos cenários (AALST et al., 2002). Por estar relacionado aos processos de negócio acredita-se que estas práticas sirvam também para se analisar processos de desenvolvimento de software. Essas técnicas podem ser classificadas em qualitativas e quantitativas. As análises qualitativas focam no funcionamento contínuo do processo tratando problemas que travam o processo, como deadlocks e livelocks. Tais análises podem ser subdivididas em dois focos: Análise de acessibilidade que determina a rota do processo, com o fim de corrigir possíveis problemas do fluxo. E, Análise estrutural que foca na correção de possíveis problemas estruturais. As análises quantitativas por sua vez enfocam a melhora na performance do processo, buscando indicadores de performance. Podem ser subdivididas em análise de performance, que busca melhorias através de simulações e, planejamento de capacidade que procura a melhorar a alocação de tarefas para cada recurso. 3METODOLOGIA Em momento inicial foi realizado um levantamento de informações de como é o PDS existente na empresa Smart, como quais os recursos e fluxos do processo, foi constatado também que, durante o processo de fabricação de software, o conjunto de atividades relacionadas a um projeto é caracterizado como Solicitação de Cliente (SC) e essas SCs possuem sub classificação: Nova, Corretiva Bug e Corretiva Banco. Com as informações devidamente coletadas, foi possível a realização de uma modelagem em RdP utilizando o software Visual Object Net++. A partir da modelagem foi realizado análises qualitativas e quantitativas que resultaram no diagnóstico do PDS atual. A proposição de novos cenários teve como base as observações apresentadas no diagnóstico. Uma nova análise qualitativa e quantitativa dos cenários propostos foi realizada permitindo por fim, uma análise comparativa entre o cenário existente e o proposto. A figura 2 representa graficamente a metodologia utilizada. 4RESULTADOS 4.1 Modelagem do Cenário Atual Com as informações coletadas é possível realizar a representação gráfica do PDS da empresa Smart. A SC, que é o elemento de estudo do trabalho, é representada na rede de Petri por uma ficha. Uma ficha contém várias propriedades e dados relativos à vida da SC no fluxo a qual ela pertence. Tais dados podem ser informados, ou alterados, de acordo com a evolução da SC entre as distintas atividades pertencentes ao fluxo (PASSOS, 2008). As atividades realizadas para alterar o estado da SC são representadas por transições, as transições com mais de uma saída são representadas graficamente pelos retângulos vazios. Os setores representam atividades que possuem refinamento, ou seja, existem outras transições e condições não representados pelo modelo. A condição da SC é representada pelo estado, ou seja, concebe a situação ou resultado no qual a SC encontra-se no momento em questão. Finalmente, o fluxo da rede se dá aos arcos, onde os fluxos alternativos, que podem ser utilizados ou não, são representados pelos arcos pontilhados. Figura 2 – Etapas do Projeto Proposto 62 http://www2.ifsp.edu.br/edu/prp/sinergia Sinergia, São Paulo, v. 16, n. 1, p. 60-64, jan./mar. 2015 ANÁLISE DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UTILIZANDO REDES DE PETRI Lucas Vinícius Rodrigues Grabert/Rodrigo Palucci Pantoni Figura 3 – Modelagem do PDS da Empresa Smart 4.2 Avaliação e Diagnóstico do Cenário Atual A análise qualitativa do modelo gráfico criado não encontrou a presença de atividades desnecessárias, atividades mortas, Deadlocks ou Livelocks. Também pode ser considerada fortemente modelada por atingir todos os requisitos do conceito Soundness (AALST, 2002). A análise quantitativa buscou quantificar a performance do processo atual, como a média de tempo de execução nível de serviço e capacidade de utilização. Foi constatado então, que o atual modelo da empresa visa à manutenção de seus sistemas, focando a maior parte de suas atividades nas SCs do tipo de correção de banco, 66% das SCs no período de estudo. A outra grande parte, SCs do tipo corretiva bug, é referente à correção de sistemas já existentes, seja corrigindo bugs ou adicionando funcionalidades e representam 34% do esforço no período. Foi constatado também que muitas vezes as atividades relativas as SCs foram realizadas, porém não foram devidamente documentadas, o que para o fluxo de informações, uma vez que o setor seguinte fica esperando a liberação de entrada de suas atividades que deve ser acionada com a conclusão das atividades do setor antecessor. Outro fator relevante sobre as SCs do tipo correção de bug é que apenas 10% das SCs deste tipo foram devidamente testadas e documentadas, isso significa que aproximadamente 90% de SCs que foram entregues ao cliente sem serem devidamente testadas. 4.3 Proposição de Novos Cenários Os objetivos principais dos cenários propostos são: melhorar o controle de SCs e melhorar o aproveitamento das atividades de testes nas SCs do tipo corretiva Bug. A fim de evitar conflitos e dificuldades na implantação dos novos cenários, manteve-se a estrutura atual do PDS, uma vez que ela é considerada fortemente modelada (soudness), que não existem deficiências em seu fluxo e estrutura (ausência de deadlock e livelocks) e que as atividades de testes funcionais das SCs do tipo corretiva bug já estão presentes no fluxo, apenas não são realizadas. As principais mudanças destes novos cenários são: garantir que cada atividade executada é devidamente documentada, garantir o maior controle na abertura da SC e a realização das atividades de testes funcionais. 4.4 Análise Comparativa entre os Cenários A Tabela 1 mostra os resultados sobre o total de horas gastas em SCs, o tempo médio gasto por tipo de SC e a cobertura de SCs do tipo bug testadas. Tabela 1 – Análise Comparativa entre os Cenários Cenário Atual Quantidade de horas gastas Tempo médio gasto em SCs do Tipo Corretiva Bug Tempo médio gasto em SCs do Tipo Corretiva Banco Cobertura de SCs do tipo Corretiva Bug Testadas Cenário Proposto 327778 hrs 128:16:18 49:32:59 10% Sinergia, São Paulo, v. 16, n. 1, p. 60-64, jan./mar. 2015 Quantidade de horas gastas Tempo médio gasto em SCs do Tipo Corretiva Bug Tempo médio gasto em SCs do Tipo Corretiva Banco Cobertura de SCs do tipo Corretiva Bug Testadas [email protected] 2229445 hrs 89:20:48 04:07:00 100% 63 ANÁLISE DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE UTILIZANDO REDES DE PETRI Lucas Vinícius Rodrigues Grabert/Rodrigo Palucci Pantoni No período de estudo, o cenário atual gastou aproximadamente o total de 327778 horas em SC, contrapondo as 229445 horas estimadas com o cenário proposto. A redução do esforço em horas utilizadas no novo cenário é de aproximadamente 30% do utilizado no cenário existente. Em relação as SCs do tipo corretiva banco, nos cenários propostos, a média de tempo para que a SC se conclua é de aproximadamente 4 horas e 7 minutos, contrapondo o cenário atual que as atividades exigiam aproximadamente 49 horas e 33 minutos. Sendo assim, é possível afirmar que no cenário proposto a SC levaria em média 12% do tempo que é utilizado no cenário existente. Referente as solicitações de clientes do tipo corretiva bug, no cenário proposto, a média de tempo para que a SC se conclua é de aproximadamente 89 horas e 21 minutos, contrapondo o cenário atual que as atividades exigiam aproximadamente 128 horas e 16 minutos. Sendo assim, é possível afirmar que existe uma redução de aproximadamente 31% do tempo gasto no cenário novo em comparação ao atual. É importante ressaltar que o modelo novo já incorpora o esforço necessário para realizar os testes, aumentando assim a cobertura de testes para 100% contra 10% do cenário existente. 5CONCLUSÕES Com o resultado deste trabalho analisa-se que é possível realizar melhorias no PDS utilizando redes de Petri. Além da modelagem, o uso de RdP permite a análise do cenário existente, que consequentemente possibilita diagnósticos de mudanças do cenário, permitindo assim a proposição de novos cenários. Ao avaliarmos os resultados obtidos neste trabalho, é possível ver os impactos positivos alcançados com a proposição dos novos modelos, com o maior controle de SCs é possível que a gerência planeje melhor sua alocação de recursos, como até a implantação de atividades de testes, relatórios de produtividade entre outros. Os benefícios alcançados com a modelagem de sistemas utilizando redes de Petri, podem ser 64 http://www2.ifsp.edu.br/edu/prp/sinergia considerados como base para futuros projetos. Pelo seu poder de representar graficamente e permitir diversas análises, existe uma grande possibilidade de usos para as RdPs. REFERENCIAS AALST, W. M. P. V. D.; HEE, K. M. V.; Workflow Management: Models, Methods and Systems (in Dutch). Academic Service. Schoonhoven. 2002. KELLNER, M. I., HANSEN, G. A. Software Process Modeling. Software Engineering Institute – Carnegie Mellon University. Pittsburgh, 1988. DUARTE, F. M. Engenharia de Software Orientada aos Processos. 2002. Tese (Mestrado em Informática) – Escola de Engenharia da Universidade do Minho, Portugal. 2002. MACIEL, P.R.M.; LINS, R. D.; CUNHA, P.R.F. Introdução às Redes de Petri e Aplicações. 1996. Trabalho apresentado na 10. Escola de Computação. Campinas, 1996. MURATA, T. Petri Nets: Properties, Analysis and Applications. In: IEEE International Conference on Industrial Technology, 1989, Glasgow. Proceedings of the IEEE: Vol. 77, n. 4, Glasgow, 1989. OLIVEIRA, S. R. B. Processo de Software: Princípios, Ambiente e Mecanismos de Execução. 2006. Exame de Qualificação do Programa de Doutorado em Informática - Centro de Informática – Universidade Federal de Pernambuco. Recife, 2006. PRESSMAN, R. S. Software Engineering, A Practitioner’s Approach. 7. ed. Nova York : The McGraw-H ill Companies, 2011. VALE, L. d. N. Especificação de Testes Funcionais usando Redes de Petri a Objetos para Software Orientados a Objetos. 2009. Tese (Mestrado em Ciência da Computação) – Faculdade de Computação, Universidade Federal de Uberlândia, Uberlândia, Minas Gerais, 2009. Sinergia, São Paulo, v. 16, n. 1, p. 60-64, jan./mar. 2015