engenharia de software - desenvolvimento iterativo e incremental
DESCRIPTION
Trabalho para a disciplina de Engenharia de Software sobre desenvolvimento iterativo e incremental.TRANSCRIPT
Gustavo das Neves
O que é?• O desenvolvimento iterativo e incremental é um
processo de desenvolvimento cíclico
!
• Os 2 padrões mais conhecidos de sistemas iterativos de desenvolvimento são o RUP (Processo Unificado da Rational) e o Desenvolvimento ágil de software.
Por que foi criado?• Foi criado em resposta às fraquezas do modelo
em cascata, o mais tradicional.
Linhas básicas para direcionar a implementação e análise incluem:• Qualquer dificuldade no projeto, codificação e teste de uma modificação deve ser sinalizada
para que possa ser re-projetada ou recodificada.
• Modificações devem ser ajustadas facilmente em módulos isolados e fáceis de encontrar. Se não atendem a isso, algum re-projeto deverá ser necessário.
• Modificações de tabelas devem ser especialmente fáceis de fazer. Se qualquer modificação não é rápida e fácil de ser feita, indica-se a realização de um re-projeto.
• Modificações devem ser fáceis para serem feitas na forma de iterações. Se elas não são, haverá um problema básico tal como um projeto falho ou uma proliferação de correções.
• Correções devem normalmente ser permitidas por somente uma ou duas iterações. Correções devem ser necessariamente para evitar re-projeto durante uma fase de implementação.
• A implementação existente deve ser analisada freqüentemente para determinar quão bem estão sendo atingidos os objetivos do projeto.
• As ferramentas de análise de programa devem ser usadas sempre que necessário para ajudar na análise de implementações parciais.
• Reclamações do usuário devem ser solicitadas e analisadas para registrar as deficiências da implementação atual.
Base para algumas metodologias
• Extreme Programming
• Scrum
• Kanban
• Lean
• E outras
Quais as principais vantagens?
• Desenvolver software incrementalmente, permitindo aprender e corrigir as versões entregues anteriormente.
• Análise antecipada de riscos com a integração progressiva do sistema
• Melhor acomodação de solicitações de mudanças
• Melhor qualidade devido ao refinamento contínuo do produto
• Maior facilidade de aprendizagem e amadurecimento do processo
• Aumento da reusabilidade
Desvantagens• Durante o processo de desenvolvimento necessita-se adaptar
e refinar o sistema, com isso pode ser que no final saia totalmente diferente da ideia original;
• Pode acontecer a continuação do sistema e aparacição de muitos requisitos novos, esse sistema nunca irá terminar. Isso é chamado de aumento de escopo;
• Gerentes que estão acostumados com a forma linear do desenvolvimento de um software pode ter alguns problemas na hora de ir para uma forma mais flexível;
• Inexperiência com a forma de trabalhar do modelo Iterativo pode levar a problemas posteriores, por isso é necessário certo conhecimento para começar a usar esse modelo;
As fases do processo
A Concepção identifica…
• Escopo do projeto
• Riscos
• Requisitos funcionais e não-funcionais
A elaboração cria a arquitetura…
A construção transforma tudo em código e testes (sim, testes)
E a transição coloca tudo em ambiente de produção à medida que são entregues.
Começa com um planejamento e termina com entregas entre as
Iterações no RUP
Como funciona mesmo?