Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROCESSOS DE DESENV. DE SOFTWARE CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Professor: David Falcão, M.Sc. davidfalcaoprof@gmail.com Aula 10 – Modelos de ciclo de vida de software Processos de Desenvolvimento de Software – Prof. David Falcão Modelos de ciclo de vida de software Representação abstrata de um processo de software. Cada modelo representa um processo a partir de uma perspectiva particular Não são descrições definitivas de processo de software, mas sim abstrações úteis, que podem ser usadas para explicar diferentes abordagens de desenvolvimento de software. Processos de Desenvolvimento de Software – Prof. David Falcão Modelos de ciclo de vida de software Constrói e Conserta Modelo Cascata – Fases separadas e distintas de especificação, projeto e desenvolvimento Desenvolvimento evolucionário – Especificação e desenvolvimento são intercalados Modelos iterativos – O sistema é desenvolvido em iterações (ciclos) Processos de Desenvolvimento de Software – Prof. David Falcão Modelos de ciclo de vida de software Constrói e Conserta – O produto é construído sem qualquer especificação ou projeto; – O produto é retrabalhado quantas vezes for necessário para satisfazer o cliente. Processos de Desenvolvimento de Software – Prof. David Falcão Modelos em cascata Modelo Cascata – modelo mais antigo e o mais amplamente usado da engenharia de software – modelado em função do ciclo da engenharia convencional – utilizam uma abordagem sistemática, sequencial ao desenvolvimento de software Requisitos Requisitos Requisitos Requisitos Projeto Projeto Projeto Projeto Construção Construção Construção Construção Testes Testes Testes Testes ManutençãoManutenção ManutençãoManutenção Projetos reais raramente seguem um fluxo sequencial Processos de Desenvolvimento de Software – Prof. David Falcão Modelos em cascata Problemas: – Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe; – Em geral, é difícil para o cliente estabelecer todos os requisitos explicitamente; – Uma versão executável do sistema não vai estar disponível até o período final do projeto; – A natureza linear do modelo leva a “estados de bloqueios”: membros da equipe devem esperar que outros membros completem suas tarefas Processos de Desenvolvimento de Software – Prof. David Falcão Rapid Application Development (RAD) Modelo sequencial, mas que enfatiza um desenvolvimento extremamente rápido modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação equipe # 3equipe # 2equipe # 1 60-90 dias modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Processos de Desenvolvimento de Software – Prof. David Falcão Rapid Application Development (RAD) Quando usar? – As restrições de tempo impostas pelo projeto demandam um escopo de escala; – Quando a aplicação pode ser modularizada de forma que cada grande função possa ser completada em menos de 3 meses; – Cada grande função pode ser alocada para uma equipe distinta e, depois são integradas para formar o todo; – Requisitos bem definidos. Processos de Desenvolvimento de Software – Prof. David Falcão Desenvolvimento evolucionário Desenvolvimento evolucionário: – Tem com base a ideia de desenvolver uma implementação inicial, expor o resultado ao comentário do usuário e fazer seu aprimoramento por meio de muitas versões, até que tenha sido desenvolvido; – A especificação, desenvolvimento e validação são executados concorrentemente para gerar um retorno rápido; Processos de Desenvolvimento de Software – Prof. David Falcão Desenvolvimento evolucionário Desenvolvimento evolucionário: Processos de Desenvolvimento de Software – Prof. David Falcão Desenvolvimento evolucionário Pode ser: – Exploratório: tem como objetivo trabalhar com o cliente a fim de explorar seus requisitos e entregar um sistema final. São feitas partes inicias e acrescentadas novas de acordo com o desenvolvimento. – Protótipos descartáveis: tenta compreender os melhor os requisitos a partir de protótipos e então desenvolver uma especificação de requisitos completa. Processos de Desenvolvimento de Software – Prof. David Falcão Desenvolvimento evolucionário Problemas: – O processo não é visível: como o sistema é desenvolvido rapidamente, não há tempo de documentar as versões; – Os sistemas são mal estruturados: mudanças constantes podem corromper a estrutura do software; – Requer ferramentas e técnicas especiais: que nem sempre estão disponíveis ou são aplicáveis ao caso. Processos de Desenvolvimento de Software – Prof. David Falcão Modelos Iterativos Requisitos de sistema sempre evoluem ao longo de um projeto de software; Duas abordagens (relacionadas): – Desenvolvimento Espiral – Desenvolvimento Incremental Processos de Desenvolvimento de Software – Prof. David Falcão Modelos Iterativos: Espiral Acrescenta aspectos gerenciais ao processo de desenvolvimento de software: – Análise de riscos em intervalos regulares; – Planejamento e Controle; – Tomada de Decisão. Processo representado por um espiral em vez de uma sequencia de atividades – Cada volta no espiral representa uma fase do processo. Não há fases fixas como especificação ou projeto: voltas no espiral são realizadas de acordo com as necessidades; Riscos são avaliados explicitamente e resolvidos ao longo dos projetos Processos de Desenvolvimento de Software – Prof. David Falcão Modelos Iterativos: Espiral Processos de Desenvolvimento de Software – Prof. David Falcão Modelos Iterativos: Incremental Combina elementos do modelo em cascata com prototipação aplicado de maneira iterativa; Cada sequência linear produz “incrementos” (miniprojetos) do software passíveis de serem entregues ao cliente; Primeiro incremento é frequentemente chamado de “núcleo do produto”; O processo se repete até que um produto completo seja produzido; Difere da Prototipação pois a cada incremento produz uma versão operacional do software; Processos de Desenvolvimento de Software – Prof. David Falcão Modelos Iterativos: Incremental Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17
Compartilhar