Bruna Avanci Taroco

Transcrição

Bruna Avanci Taroco
UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS
ÁGEIS
Bruna Avanci Taroco1, Claudete Werner1
1
Universidade Paranaense (Unipar)
Paranavaí – PR – Brasil
[email protected], [email protected]
Resumo. O presente artigo trata de uma revisão bibliográfica de modelos de
processo de software, sabemos que no mercado existem inúmeros modelos. Para
compor este artigo foram escolhidos três de muitos modelos existentes, modelo
sequencial linear(clássico ou cascata), metodologia ágil scrum e o
desenvolvimento rápido de aplicação(RAD), que serão descritos e
comparados, buscando aquele que vá se adequar mais de acordo com a
aplicação.
1. Introdução
Para resolver os problemas reais em um ambiente, um engenheiro de software ou uma
equipe de engenheiros deve incorporar uma estratégia de desenvolvimento que engloba
o processo, os métodos e as ferramentas de camadas e as fases genéricas. Esta estratégia
é, muitas vezes, referida como um modelo de processo ou de um paradigma de
engenharia de software. [Pressman 2001].
Um modelo de processo ou processo de software forma um conjunto de
atividades que tem como objetivo produzir um produto de software. Existem diversos
modelos de processos e cada um deles com uma metodologia diferente a ser seguida,
cabe ao engenheiro de software escolher qual será o modelo mais adequado de acordo
com a sua aplicação.
O objetivo deste trabalho é fazer uma investigação cientifica sobre três tipos de
modelos de processos apresentando seu conceito e apresentando ao final uma analise
comparativa entre os mesmos. Os modelos apresentados neste artigo serão o modelo
sequencial linear (clássico ou cascata), metodologia ágil scrum e o desenvolvimento
rápido de Aplicação (RAD).
2. Modelo Sequencial Linear (Clássico ou Cascata)
O modelo cascata (waterfall) tornou-se conhecido na década de 70 e é referenciado na
maioria dos livros de engenharia de software ou manuais de padrões de software. Nele
as atividades do processo de desenvolvimento são estruturadas numa cascata onde a
saída de uma é a entrada para a próxima. [Jair Leite 2007]
O modelo sequencial linear foi idealizado pelo autor Royce, em 1970 e é
utilizado na produção de software através de seis etapas, onde todas são seguidas
sequencialmente sem possibilidades de pular de uma etapa para outra, mas, se
necessário poderá voltar a etapa anterior para alguma alteração como podemos observar
na Figura 1.
Figura 1. Modelo Seqüencial Linear [Michel Franco]
 Engenharia de Sistemas - É pela engenharia de sistemas que inicia o trabalho,
através de entrevistas será identificado quais requisitos da empresa serão
utilizados para a implementação do sistema, custos, técnicas pré estabelecidas e
prazos.
 Análise de Requisitos – Nesta etapa, o foco é fazer uma análise aprofundada de
todos os requisitos que serão utilizados no sistema em entrevistas com o cliente,
o analista deverá dominar todas estas informação e documentá-las.
 Projeto - A fase de projeto traduz todos os requisitos do software que avaliarão
suas qualidade antes de se iniciar a codificação; Essa fase é constituída em
quatro partes como estrutura de dados, arquitetura de software, detalhes de
procedimento e caracterização de interfaces.

Codificação - Este processo é onde será feita toda implementação do software.
 Teste - Nesta etapa todos os aspectos lógicos internos serão testados
garantindo que todas as funções estejam funcionando corretamente e, nos
aspectos funcionais externos, garantir que não haverá nenhum erro que
prejudicará o software final.

