1. Ciclo de Vida Clássico
1.1. Cascata (Modelo Clássico)
1.1.1. Modelo sistemático e sequencial
1.1.2. Move-se somente quando a fase anterior está completa.
1.1.3. Fases
1.1.3.1. Análise de Requisitos
1.1.3.2. Projeto
1.1.3.3. Implantação
1.1.3.4. Teste
1.1.3.5. Manutenção
1.1.4. Desvantagens
1.1.4.1. Problemas reais não seguem um fluxo tão rigoroso
1.1.4.2. Não há versão pronta antes da conclusão do projeto
1.1.4.3. Estouro de prazo e orçamento
1.2. Cascata com Prototipação
1.2.1. Terá as mesmas fases que o cascata clássico.
1.2.2. Assegura que os requisitos do sistema sejam bem atendidos.
1.2.3. Tipos de Protótipos
1.2.3.1. Evolutivo
1.2.3.1.1. Desenvolvido via programação para ser usado de base para o produto final, sendo idêntico ao produto final.
1.2.3.2. Descartável
1.2.3.2.1. Desenvolvido rapidamente via programação, com baixa qualidade de código. Só serve para avaliar os requisito, em seguida será jogado fora.
1.2.3.3. Baixa Fidelidade
1.2.3.3.1. Desenvolvido em papel ou em ferramentas gráficas, sem se preocupar com a cara do produto final.
1.3. Modelo Iterativo e Incremental
1.3.1. Dividir para conquistar
1.3.2. Priorização das funcionalidades mais críticas na primeira iteração
1.3.3. Iterativo
1.3.3.1. O sistema de software é desenvolvido em vários passos similares.
1.3.4. Incremental
1.3.4.1. A cada passo, o sistema é estendido com mais funcionalidades.
1.3.5. Iterativo e Incremental
1.3.5.1. Junção dos dois métodos
1.4. Modelo em V
1.4.1. Fases do cascata + testes em cada fase
1.4.2. Entrega do software apenas no fim de todo o processo.
1.4.3. Fases
1.4.3.1. Requisitos + Teste de Sistema
1.4.3.2. Projeto de Arquitetura + Teste de Integração
1.4.3.3. Projeto Detalhado + Teste de unidades
1.4.3.4. Implementação
1.5. Espiral
1.5.1. Preocupação explícita com os riscos do projeto de desenvolvimento
1.5.2. Cada volta no espiral é chamada de loop que representa uma fase
1.5.3. Engloba prototipação
1.5.4. Fases
1.5.4.1. 1 - Planejamento
1.5.4.1.1. O projeto é revisado e a próxima fase da espiral é planejada
1.5.4.2. 2 - Análise de Risco
1.5.4.2.1. Os riscos são avaliados e são adotadas as atividades para reduzir os riscos principais
1.5.4.3. 3 - Engenharia ou Desenvolvimento
1.5.4.3.1. É escolhido um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genéricos.
1.5.4.4. 4 - Avaliação do Cliente / Definição dos Objetivos
1.5.4.4.1. Identificam-se os objetivos específicos da próxima fase.
1.6. RAD
1.6.1. Divide um projeto grande em vários projetos e coloca uma equipe para cada subprojeto.
1.6.2. Iterativo
1.6.3. Fases
1.6.3.1. Comunicação
1.6.3.1.1. Entender os problemas do negócio(requisitos) com o cliente
1.6.3.2. Planejamento
1.6.3.2.1. Essencial para paralelismo de equipes
1.6.3.3. Modelagem
1.6.3.3.1. - de negócio; - de dados; - de processo
1.6.3.4. Construção
1.6.3.4.1. uso de componentes
1.6.3.5. Implantação
1.6.3.5.1. base para iterações subsequentes
1.6.4. Desvantagens
1.6.4.1. Requer recursos humanos para iterações subsequentes
1.6.4.2. Possui grandes riscos
1.7. Prototipação Evolucionária
1.7.1. Permite criar um modelo de software que será construído.
1.7.2. Mecanismo de identificação de requisitos
1.7.3. Necessário refatoração de tempos em tempos
1.7.4. Fases
1.7.4.1. Análise
1.7.4.2. Projeto
1.7.4.3. Codificação
1.7.4.4. Teste
2. Processo de Desenvolvimento de SFTW
2.1. Processo de Software
2.1.1. Análise de Requisitos
2.1.1.1. Projeto de Sistemas
2.1.1.1.1. Testes
2.1.2. Definição
2.1.2.1. é formado por um conjunto de passos(atividades), parcialmente ordenados, relacionados com aretfatos, pessoas, reucursos, estruturas organizacionais e restrições, com objetivo de produzir e manter os produtos de software requeridos.
2.1.3. Artefatos
2.1.3.1. Qualquer subproduto produzido durante o desenvolvimento do software.
2.1.4. Papéis
2.1.4.1. Analista de Sistema
2.1.4.2. Programador/ dEsenvolvedor
2.1.4.3. Testador
2.1.5. Recursos
2.1.5.1. Tudo que será utilizado na execução de uma tarefa
2.1.5.1.1. Consumíveis
2.1.5.1.2. Não Consumíveis
2.1.6. Restrições
2.1.6.1. Sobre como as atividades podem ser executadas, estabelecendo limites.
2.2. Fases de Desenvolvimento
2.2.1. Análise de Requisitos
2.2.1.1. Compreensão das necessidades e desejos do usuário, quanto ao software exigido.
2.2.2. Requisitos do Négocio
2.2.2.1. Uma condição ou necessidade requerida para que o software cumpra com o seu objetivo.
2.2.3. Projeto de Software
2.2.3.1. Elaboração de toda a criação do software, indicando uma solução que atenda as necessidades do usuário e como será desenvolvido.
2.2.4. Construção do Código
2.2.4.1. Trata da programação do software
2.2.5. Testes
2.2.5.1. Execução do programa em um ambiente e verificação da saída produzida.
2.2.6. Implantação
2.2.6.1. Colocar em produção; treinar usuários.
2.3. O que são Modelos?
2.3.1. Representação abstrata, conceitual, gráfica ou visual para analisar, simular alguma coisa
2.3.2. Modelagem de Software
2.3.2.1. É a atividade de construir modelos que expliquem as características ou comportamento de um software ou sistema de software.
2.3.2.2. Linguagem utilizada
2.3.2.2.1. UML( Linguagem de Modelagem unificada)
2.4. Garantia de Qualidade
2.4.1. Assegurar que todas as fases foram testadas e inspecionadas.
2.4.2. Homologação
2.4.2.1. A homologação é uma comprovação, pelo cliente de software que atende aos critérios de aviso prévio com o cliente.
2.4.3. Inspeção
2.4.3.1. Trazer alguém mais experiente para conferir o programa.
2.4.4. Verificação
2.4.4.1. Conferir se há algum bug(erro) no programa.
2.5. Manutenção de SFTW
2.5.1. Corretiva
2.5.1.1. Correção de erros grandes por alguma falha no processo de desenvolvimento de software.
2.5.2. Evolutiva
2.5.2.1. Evoluções no software em decorrência da evolução do modelo de negócio da organização.
2.5.3. Adaptativa
2.5.3.1. Mudanças obrigatórias que o Software deve sofre em decorrência de leis, regulamentos ou ambiente legal do software.
2.5.4. Preventiva
2.5.4.1. Mudanças para evitar futuros problemas no software.
3. RUP
3.1. Elementos
3.1.1. Papéis
3.1.1.1. Define a função de cada um.
3.1.2. Atividades
3.1.2.1. Tarefa executada ao exercer determinado papel.
3.1.3. Artefatos
3.1.3.1. Pedaço de informação que é produzido, modificado ou utilizado em um processo
3.1.4. Fluxo de Trabalho
3.1.4.1. Sequências de trabalho executadas para a produção de um resultado importante para o projeto.
3.2. Características
3.2.1. É dirigido por casos de uso
3.2.1.1. O conjunto de casos de uso deve definir e esgotar todas as funcionalidades possível do sistema.
3.2.2. É centrado na arquitetura
3.2.2.1. As funcionalidades aprendidas ao elaborar diversos casos de uso devem ser integradas a esta arquitetura de forma incremental.
3.2.3. É iterativo e incremental
3.2.3.1. desenvolvimento baseado em ciclos iterativos de duração fixa, onde a cada iteração a equipe incorpora à arquitetura as funcionalidades para realizar os casos de uso.
3.2.4. É focado em riscos
3.2.4.1. Prioriza os casos de uso mais críticos nos primeiros ciclos iterativos.
3.2.5. O fluxo de trabalho pode ser customizado
3.2.5.1. Ele pode ser adaptado de acordo com o ambiente e o tipo de software.
3.2.6. Processo Prescritivo
3.2.7. Cada fase deve passar pelas 9 disciplinas
3.2.8. Dentro de cada fase pode haver mais uma iteração
3.3. Fases
3.3.1. Concepção
3.3.1.1. Define o escopo e estabelecer uma cooperação entre todos os envolvidos.
3.3.2. Elaboração
3.3.2.1. Análise de sistema e definição da arquitetura do sistema.
3.3.3. Construção
3.3.3.1. Desenvolvimento iterativo e incremental do produto
3.3.4. Transição
3.3.4.1. Atividades para a entrega do software
3.4. Disciplinas
3.4.1. 1 - Modelagem
3.4.1.1. Ter entendimento do ambiente, identificar problemas e melhorias, garantir um consenso entre todos os envolvidos, além de gerar os requisitos.
3.4.2. 2 - Requisitos
3.4.2.1. Descrever o método baseado em casos de uso para identificar requisitos.
3.4.3. 3 - Análise e Projeto
3.4.3.1. Descrever as várias visões da arquitetura.
3.4.4. 4 - Implementação
3.4.4.1. Leva em consideração do Software, o teste da unidade e a integração.
3.4.5. 5 - Teste
3.4.5.1. Descrever casos de teste, procedimentos e medidas para acompanhamentos de erros.
3.4.6. 6 - Gerenciamento da Configuração
3.4.6.1. Consiste nas atividades relacionadas a finalização e entrega do software.
3.4.7. 7 - Implantação
3.4.7.1. Controla as modificações e mantém a integridade dos artefatos do projeto.
3.4.8. 8 - Gerenciamento de Projeto
3.4.8.1. Descreve várias estratégias para o trabalho com um processo iterativo.
3.4.9. 9 - Ambiente
3.4.9.1. Abrange a infraestrutura necessária para o desenvolvimento do sistema.