Tipos de sistemas de Lehman

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Sistemas
Advertisements

GERENCIAMENTO DE MANUTENÇÃO
Engenharia de Software
Orientação a objetos identidade abstração classificação encapsulamento
Controles Gerais Prof.: Cheila Bombana. Controles Gerais Prof.: Cheila Bombana.
Manutenção em software Conceitos básicos
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Objetivos do Capítulo Utilizar o processo de desenvolvimento de sistemas delineado neste capítulo e o modelo de componentes de SI, do Capítulo 1, como.
Engenharia de Requisitos
Identificando requisitos
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Acompanhamento do progresso de projetos
Testando o sistema Teste funcional: o sistema integrado realiza as funções especificadas nos requisitos? Teste de desempenho: os requisitos não-funcionais.
Por que a engenharia de software?
Abordagens de avaliação
Prentice Hall Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 8 Defeitos e falhas de software Especificação errada: pode não.
Processo inclui: Todas as principais atividades do processo
Padrões e procedimentos de programação
Tipos de treinamento Treinamento do usuário Treinamento do operador
Engenharia de Software
Engenharia de Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Gerenciamento de Configuração
Manutenção de Software
Qualidade de Software Aula 2
O processo de coletar os requisitos (escopo do cliente)
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Análise e Projeto de Sistemas
Introdução Visão Geral do Método.
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Como Desenvolver Sistemas de Informação
Projeto Final - APGS Adriana P. de Medeiros
TSDD Teste de segurança durante o desenvolvimento.
Gerenciamento de Requisitos com Casos de Uso
Gerência de Configuração de Software
MANUTENÇÃO DE SOFTWARE
Prof.Alfredo Parteli Gomes
Planejamento e Gerenciamento de Projetos
Gerenciamento de Configuração
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Fase de Elaboração: Fluxo de Requisitos
Análise e Projeto de Sistemas
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
CMMI – Gerência de Configuração
Engenharia de Requisitos
Análise de problemas Capacidade de pensamento crítico
Projeto de Banco de Dados
Gerência de Configuração - GC
Engenharia de Software
PSBD II Projeto de Sistemas de Banco de Dados II
O Processo de desenvolvimento de software
Levantamento de Requisitos
Plano de Manutenção <RedMan>
Levantamento de Requisitos
O Processo Unificado (UP)
1/113 Contexto para Gerência de Configuração. 2/113 Gerência de Configuração e mudança Objetivo Compreender a importância do uso de mecanismos de gerência.
Engenharia de Software
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Fase de Concepção Levantamento de Requisitos, Organização de Requisitos, Planejamento dos Ciclos Iterativos.
Conceitos Básicos Introdução.
Engenharia de Software
Engenharia de Software
Gerenciamento de Configuração de Software
TÉCNICAS DE ESTIMATIVAS
1 Estimativa, Teste e Inspeção de Software Gerência de Projetos: Estimativa de Software Marcos Camada
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Transcrição da apresentação:

