• Nenhum resultado encontrado

Conceitos Relacionados Objetivos Áreas de Atuação

N/A
N/A
Protected

Academic year: 2021

Share "Conceitos Relacionados Objetivos Áreas de Atuação"

Copied!
26
0
0

Texto

(1)

Conceitos Relacionados Objetivos

Áreas de Atuação

(2)

Premissas da Reengenharia

• Sistemas existentes são uma vantagem valiosa da qual a corporação depende e portanto

deveriam ser apropriadamente gerenciados;

• A manutenção de software poderá ser mais

efetiva e eficientemente realizada com ajuda de ferramentas poderosas;

• É uma manutenção automatizada;

(3)

Premissas da Reengenharia

Envolve a melhoria dos processos de manutenção de software e melhoria dos sistemas atuais pela aplicação de novas tecnologias e ferramentas para a manutenção de software;

Sugere um estratégia de manutenção a longo prazo ao invés de simplesmente procurar por uma

imediata mudança na manutenção de Software;

Oferece uma maneira de organizar o software e mantê-lo organizado.

(4)

Conceito

• “Reengenharia é o processo de examinar

software existente e/ou modificá-lo com ajuda de ferramentas automatizadas para:

Melhorar sua futura manutenção;

Atualizar sua tecnologia;

Estender sua expectativa de vida;

Aumentar a produtividade da manutenção.

(5)

Outros Conceitos

“É o estudo e alteração de um determinado sistema para reconstruí-lo numa nova forma e subseqüente implementação dessa nova forma”;

“Modificação em código e estrutura de dados

existentes usando os princípios de engenharia de software atuais para aumentar a capacidade de manutenção e capacidade de adaptação do

sistema”.

“Combinação de técnicas e ferramentas que facilitam a análise, melhoria, redesenho e

reutilização de sistemas existentes para suportar as necessidades de informação”;

(6)

Outros Conceitos

• “Meio para melhorar sistemas existentes sem causar impactos na sua funcionalidade atual, plataforma ou arquitetura técnica”;

• “Conjunto de técnicas e ferramentas orientadas à avaliação, reposicionamento e transformação de sistemas existentes, com o objetivo de

estender-lhes a vida útil e ao mesmo tempo,

proporcionar-lhes uma melhor qualidade técnica e funcionalidade” (Furlan);

(7)

Objetivos da Reengenharia

• Criar um inventário dos sistemas existentes;

• Fornecer assistência automatizada para a manutenção;

• Reduzir custos e erros de manutenção;

• Tornar o sistema mais fácil de compreender, modificar e testar.

(8)

Objetivos da Reengenharia

• Facilitar a conversão e migração do sistema;

• Reforçar a aderência a padrões;

• Melhorar a resposta às solicitações de manutenção;

• Melhorar o ânimo do pessoal de manutenção;

• Proteger e estender a vida do sistema;

• Utilizar CASE para suportar sistemas atuais;

• Reutilizar componentes de sistemas existentes.

(9)

Razões para Reengenharia

• Freqüentes falhas de produção;

• Problemas de desempenho;

• Tecnologia obsoleta;

• Problemas de integração de sistemas;

• Qualidade técnica ruim;

• Dificuldades para testar e caro para manter;

• Problemas crescentes no sistema.

(10)

Razões para se refazer o sistema (Engenharia)

• Não confiável;

• Algoritmos ruins ou incorretos;

• Não atende as necessidades dos

usuários.

(11)

Sistemas Candidatos à Reengenharia

• São de importância crítica da empresa;

• São alvo de manutenção freqüente e requerem um grande percentual de recursos de

manutenção;

• São compreensíveis e podem seguramente ser modificados por poucos membros da equipe de software;

• Contém erros que ninguém pode encontrar;

• Requerem uma melhoria considerável.

(12)

Reengenharia e Software Legado

• O que é um software legado?

Executam tarefas úteis para a organização, mas que foram desenvolvidos utilizando-se técnicas atualmente consideradas obsoletas.

• Importância da reengenharia

É uma modernização do software, uma

abordagem disciplinada para migrar softwares legados em softwares evolutivos.

O processo de R.SW. aplica os princípios da

engenharia de software em um software legado

(13)

Uso correto da Reengenharia

• Não é aplicável quando um sistema de software legado possui alta qualidade técnica e baixo valor de negócio.

• Em sistemas como esse, deve ser aplicada a evolução de software.

