Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software Paulo Cesar de Macedo Aula 1 Paradigmas de Engenharia de Software l A estratégia usada no desenvolvimento do software deve definir etapas que envolvem métodos, ferramentas e procedimentos. l Uma estratégia de desenvolvimento é um modelo de processo ou paradigma de engenharia de software. Paradigmas de Engenharia de Software l A escolha da estratégia deve considerar: –Natureza do projeto –Tipo da aplicação –Métodos e ferramentas que serão usados –Métodos de controle –Prazo de entrega –Produtos que serão entregues Paradigmas de Engenharia de Software l Principais paradigmas: –Cascata. –Prototipação. –Espiral. Modelo Cascata Etapas do Modelo Cascata l Requisitos – Coleta os requisitos do software. – Gera o documento de especificação do sistema que serve de base para o orçamento, cronograma, esforço, ferramentas a serem utilizadas, etc. Etapas do Modelo Cascata l Análise – Compreensão clara e precisado domínio do problema e das funcionalidades do software. – Levantamento e revisão em conjunto com representantes do cliente, usuários chave se outros especialistas da área de aplicação. Etapas do Modelo Cascata l Projeto –Concentra-se na definição das estruturas de dados, arquitetura do software, detalhes procedimentais e caracterização da interface. l Codificação – Tradução do projeto para uma linguagem legível para a máquina. – Se o projeto for bem detalhado essa tarefa pode ser automatizada. Etapas do Modelo Cascata l Teste –Inicia-se logo após a geração do código. –Visa garantir que uma entrada do programa produz o resultado esperado. l Manutenção – Ocorre em função de: Ocorrência de erros Adaptações para acomodar mudanças externas Acréscimos funcionais Problemas de desempenho Vantagens do Modelo Cascata l Padroniza os métodos para análise, projeto,codificação, testes e manutenção. l Etapas semelhantes às etapas genéricas aplicáveis a todos os paradigmas. Desvantagens do Modelo Cascata l Projetos reais raramente seguem o fluxo seqüencial que esse modelo propõe. l Sempre ocorre alguma interação e/ou superposição. l Dificilmente os clientes são capazes de relacionar todos os requisitos de uma só vez no início do projeto. Desvantagens do Modelo Cascata l Maioria dos programas só estará disponível quando o cronograma já está bastante adiantado. l Dificuldades para se introduzir alterações quando o processo está avançado. Prototipação Prototipação l Criação de um modelo do software que será implementado. l Facilita a definição dos objetivos do software. l Retrata a interação entre o usuário e o software. Etapas da Prototipação l Coleta e refinamento dos requisitos. – Definição dos objetivos globais. l Projeto rápido. – Identificação interações entre usuário e software. – Concentra-se nas entradas e saídas do software. l Construção do protótipo. Etapas da Prototipação l Avaliação do protótipo pelo cliente. –Refinamento dos requisitos do software. l Refinamento do protótipo. –Reflete o refinamento dos requisitos. –Capacita o desenvolvedor a compreender melhor os objetivos do software. l Engenharia do produto. –O produto final é construído baseando-se no protótipo, que é descartado. Etapas da Prototipação l O que incluir no protótipo? l Não é economicamente viável implementar todo o sistema. l Deve-se considerar qual o objetivo principal do protótipo. Vantagens da Prototipação l Melhora a qualidade da especificação do software a ser desenvolvido, contribuindo para uma queda nos custos de desenvolvimento e manutenção. l Antecipa o treinamento dos usuários. l Partes do protótipo podem ser aproveitadas no desenvolvimento do sistema. Desvantagens da Prototipação l O custo na maioria dos casos é considerado muito alto. l O cliente tende a confundir o protótipo com uma versão do sistema. Modelo Espiral l Aproveita as melhores características do modelo cascata e da prototipação. l Acrescentando um novo elemento: a análise de riscos. Modelo Espiral Modelo Espiral l decisão de continuar ou não direção de um sistema concluído l avaliação do cliente l engenharia l análise dos riscos l planejamento Etapas do Modelo Espiral l Planejamento. – Definição dos objetivos, alternativas e restrições. l Análise dos Riscos. – Análise de alternativas e identificação dos riscos sob o ponto de vista técnico e de gerência. Etapas do Modelo Espiral l Engenharia. – Desenvolvimento do produto. l Avaliação do Cliente. – Avaliação dos resultados da engenharia. Vantagens do Modelo Espiral l Modelo evolutivo possibilita uma maior integração entre as fases e facilita a depuração e a manutenção do sistema. l Permite que o projetista e cliente possa entender e reagir aos riscos em cada etapa evolutiva. Desvantagens do Modelo Espiral l Avaliação dos riscos exige muita experiência. l O modelo é relativamente novo e não tem sido amplamente utilizado. Fases Genéricas do Processo de Desenvolvimento l Fases Genéricas: – Definição, desenvolvimento e manutenção. – Independem do paradigma adotado. – Independem da área de aplicação, tamanho e complexidade do projeto. A Fase de Definição l Concentra-se no “quê”. – Que informações devem ser processadas? – Que funções devem ser desempenhadas? – Quais são as exigências fundamentais do software? – Quais são as restrições do projeto? Etapas da Fase de Definição l Análise do Sistema: – Define o papel que o software deverá desempenhar. l Planejamento do Projeto de Software: – Analisa os riscos, aloca os recursos, estima os custos e define as tarefas que serão realizadas. l Análise de Requisitos – Define detalhadamente o domínio da informação e a função do software. A Fase de Desenvolvimento l Concentra-se no “como”. – Como projetar as estruturas de dados e a arquitetura do software? – Como implementar os detalhes procedimentais? – Como traduzir o projeto para uma linguagem de programação? – Como realizar os testes? Etapas da Fase de Desenvolvimento Projeto de Software: – Traduz os requisitos do software em um conjunto de representações que descrevem o software. Etapas da Fase de Desenvolvimento l Codificação: – Converte as representações do projeto em uma linguagem artificial executada pelo computador. l Realização de Testes de Software: – Procura por defeitos de função, lógica e implementação do software. A Fase de Manutenção l Concentra-se nas mudanças sofridas pelo software. l Tipos de Mudanças: – Correção Corrige defeitos encontrados pelo cliente (manutenção corretiva). – Adaptação Acomoda mudanças ocorridas no ambiente do software (manutenção adaptativa). – Melhoramento Funcional Estende o software para além de suas exigências funcionais originais (manutenção perfectiva). REFERÊNCIAS l PRESSMAN, Roger S. - Engenharia de Software - Uma Abordagem Profissional - 7º Edição l SOMMERVILLE , Ian - Engenharia de Software
Compartilhar