Manutenção Leitura: Sommerville; Pressman

Documentos relacionados
Leitura: Cap : Sommerville; cap20: Pressman

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Evolução de Software

Engenharia de Software

EVOLUÇÃO DE SOFTWARE

Capítulo 20 - Manutenção de Software. Os Fatores de Qualidade de Software focalizam três aspectos importantes do Software Produto: (ISO 9126)

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

Manutenção de Software

Capítulo 9. Evolução de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

REENGENHARIA E ENGENHARIA REVERSA

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento

Engenharia Reversa e Reengenharia Software 13/05/2015

Reengenharia, Refatoração e Bad Smell

Projeto de Arquitetura

Reengenharia de Software

Engenharia de Software. Projeto de Arquitetura

Engenharia de Requisitos

Prof. Ms. Ronaldo Martins da Costa

Análise e Projeto de Software

ISO/IEC 12207: Manutenção

Engenharia Reversa e Reengenharia. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Engenharia de Software Processo de Desenvolvimento de Software

ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Processos de Software

Estilos Arquiteturais

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

Paradigmas de Software

Engenharia de Software

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

Processo de Desenvolvimento. Edjandir Corrêa Costa

Processos de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Atividades de Desenvolvimento. Desenvolvimento de Software. Especificação de Requisitos. Atividades de Desenvolvimento. Especificação de Requisitos

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Reuso de Software Aula Maio 2012

Requisitos de Sistemas

Análise de sistemas. Engenharia de Requisitos

Desenvolvimento de Projetos

Processos de software

06/02/2014. Engenharia de requisitos. Requisitos de Software. Capítulo 6. O que é um requisito? Objetivos. Abstração de requisitos (Davis)

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

Requisitos de Software

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira

MODELAGEM DE SISTEMA Apresentação

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Requisitos de Software

AVALIAÇÃO DA QUALIDADE DO PROCESSO DE MANUTENÇÃO DE SOFTWARE UTILIZANDO A NORMA NBR ISO/IEC 12207

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

ENGENHARIA DE SOFTWARE

Verificação e Validação (V & V)

Introdução a Engenharia de Software

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Verificação e Validação

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Problemas na Manutenção

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Engenharia de Software

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Engenharia de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Visão Geral do RUP (Rational Unified Process)

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Gerência de Projetos e Manutenção de Software Aula 12 Medição / Manutenção / Encerramento Andréa Magalhães Magdaleno 2017.

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Introdução a Engenharia de Software

SOFTWARE REQUIREMENTS

INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

AN INTRODUCTION TO SOFTWARE ENGINEERING

Modernização de Legados

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Princípios da Engenharia de Software aula 03

3.1 Reflexão Computacional

ENGENHARIA DE SOFTWARE

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Organização para Realização de Teste de Software

2

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Engenharia de Software I

CARGA HORÁRIA Engenharia de Software Código: horas PRÉ-REQUISITOS: Paradigmas de Programação

Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Professor: Paulo Vencio

Definições e ciclo de vida

ENGENHARIA DE SOFTWARE

Capítulo 2 - Processos de Software

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

ISO/IEC Processo de ciclo de vida

Engenharia de Software

Transcrição:

Manutenção Leitura: Sommerville; Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 1

Manutenção de software É modificar um programa depois que ele foi colocado em uso. As mudanças são implementadas modificando os componentes existentes e adicionando novos componentes ao sistema A evolução do software é importante pois as organizações atuais são muito dependentes dos sistemas. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 2

Modelo espiral p/ manutenção especificação implementação R e l e a s e 1 operação R e l e a s e 2 R e l e a s e 3 validação Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 3

Estratégias de mudança de software Manutenção de software - Mudanças são feitas em resposta a requisitos modificados, mas a estrutura fundamental do SW permanece estável. Transformação de arquitetura - A arquitetura do sistema é modificada geralmente de uma centralizada p/ uma distribuída. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 4

Estratégias de mudança de software Re-engenharia de software Nenhuma funcionalidade é adicionada ao sistema, mas ele é reestruturado e reorganizado p/ facilitar mudanças futuras Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 5

Dinâmica de evolução de programas Leis de Lehman Mudança contínua um programa num ambiente real necessariamente muda ou torna-se progressivamente menos útil nesse ambiente. Aumento da complexidade com a evolução do programa sua estrutura tende a ficar mais complexa. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 6

