![Page 1: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/1.jpg)
Prof. Hélio Monteiro
![Page 2: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/2.jpg)
Mudança de Software Mudança de software é inevitável
Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros devem ser reparados; Incorporação de novo Hardware ; Melhoria no desempenho e/ou confiabilidade.
Um problema chave para as organizações é implementar e gerir mudança para os seus sistemas legados
![Page 3: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/3.jpg)
Estratégias de mudança de software Manutenção de software
Mudanças são feitas em resposta à modificação de requisitos, mas a estrutura fundamental do SW permanece estável.
Transformação arquitetural A arquitetura do sistema é modificada, geralmente de uma
centralizada para uma distribuída. Reengenharia de software
Nenhuma funcionalidade é adicionada ao sistema, mas ele é reestruturado e reorganizado para facilitar mudanças futuras.
Estas estratégias podem ser aplicadas em conjunto ou separadamente.
![Page 4: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/4.jpg)
Dinâmica de evolução dos sistemasA dinâmica de evolução de sistemas é o estudo dos
processos de mudança do sistemaEstudo empírico (Estudo baseado na experiência),
realizado por Lehman e Belady propõe que existem leis que são aplicadas a todos os sistemas enquanto eles evoluem;
O estudo foi baseado em sistemas de grande porte desenvolvidos por grandes organizações.
![Page 5: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/5.jpg)
Leis de Lehman Mudança contínua – Um sistema, num ambiente real,
necessariamente muda ou torna-se progressivamente menos útil;
Aumento da complexidade – Com a evolução do sistema, sua estrutura tende a ficar mais complexa;
Evolução de sistemas de grande porte – A evolução de um sistema é um processo auto-regulável;
Estabilidade organizacional – mudanças de staff / recursos tem poucos efeitos na evolução do sistema;
Conservação da familiaridade - a mudança incremental é constante.
![Page 6: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/6.jpg)
Aplicabilidade das leis de Lehman São aplicadas a sistemas de grande porte desenvolvidos
por grandes organizações. Entretanto, as leis podem ser aplicadas a sistemas menores que existem em empresas de menor porte.
![Page 7: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/7.jpg)
Manutenção de software É modificar um sistema depois que ele foi implantado ou se
encontra operacional; A manutenção pode envolver grandes mudanças, até mesmo na
arquitetura do sistema; As mudanças são implementadas modificando os componentes
existentes e/ou adicionando novos componentes ao sistema; Os requisitos do sistema mudam porque o ambiente muda;Se os sistemas estão fortemente acoplados com seu ambiente,
quando um sistema novo ou uma nova funcionalidade é instalada, ele pode mudar o ambiente e, portanto, mudar os requisitos dos demais sistemas;
Os sistemas devem ser modificados para que eles permaneçam úteis no ambiente.
![Page 8: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/8.jpg)
Tipos de manutenção Manutenção Corretiva
◦ Este tipo de manutenção é utilizado para a correção de erros que podem surgir em: Regras de negócio (Erro ou ausência); Código; Performance (Desempenho);
Manutenção Evolutiva◦ Este tipo de manutenção visa:
Implementar novas regras de negócio; Adaptar o sistema a novas solicitações do ambiente; Inclusão de novas funcionalidades.
Manutenção Adaptativa◦ Este tipo de manutenção diz respeito à adaptabilidade do sistema a novos
elementos, sejam de software ou hardware. Manutenção Preventiva
◦ Caracteriza-se pela necessidade de evitar a ocorrência de uma possível condição que provocará erro, inexatidão ou defasagem do sistema.◦ Um exemplo de manutenção preventiva foi o Bug do ano 2000.
![Page 9: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/9.jpg)
Distribuição do esforço de manutenção
![Page 10: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/10.jpg)
Modelo espiral p/ manutenção
![Page 11: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/11.jpg)
Custos de manutenção Usualmente maiores do que os custos de desenvolvimento (de duas a
cem vezes, dependendo da aplicação) Afetados por fatores técnicos e não técnicos Aumenta enquanto o SW é mantido. A manutenção corrompe a
estrutura do SW, tornando-a mais difícil. SW antigos podem ter custos de manutenção altos
0 50 100 150 200 250 300 350 400 450 500
System 1
System 2
Development costs Maintenance costs
$
![Page 12: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/12.jpg)
ManutençãoFatores de custos
Estabilidade da equipe - Custos de manutenção são menores se o mesmo staff está envolvido com o sistema
Habilidades do staff - O staff de manutenção é inexperiente e tem conhecimento limitado do domínio
Idade e estrutura do sistema - Enquanto o programa envelhece, sua estrutura se degrada tornando-o mais difícil de compreender e mudar
Software evolutivoEm vez de ter fases separadas p/ manutenção e desenvolvimento, é
preferível que o SW seja desenhado permitindo sua evolução contínua no seu ciclo de vida
![Page 13: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/13.jpg)
O processo de manutenção
![Page 14: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/14.jpg)
Pedidos de mudançaSão feitos pelos utilizadores, clientes ou gestão; Em princípio devem ser analisados cuidadosamente
como parte do processo de manutenção, e então, implementados ;
Na prática, alguns pedidos devem ser implementados urgentementeReparar falhas ;Mudanças no ambiente; Mudanças urgentes do negócio.
![Page 15: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/15.jpg)
Implementação da mudança
![Page 16: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/16.jpg)
Reparação de emergência
![Page 17: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/17.jpg)
Previsão de mudançaA previsão de mudança preocupa-se em avaliar as partes
do sistema que podem causar problemas e ter custos de manutenção altos A aceitação da mudança depende da manutenibilidade dos
componentes afectados pela mudança; Implementar mudanças degrada o sistema e reduz sua
manutenibilidade ; Custos de manutenção dependem do número de
mudanças e os custos de mudança dependem da manutenibilidade.
![Page 18: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/18.jpg)
Previsões em relação às mudanças
![Page 19: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/19.jpg)
Previsão da mudança Prever o número de mudanças requer a compreensão
das relações entre um sistema e seu ambiente; Sistemas fortemente acoplados c/ o ambiente requerem
mudanças quando quer que o ambiente mude; Fatores que influenciam:
Número e complexidade das interfaces do sistema; Número de requisitos inerentemente voláteis; Os processos do negócio onde o sistema é utilizado.
![Page 20: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/20.jpg)
Grupo de Controle de MudançaAvalia:
o impacto na funcionalidade do produto.validade técnica da mudança
consistência, uniformidadeAprova, rejeita, ou põe em espera;Segue um Cronograma.
![Page 21: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/21.jpg)
Componentes de um pedido de mudançaDescrição da mudança solicitada;
O solicitante deve, através de um canal próprio, descrever o que deseja alterar em relação ao software.
Alternativas existentes em relação à mudança; A equipe de desenvolvimento/manutenção deve verificar se existem
alternativas viáveis com vistas aos aspectos: prático, técnico e econômico.Complexidade;
Verificação da complexidade, em relação ao sistema, da alteração solicitada.
Impacto;Analisar o impacto das mudanças no sistema e nos demais
sistemas com os quais há interação;
![Page 22: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/22.jpg)
Componentes de um pedido de mudançaCusto;
Viabilidade econômica do projeto de mudanças;Relação com outras mudanças;
Analisar se existem outras mudanças que impactem ou contemplem as mudanças solicitadas.
Cronograma;Após as etapas anteriormente descritas, elaborar cronograma com os
principais marcos do projeto.Testes
Realização dos testes, principalmente regressão, para as alterações solicitadas.
![Page 23: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/23.jpg)
Métricas de complexidade Previsões de manutenção podem ser feitas através da
avaliação da complexidade dos componentes do sistema; Estudos mostram que a maior parte dos esforços de
manutenção são gastos em um número relativamente pequeno de componentes de um sistema;
A complexidade depende das estruturas de controle, das estruturas de dados e do tamanho dos módulos e procedimentos.
![Page 24: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/24.jpg)
Métricas do processo Medidas de processo podem ser usadas p/ medir a
manutenibilidade : Número de pedidos p/ a manutenção corretiva; Tempo médio requerido p/ a análise de impacto; Tempo médio p/ implementar um pedido de mudança; Número de pedidos de mudanças importantes.
Se qualquer destes valores apresentar curva ascendente, pode indicar um declínio na manutenibilidade.
![Page 25: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/25.jpg)
Evolução da arquitetura Necessidade de converter sistemas legados (arquitetura
centralizada) para arquitetura distribuída (cliente-servidor) Razões
Custos de HW. Servidores são mais baratos que mainframes;Utilizadores querem acessar o sistema a partir de computadores
diferentes e localizados em pontos geograficamente distantes.Fatores de distribuição
A importância do negócio;A idade do sistema (quanto mais velho mais difícil);Estrutura do sistema (quanto mais modularizado, mais fácil);Política de procura do HW (substituição dos mainframes por
servidores).
![Page 26: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/26.jpg)
Estrutura de sistemas legadosNa prática, as três camadas de um sistema
(Apresentação, Regras de negócio e Acesso a dados) estes estão inseridas em uma camada única, nos sistemas legados mais antigos; De acordo com as mais recentes metodologias de
desenvolvimento de sistemas, o ideal é a distribuição clara entre a interface do usuário (Apresentação), os serviços do sistema (Regras de negócio) e a gestão de dados do sistema (Acesso a dados).
![Page 27: Prof. Hélio Monteiro. Mudança de Software Mudança de software é inevitável Novos requisitos emergem quando o SW é usado; O ambiente do negócio muda; Erros](https://reader031.vdocuments.com.br/reader031/viewer/2022013013/570638641a28abb8239018b9/html5/thumbnails/27.jpg)
Bibliografia SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo: Pearson Education,
2007. 592 p. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e projeto
orientados a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007. 695 p.
BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: guia do usuário. Rio de Janeiro: Elsevier, 2006. 474 p.
ERIKSSON, Hans-Erik. UML toolkit. New York, NY: J. Wiley, 1998. 397 p. FOWLER, Martin. UML Essencial: um breve guia para a linguagem-padrão de
modelagem de objetos. 2. ed. Porto Alegre: Bookman, 2000. 169 p. QUATRANI, Terry. Visual modeling with Rational Rose 2000 and UML. Reading, MA:
Addison-Wesley, 2001. 256 p. ; il. JACOBSON, Ivar; BOOCH, Grady & RUMBAUGH, James. The unified software
development process. Reading, MA: Addison-Wesley, 1999. 463p. RUMBAUGH, James; et al. Modelagem e projetos baseados em objetos. 8. ed. Rio
de Janeiro: Campus, 1994. 652 p.