You are on page 1of 3

Como Reutilizar C digo em Implementac es Orientadas a Objetos.

o o
Munique Wassem Instituto Federal de Mato Grosso Rua Zumira Canavarros, 95 Centro 78005-200 Cuib , Brasil a munique monteiro@hotmail.com.br Keywords: Orientacao a objetos, Polimorsmo, Heranca, C digo, Componentes o mais legvel, mais enxuto e facilita a manutencao dos sis temas pois permite que se utilize m todos com o mesmo e nome para objetos diferentes. A mesma operacao, que foi im plementada atrav s da codicacao deum m todo, pode atuar e e de modo diferente em classes diferentes. Isto signica que objetos diferentes podem responder a uma mesma mensagem de forma diferente.

Abstract
A reutilizacao de c digo e uma das grandes promessas da o orientacao a objetos, com ela se e capaz de reduzir custo do software e aumentar a eci ncia da programacao e dee sign, mas ela n o e uma promessa facilmente alcancada de a uma maneira bem-sucedida. Este artigo busca apresentar um pouco de como reutilizar c digos, componentes, artefatos e o as melhores maneiras para faz -lo. e

2.2.

Heranca

1.

INTRODUCAO

Com base no que [3] disse, um dos principais objetivos da Engenharia de software e desenvolver ferramentas e t cnicas e para ajudar na reutilizacao de c digo. Para isso temos difer o entes t cnicas usadas, como por exemplo, o Polimorsmo e que e um mecanismo que permite que as classes fornecam diferentes implementacoes de m todos que s o referenciados e a pelo mesmo nome, a Heranca que permite que as subclasses compartilhem m todos denidos em uma superclasse e pere mite que a subclasse inclua ou sobreponha novos m todos e e vari veis, as Classes Abstratas que e uma classe incoma pletamente especicada que e feita para ser um template para subclasses, entre outros. Tudo isso ser mostrado na a primeira parte do artigo. Al m da reutilizacao de c digo e o temos tamb m outros tipos de reutilizacao que veremos e brevemente dentro desse artigo. S o elas: Reutilizacao de a Templates, Componente, Framework, Artefatos e Patterns. Sobre cada um desses tipos de reutilizacao ser falado um a pouco e mostrado onde elas podem ser aplicadas.

Heranca e um dos conceitos fundamentais de orientacao a objetos, permitindo que voc modele relacionamentos Ee UM e TEM-UM. Segundo[2]a heranca e o mecanismo da orientacao a objetos que possibilita a reutilizacao das pro priedades de uma classe na denicao de outras classes e per mite tamb m a construcao de sistemas reutilizando compoe nentes existentes. Podemos denirmos uma classe, chamada subclasse, que herda a denicao de uma classe pr -existente, e chamada superclasse. A subclasse herdar todas as operacoes a (vari veis, m todos) da superclasse, podendo tamb m ser ima e e plementados outros m todos e vari veis para esta nova classe. e a

2.3.

Classe Abstrata

Segundo[4] diz que uma classe abstrata nunca tem implementacoes, apenas as suas subclasses tem. Como algu mas operacoes n o s o implementadas, uma classe abstrata a a n o tem instancia e e usada apenas como uma superclasse. a Desse modo, ela e projetada para ser usada com um template para subclasses especicas ao inv s de objetos. Uma sube classe de uma classe abstrata ir prover uma implementacao a das outras operacoes.

2.

REUTILIZACAO DE CODIGO

2.4.

Interface

