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
Download

análise de processo de desenvolvimento de software