Tipos de sistemas de Lehman Sistemas S: formalmente definidos e derivados de uma especificação Sistemas P: requisitos baseados em uma solução aproximada que seja prática de construir e utilizar Sistemas E: embutido no mundo real e se modifica à medida que o mundo muda Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Evolução versus declínio do sistema O custo de manutenção é muito alto? A confiabilidade do sistema é inaceitável? O sistema não pode mais se adaptar a mudanças adicionais dentro de um período de tempo razoável? O desempenho do sistema ainda está fora das restrições prescritas? As funções do sistema têm utilidade limitada? Outros sistemas fazem o mesmo trabalho melhor, mais rápido ou gerando menos custos? O custo de manutenção do hardware é muito alto, a ponto de justificar sua substituição por um hardware mais novo e mais barato? Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Leis da evolução do software Mudança contínua: conduz a menos utilidade Aumento da complexidade: estrutura se deteriora Lei fundamental de evolução do programa: programa obedece estatisticamente a tendências e invariâncias determináveis Conservação da estabilidade organizacional: taxa de atividade global é estatisticamente invariante Conservação da familiaridade: conteúdo publicado é estatisticamente invariante Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Tipos de manutenção Corretiva: mantém o controle sobre as funções do dia-a-dia do sistema Adaptativa: mantém o controle sobre as modificações do sistema Perfectiva: aperfeiçoa as funções aceitáveis já existentes Preventiva: toma medidas preventivas para que o desempenho do sistema não diminua para níveis inaceitáveis Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Responsabilidades da equipe de manutenção Entender o sistema Localizar informações na documentação do sistema Manter a documentação sistema atualizada Ampliar as funções existentes, a fim de incluir novos requisitos ou requisitos modificados Adicionar novas funções ao sistema Descobrir a fonte das falhas ou problemas do sistema Localizar e corrigir defeitos Responder a questões sobre como o sistema funciona Reestruturar o projeto e os componentes do código Reescrever o projeto e os componentes do código Excluir o projeto e os componentes do código que não são mais úteis Gerenciar as mudanças que são feitas no sistema Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Problemas de manutenção Problemas com o pessoal Entendimento limitado Prioridades de gerenciamento Ânimo Problemas técnicos Recursos e paradigmas Dificuldade para a realização de testes Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Fatores que afetam o esforço da manutenção Tipo de aplicação Novidade do sistema Rotatividade e disponibilidade do pessoal de manutenção Duração da vida útil do sistema Dependência de um ambiente que se modifica Característica de hardware Qualidade do projeto Qualidade do código Qualidade da documentação Qualidade dos testes Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Medindo as características da manutenção Registros desejáveis: razão do tempo total de implementação da mudança pelo número total de mudanças implementadas número de problemas não resolvidos tempo gasto em problemas não resolvidos porcentagem de mudanças que introduzem novos defeitos número de componentes modificados para implementar uma mudança Registros necessários: momento em que o problema é relatado qualquer perda de tempo devido à demora por parte do setor administrativo tempo exigido para analisar o problema tempo requerido para especificar quais mudanças devem ser feitas tempo necessário para fazer as mudanças tempo necessário para testar as mudanças tempo necessário para documentar as mudanças Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Exemplo para calcular um número ciclomático Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Índice de nebulosidade Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Grupo de controle de configuração Um problema é identificado por um usuário, cliente ou desenvolvedor, que registra os ‘sintomas’ em um formulário formal de controle de alteração A mudança proposta é relatada ao grupo de controle de configuração O grupo se reúne para discutir o problema: determina a natureza da mudança, quem pagará pelos recursos necessários O grupo discute a provável fonte do problema, o escopo das alterações, o tempo exigido; atribui um nível de prioridade/gravidade, e um analisa é encarregado de fazer as alterações Com uma cópia de teste, o analista faz implementa e realiza os testes para garantir que as alterações funcionam O analista trabalha com o responsável pela biblioteca de programas para controlar a instalação das mudanças no sistema em operação O analista arquiva um relatório das alterações Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Controle de alterações Sincronização: Quando a alteração foi feita? Identificação: Quem fez a alteração? Nomeação: Quais componentes do sistema foram alterados? Autenticação: A alteração foi feita corretamente? Autorização: Quem autorizou que a alteração fosse feita? Acompanhamento: Quem foi notificado sobre a alteração? Cancelamento: Quem pode cancelar o pedido de alteração? Delegação: Quem é responsável pela alteração? Avaliação: Qual é a prioridade da alteração? Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Análise de impacto Produto de trabalho: qualquer artefato do desenvolvimento cuja alteração é significativa Rastreabilidade horizontal: relação dos componentes entre conjuntos de produtos de trabalho Rastreabilidade vertical: relação entre as partes do produto de trabalho Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Ferramentas automatizadas para manutenção Editores de texto Comparadores de arquivos Compiladores e linkers Ferramentas de depuração Geradores de referência cruzada Analisadores estáticos de código Repositórios de gerência de configuração Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Rejuvenescimento de software Redocumentação: análise estática do código-fonte, produzindo informações adicionais Reestruturação: modifica o código, transformando-o de mal estruturado em bem estruturado Engenharia reversa: recria as informações sobre o projeto e a especificação, a partir do código Reengenharia: aplicação da engenharia reversa em um sistema já existente e depois aplica-se a ‘engenharia direta’ para fazer as mudanças na especificação e no projeto que completam o modelo lógico Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11

Redocumentação A saída pode incluir: relações das chamadas dos componentes hierarquias de classe tabelas de interfaces de dados informações dos dicionários de dados tabelas ou diagramas de fluxo de dados tabelas ou diagramas de fluxo de controle pseudocódigo caminhos de testes referências cruzadas dos componentes e das variáveis Engenharia de Software: Teoria e Prática Shari Lawrence Pfleeger Capítulo 11