A principal vantagem de reutilizacao de c digo e que ela o reduz a quantidade real de c digo que voc precisa escrever, o e diminuindo potencialmente os custos, tanto do desenvolvimento quanto da manutencao. As desvantagens s o que o es a ` copo do efeito e limitado a programacao e geralmente au menta o acoplamento dentro da aplicacao al m de que voc e e precisa ter acesso ao c digo-fonte, mas nem sempre isso e o possvel.

Uma interface descreve m todos, propriedades e eventos e que uma classe deve implementar e, tamb m, os tipos de e par metro que cada m todo recebe e retorna. Com interfaces a e podemos ter um cen rios onde v rias classes implementam a a uma determinada interface, e a mesma classe pode implementar v rias interfaces. A implementacao e livre e ca sob a responsabilidade da classe, visto que a mesma dever atender a o que diz o contrato da interface.

2.1.

Polimorsmo

3.

OUTROS TIPOS DE REUTILIZACAO


Com base no que disse [1] h muito mais em uma aplicacao a

Segundo[5] a aplicacao do polimorsmo torna o c digo o

do que c digo-fonte, portanto, deve-se ser capaz de reutilizar o muito mais do que c digo fonte. Nessa parte s o mostradas o a outras formas reutilizacao dentro de processos de desenvolvi mento. Todos os tipos de reutilizacao abaixo v o al m da a e reutilizacao de c digo, mas se encaixando na Engenharia de o Software, como fala e descreve [1].

reutilizacao de framework sofre de diversas desvantagens. A complexidade dos frameworks torna-os difceis de serem dominados, exigindo um longo processo de aprendizagem por parte dos desenvolvedores. Frameworks geralmente s o a de plataformas especcas, amarrando voc a um unico e fornecedor, aumentando o risco de sua aplicacao.

3.1.

Reutilizacao de Templates

3.4.

Reutilizacao de Artefatos

` a Reutilizacao de Templates refere-se a pr tica de usar um conjunto comum de layouts para artefatos chaves de desenvolvimento - documentos, modelos e c digo-fonte na sua o organizacao. Por exemplo, e muito comum as organizacoes adotarem templates comuns de documentacao para casos de uso, relat rios de status, cronogramas de desenvolvimento, o solicitacoes de mudanca, requisitos de usu rio, arquivos de a classes e cabecalhos de documentacao de m todos. A prin e cipal vantagem dos templates de documentacao e que eles aumentam a consist ncia e a qualidade de seus artefatos de e desenvolvimento. A principal desvantagem e que os desenvolvedores t m uma tend ncia a modicar templates para seu e e pr prio uso e n o compartilham suas alteracoes com os coleo a gas.

3.2.

Reutilizacao de Componentes

Reutilizacao de componentes refere-se ao uso de com ponentes pr -construdos e totalmente encapsulados no dee senvolvimento de suas aplicacoes. Componentes s o tipica a mente auto-sucientes e encapsulam um unico conceito. A reutilizacao de componentes difere da reutilizacao de c digo o pelo fato de que voc n o tem acesso ao c digo fonte. H e a o a muitas vantagens na reutilizacao de componentes. Primeiro, ela oferece um escopo maior de reusabilidade do que o da reutilizacao de c digo ou de heranca, porque os componentes o s o auto-sucientes - literalmente pode-se plugar e eles fazem a o trabalho. Segundo, a utilizacao ampla de plataformas co muns, como o sistema operacional Win32 e o Java Virtual Machine, prov em um mercado amplo o bastante para que e terceiros criem e vendam componentes para voc a baixo e custo. A principal desvantagem da reutilizacao de compo nente e que os componentes s o pequenos e encapsulam um a unico conceito, e voc acaba precisando de uma grande bibe lioteca deles.

