Gestão de Projetos e Ciclos de Vida de Software
Atividades: Parte do projeto que acontece em determinado período (depende da anterior).
Marco: Finalização de uma atividade.
Precursor: Evento ou conjunto que deve ocorrer antes da atividade começar (3 relações). TT: as duas acabam juntas.
Métodos Ágeis: XP (Extreme Programming)
- Coragem
- Planning Game
- Releases frequentes
- Metáfora do sistema
- O mais simples possível
- Testar antes
- Refactoring
- Pair programming
- Integração contínua
- Semana de 40 horas
- Cliente sempre presente
- Padrões de codificação
Um ciclo de vida de software (CVS) vai desde o início de um conceito para um produto até quando ele deixa de ser utilizado.
Existem 4 tipos mais conhecidos de CVS, são eles: Cascata, Incremental, Prototipação e Espiral.
Cascata: Descreve uma sequência de atividades no ciclo de vida de um software; começa com a exploração de conceitos e segue até a substituição do mesmo.
Vantagens: Facilita o gerenciamento do projeto, facilitando também a documentação das etapas.
Desvantagens: O cliente demora para obter retorno e o modelo não deixa claro as intenções do projetista de sistemas.
Incremental: Também é feito por etapas, mas o que o diferencia do modelo cascata é que não espera uma etapa ser concluída 100% para se iniciar outra. A partir do momento que já está projetada uma parte, ela já começa a ser produzida, testada e entregue ao cliente como parte do software. As funções mais simples são implementadas primeiro, criando assim uma primeira versão do produto final. O desenvolvedor sempre trabalha com a versão n + 1, ou seja, enquanto a versão n esteja em operação, ele estará trabalhando para melhorar a mesma.
Prototipação: Tem como ponto principal o rápido desenvolvimento do software. Funciona através de protótipos do projeto e exige constante interação com o cliente. Esses protótipos são formados para obter informação das principais partes do projeto, de modo que, ao término do produto, essas etapas não influenciem de modo negativo no resultado final.
Vantagens: Reduz as incertezas do cliente, pois ele terá um modelo do projeto.
Desvantagens: Se o protótipo for muito complexo, torna-se inviável projetá-lo.
Espiral: Ele envolve todos os pontos positivos dos demais, acrescentando um item muito importante chamado de análise de riscos. Parte do princípio de que todas as etapas passem pelo mesmo caminho: Planejamento, Análise de Riscos, Engenharia e Avaliação do Usuário. É um modelo evolutivo e exige 100% de interação do cliente com os desenvolvedores do projeto.
Vantagens: Compromisso assumido de ambas as partes e possibilidade de abordar o projeto se apresentar alto risco.
Desvantagens: O projeto pode não ter fim (o cliente influenciará muito no desenvolvimento, podendo tornar o projeto interminável).