Modelagem de Sistemas Modelos de Ciclo de Vida (Parte 1) Prof. Mauro Lopes 1-31 20
Objetivos Nesta aula iremos apresentar os Modelos de Ciclo de Vida demonstrando que temos várias opções para montar o nosso Processo de Desenvolvimento de Software. Boa aula a todos. 2
Plano de Aula Introdução Modelos de Ciclo de Vida Modelo Clássico ou em Cascata; Modelo de Prototipação; Modelo Iterativo e Incremental; Modelo em Espiral. Como Escolher o Modelo de Ciclo de vida? 3
Introdução Devido à necessidade de se adaptar às necessidades e características da organização, não existe um processo ideal que se aplique a todos os contextos; São muitas as variáveis: prazo, custo e qualidade esperados, as características do software a ser desenvolvido e as pessoas envolvidas no projeto, dentre outros aspectos; Na descrição de um processo consta: as atividades envolvidas, informações sobre os produtos esperados a partir de uma ou mais atividades do processo e os papéis envolvidos nelas. 4
Modelos de Ciclo de Vida As atividades e tarefas definidas no processo são organizadas em um modelo de ciclo de vida de software que define como cada uma das tarefas e atividades se relaciona com o processo e umas com as outras; Tidos como abstrações ou frameworks, os ciclos de vida são utilizados para serem ampliados e adaptados a fim de elaborar processos mais específicos; Há diversos modelos de ciclo de vida. A diferença entre um ou outro esta na maneira como as diversas fases são desenvolvidas ou encadeadas. 5
Modelos de Ciclo de Vida Iremos discutir os seguintes Modelos de Ciclo de Vida: Modelo Clássico ou em Cascata; Modelo de Prototipação; Modelo Iterativo e Incremental; Modelo em Espiral 6
Modelo Clássico ou em Cascata Foi primeiro modelo a ser proposto pela Engenharia de Software; No modelo em cascata cada fase é executada de forma sequencial. O objetivo é que cada fase finalizada sirva como base para a próxima, ou seja, nenhuma fase deve ser iniciada sem que a anterior seja completamente finalizada; O modelo em cascata é indicado em projetos onde os requisitos são muito bem definidos e espera-se que não exista nenhuma alteração do projeto no decorrer das fases. Podemos ver no próximo slide uma Figura que ilustra as principais fases do modelo em cascata. 7
Modelo Clássico ou em Cascata 8
Manutenção INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Modelo Clássico ou em Cascata Provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente; Tipos de Manutenção: Manutenção Corretiva: diagnóstico e correção de erros; Manutenção Adaptativa: adaptação do software para acomodar mudanças em seu ambiente externo; Manutenção Perfectiva: exigência do cliente para acréscimos funcionais e de desempenho; Manutenção Preventiva: melhorar a confiabilidade e manutenibilidade futura (técnicas de engenharia reversa e.( reengenharia 9
Problemas: INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Modelo Clássico ou em Cascata Projetos reais raramente seguem o fluxo sequencial que ele propõe; É difícil para o cliente declarar todas as exigências explicitamente. É difícil acomodar as incertezas naturais que existem no começo de muitos projetos; O cliente deve ter paciência. Uma versão do software só estará disponível em um ponto tardio do cronograma. Um erro crasso, pode ser desastroso. Só é apropriado quando os requisitos são bem conhecidos. 10
Modelo de Prototipação Este modelo é apropriado 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 ou; quando o desenvolvedor não tem certeza da eficiência de um algoritmo, forma da interação homem/máquina (interface gráfica); Propõe a construção rápida de um protótipo como uma forma de validar e refinar os requisitos, permitindo ao desenvolvedor um melhor conhecimento do que necessita ser feito; 11
Modelo de Prototipação Permite o refinamento iterativo dos requisitos. A cada iteração é produzido um protótipo do software final. Este protótipo pode ser um: Protótipo em Papel, primeiras versões que permitem ao usuário ter uma visão abstrata do sistema; Protótipo incompleto, implementa algum subconjunto de funções exigidas; Protótipo final, um software que executa parte ou toda a função desejada, mas que tem outras características que serão melhoradas e ainda não pode ser disponibilizado. 12
Modelo de Prototipação Fim Engenharia do Produto Inicio Coleta e Refinamento dos requisitos Projeto Rápido Decide Refinamento do Protótipo Avaliação do Protótipo pelo Cliente Construção do Protótipo 13
Modelo de Prototipação Coleta e Refinamento dos Requisitos: Nesta etapa o desenvolvedor e o cliente devem definir os objetivos gerais do software (Protótipo); Identificar quais requisitos são conhecidos e as áreas que necessitam de definição adicional; Realizar um breve análise do Sistema. Projeto Rápido: Representação dos aspectos do software que são visíveis ao usuário (projeto baseado nas interfaces de entrada e dados de saída). Construção do Protótipo: Implementação rápida do Projeto. Avaliação do Protótipo: Cliente e desenvolvedor avaliam o protótipo. No caso de sugestão ou mudanças serão trabalhadas na próxima fase. 14
Modelo de Prototipação Refinamento do Protótipo: São trabalhados os problemas encontrados na fase anterior. Ou seja, são refinados os requisitos. Neste ponto pode ocorrer, no caso de necessidade de alterações, um retorno na fase de Projeto Rápido para desenvolver um novo protótipo que incorpora as mudanças. Construção do Produto: Identificado todos os requisitos necessários, o protótipo pode ser descartado e a versão final do produto deve ser construída considerando os critérios de qualidade. 15
Problemas: INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO IFMA Modelo de Prototipação O cliente muitas vezes não aceita mais uma iteração, aquela versão mesmo incompleta já serve; O desenvolvedor/cliente acha que não há necessidade de desenvolver uma versão final, modifica-se o protótipo; Desenvolvedor frequentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. Solução: Definir as regras do jogo logo no começo, o cliente deve concordar que o protótipo será construído para servir como um mecanismo a fim de definir os requisitos. 16
ATIVIDADE Baseado nos Modelos de Ciclo de Vida apresentados aqui, crie um Processo de Desenvolvimento que use no seu entendimento os melhores aspectos destes modelos; 17
Perguntas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva 18
Próxima Aula... Modelos de Ciclo de Vida (Continuação). 19
Referências Materiais avulsos da Internet e o livro Princípios de Análise e Projeto de Sistemas com UML, Eduardo Bezerra - Editora Campus, 286 páginas. 20