• Nenhum resultado encontrado

Etapa 3: Verificar sistema após refatoração

Esta etapa é composta de um passo cujo objetivo principal é verificar a funcionalidade do sistema após a realização do processo de refatoração e garantir que não há alteração em seu comportamento (a menos que a alteração seja planejada e desejada). O único passo desta etapa é apresentado no seguinte formato:

Identificação: define o passo da etapa.

Ação: representa a ação que deve ser executada no passo. Objetivo: descreve o propósito e a justificativa da Ação.

Solução: descreve o que e como deve ser feito para que o Objetivo seja atingido.

A seguir é apresentado o único passo desta etapa.

Identificação: Passo 1.

Ação: Verificar a funcionalidade do sistema.

Objetivo: Reavaliar o sistema após a refatoração quanto ao seu comportamento, a fim de

detectar que o processo não altera a sua funcionalidade.

Solução:

Utilizar as mesmas interações realizadas anteriormente no passo 1 da etapa 1 (entender a funcionalidade do sistema) para analisar se as saídas após a refatoração permanecem inalteradas. Caso haja alterações no comportamento do sistema, há indício de que o padrão não utilizado adequadamente. O engenheiro de software deve retornar ao início do processo.

3.6 Considerações Finais

Este capítulo apresentou o processo de refatoração com padrões de projeto, que fornece a organização e reestruturação de um sistema tornando-o mais manutenível.

Capítulo 3 – Processo de Refatoração com Padrões de Projeto 41

O processo definido nesta dissertação tem três etapas distintas e seqüenciais, no entanto, durante a etapa 2 pode ser necessário iterações para a elaboração da documentação do sistema enquanto ocorre a refatoração do mesmo. Nem sempre o desenvolvedor de software constrói primeiro completamente os modelos de classes de projeto para depois realizar a implementação. Dessa forma, os princípios de desenvolvimento ágil (Ambler e Jeffries, 2002) podem ser utilizados.

Os indícios para aplicação de padrões obtidos a partir de estudos com sistemas do domínio de sistemas de informação podem não ser suficientes ao imediato reconhecimento desses padrões pela sua identificação. Nesse caso, é necessário que o engenheiro de software tenha alguma experiência em reconhecer a aplicação do padrão no sistema utilizando, posteriormente, o processo de refatoração com o padrão. Durante a elaboração dessa lista com indícios da existência de padrões de projeto, preocupou-se em enfatizar o que o sistema deve apresentar, com apenas exemplificações de trechos de código, o que não significa que o sistema deva, obrigatoriamente, ter exclusivamente os trechos de código apresentados. Assim, é mostrada apenas uma indicação de como o código deve se comportar e ser estruturado.

O processo de refatoração definido nesta dissertação de forma prospectiva aplica um padrão a cada iteração, ou seja, quando é iniciado o processo e identificado o padrão, a refatoração acontece para esse padrão isoladamente.

A restrição quanto à aplicação das diretrizes é que somente foram utilizados sistemas de informação como estudo de caso. Dessa forma, não há garantia de que seja aplicável em outros domínios, caso haja interesse, porém infere-se que o engenheiro de software, tendo conhecimento da aplicabilidade dos padrões e com as diretrizes apresentadas, possa realizar a manutenção preventiva em outros tipos de sistema.

Outro ponto que merece destaque é que há aumento do número de linhas de código quando os padrões de projeto são introduzidos no código-fonte. Em contrapartida, há melhor organização e estruturação do sistema, o que possibilita a rápida identificação de qual funcionalidade é tratada em cada parte deste sistema.

O capítulo seguinte apresenta um estudo de caso em que vários padrões são utilizados cumulativamente, a fim de mostrar a utilidade do processo de refatoração descrito neste capítulo.

&&&&

'

''

'

Capítulo 4

Estudo de Caso

4.1 Considerações Iniciais

Após elaborar o processo de refatoração com padrões de projeto definido no capítulo 3 desta dissertação, um estudo de caso foi realizado para a aplicação do processo definido neste trabalho de maneira cumulativa em uma mesma aplicação. Para isso, o sistema de videolocadora foi o escolhido por apresentar diversos padrões, que anteriormente foram aplicados isoladamente.

Esse sistema de videolocadora foi obtido por meio da Internet e não havia documentação além do código-fonte. O sistema original tem 11 classes, sendo uma para banco de dados e as demais misturam tratamento de interface com o usuário e acesso ao banco. O total de linhas de código é de 1883. O banco de dados utilizado é o MS-Access, cuja conexão é feita via JDBC (Java DataBase Connectivity) utilizando ODBC (Open Database Connectivity), com o driver embutido no MS-Access.

Dez padrões de projeto são aplicados no sistema: Template Method, Decorator, Prototype, Command, Proxy, Visitor, Iterator, Singleton, Builder e Adapter. Pode-se notar que há padrões pertencentes às três categorias.

A forma utilizada para apresentação do estudo de caso é por meio de três padrões, um de cada categoria, e não dos dez para evitar que a dissertação ficasse muito extensa. No CD- ROM anexo à dissertação encontram-se os dez processos de refatoração realizados nesse sistema.

Os padrões Singleton, Decorator e Visitor foram os escolhidos para serem apresentados neste estudo de caso. Embora seja criado um modelo de classes a cada padrão utilizado, aqui será mostrado um referente ao sistema existente (antes das refatorações) e um do sistema após as dez refatorações, ou seja, apresentando as estruturas criadas com a

Capítulo 4 – Estudo de Caso 43

aplicação dos padrões, já que essa é a documentação que deve fazer parte da gestão de configuração de software.

Para facilitar o acompanhamento da execução do processo, as etapas do processo de refatoração são apresentadas resumidamente na Tabela 6.

Tabela 6 – Resumo do processo de refatoração com padrões de projeto

Etapa Passos

Passo 1: Entender a funcionalidade do sistema Passo 2: Gerar modelo de classes do sistema atual Etapa 1: Entender o sistema

Passo 3: Identificar padrões de projeto no código-fonte do sistema

Etapa 2: Refatorar o código- fonte utilizando padrões de projeto

Refatorar o sistema com o padrão identificado e completar o modelo de classes elaborado no passo 2 da etapa 1.

Etapa 3: Verificar sistema após

refatoração Passo 1: Verificar a funcionalidade do sistema

Como são aplicados vários padrões de projeto no sistema de videolocadora, os passos 1 (entender a funcionalidade do sistema) e 2 (recuperar modelo de classes do sistema existente) da etapa 1 são executados uma só vez. Isso porque nas demais iterações para identificação de outros padrões, o sistema já é conhecido e a documentação já está atualizada.

Este capítulo está organizado da seguinte forma: na seção 4.2 o detalhamento dos padrões aplicados no sistema de videolocadora é apresentado; na seção 4.3 é realizada a primeira refatoração do sistema, com o padrão Singleton e a execução das etapas 1, 2 e 3. A seção 4.4 mostra a segunda refatoração, realizada com o padrão Decorator, por meio do passo 3 da etapa 1 e as etapas 2 e 3. A terceira refatoração, com o padrão Visitor, é apresentada na seção 4.5, inclui o passo 3 da etapa 1 e as etapas 2 e 3. A seção 4.6 analisa as métricas aplicadas no sistema utilizado para estudo de caso e na seção 4.7 são comentadas as considerações finais.

Documentos relacionados