Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processos de Software Professor: Alexandre Santos Modelos de processos Processo define Quem faz Como faz O quê fazer Quando fazer Por quê faz Modelo de Processo Descrição simplificada do processo Roteiro útil para o trabalho a ser realizado Modelos de processos O que um modelo de processo defini? Atividades de um desenvolvimento de Software Produtos especificados para cada atividade Papéis para os envolvidos Quais as vantagens? Padronização. Melhoria na comunicação. Modelos de processos Existem vários modelos de processo de software (ou paradigmas de engenharia de software). Cada modelo de Software vai apresentar uma ordem e um fluxo de trabalho. Modelo Cascata Modelo mais antigo e o mais amplamente usado da engenharia de software, tornou-se conhecido na década de 70 Modelado em função do ciclo da engenharia convencional Requer uma abordagem sistemática, seqüencial ao desenvolvimento de software O resultado de uma fase se constitui na entrada da outra Modelo Cascata Modelo Cascata Envolve a licitação de requisitos do sistema, com uma pequena quantidade de projeto e análise de alto nível; Preocupa-se com aquilo que conhecemos como engenharia progressiva de produto de software; Iniciar com um modelo conceitual de alto nível para um sistema e prosseguir com o projeto, implementação e teste do modelo físico do sistema. 1º Etapa: Exploração de Conceitos / Informação e Modelagem Etapa do projeto que apresenta O quê Modelo Cascata Processo de elicitação 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 2º Etapa: Análise de Requisitos de Software Etapa do projeto que apresenta O quê Modelo Cascata Tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação inicie. 3º Etapa: Projeto Etapa do projeto que apresenta Como? Modelo Cascata Tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador e implementado num ambiente de trabalho. 4º Etapa: Implementação Etapa do projeto que apresenta Como? Modelo Cascata Concentra-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. 5º Etapa: Teste Etapa do projeto que apresenta Operação! Modelo Cascata Provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente 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 6º e 7º Etapas: Liberação e Manutenção Etapa do projeto que apresenta Operação! Problemas do modelo Cascata Projetos reais raramente seguem o fluxo sequencial que o modelo propõe; Logo no início é difícil estabelecer explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural; O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento (na instalação); Difícil identificação de sistemas legados (não acomoda a engenharia reversa) Problemas relacionados Modelo Cascata Embora o Modelo em Cascata tenha fragilidades, ele é significativamente melhor do que uma abordagem casual de desenvolvimento de software O Modelo de processo em Cascata trouxe contribuições importantes para o processo de desenvolvimento de software: Imposição de disciplina, planejamento e gerenciamento A implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos; O Paradigma de Prototipação O objetivo é entender os requisitos do usuário e, assim, obter uma melhor definição dos requisitos do sistema. Possibilita que o desenvolvedor crie um modelo (protótipo)do software que deve ser construído Apropriado para quando o cliente não definiu detalhadamente os requisitos. O Paradigma de Prototipação O Paradigma de Prototipação Desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais. OBTENÇÃO DOS REQUISITOS: 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) O Paradigma de Prototipação Implementação rápida do projeto CONSTRUÇÃO DO PROTÓTIPO: AVALIAÇÃO DO PROTÓTIPO: Cliente e desenvolvedor avaliam o protótipo REFINAMENTO DO PROTÓTIPO: cliente e Cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. O Paradigma de Prototipação 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. Problemas com a Prototipação 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 Desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo O Modelo RAD RAD (Rapid Application Development) é um modelo sequencial linear que enfatiza um ciclo de desenvolvimento extremamente curto. O desenvolvimento rápido é obtido usando uma abordagem de construção baseada em componentes. O Modelo RAD Os requisitos devem ser bem entendidos e o alcance do projeto restrito O modelo RAD é usado principalmente para aplicações de sistema de informação Cada função principal pode ser direcionada para uma equipe RAD separada e então integrada para formar o todo O Modelo RAD O Modelo RAD Exige recursos humanos suficientes para todas as equipes Exige que desenvolvedores e clientes estejam comprometidos com as atividades de “fogo rápido” a fim de terminar o projeto num prazo curto Desvantagens: Modelos Evolutivos de Processo Existem situações em que a engenharia de software necessita de um modelo de processo que possa acomodar um produto que evolui com o tempo Quando os requisitos de produto e de negócio mudam conforme o desenvolvimento prossegue Quando uma data de entrega apertada (mercado) - impossível a conclusão de um produto completo Quando um conjunto de requisitos importantes é bem conhecido, porém os detalhes ainda devem ser definidos Quando devemos utilizar? Modelos Evolutivos de Processo O Modelo Incremental O Modelo Espiral Exemplo de modelos evolutivos O Modelo Incremental O Modelo Espiral Como escolher o modelo Pode-se selecionar o melhor modelo se seguir as respostas estão satisfeitos: É o modelo adequado à tecnologia escolhida para implementar o software ? É o modelo adequado aos requisitos dos clientes e as prioridades ? É modelo adequado para o tamanho e a complexidade do software ? É o modelo adequado para o tipo de projetos e engenharia que fazemos ? É o modelo adequado para o desenvolvedores ? Coleta de dados (Briefing) Precisamos coletar informações sobre o comportamento de um sistema atual ou sobre os requisitos de um novo sistema Precisamos verificar nossa própria compreensão, como analistas de sistemas, do comportamento de um sistema atual ou dos requisitos de um novo sistema. Precisamos coletar informações sobre o(s) sistema(s) atual(is) para a execução do estudo de custo/benefício para o novo sistema. Dicas de coleta Desenvolva um plano geral de entrevistas Planeje a entrevista para fazer uso eficiente do tempo Utilize ferramentas automatizadas que sejam adequadas, mas não abuse Use um estilo adequado de entrevistar Métodos de coleta Entrevista. Questionário Documentos e registros Pesquisas Grupos focais RespondaO que é um Software? O que é processo de software ou Software Development Life Cycle (SDLC - Ciclo de Vida de Desenvolvimento de Software )? Quais são as fases mais em comum que temos nos modelos? Qual modelo é o melhor? O que é gerenciamento de projetos de software? O que são requisitos de software? O que é um modelo de software? software é um pacote completo, que inclui programa de software, sua documentação e guia do usuário sobre como usar o software. O que é um Software? 2. O que é processo de software ou Software Development Life Cycle (SDLC)? Ciclo de Vida de Desenvolvimento de Software, ou processo de software é o desenvolvimento sistemático de software seguindo cada etapa do processo de desenvolvimento ou seja, requisito Recolha, análise de sistemas, Design, codificação, Testes, manutenção e documentação em ordem. 3. Quais são as fases mais em comum que temos nos modelos? Obrigatoriedade Recolha, análise de sistemas e Design, codificação, teste e implementação. As fases depende do modelo que escolher para desenvolver o software. 4. Qual O SDLC modelo é o melhor? O SDLC modelos são aprovados conforme os requisitos do processo de desenvolvimento. Ele pode muito software a software para garantir que modelo é adequado. Gerenciamento de projetos de Software é um processo de gestão de todas as atividades, como tempo, custo e de gestão da qualidade envolvidos no desenvolvimento de software. 5. O que é gerenciamento de projetos de software? 6. O que são requisitos de software? Requisitos de Software são descrição funcional do sistema de software proposto. Os requisitos mostra o sistema de destino, suas funcionalidades e recursos. Requisitos transmiti as expectativas dos usuários do sistema. 7. O que é um modelo de software? É uma descrição simplificada de um processo de software, que é representada a partir de uma perspectiva específica.
Compartilhar