Beruflich Dokumente
Kultur Dokumente
Slide 1
Objetivos
Explicar por que as mudanas so inevitveis para que os sistemas de software permanecam teis Discutir a manuteno de software e os fatores de custo de manuteno Descrever os processos envolvidos em evoluo de software Discutir uma abordagem para avaliao de estratgias de evoluo para sistemas legados
Slide 2
Tpicos abordados
Dinmica da evoluo de programas Manuteno de software Processo de evoluo Evoluo de sistemas legados
Slide 3
Mudana de software
Slide 4
Importncia da evoluo
As organizaes fazem grandes investimentos em seus sistemas de software eles so ativos crticos de negcios. Para manter o valor desses ativos de negcio, eles devem ser mudados e atualizados. A maior parte do oramento de software nas grandes organizaes voltada para evoluo do software existente ao invs do desenvolvimento de um novo software.
Engenharia de Software, 8. edio. Captulo 21 Slide 5
Slide 6
Dinmica de evoluo de programas o estudo dos processos de mudana de sistema. Aps muitos estudos empricos, Lehman e Belady propuseram que havia uma srie de leis que se aplicavam a todos os sistemas quando eles evoluiam. Existem observaes considerveis ao invs de leis. Elas so aplicveis a sistemas de grande porte desenvolvidos por grandes organizaes. Talvez menos aplicveis em outros casos.
Slide 7
Leis de Lehman
Slide 8
As leis de Lehman parecem ser, geralmente, aplicveis a sistemas customizados de grande porte desenvolvidos por grandes organizaes.
Confirmado em mais recente trabalho de Lehman sobre o projeto FEAST (veja leitura adicional no Website do livro)
Slide 9
Manuteno de software
a modificao de um programa aps ter sido colocado em uso. A manuteno normalmente no envolve mudanas considerveis na arquitetura do sistema. As mudanas so implementadas pela modificao de componentes existentes e pela adio de novos componentes ao sistema.
Engenharia de Software, 8. edio. Captulo 21 Slide 10
A manuteno inevitvel
Os requisitos de sistema podem mudar enquanto o sistema est sendo desenvolvido porque o ambiente est mudando. Portanto, um sistema entregue no atender a esses requisitos! Os sistemas esto fortemente acoplados ao seu ambiente. Quando um sistema instalado em um ambiente, ele muda esse ambiente e, portanto, muda os requisitos de sistema. Portanto, os sistemas DEVEM ser mantidos se forem teis em um ambiente.
Slide 11
Tipos de manuteno
Slide 12
Slide 13
Custos de manuteno
Geralmente, so maiores que os custos de desenvolvimento (de 2 a 100 vezes, dependendo da aplicao). So afetados por fatores tcnicos e no tcnicos. Aumentam conforme o software mantido. A manuteno corrompe a estrutura do software, tornando a manuteno posterior mais difcil. Software em envelhecimento pode ter altos custos de suporte (por exemplo, linguagens antigas, compiladores, etc.).
Slide 14
Custos de desenvolvimento/manuteno
Slide 15
Estabilidade da equipe
Os custos de manuteno so reduzidos se o mesmo pessoal estiver envolvido por algum tempo. Os desenvolvedores de um sistema podem no ter responsabiidade contratual pela manuteno, portanto, no h incentivo para projetar para mudanas futuras. O pessoal da manuteno geralmente inexperiente e tem conhecimento limitado de domnio. medida que os programas envelhecem, sua estrutura degradada e se torna mais difcl de ser compreendida e modificada.
Responsabilidade contratual
Habilidade do pessoal
Slide 16
Previso de manuteno
A previso de manuteno est relacionada avaliao de quais partes do sistema podem causar problemas e ter altos custos de manuteno
A aceitao de mudana depende da facilidade de manuteno dos componentes afetados por ela; A implementao de mudanas degrada o sistema e reduz a sua facilidade de manuteno; Os custos de manuteno dependem do nmero de mudanas, e os custos de mudana dependem da facilidade de manuteno.
Slide 17
Previso de manuteno
Slide 18
Previso de mudanas
A previso do nmero de mudanas requer o entendimento dos relacionamentos entre um sistema e seu ambiente. Sistemas fortemente acoplados requerem mudanas sempre que o ambiente mudado. Fatores que influenciam esse relacionamento so
O nmero e a complexidade das interfaces de sistema; O nmero de requisitos de sistema inerentemente volteis; Os processos de negcio nos quais o sistema usado.
Slide 19
Mtricas de complexidade
As previses de facilidade de manuteo podem ser feitas pela avaliao da complexidade dos componentes de sistema. Estudos mostraram que a maior parte do esforo de manuteno despendida sobre um nmero relativamente pequeno de componentes de sistema. A complexidade depende
Da complexidade das estruturas de controle; Da complexidade das estruturas de dados; Do objeto, do mtodo (procedimento) e do tamanho do mdulo.
Slide 20
Mtricas de processo
Se qualquer uma ou todas essas esto aumentando, isso pode indicar um declnio na facilidade de manuteno.
Slide 21
Processos de evoluo
Propostas para mudana so os direcionadores para a evoluo do sistema. Identificao de mudana e evoluo continuam ao longo do ciclo de vida do sistema.
Slide 22
Slide 23
Slide 24
Implementao de mudanas
Slide 25
Mudanas urgentes podem ter de ser implementadas sem passar por todos os estgios do processo de desenvolvimento de software
Se um defeito srio de sistema tem de ser reparado; Se mudanas no ambiente do sistema (por exemplo, atualizao do OS) tm efeitos inesperados; Se existem mudanas de negcio que necessitam de uma resposta muito rpida (por exemplo, o release de um produto concorrente)
Slide 26
Reparo de emergncia
Slide 27
Reengenharia de sistema
a reestruturao ou reescrita de parte ou de todo um sistema legado sem mudana na sua funcionalidade. aplicvel onde alguns subsistemas de um sistema de grande porte necessitam de manuteno freqente. A reengenharia envolve a adio de esforo para torn-los mais fceis de manter. O sistema pode ser reestruturado e redocumentado.
Engenharia de Software, 8. edio. Captulo 21 Slide 28
Vantagens da reengenharia
Risco reduzido
Existe um alto risco no redesenvolvimento de software. Pode haver problemas de desenvolvimento, de pessoal e problemas de especificao. O custo de reengenharia , freqentemente, menos significativo que os custos de desenvolvimento de um novo software.
Custo reduzido
Slide 29
Slide 30
O processo de reengenharia
Slide 31
Converso de cdigo-fonte
Converter o cdigo para uma nova linguagem. Analisar o programa para compreend-lo. Analisar e modificar a estrutura para facilidade de entendimento. Reorganizar a estrutura do programa. Limpar e reestruturar os dados do sistema.
Engenharia reversa
Modularizao de programa
Reengenharia de dados
Slide 32
Abordagens de reengenharia
Slide 33
A qualidade do software que deve passar pela reengenharia. O apoio de ferramentas disponveis para reengenharia. Extenso da converso de dados. A disponibilidade do pessoal especializado
Isso pode ser um problema com sistemas antigos baseados em tecnologia que no so mais amplamente usadas.
Slide 34
Organizaes que contam com sistemas legados devem escolher uma estratgia para a evoluo desses sistemas
Descartar o sistema completamente e modificar os procesos de negcio de maneira que ele no seja mais necessrio; Deixar o sistema sem alteraes e continuar com a manuteno regular; Reengenharia do sistema para aprimorar sua facilidade de manuteo; Substituir todo ou parte do sistema por um novo sistema.
Slide 35
Slide 36
Slide 37
Avaliao de ambiente
Avaliao de aplicao
Slide 39
Usar uma abordagem orientada a pontos de vista e procurar respostas dos stakeholders do sistema
Existe um modelo de processo definido: Ele seguido? Diferentes partes da organizao usam processos diferentes para a mesma funo? Como o processo foi adaptado? Quais so os relacionamentos com os outros processos de negcio? So necessrios? O processo efetivamente apoiado pelo software de aplicao legado?
Exemplo um sistema de pedidos de viagem pode ter um baixo valor de negcio por causa do uso amplamente difundido de pedidos baseados em Web.
Engenharia de Software, 8. edio. Captulo 21 Slide 40
Avaliao de ambiente
Slide 41
Avaliao de aplicao
Slide 42
Medio de sistema
Voc pode coletar dados quantitativos para fazer uma avaliao da qualidade do sistema de aplicao
O nmero de solicitaes de mudana no sistema; O nmero de interfaces diferentes de usurio usados pelo sistema; O volume de dados usados pelo sistema.
Slide 43
Pontos-chave
Desenvolvimento e evoluo de software devem ser um processo iterativo nico. As leis de Lehman descrevem uma srie de percepes de evoluo de sistemas. Trs tipos de manuteno so: correo de defeitos, modificao de software para um novo ambiente e implementao de novos requisitos. Para sistemas sob encomenda, os custos de manuteno geralmente excedem os custos de desenvolvimento.
Slide 44
Pontos-chave
O processo de evoluo dirigido por solicitaes de mudanas a partir dos stakeholders de sistema. A reengenharia de software est relacionado reestruturao e redocumentao de software para torn-lo mais fcil de mudar. O valor de negcio de um sistema legado e sua qualidade deve determinar a estratgia de evoluo que ser usada.
Slide 45