Manutenção - Ao entrar em funcionamento, o software poderá sofrer alguma
alteração, como novos sistemas operacionais ou uma solicitação de melhoria de
funcionalidades conforme a necessidade da empresa; Assim é possível efetuar
uma manutenção do software, sem a necessidade de um novo sistema.
3. Metodologia Ágil Scrum
A metodologia ágil SCRUM apenas estabelece conjuntos de regras e práticas de gestão
que devem ser adotadas para garantir o sucesso de um projeto. Centrado no trabalho em
equipe, melhora a comunicação e maximiza a cooperação, permitindo que cada um faça
o seu melhor e se sinta bem com o que faz, o que mais tarde se reflete num aumento de
produtividade. Englobando processos de engenharia; Esse método não requer nem
fornece qualquer técnica ou método específico para a fase de desenvolvimento de
software [Bissi 2007].
Essa metodologia teve sua primeira concepção pelo autor Jeff Sutherland em
1993, é uma técnica que estabelece regras para garantir um produto final do software
respeitando algumas normas de execução no que diz respeito ao Backlog, que são todas
as funcionalidades que devem ser desenvolvidas durante o projeto; Sprint, que é um
período inferior a 30 dias onde o projeto deve ser concluído e Scrum Meeting, que são
as reuniões onde será feito todo o planejamento.
Esta metodologia subdividiu-se em grupos que são conhecidos como equipas
que são formadas por (em média) 5 a 9 membros, dentre estas é escolhido um líder
conhecido como Scrum Master, é ele que conduzirá todas as reuniões e tomará todas as
decisões cabíveis sobre aquela equipa.
4. Desenvolvimento Rápido de Aplicação (RAD)
Desenvolvimento rápido de aplicativos (RAD) é um modelo de processo de
desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento
extremamente curto. O modelo RAD é uma adaptação de "alta velocidade" do modelo
sequencial linear no qual o desenvolvimento rápido é conseguido através da construção
baseada em componentes. Se os requisitos são bem compreendidos e escopo do projeto
é limitado, o processo de RAD permite que uma equipe de desenvolvimento para criar
um "sistema totalmente funcional" dentro de períodos de tempo muito curtos (por
exemplo, de 60 a 90 dias) [MAR91].
O modelo RAD foi registrado por James Martin em 1991 e é um processo de
desenvolvimento em curto prazo, utilizando apenas 3 meses no máximo para concluir
todas as fases de seu processo. O Modelo RAD é dividido em 5 fases como apresentado
na figura 2, estas fases são divididas em modelagem de negócios, modelagem de dados,
modelagem de processos, geração de aplicativos e testes e volume de negócios.
Figura 2: Modelo RAD [ISTQB Exam Certification]
 Modelagem de negócios - O fluxo de informações entre funções de negócio é
modelado em uma forma que responde às seguintes questões: Quais são as
informações impulsiona o negócio processo? Que informação é gerada? Quem
gera isso? Onde é que a informação ir? Quem processá-lo? [Pressman 2001]. O
foco da modelagem de negócio é entender todo o processo de desenvolvimento.
 Modelagem de dados - O fluxo de informação definido como parte da fase de
modelagem de negócios é refinado em um conjunto de objetos de dados que são
necessários para apoiar o negócio. As características (chamado atributos) de cada
objeto são identificadas e as relações entre esses objetos definidos [Pressman
2001]. O objetivo da modelagem de dados é identificar todo o processo que será
desenvolvido, todos os requisitos que serão utilizados

Modelagem de Processos - Os objetos de dados definidos na fase de modelagem
de dados são transformados para conseguir o fluxo necessário para implementar
uma função do negócio da informação. Descrições de processamento são criadas
para adicionar, modificar, excluir ou recuperar um objeto de dados [Pressman
2001]. Na Modelagem de Processos será feita toda a implementação.
 Geração de aplicativos - RAD pressupõe o uso de técnicas de quarta geração. Ao
invés de criar software usando terceira geração convencional, linguagens de
programação, o processo RAD trabalha a reutilização de componentes do
programa já existentes (quando possível) ou cria componentes reutilizáveis
(quando necessário) [Pressman 2001]. O diferencial da metodologia RAD é
reutilizar componentes existentes de outras implementações ou, se necessário a
criação de novos componentes que será implementado de uma forma que possa
ser reutilizável.
 Testes e volume de negócios - Uma vez que o processo de RAD enfatiza
