Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Engenharia de Software Profa. Priscila Facciolli 1 Tópicos 1- Elementos da Engenharia de SW; 2- O que é ciclo de vida de SW; 3- Ciclo de Vida Clássico - Cascata; 4- Ciclo de Vida Prototipação; 5- Ciclo de Vida Espiral. 6- Ciclo de Vida Incremental. 2 Conjunto de etapas que envolve métodos ferramentas procedimentos Essas etapas são conhecidas como componentes de CICLO DE VIDA DE SOFTWARE ou Processo de Software Engenharia de Software Descrevem como um software deve ser desenvolvido. Basicamente definem a ordem global das atividades envolvidas em um contexto de projeto de software e propõe uma estratégia de desenvolvimento que pode ser aplicada a um determinado contexto de projeto de software. Ciclos de Vida de Software Para escolha de um Ciclo de Vida de Software: Atentaremos para: natureza do projeto e da aplicação; métodos e ferramentas a serem usados; controles e produtos que precisam ser entregues. Ciclos de Vida de Software Tipos de Ciclos de Vida de SW: Waterfall (cascata) Evolucionário: Espiral, Prototipação Incremental RAD Codifica-remenda Baseado em Componentes, Baseado em Métodos Formais Processo Unificado RUP Praxis Cleanroom (Sala Limpa) Iconix Desenvolvimento Ágil Diferenças entre os Ciclos de Vida de Software Enfoque dado pelo modelo. Por exemplo, no Modelo Cascata o enfoque é dado na documentação e no Modelo Espiral o enfoque é dado nos riscos; Estratégia de desenvolvimento. Define a disposição das atividades que deverão ser executadas para atingir um objetivo em um contexto de projeto de desenvolvimento de software. Ex.: Linear (uma atividade após a outra) como no ciclo de vida Cascata puro ou iterativa (um conjunto de atividades é repetida várias vezes até atingir o seu objetivo) como nos modelos incrementais. Em Paralelo, como a prototipação, ou reunir as características de modelos de ciclo de vida lineares e iterativos. Ciclo de Vida Clássico (Cascata) Modelo mais antigo e o mais amplamente usado da engenharia de software; Modelado em função do ciclo da engenharia convencional; Requer uma abordagem sistemática, Seqüencial ao desenvolvimento de software Ciclo de Vida Clássico (Cascata) Consiste na execução das atividades de desenvolvimento de software em uma seqüência ordenada. Desta forma, a passagem para determinada atividade exige como critério a finalização da atividade imediatamente anterior. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Cascata Atividades do Ciclo de Vida Clássico/Cascata ANÁLISE E ENGENHARIA DE SISTEMAS envolve a coleta de requisitos em nível do sistema, pequena quantidade de projeto e análise de alto nível Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção visão essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados) Atividades do Ciclo de Vida Clássico/Cascata ANÁLISE DE REQUISITOS DE SOFTWARE processo de coleta dos requisitos é intensificado e concentrado especificamente no software deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos os requisitos (para o sistema e para o software) são documentados e revistos com o cliente Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico/Cascata PROJETO tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie se concentra em 4 atributos do programa: Estrutura de Dados, Arquitetura de Software, Detalhes Procedimentais e Caracterização de Interfaces Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico/Cascata CODIFICAÇÃO tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico/Cascata TESTES Concentram-se: nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico/Cascata MANUTENÇÃO o software deverá sofrer mudanças depois que for entregue ao cliente Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho Vantagens no Ciclo de Vida Clássico (Cascata) É empregado quando se domina o tipo de software que se construirá; Domínio nas tecnologias envolvidas (métodos, técnicas e ferramentas) Desvantagens com o Ciclo de Vida Clássico / Cascata Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe; Logo no início é difícil estabelecer explicitamente todos os requisitos; O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento Desvantagens com o Ciclo de Vida Clássico Pode não permitir a visão real do processo em andamento; Cria dois universos, um universo se refere ao processo em andamento e o outro universo se refere às mudanças que deveriam ser aplicadas ao produto, mas não as são pelo fato do modelo não incorporar em sua dinâmica a revisão de etapas já concluídas durante o seu andamento; 3. Não é possível mensurar. O fato de normalmente não permitir uma visão real do processo também implica em uma visão irreal para a aplicação de métricas. Atividades não concluídas são rotuladas como concluídas. Embora o Ciclo de Vida Clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software Clássico / Cascata (comentários) Prototipação Processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído; Idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software; Apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes. Tipos de Prototipação Prototipação Evolutiva; Prototipação Incremental; Prototipação Rápida Descartável. fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Prototipação Evolutiva Atividades da Prototipação Evolutiva Obtenção dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais Projeto Rápido: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída) fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Construção Protótipo: implementação do projeto rápido Avaliação do Protótipo: cliente e desenvolvedor avaliam o protótipo Atividades da Prototipação Evolutiva fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. Ocorre neste ponto um processo de iteração que pode conduzir a 1a. atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito. Atividades da Prototipação Evolutiva fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Construção Produto: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade. Atividades da Prototipação Evolutiva fim início construção produto refinamento protótipo avaliação protótipo construção protótipo projeto rápido obtenção dos requisitos Problemas com a Prototipação Evolutiva Cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a idéia que a versão final do software vai ser construída e "força" a utilização do protótipo como produto final. Problemas com a Prototipação Evolutiva Dsenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. Depois de um tempo ele familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final. Prototipação Incremental A prototipação incremental também é conhecida como Entrega por estágio, adota o desenvolvimento por estágios. Os requisitos mais importantes são desenvolvidos primeiro e os demais são acrescentados em outras versões; Ao final de cada estágio, uma versão operável é entregue e incrementada aos demais estágios. Prototipação Incremental Vantagens da Prototipação Incremental Redução de riscos; Maior visibilidade sobre o processo; Problemas podem ser descobertos logo no início; Auxilia na estimativa de tempo do projeto; Desvantagens na Prototipação Incremental Exigência de grande esforço na atualização da documentação; Planejamento de estágios anteriores bem feitos; Prototipação Rápida Descartável Descarta, não usa protótipos; Vantagens e Desvantagens: Prototipação Rápida Descartável Vantagens: Redução de riscos; Maior conhecimento dos requisitos; Maior participação do cliente. Desvantagens: Testes insuficientes; Implementação muito rápida e utilização do protótipo como versão final do software. Ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente A chave é definir-se as regras do jogo logo no começo O cliente e o desenvolvedor devem ambos concordam que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos Prototipação (comentários) Ciclo de Vida em Espiral Engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos Ciclo de Vida em Espiral Cada giro na espiral (iniciando a partir do centro e avançando para fora) representa uma nova fase do processo; Esse processo evolutivo permite que novas versões sejam construídas progressivamente. Espiral Atividades do Ciclo de Vida em Espiral Comunicação com o Cliente: define as tarefas necessárias para manter a comunicação entre o desenvolvedor e o cliente. Planejamento: define recursos, prazos, objetivos, alternativas e restrições. Análise de Risco: análise das alternativas e identificação / resolução dos riscos técnicos e operacionais. avaliação do cliente engenharia análise dos riscos planejamento Atividades do Ciclo de Vida em Espiral Construção: define tarefas necessárias para construir, testar, instalar e fornecer apoio ao usuário. Avaliação do Cliente: Avaliação das representações do software criadas durante o estágio de engenharia e implementadas durante o estágio de instalação. avaliação do cliente engenharia análise dos riscos planejamento É, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala. Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva. Pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso Espiral (comentários) Quanto mais tempo e recursos forem destinados, ou seja, quanto mais iterações na espiral, menor serão os riscos sobre o projeto; Execução de atividades de verificação presentes ao final de cada iteração que permitem um melhor controle gerencial sobre o projeto; Espiral - Vantagens o modelo é relativamente novo e não tem sido amplamente usado Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta. Espiral (comentários) Nesse modelo o sistema é entregue por partes, módulos. Nesse caso o cliente solicita o desenvolvimento de um grande sistema e determina a ordem de prioridades para às entregas, como exemplo poderíamos dizer que uma empresa possui vários departamentos, entre eles o financeiro, segundo a especificação do cliente ele deseja que esse departamento seja o primeiro a operar com o sistema. Incremental Incremental Vantagem: Subdivisão da equipe que não precisa estar totalmente presente em todas as fases realizadas, os recursos podem ser alocados em outros projetos e só convocados para este projeto quando necessário. Incremental – Vantagem Exercícios
Compartilhar