• Com tais características é dispensada a

necessidade de esforço de mudança.

(14)

O que é a Evolução de Software?

• A evolução de software é uma atividade de mudança de software, que pode ser desde a inserção de um campo na base

de dados até a completa reimplementação do software.

• A evolução de software pode ser dividida em três categorias: manutenção,

modernização e substituição de

(15)

Processo da manutenção

• A manutenção de software é um processo incremental e repetitivo, onde alterações são feitas no software.

• Essas alterações envolvem eliminação de erros e melhorias funcionais.

• A manutenção é necessária para suportar

a evolução de qualquer software, mas não

deve envolver mudanças estruturais.

(16)

Processo da manutenção

• Manutenção:

▫ Corretiva, adaptativa, melhoria e preventiva.

• Modernização:

▫ É utilizada quando o software legado requer mudanças mais extensas e

significativas do que aquelas realizadas

pela manutenção, mas preserva uma

(17)

Processo da manutenção

• Substituição:

▫ requer a construção do software legado desde o início, e é apropriada quando o software legado não consegue mais

atender às necessidades do negócio e quando a modernização não é possível ou não vale a pena em relação aos

custos.

(18)

Como definir cada processo?

• Sistemas de softwares legados com alta qualidade técnica e alto valor de

negócio são candidatos a evolução do sistema utilizando práticas de evolução de sistemas.

• Devido a tais características há uma

preocupação com as mudanças, mas não

há necessidade de esforço.

(19)

Como definir cada processo?

• Os sistemas legados com baixa qualidade técnica e alto valor de negócio são bons

candidatos à reengenharia de software após uma análise rigorosa.

▫ A análise é essencial para priorizar sistemas candidatos à reengenharia e qual será a

estratégia de desenvolvimento.

▫ A maior justificativa de reengenharia é o alto risco de falhas, problemas de desempenho, confiabilidade, etc.

(20)

Áreas de Atuação da Reengenharia

• Análise;

• Reestruturação;

• Engenharia Reversa;

• Migração;

• Reutilização.

(21)

Análise

• É o processo de examinar os sistemas atuais a fim de compreender os componentes do

sistema e como seus programas funcionam.

• O propósito principal é identificar programas prioritários para Reengenharia e medir sua qualidade.

(22)

Reestruturação

• É o processo de alterar a forma do software (Ex:

definição e nomes de dados e código do programa) sem alterar sua funcionalidade.

• O propósito principal é tornar o programa mais fácil de ser compreendido.

(23)

Engenharia Reversa

• É o processo de analisar o software para reconstruir uma descrição de seus

componentes e seus relacionamentos. Uma descrição de alto nível do programa é obtida a partir do programa físico.

• O propósito é redocumentar o sistema e

descobrir informações do projeto com o auxílio na melhoria da compreensão do programa.

(24)

Migração

• É o processo de converter um software de uma linguagem para outra, mover de um ambiente operacional para outro ou atualizar sua

tecnologia.

• O propósito principal é amenizar o impacto de adoção de novos ambientes e tecnologias.

(25)

Reutilização

• É o processo de sistematicamente reaproveitar os diversos elementos criados durante o

desenvolvimento de software (código, projeto, especificações, documentação).

• O propósito principal é acelerar o

desenvolvimento de novos sistemas e melhorar sua qualidade.

(26)

Exercício 3

• Que experiências de reengenharia você conhece? Classifique-as.

• Quais as principais dificuldades enfrentadas nestas experiências ?

Referências

Documentos relacionados

• “…Se puder verificar equipes incompletas no início da próxima aula seria uma mão

To control scope, we need to manage a list of tasks... To control time, we need to manage

• Scenarios should verify that desired traces can be observed by testing the application.. Create interface when little functionality

Rule of Least Surprise: In interface design, always do the least surprising thing.. Rule of Silence: When a program has nothing surprising to say, it should

a) The software package-class-method perspective is related to structural representation (Figure 5). It deals with module hierarchy and how they are organized

Little modularity and agility, more deffects,   high costs..

O conceito de sustentabilidade, por não haver um consenso, muitas vezes é confundido com outros igualmente importantes, tais como: Produção Limpa, Desenvolvimento Sustentável

O tema da maturidade dos processos de desenvolvimento de software foi ganhando força na comunidade da engenharia de software, em conseqüência dos resultados práticos obtidos