UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SULSISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE
Re-engenharia de Software
Prof.ª Adriana dos Santos Caparróz Carvalho
Atividades de Arcabouço Lembram das famosas atividades de arcabouço?
Comunicação
Planejamento
Modelagem
Construção
Implantação
Iniciação do projetoLevantamento derequisitos
EstimativasCronogramaçãoMonitoração
AnáliseProjeto
CodificaçãoTeste
Entrega ManutençãoFeedback
Métricas
Testes
Reengenharia
Manutenção A mais de três décadas, a
manutenção de software foi caracterizada como um “iceberg”. [CAN72]
Esperamos que o imediatamente visível seja tudo o que existe, mas sabemos que uma enorme massa de possíveis problemas e custo fica sob a superfície.
A manutenção de software existente pode ser responsável por mais de 60% de todo o esforço despendido por uma organização de desenvolvimento. [PRE06]
Manutenção
Mas você poderia pensar:
“Mas eu não gasto 60% do meu tempo consertando erros nos programas que desenvolvi”.
Manutenção
Manutenção de software é, sem dúvida, mais do que consertar erros.
Ela pode ser definida pela identificação de 4 diferentes atividades:
Manutenção corretiva
Manutenção adaptativa
Manutenção perfectiva ou de melhoria
Manutenção preventiva ou reengenharia
20% de todo o trabalho de todo o trabalho de manutenção é gasto concertando erros
80% são gastos adaptando sistemas existentes a modificações no seu ambiente externo, fazendo melhorias solicitadas por usuários e submetendo uma aplicação a reengenharia, para uso futuro.
Manutenção
Mas o que é reengenharia?
Onde se aplica?
Reengenharia
Michel Hammer lançou as fundações de uma revolução no modo de pensar gerencial a respeito de processos do negócio e computação:
Já é hora de parar de pavimentar trilhas de gado. Em vez de embutir processos desatualizados em silício e software, deveríamos descartá-los e começar de novo. Deveríamos “reengenheirar” os nossos processos de negócio a fim de conseguir aperfeiçoamentos drásticos em seu desempenho.
Toda empresa opera sob muitas regras desarticuladas... A reengenharia procura romper com as antigas regras sobre a condução e a organização do negócio.
Reengenharia
A ligação entre a reengenharia de negócio e a engenharia de software está em uma visão de sistema.
O software é freqüentemente a realização das regras de negócio. À medida que essas regras se modificam, o software também deve ser modificado.
À medida que os gerentes trabalham para modificar as regras, a fim de conseguir maior eficiência e competitividade, o software deve acompanhar o ritmo.
Em alguns casos, isso significa a construção de novos sistemas importantes baseados em computador. Mas em muitos outros, significa a modificação ou a reconstrução de aplicações existentes.
Reengenharia de Processo de Negócio
BPR Estende-se muito além das tecnologias da informação e da
engenharia de software...
“a busca para, e a implementação de, modificações radicais no processo do negócio para conseguir resultados inovadores”.[STE93]
Processo de negócio É um conjunto de tarefas logicamente relacionadas, realizadas para
conseguir um resultado definido do negócio” [DAV90]
Equipamentos Pessoal Recursos materiais Procedimentos de negócio
(Business Process Reengineering, BPR)
São combinados para produzir um resultado especificado.
Reengenharia de Sistemas
Fases Genéricas do Ciclo de Vida
Reengenharia de Sistemas
Abstração Definição de Abstração: habilidade de se ignorar os
aspectos de assuntos não relevantes para o propósito em questão
Nível de Abstração:Cada passo no processo de desenvolvimento de software é um refinamento do nível de abstração do software. Nos estágios iniciais do ciclo de vida as informações possuem alto nível de abstração e nos estágios finais baixo nível de abstração
Grau de Abstração:Está relacionado a uma mesma atividade no ciclo de vida do software. Informações numa forma mais global possuem alto grau de abstração, numa forma mais detalhada possuem baixo grau de abstração.
Reengenharia de Sistemas
Abstração
Engenharia Progressiva X Reversa
Engenharia Progressiva:Processo tradicional de engenharia de software,
caracterizado pelas atividades progressivas do ciclo de vida, que partem de um alto nível de abstração, para um baixo nível de abstração.
Engenharia Reversa:O processo inverso a Engenharia Progressiva,
caracterizado pelas atividades retroativas do ciclo de vida, que partem de um baixo nível de abstração para um alto nível de abstração.
Reengenharia de Sistemas
Top Related