Dinâmica de evolução de programas Leis de Lehman Evolução de programas de larga escala a evolução de um programa é um processo auto-regulável. Limita o número de possíveis mudanças. Estabilidade organizacional mudanças de staff/recursos tem poucos efeitos na evolução do sistema. Conservação da familiaridade - a mudança incremental é constante. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 7

Mudança de Software Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 8

Tipos de Manutenção de Software Manutenção Corretiva - Identificar e corrigir erros. Manutenção Adaptativa - Adaptar o software ao ambiente. Manutenção Perfectiva - Atender pedidos do usuário para modificar funções existentes ou incluir novas funções. Manutenção Preventiva - Melhorar a manutenibilidade ou confiabilidade futuras. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 9

Distribuição do esforço de manutenção Reparação de Falhas (17%) Adaptação de SW (18%) Adição ou modificação de funcionalidade (65%) Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 10

Custos de manutenção Sistema1 Sistema2 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 3 0 0 3 5 0 4 0 0 4 5 0 5 0 0 $ Custos de desenvolvimento Custos de manutenção Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 11

Manutenção Fatores de custos Estabilidade da equipe - Custos de manutenção são menores se a mesma equipe está envolvido com o sistema. Responsabilidade contratual Se os engenheiros de SW não tem nenhuma responsabilidade contratual p/ a manutenção, não há incentivo em documentar o SW p/ garantir mudança futura. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 12

Manutenção Fatores de custos Habilidades da equipe - A equipe de manutenção é inexperiente e tem conhecimento limitado do domínio. Idade e estrutura do programa - Enquanto o programa envelhece, sua estrutura se degrada tornando-o mais difícil de compreender e mudar. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 13

Previsão de mudança A previsão de mudança preocupa-se em avaliar as partes do sistema que podem causar problemas e ter custos de manutenção altos. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 14

Previsão de mudança A aceitação da mudança depende da facilidade de manutenção dos componentes afetados pela mudança. Implementar mudanças degrada o sistema e reduz sua facilidade de manuteção. Custos de manutenção dependem do número de mudanças e os custos de implementação das mudanças dependem da facilidade de manuteção dos componentes do sistema. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 15

Previsão de mudança Que partes do sistema serão mais dispendiosas para se manter? Previsão de mudança de sistema Previsão de facilidade de manutenção Previsão de custo de manutenção Quais serão os custos manutenção durante o tempo de vida útil desse sistema? Quais os custos de manutenção desse sistema no próximo ano? Que partes serão afetadas pelos pedidos de mudança? Quantos pedidos de mudança podem ser esperados? Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 16

O processo de manutenção Pedidos de alterações Análise de impacto Planejamento de release Implementação de mudança Release do sistema Reparo de defeitos Adaptação da plataforma Incremento de sistema Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 17

Pedidos de mudança São feitos pelos utilizadores, clientes ou gerentes. Na prática, alguns pedidos devem ser implementados urgentemente: Reparar falhas Mudanças no ambiente Mudanças urgentes do negócio Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 18

Evolução da arquitetura Há uma necessidade de converter muitos sistemas legados de uma arquitetura centralizada p/ uma cliente-servidor Razões Custos de HW. Expectativas quanto à interface com o usuário Acesso distribuído aos sistemas Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 19

Sistemas Legados Antigos sistemas que ainda são essenciais para a empresa. Todos os sistemas de software úteis inevitavelmente são modificados quando as empresas passam por mudanças. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 20

Risco de substituir um Sistemas Legados Sistemas de legado, raramente, têm uma especificação completa. Os processos corporativos e o modo como os sistemas legados operam estão sempre entrelaçados. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 21

Risco de substituir um Sistemas Legados O sistema pode embutir regras corporativas que não estão documentadas formalmente em outro lugar. Desenvolvimento de software novo é arriscado e pode não ter êxito. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 22

Risco de substituir um Sistemas Legados Partes diferentes implementadas por diferentes equipes. Linguagem de programação obsoleto. A documentação de sistema está desatualizada. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 23

Risco de substituir um Sistemas Legados A estrutura de sistema corrompida por muitos anos de manutenção (utilização de técnicas para economizar espaço ou aumentar a velocidade). Estruturas de arquivo usadas podem ser incompatíveis. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 24

Valor de negócios Avaliação dos Sistemas Legados 9 10 6 7 8 1 2 3 4 5 Qualidade de sistema Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 25

Sistemas Legados de Aplicação Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 26

Sistemas Centrados em Bancos de Dados Programa 1 Programa 2 Programa 3 Programa 4 Sistema de Gerenciamento de banco de dados descreve Modelos de dados lógicos e físicos Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 27

