Buscar

3 - Modelos de ciclo de vida e processos de desenvolvimento

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
2. Modelos de ciclo de vida e processos de desenvolvimento
	2.1 O ciclo de vida em cascata 2.2 O ciclo de vida evolucionário
	2.3 Prototipagem
	2.4 Modelo espiral
	2.5 Métodos de desenvolvimento
	2.6 Métodos de quarta geração e novos paradigmas
	2.7 O exemplo do RUP
Objetivo: mostrar os modelos de desenvolvimento de software e os métodos de desenvolvimeto para que se esclareça a forma como os projetos eram e são desenvolvidos
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
O estudo e a sistematização do processo de desenvolvimento de software, ou seja, a ES, requer que se conheçam as características do produto desejado e da tecnologia que será utilizada
A partir dela, surgiram questões relacionadas às práticas e ao perfil do profissional de informática e à visibilidade do projeto
Práticas
Pergunta: Como vocês estão realizando o trabalho de construção do sistema? (Yourdon)
Respostas dadas: sobre uma ferramenta ou uma marca
Tais respostas refletem o fracasso de construção do sistema que não leva em consideração melhores práticas:
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Gerenciamento de risco
Especificação
Inspeção e revisão de pares
Cronogramento e rastreamento com métricas
Rastreamento de defeitos e controle de qualidade
Especificações de hardware e software
Responsabilidade gerencial
Visibilidade
Perfil do profissional envolve habilidades
Comunicação
Capacidade de análise
Conhecimento da atividade do usuário
Capacidade de negociação
Administração de projetos
Conhecimento técnico
 funções específicas para analista, projetista, programador
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Visibilidade
Como um modelo de ciclo de vida contempla o gerenciamento de software?
Através de um método que permita ver o progresso ou a falta de progresso em um projeto
Precisamos então entender esses modelos?
Por quê?
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Todo processo de desenvolvimento é orientado por modelos de ciclo de vida
As funções primárias são:
Determinar as fases
Determinar a ordem das atividades e a atividade de cada etapa
Estabelecer critérios para a transição das fases
O estudo do desenvolvimento trouxe novas sugestões
O mais primitivo foi o “caótico”, artesanal, “se colar colou”, codificar e consertar, com um foco na programação
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.1 O CICLO DE VIDA EM CASCATA
A complexidade e o tamanho dos sistemas ocasionou sugestões mais focadas em sistemas do que em programas
A primeira dessas sugestões foi baseada na engenharia de sistemas: o modelo em cascata
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Análise
Requisitos do sistema
Domínio do problema
Requisitos e modelagem conceitual documentados para o usuário
Projeto
Vários passos com quatro atributos:
Estrutura de dados
Arquitetura de software
Detalhe procedural
Projeto da interface
O documento especificação de projeto é baseado na especificação de requisitos
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Construção
Codificação
Avaliação
Inspeção
Walkthrough
Prova formal
Testes
Os testes devem ser devidamente planejados
PERGUNTA: Quando o sistema é entregue ao usuário?
após resultado satisfatório dos testes, mas pode haver erros
Observados pelo usuário
De adaptação ao ambiente
De desempenho
Manutenção
Modificações devido a erros, adaptação e desempenho
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
O ciclo de vida em cascata ou “clássico” é o paradigma mais antigo e o que mostrou maior evolução até então
Desvantagens
Os projetos reais raramente seguem o fluxo sequencial do modelo
Há necessidade de iterações
É difícil declarar todas as exigências no início
Há incerteza natural nos projetos
O cliente precisa de muita paciência
Há problemas terríveis em erros não previstos
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.2 CICLO DE VIDA EVOLUCIONÁRIO
Expansão gradativa com comportamentos do software
É variante do “cascata” e o projeto foi decomposto em físico e lógico
Viabilidade – é viável?
Requisitos – ok?
projeto – concluído?
codificação – testado?
implantação – viável?
manutenção – problemas?
lógico
físico
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.3 PROTOTIPAGEM
Forma de desenvolvimento incremental com quatro tipos
Ilustrativo (telas)
Simulado (acesso a banco de dados)
Funcional (subconjunto limitado)
Evolucionário (começa pequeno e cresce) – não descartável
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
O que fazer com um protótipo quando ele identificar os requisitos de software?
Desvantagens
O cliente pode ver qualquer protótipo como uma versão de trabalho do software
O desenvolvedor se familiariza com algumas opções de implementação e faz concessões para entregar o produto rapidamente
A questão é se se deve planejar antecipadamente a construção de algo que se vai jogar fora ou prometer entregar isso ao cliente
Vale a pena defender a honestidade com o cliente?
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Após o modelo evolucionário e de prototipação surgiram outros variantes
Ciclo de vida com reutilização
Ciclo de vida com síntese automática
Modelos de fusão…
… até o surgimento do que hoje se considera um METAMODELO
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.4 MODELO ESPIRAL
Baseado em processos e níveis de risco
Cíclico
Pode ser considerado incremental
Os riscos levam em conta “prosseguir” / “não prosseguir”
O fluxo ao redor da trajetória em espiral leva ao desenvolvimento mais completo distribuído em quatro quadrantes
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
 2.5 MÉTODOS DE DESENVOLVIMENTO
 A tabela abaixo resume alguns
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.6 MÉTODOS DE QUARTA GERAÇÃO E NOVOS PARADIGMAS
O modelo do ciclo de espiral
é considerado um modelo que engloba os demais e os seus quadrantes envolvem os outros paradigmas
Planejamento
Análise / Avaliação das alternativas / riscos
Desenvolvimento / Engenharia de software
Avaliação do cliente
Apesar disso tudo, ainda há técnicas de quarta geração e outras formas de combinação de paradigmas que podem não ser contempladas no ciclo de espiral…
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Técnicas de quarta geração (4GT)
Abrangem um amplo conjunto de ferramentas de software que possibilitam que o desenvolvedor especifique alguma característica do software em um nível elevado
Têm desenvolvido bastante mas continuam dependentes do diálogo cliente-desenvolvedor
Para pequenas aplicações é possível passar diretamente da etapa da coleta de exigências para a implementação usando um linguagem de quarta geração (4GL)
O uso de 4GL sem planejamento ocasiona os mesmos problemas que ocorrem nos enfoques convencionais
Coleta de requisitos
Estratégia de projeto
Implementação 4GL
Teste
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Prós
Redução no tempo de desenvolvimento
Produtividade aumentada
Contras
Não são tão fáceis quanto se imagina
O código produzido é ineficiente
A manutenibilidade é questionável
Situação atual
São mais voltadas para aplicações comerciais, mas já há uso para aplicações de engenharia e de tempo real
Tempo reduzido para aplicações pequenas e intermediárias
Para grandes projetos, necessita-se tanto ou mais análise, planejamento e teste
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Combinação de paradigmas
Além do espiral, qualquer paradigma pode constituir uma base sobre a qual outros paradigmas são integrados, incluindo 4GT
Não há necessidade de ser dogmático em relação a paradigmas para a engenharia de software
a natureza da aplicação deve ditar a abordagem a ser tomada
Contudo, para uma prototipagem evolutiva, algumas eventos podem ser priorizados
O usuário é incapaz ou não deseja examinar modelos abstratos em papel, como os diagramas e fluxos de dados.
O usuário é incapaz ou não deseja articular seus requisitos de alguma forma e só pode determinar seus requisitos por meio de um processo de tentativa e erro.
O sistema deverá ser em-linha, com atividades com tela completa em terminal, ao contrário dos sistemas de edição, atualização e relatório em lote.
O sistema não requer a especificação de muitos detalhes em algoritmos. 
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
2.7 O EXEMPLO DO RUP
O RUP (Rational Unified Process) é um framework genérico para processos de desenvolvimento de software orientado à arquitetura, funcionalidade, iteração e incrementação, utilizando UML para projeto e documentações
A sua história está relacionada a métodos aplicados em empresas e suas modificações, realizadas por estudiosos de métodos de desenvolvimento e por outras instituições, incorporando ainda elementos adotados por outros métodos
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
O RUP e o processo iterativo
O RUP usa uma abordagem iterativa que é uma sequência de passos incrementais ou iterações
Cada iteração inclui uma ou mais das disciplinas de desenvolvimento (requisitos, análise, projeto, implementação etc)
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
A abordagem iterativa tem se mostrado superior por várias razões
Envolve mudança de requisitos
Integração não se torna um “big bang” no final do projeto
Riscos são normalmente descobertos ou direcionados a uma solução durante as fases iniciais
Gerenciamento tem meios de fazer mudanças táticas do produto
Reuso é facilitado
Defeitos podem ser corrigidos em sucessivas iterações
É melhor para um projeto pessoal e os membros da equipe aprendem durante o processo
O desenvolvimento é refinado e melhorado no decurso do projeto
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
O processo do RUP tem duas estruturas ou dimensões
Estrutura dinâmica – representada pela dimensãa horizontal ou dimensão de tempo do processo (fases)
Há tantas iterações quanto possíveis para alcançar os objetivos daquela fase suficientemente, mas não MAIS
Se os objetivos não forem alcançados dentro da fase planejada, outra iteração deve ser adicionada à fase
Para evitar atrasos, deve-se ter certeza que cada iteração é formatada focada APENAS no que é NECESSÁRIO para alcançar os objetivos daquela fase
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Atividades
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Estrutura estática – elementos do processo (atividades - COMO, disciplinas/workflows - QUANDO, artefatos – O QUE, e papéis - QUEM) são logicamente agrupados
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Cada ciclo tem quatro fases:
Concepção – escopo e viabilidade econômica
Compreensão do problema e da tecnologia
Casos de uso críticos
Critérios de sucesso, avaliação de riscos e estimativas
Elaboração – identificação dos principais riscos e arquitetura
Plano de projeto
Definição de requisitos em casos de uso
Construção – iteração até o final
Desenvolvimento
Descrição dos critérios de aceitação
Testes conjuntos e manuais de aceitação
Transição - disponibilidade de uma versão
Dispõe o sistema, treinamento e verificação da satisfação
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Iterações com fluxos de trabalho organizados em atividades
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
As atividades são divididas em um bloco de suporte e outro de engenharia de software
Atividades de Engenharia de sofware:
Modelagem do negócio – sociabilização da estrutura, dinâmica e modelo para que usuários e equipe de desenvolvimento tenham mesma visão organizacional
Requisitos – Busca, compreensão e requisito dos sistemas e gestão de escopo e mudanças
Análise e projeto – transformação dos requisitos em especificações técnicas
Implementação – criação dos programas segundo as especificações técnicas
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Testes – testes de conjunto e integração e validação
Entrega – empacotamento, distribuição, instalação e treinamento
Atividades de suporte:
Gestão de configuração – gerência de todos os artefatos
Gestão de projeto – planejamento, acompanhamento e gerenciamento dos riscos
Ambiente – Organização do ambiente de trabalho e da configuração do RUP
* - Lafayette
B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Conceitos fundamentais do RUP
Artefato
Informação tangível que é utilizada, criada e modificada pelos trabalhadores
Atividade
Unidade tangível de trabalho realizado por um trabalhador em uma rotina, implicando uma responsablidade definida, produzindo um resultado que pode ser avaliado a partir de entradas conhecidas
Modelo
Completa descrição de um sistema a partir de uma perspectiva particular, da criação de um modelo
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Atores
Clientes, usuários e analistas
Funcionalidade
Baseada em casos de uso
* - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – Modelos de Ciclo de Vida e Métodos de Desenvolvimento COINFO – CEFET-PB 
Espírito do RUP
Ataque os riscos principais cedo e continuamente… ou eles atacarão você!
Assegure que você entrega valor ao seu cliente!
Permaneça focado no software executável!
Acomode mudanças cedo no projeto!
Delinear um arquitetura executável logo cedo!
Construa seu sistema com componentes!
Trabalhe junto como um único grupo!
Faça da qualidade um meio de vida e não uma reflexão para a posteridade!

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais