Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi
Histórico Uso de Metodologias
Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia Primitiva 1970-1980 Era da Metodologia 1980-1990 Era da Pós-Metodologia 1990-
Historico Metodologias n Pré-Metodologia Entre 1960 e 1970 n Desenvolvimento da primeiras aplicações computacionais n Não havia metodologia de desenvolvimento formal n Enfase:Programação n Desenvolvimento de sistema Tarefa individualista n Gerenciamento de projetos:precário n Sistemas ruins
Historico das Metodologias n Surgimento da Primeiras Metodologias Baseadas no Ciclo de Vida de desenvolvimento de sistemas n Metodologia Primitiva ou Abordagem Tradicional Foco principal n Identificação de fases Ciclo de vida de desenvolvimento n Modelo em Cascata ou Queda D Agua
Historico das Metodologias n Modelo em Cascata Avaliação do sistema +Análise do sistema
Abordagem Tradicional n Modelo em Cascata As fases seguem uma ordem sequencial n Uma fase não pode começar antes que a anterior a ela termine Conjunto de fases com características particulares do processo de desenvolvimento Interação entre as fases através de entradas e saídas
Abordagem Tradicional Fases do ciclo de vida do Modelo em Cascata n Avaliação de Sistemas Entender o problema Identificação de problemas e oportunidades Estudo de Viabilidade n Qual é o problema e vale a pena resolvê-lo? n Há realmente a necessidade de criação de um software?
Abordagem Tradicional n Análise de Sistemas Entender a solução Entendimento geral da solução O que o sistema de informação deve fazer para resolver o problema? n Definição de possíveis soluções Lista dos requisitos e prioridades do sistema
Abordagem Tradicional n Projeto de Sistemas Como o problema será resolvido? Selecionar e planejar a melhor solução Selecionar e planejar um sistema que satisfaça requisitos necessários para a solução do problema Determinar que funções o software executará
Abordagem Tradicional n Projeto de Sistemas Definição da linguagem de programação que será utilizada Definição do SGBD que será utilizado Uso de Ferramentas de Modelagem Algoritmos Definição de Hardware
Abordagem Tradicional n n Implementação de Sistemas Fazer a solução funcionar Criar ou adquirir os componentes detalhados na fase do projeto Aquisição do hardware Aquisição ou desenvolvimento do software Aquisição de pessoal (ou treinamento) Preparação de dados Instalação Operação Testes Testes por parte do Analista Testes por parte dos usuários
Abordagem Tradicional n Manutenção e Revisão de Sistemas Alterações no sistema Preventiva e/ou corretiva n Erros não identificados Avaliar os resultados da solução
Abordagem Tradicional n Críticas É cara e consome tempo Uma fase só pode começar após a anterior ter sido finalizada Logo no início é difícil estabelecer explicitamente todos os requisitos n Incerteza natural Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento
Era da Metodologia n Surgiu para suprir as limitações da Abordagem Tradicional Prototipação n Protótipo: Um sistema experimental, construído rapidamente e a um baixo custo Usado para a avaliação do usuário final Os usuários podem interagir com o protótipo para ter uma melhor idéia de suas necessidades de informação. O protótipo aprovado pelo usuário pode ser usado como molde para criar o sistema final.
Prototipação início fim obtenção dos requisitos construção produto projeto rápido refinamento protótipo construção protótipo avaliação protótipo
Prototipação Obtenção dos requisitos Desenvolver um projeto rápido n Protótipo inicial Avaliação do protótipo n Usar o protótipo Refinamento do protótipo n Revisão e melhoramento do protótipo Depois de revisado, retorna ao passo 3. n Essa iteração ocorre até a satisfação do usuário
Protótipo n Críticas Protótipo não será exatamente igual ao produto fina n Cliente pode ficar frustrado Protótipo não considera detalhes de implementação n Durante a implementação podem haver mudanças Importante: Deixar claro que o protótipo será uma ferramenta para auxiliar na definição de requisitos
Modelo Iterativo Incremental n Resposta aos problemas encontrados no modelo em cascata n Divide o desenvolvimento do software em ciclos(iterações) n Cada ciclo de desenvolvimento Possui as fases de análise, projeto, implementação, testes e implantação n Cada um dos ciclos considera um subconjunto de requisitos Exemplo: Desenvolve primeiro o módulo de cadastro, depois o módulo de matrícula de um sistema de Controle Acadêmico.
Modelo Iterativo Incremental n A cada novo ciclo um novo subconjunto de requisitos é considerado É produzido um novo incremento do sistema n Extensões e Acréscimo sobre o incremento anterior n O desenvolvimento evolui em versões Até que o sistema todo esteja construído n Cada incremento é desenvolvido em cascata
Ciclo de Vida Iterativo Incremental
Modelo Iterativo Incremental n Vantagens Incentiva a participação do usuário no desenvolvimento do sistema n Diminui a probabilidade de interpretações erradas Minimiza os riscos do projeto
Modelo Iterativo Incremental n Críticas Somente pode ser utilizada se for possível dividir os requisitos do sistema em partes O usuário pode se entusiasmar com a primeira versão e pensar que ela corresponde ao sistema final Mais difícil de gerenciar
Era da Pós-Metodologia n Reavaliação dos conceitos e da utilidade das metodologias prédefinidas Por pesquisadores e desenvolvedores n Produtividade insatisfatória n Metodologias complexas n Em alguns tipos de desenvolvimento Uso do método Tentativa e Erro
Combinação dos Métodos de Ciclo de Vida n Combinação dos modelos Pontos positivos Adequação ao Projeto n Visão genérica O processo de desenvolvimento pode ser divido em 3 fases genéricas n DEFINIÇÃO, n DESENVOLVIMENTO n MANUTENÇÃO
Combinação dos Métodos de Ciclo de Vida n DEFINIÇÃO: o que será desenvolvido Análise do Sistema n define o papel de cada elemento num sistema de informação n o papel que o software desempenhará. Planejamento do Projeto de Software: n Análise de riscos n Alocação de Recursos n Estimativas de custos n Definição das tarefas e programação do trabalho
Combinação dos Métodos de Ciclo de Vida n DESENVOLVIMENTO: como o software vai ser desenvolvido Projeto de Software n Traduz os requisitos do software num conjunto de representações algumas gráficas como diagramas ou baseadas em linguagem (algoritmos, fluxogramas) que descrevem a estrutura de dados a arquitetura do software os procedimentos algorítmicos as características de interface
Combinação dos Métodos de Ciclo de Vida n MANUTENÇÃO Concentra-se nas mudanças que ocorrerão depois que o software for liberado para uso operacional n Correção n Adaptação n Melhoramento Funcional