Estrutura de Sistemas Legados Interface com o usuário Interface com o usuário serviços serviços Banco de dados Modelo ideal Banco de dados Sistema legados reais Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 28

Distribuição de Sistemas Legados Aplicação em operação em clientes PC Serviço de aplicação BD IU Sistema legado middleware Sistema legado Terminais a caractere Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 29

Modelo de Distribuição em Camadas Apresentação Validação de dados Controle de interação Serviços da aplicação Base de dados Organização de tela p/ usuário final Verificar entrada/saída de dados Gerencia sequência de operação/telas Fornece cálculos básicos Fornece gerenciamento e Armazenamento de dados Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 30

Opções de distribuição O modelo de distribuição mais simples é a distribuição da interface do utilizador onde somente a interface é implementada no servidor A opção mais complexa é onde o servidor provê gestão dos dados e os serviços são implementados no cliente Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 31

Spectrum de opções de distribuição Servidor: 1- Controle de interação Validação de dados Serviços Banco de dados 2- Serviços Banco de dados 3- Banco de dados Cliente: 1- Apresentação 2- Apresentação Controle de interação Validação de dados 3- Apresentação Controle de interação Validação de dados Serviços Custo e esforço crescente Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 32

Distribuição da interface do utilizador Cliente desktop PC com interface GUI Sistema legado Serviço de aplicação BD Middleware de gerenciamento de tela IU Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 33

Manutenção de Código Alienígena Programas com muitos fluxos de controle. Módulos muito grandes. Poucos linhas de comentários significativos. Não existe nenhum outro elemento da configuração de software, além do código. Nenhum membro do pessoal atual de manutenção trabalhou no desenvolvimento do programa. Nenhuma metodologia de desenvolvimento foi aplicada. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 34

Manutenção de Código Alienígena Solução Engenharia Reversa e Re-engenharia Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 35

Engenharia Reversa e Re-engenharia ENGENHARIA REVERSA processo de análise de um software, partindo-se inicialmente da implementação para um nível mais alto de abstração RE-ENGENHARIA implica no exame e na alteração do software para reconstruí-lo em uma nova forma. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 36

Engenharia Reversa e Re-engenharia requisito projeto implementação Eng. progressiva Eng. reversa Eng. progressiva Eng. reversa Re-engenharia Re-engenharia Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 37

Re-engenharia Re-estruturar ou re-escrever parte ou todo um sistema legado, sem alterar a sua funcionalidade. Aplicável quando alguns subsistemas de um sistema mais amplo requerem uma manutenção frequente. Os sistemas poderão ser re-estruturados e redocumentados. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 38

Vantagens da Re-engenharia Risco reduzido: Redesenvolvimento de software essencial constitui um risco elevado, devido ao papel crítico do software na organização Custo reduzido: Algumas estimativas sugerem que o custo de reengenharia é significativamente inferior ao custo de redesenvolvimento do sistema, provavelmente 4 vezes inferior Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 39

Distinção entre Re-engenharia e o Novo Desenvolvimento de Software Novo sistema Especificação do sistema Projeto e implementação Novo sistema Sistema de Soft existente Reengenharia de software Compreensão e transformação Sistema Alterado (re-engenheirado) Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 40

Processo de Re-engenharia Programa original Document. de programa Programa modularizado Dados originais Tradução de Código-fonte Engenharia reversa Modularização de programa Re-engenharia de dados Melhoria de estrutura do prog Programa estruturado Dados Re-engenheirados Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 41

Re-engenharia de Dados Envolve a análise e a reorganização das estruturas de dados (e, por vezes, dos valores dos dados) num programa. Razões para usar a reengenharia de dados: Limpeza de dados; Extensão de dados; Migração de dados. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 42

Engenharia Reversa Analisar o software com o objetivo de recuperar o seu projeto e a sua especificação a partir de seu código-fonte. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 43

O processo da Engenharia Reversa Análise automatizada Diagrama de estrutura de programa Sistema a ser Re-engenheirado Repositório de Informações do Sistema Geração de documentos Diagrama de estrutura de dados Anotação manual Matrizes de rastreamento Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 44

Problemas com a Re-estruturação Perda de comentários / Perda de documentação. A re-estruturação não ajuda na presença de uma modularização pobre, onde componentes relacionados estão dispersos pelo código. A compreensão de programas orientados a dados poderá não ser melhorada através da re-estruturação. Auxiliadora Freire Fonte: Engenharia de Software 6º - 8º Edição / Ian Sommerville 2000-2007 Slide 45