reutilização, muitos dos componentes do programa já foram testados. Isso reduz
o tempo de teste em geral. No entanto, os novos componentes devem ser
testados e todas as interfaces devem ser plenamente exercidas [Pressman 2001].
Como o foco do RAD é a reutilizar códigos, muitos de seus códigos já estão
testados e com isso o foco dos testes será apenas em novas implementações.
5. Analise Comparativa
Ao fazer um estudo mais aprofundado sobre estes três modelos apresentados
anteriormente (Modelo Sequencial Linear, SCRUM e RAD), pode-se observar que
todos eles são divididos em etapas e grupos. O Modelo Sequencial Linear é um modelo
mais utilizado em projetos de longa duração onde será dividido em 6 fases e cada uma
delas é feita detalhadamente e seqüencialmente. A Metodologia Ágil SCRUM é um
método utilizado em empresas através de equipes comandadas por um Scrum Máster, e
cada uma destas equipes terá tarefas que deverão ser concluídas em um prazo
estabelecido. E por último, o modelo RAD, que é um método utilizado em processos de
curto prazo, o RAD é considerado uma adaptação em alta velocidade do modelo
sequencial linear, onde será dividido em apenas 5 fases e o seu desenvolvimento será
em menor tempo, em aproximadamente três meses.
6. Metodologia
O artigo foi realizado através de uma investigação científica. Alguns sites foram
utilizados como complemento para a pesquisa, pelo fácil acesso a um conteúdo amplo e
de maior acessibilidade.
7. Conclusão
A análise comparativa permitiu comprovar que os modelos utilizados nessa pesquisa são
considerados satisfatórios para um processo de software, uma vez que se encontram
dentro das normas estabelecidas para essa função, como divisão em etapas e grupos. O
modelo SCRUM tem como método equipes de desenvolvimento onde estas equipes
terão um líder conhecido como Scrum Master e este Scrum Master que tomará decisões
sobre aquele grupo. No modelo RAD constatou-se que o seu método é desenvolvido por
5 etapas e tem como objetivo chegar a um resultado em um curto prazo de no máximo 3
meses, pode-se considerar que o modelo RAD é uma forma contraída do modelo
cascata. Já o modelo sequencial linear pode ser considerado um ótimo modelo a ser
utilizado no desenvolvimento de software. Esse modelo apresenta uma maior
variabilidade de etapas em relação aos demais, e suas sequências são rigorosamente
seguidas para ter um melhor resultado.
Por fim é possível concluir que a empresa ao escolher o modelo sequencial
linear terá como beneficio uma maior segurança, e poderá acontecer uma menor
quantidade de erro em seu desenvolvimento devido ao seu critério de etapas
seqüencialmente e detalhadamente seguida.
Bibliografia
Bissi, W. (2007) “Scrum - Metodologia De Desenvolvimento Ágil”,
http://revista.grupointegrado.br/revista/index.php/campodigital/article/viewFile/312/1
46, acesso em 31/07/2013 às 13h22min
Ferreira, D.; Costa, F.; Alonso, F.; Alves, P.; Nunes, T., “SCRUM - Um Modelo Ágil
para
Gestão
de
Projetos
de
Software”,
http://paginas.fe.up.pt/~aaguiar/es/artigos%20finais/es_final_19.pdf,
acesso
em
31/07/2013 às 13h24min
Franco, M. “ Engenharia de Software”, http://www.engenhariae.com.br/guia-deengenharia/o-que-e-a-engenharia-de-software/, acesso em 31/07/2013 as 13:17
ISTQB Exam Certification, http://istqbexamcertification.com/what-is-rad-modeladvantages-disadvantages-and-when-to-use-it/, acesso em 31/07/2013 às 13h26min
Leite,
J.
C.
(2007)
“O
Modelo
Cascata”,
http://engenhariadesoftware.blogspot.com.br/2007/03/o-modelo-cascata.html, acesso
em 31/07/2013 às 13h17min
Martin, J. (1991) “Rapid Application Development”, Prentice-Hall
Messias,
W.
“Modelo
Sequencial
Linear”,
https://sites.google.com/site/itagespiritosanto/area-academica/fate---faculdadeateneu/sistema-de-informacao/modelo-sequencial-linear, acesso em 31/07/2013 às
13h21min
NOTA DE AULA da prof. Claudete Werner
Pressman, R. S, (2001) “Software Engineering, apractitioner’s approach”, Editora
McGraw-Hill.:
New
York,
NY,
5th
edição,
páginas
23-26-32-33,
http://iit.qau.edu.pk/books/Software%20Eng,%20Roger%20Presmen.pdf, acesso em
31/07/2013 as 13h16min