Reutilizacao de artefatos refere-se ao uso de artefatos de desenvolvimentos previamente criados casos de uso, documentos-padr o, modelos especcos de domnio, proa cedimentos e diretrizes, e outras aplicacoes para dar o chute inicial em um novo projeto. H diversos nveis de reutilizacao a de artefatos, indo dos 100 por cento de reutilizacao pura onde voc toma um artefato tal qual ele e e o utiliza em um novo e projeto, para exemplo de reutilizacao quando voc observa o e artefato para ter uma id ia sobre como proceder. Por exeme plo, documentos-padr o tais como padronizacao de c digo a o e de interface s o artefatos valiosos para reutilizacao entre a projetos, tanto como documentos de notacao de modelagem e documentos de resumo de metodologia. A reutilizacao de artefatos promove consist ncia entre projetos e reduz a e carga de gerenciamento para cada novo projeto. Uma outra vantagem e que voc pode freq entemente adquirir v rios e u a artefatos ou encontr -los online: padr es de interface de a o usu rio s o comuns para muitas plataformas, padr es de a a o codicacao para as principais linguagens est o geralmente a disponveis e metodologias padronizadas de orientacao a ob jetos e notacoes de modelagem t m estado disponveis h e a anos. A principal desvantagem da reutilizacao de artefato e que ela e freq entemente percebida como reutilizacao superu cial por programadores hard-core simplesmente se passa os padr es e conectores de procedimentos de uma mesa para o outra. O ponto e que a reutilizacao de artefatos e uma t cnica e importante e vi vel que n o deveria ser ignorada. a a

3.5.

Reutilizacao de Padr es o

3.3.

Reutilizacao de Framework

Reutilizacao de framework refere-se ao uso de colecoes de classes que implementam em conjunto a funcionalidade b sica de um domnio t cnico ou de neg cios coa e o mum. Reutilizacao de framework representa um alto nvel de reutilizacao no nvel do domnio. Os frameworks fornecem uma solucao inicial para um domnio de problema e freq en u temente encapsulam uma l gica complexa que levaria anos o para ser desenvolvida desde o rascunho. Infelizmente, a

Reutilizacao de padr es refere-se ao uso de abordagens o publicamente documentadas para solucao de problemas co muns. Padr es s o freq entemente documentados como um o a u simples diagrama de classes e tipicamente compreendem de uma a cinco classes. Na reutilizacao de padr o, voc n o a e a est reutilizando c digo; ao contr rio, voc est reutilizando a o a e a a intelig ncia que est por tr s do c digo. Padr es s o uma e a a o o a forma de reutilizacao muito alta, que experimentar uma a longa expans o de vida pelo menos entre as linguagens de a computacao que s o atualmente utilizadas e potencialmente a pelo pr prio paradigma de orientacao a objeto. A reutilizacao o de padr es prov uma reutilizacao de alto nvel que voc pode o e e implementar em muitas linguagens e plataformas. Padr es o encapsulam o aspecto mais importante do desenvolvimento a intelig ncia que est embutida na solucao. Eles aumentam e a

a capacidade de manutencao e de incrementar uma aplicacao usando abordagens comuns para problemas que s o recona hecidos por qualquer desenvolvedor experiente em orientacao a objetos. A desvantagem da reutilizacao de padr o e que os a padr es n o fornecem uma solucao imediata voc ainda tem o a e que escrever o c digo que implementa o padr o. o a

[4] R. E. Johnson and V. F. Russo. Reusing Object-Oriented Designs. University of Illinois Tech Report UIUCDCS 91-1696, 1991. [5] S. M. P. Rosado. Desenvolvimento de Sistemas Utilizando Orientacao a Objetos. 2003.

4.

EXEMPLOS

Figure 1. Exemplo de reutilizacao por Heranca.

5.

CONCLUSAO

A reutilizacao de c digo e uma das raz es pelas qual a o o a programacao orientada a objetos e t o popular. E um desao ser bem-sucedido em na reutilizacao, pois h muito mais do a que apenas c digo nas nossas aplicacoes que podemos reutio lizar, mas como podemos ver e compensativo. Com todos os tipos de reutilizacao apresentados, podemos concluir que uti lizar UML e Padr es de projetos e essencial para um software o ser ter sucesso e ter seus custos reduzidos.

REFERENCES
[1] S. Ambler. A Realistic Look at Object-Oriented Reuse. 1998. [2] K. Sierra B. Bates. Use a Cabeca! Java. S o Paulo: Alta a Books, 2005. [3] R. E. Johnson and B. Foote. Designing Reusable Classes. Journal of Object-Oriented Programming, 1(2):2235, 1988.

You might also like