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