UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci...

5
UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco 1 , Claudete Werner 1 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

Transcript of UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci...

Page 1: UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci Taroco.pdf · UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco1, Claudete

UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS

ÁGEIS

Bruna Avanci Taroco1, Claudete Werner

1

1Universidade 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

Page 2: UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci Taroco.pdf · UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco1, Claudete

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

Page 3: UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci Taroco.pdf · UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco1, Claudete

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

Page 4: UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci Taroco.pdf · UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco1, Claudete

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.

Page 5: UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS …web.unipar.br/~seinpar/2013/artigos/Bruna Avanci Taroco.pdf · UMA ABORDAGEM SOBRE MODELOS DE PROCESSOS ÁGEIS Bruna Avanci Taroco1, Claudete

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-de-

engenharia/o-que-e-a-engenharia-de-software/, acesso em 31/07/2013 as 13:17

ISTQB Exam Certification, http://istqbexamcertification.com/what-is-rad-model-

advantages-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---faculdade-

ateneu/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