A Metodologia de desenvolvimento de software
Por: Josimar Santana • 18/9/2015 • Trabalho acadêmico • 3.176 Palavras (13 Páginas) • 251 Visualizações
Instituto Federal do Norte de Minas Gerais – Campus Januária
Metodologias Ágeis e Classicas
Januária
Junho 2014
Instituto Federal do Norte de Minas Gerais – Campus Januária
Metodologias Ágeis e Clássicas
Artigo apresentado como requisito
para a obtenção de nota parcial
na Disciplina Gerencia de Software
Ministrada Pelo Prof. Danilo
Januária
Novembro 2014
Resumo: Este artigo traz uma breve explicação entre as metodologias tradicionais para desenvolvimento de software e as metodologias ágeis. Uma das metodologias citadas é a Extreme Programming (XP), uma metodologia ágil muito usada, dando ênfase em suas principais características são ideais para projetos que devem ter um desenvolvimento rápido e que podem ter requisitos alterados constantemente pelos clientes, e o modelo Clássico ou Sequencial. É passada também uma ideia qualidade que se mostra intuitiva; mas, quando examinado de forma mais complexa, o conceito se revela complexo. Definir qualidade para estabelecer objetivos é, assim, uma tarefa menos trivial do que aparenta a princípio.
Palavras-Chave: Metodologias Ágeis, Extreme Programming, Modelo Clássico
Sumário
Lista de Figuras .......................................................................................................................... 5
1. Introdução ............................................................................................................................. 6
2. Processos de Software .......................................................................................................... 6
3. Qualidade e requisitos .......................................................................................................... 7
4. Metodologias Tradicionais .................................................................................................... 8
4.1 Modelo Clássico .................................................................................................................. 8
5. Metodologias Ágeis ............................................................................................................... 9
5.1 Extreme Programming ........................................................................................................ 10
6. Desafio Futuro ....................................................................................................................... 12
Conclusão .................................................................................................................................. 13
Referências ................................................................................................................................ 14
Lista de Figuras
Figura 1 ........................................................................................................................................9
1. Introdução
Metodologias ágeis têm sido identificadas como uma alternativa às abordagens tradicionais para o desenvolvimento de software. As metodologias tradicionais, conhecidas as vezes como pesadas ou orientadas a planejamentos, devem ser aplicadas em momentos em que os requisitos do sistema estão estáveis e requisitos futuros são previsíveis. Entretanto, em projetos em que há muitas mudanças, em que pode haver alterações nos requisitos, onde pode-se refazer pequenas partes dos códigos sem problemas, as equipes com poucos integrantes, com pequenos prazos para entrega e a agilidade no desenvolvimento é fundamental, não pode haver requisitos estáticos, necessitando então de metodologias ‘ágeis’. Além disso o ambiente das organizações é dinâmico, assim exigindo o mesmo dos requisitos.
Processos orientados a documentação para o desenvolvimento de software são, de certa forma, fatores que limitam os desenvolvedores e muitas organizações não possuem recursos ou inclinação para processos pesados de produção de software. Por esta razão, as organizações de pequenos porte acabam por não usar processo algum. Isto pode levar a efeitos não esperados na qualidade do produto final, além de dificultar a entrega do software nos prazos e custos predefinidos.
2. Processos de Software
Um processo de software (ou metodologia de desenvolvimento de software) é um conjunto de atividades e resultados associados que auxiliam na produção de software. Dentre as várias atividades associadas, existem por exemplo a análise de requisitos e a codificação. O resultado do processo é um produto que reflete a forma como o processo foi conduzido.
Embora existam vários processos para o desenvolvimento de software, existem atividades fundamentais comuns a todos eles [Sommerville (2003)]: Especificação de Software: definição das funcionalidades (requisitos) e das restrições do software. Geralmente é uma fase em que o desenvolvedor conversa com o cliente para definir as características do novo software.
Especificação de Software: definição dos requisitos e das restrições do software. Uma fase em que o desenvolvedor conversa com o cliente para definir as características do software a desenvolver.
Projeto e Implementação de Software: o software é feito de acordo com as especificações. Nesta fase são propostos modelos através de diagramas, e estes modelos são implementados em alguma linguagem de programação.
Validação de Software: o software é validado para garantir que todas as funcionalidades especificadas foram implementadas.
Evolução de Software: o software precisa de evolução para continuar sendo útil ao cliente.
Muitas organizações constroem o software sem usar nenhum processo. Geralmente isso ocorre porque os processos tradicionais não são adequados para os tipos de organizações. Em particular, as organizações pequenas e médias não possuem recursos suficientes para adotar o uso de processos que exigem muito. Por esta razão, muitas organizações não utilizam nenhum processo. O resultado desta falta do uso de sistema na produção de software é o nível baixo de qualidade do produto final, além de dificultar a entrega do software nos prazos e custos predefinidos e inviabilizar a futura evolução do software.
...