poo_advpl.pdf

download poo_advpl.pdf

of 21

Transcript of poo_advpl.pdf

  • 8/12/2019 poo_advpl.pdf

    1/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 1

    Conceitos de Programao

    Orientada a Objetos OOP(Object-Oriented Programing)Fevereiro - 2007

  • 8/12/2019 poo_advpl.pdf

    2/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 2

    ndice1. Histria ............................................................................................................................................ 42. Introduo a Programao com Objetos ........................................................................................ 43. Coneceitos Bsicos......................................................................................................................... 5

    Abstrao............................................................................................................................ 5

    Encapsulao ...................................................................................................................... 5

    Compartilhamento.............................................................................................................. 64. Modelo de Objetos e Definio de Classe ...................................................................................... 7

    Objetos e Classes................................................................................................................ 7

    Ligaes e Associaes .................................................................................................... 10

    Agregao......................................................................................................................... 115. Herana ......................................................................................................................................... 126. Interface......................................................................................................................................... 147. Classe Abstrata ............................................................................................................................. 158. Escopo de classe, varivel e mtodo............................................................................................ 169. Orientao a Objetos no ADVPL................................................................................................... 17

    Definio .......................................................................................................................... 17

    Dicas teis ........................................................................................................................ 17

    Modelagem das classes de Exemplo ................................................................................ 18Criao de uma classe....................................................................................................... 19

    Herana com ADVPL....................................................................................................... 20

    Exemplo da criao de um objeto .................................................................................... 2010. Sugestes de Desenvolvimento.................................................................................................. 2111. Referncia Bibliogrfica: ............................................................................................................. 21

  • 8/12/2019 poo_advpl.pdf

    3/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 3

    Histrico de AlteraesNome Data ObservaesMarcelo Dolis Malatesta 23/02/2007 CriaoMichel Willian Mosca 23/02/2007 Criao

  • 8/12/2019 poo_advpl.pdf

    4/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 4

    1. Histria

    Nos anos 60 lanado a Simula-67 que apresentou pela primeira vez os conceitos de classes,rotinas correlatas e subclasses. Na dcada de 70 a Seros-PARC cria a Smalltak at hoje

    considerada a mais pura das LPOO. No final da dcada de 80 aparece a C++, uma linguagemhbrida.Orientao a Objetos o maior avano em software destes ltimos anos. uma forma maisnatural de se analisar o mundo. Ela nos permite construir sistemas melhores e, alm disso, demaneira mais fcil. Ser a mais importante das tecnologias emergentes na rea de software nosanos 90.As tcnicas estruturadas que, sem dvida, atualmente so as mais populares na comunidade deinformtica, obtiveram grande aceitao desde que foram lanadas no final dos anos 70. Contudoa medida que foram sendo utilizadas, a decomposio funcional mostrou-se inadequada emsituaes de sistemas complexos e principalmente para profissionais iniciantes. Osaperfeioamentos introduzidos em 1984, por Sthephen M e John F Palmer e, mais tarde,complementados por Stephen Mellor e Paul Ward, para sistemas em real-time, ajudaram a anliseestruturada a se tornar mais eficiente. Contudo os sistemas criados com as tcnicas estruturadasainda so difceis de serem incrementados com novas funes e as alteraes em funes jexistentes, muitas vezes, provocam srios problemas em outras partes do software.

    2. Introduo a Programao com Objetos

    Um objeto uma entidade do mundo real que tem uma identidade. Objetos podem representarentidades concretas (um arquivo no meu computador, uma bicicleta) ou entidades conceituais(uma estratgia de jogo, uma poltica de escalonamento em um sistema operacional). Cada objetoter sua identidade significa que dois objetos so distintos mesmo que eles apresentem exatamenteas mesmas caratersticas.

    Embora objetos tenham existncia prpria no mundo real, em termos de linguagem de

    programao um objeto necessita um mecanismo de identificao. Esta identificao de objetodeve ser nica, uniforme e independente do contedo do objeto. Este um dos mecanismos quepermite a criao de colees de objetos, as quais so tambm objetos em si.

    A estrutura de um objeto representada em termos de atributos. O comportamento de um objeto representado pelo conjunto de operaesque podem ser executadas sobre o objeto. Objetos coma mesma estrutura e o mesmo comportamento so agrupados em classes. Uma classe umaabstrao que descreve propriedades importantes para uma aplicao e simplesmente ignora oresto.

    Cada classe descreve um conjunto (possivelmente infinito) de objetos individuais. Cada objeto dito ser uma instnciade uma classe. Assim, cada instncia de uma classe tem seus prpriosvalores para cada atributo, mas dividem os nomes dos atributos e mtodos com as outras

    instncias da classe. Implicitamente, cada objeto contm uma referncia para sua prpria classe --em outras palavras, ele sabe o que ele .

    Polimorfismosignifica que a mesma operao pode se comportar de forma diferente em classesdiferentes. Por exemplo, a operao movequando aplicada a uma janela de um sistema deinterfaces tem um comportamento distinto do que quando aplicada a uma pea de um jogo dexadrez. Um mtodo uma implementao especfica de uma operao para uma certa classe.

  • 8/12/2019 poo_advpl.pdf

    5/21

  • 8/12/2019 poo_advpl.pdf

    6/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 6

    encapsulao evita que um programa torne-se to interdependente que uma pequena mudanatenha grandes efeitos colaterais.

    O uso de encapsulao permite que a implementao de um objeto possa ser modificada semafetar as aplicaes que usam este objeto. Motivos para modificar a implementao de um objetopodem ser por exemplo melhoria de desempenho, correo de erros e mudana de plataforma de

    execuo.

    Assim como abstrao, o conceito de encapsulao no exclusivo da abordagem de orientao aobjetos. Entretanto, a habilidade de se combinar estrutura de dados e comportamento em umanica entidade torna a encapsulao mais elegante e mais poderosa do que em linguagensconvencionais que separam estruturas de dados e comportamento.

    Compartilhamento

    Tcnicas de orientao a objetos promovem compartilhamento em diversos nveis distintos.Herana de estrutura de dados e comportamento permite que estruturas comuns sejamcompartilhadas entre diversas classes derivadas similares sem redundncia. O compartilhamentode cdigo usando herana uma das grandes vantagens da orientao a objetos. Ainda mais

    importante que a economia de cdigo a clareza conceitual de reconhecer que operaesdiferentes so na verdade a mesma coisa, o que reduz o nmero de casos distintos que devem serentendidos e analisados.

    O desenvolvimento orientado a objetos no apenas permite que a informao dentro de um projetoseja compartilhada como tambm oferece a possibilidade de reaproveitar projetos e cdigo emprojetos futuros. As ferramentas para alcanar este compartilhamento, tais como abstrao,encapsulao e herana, esto presentes na metodologia; uma estratgia de reuso entre projetos a definio de bibliotecas de elementos reusveis. Entretanto, orientao a objetos no umafrmula mgica para alcanar reusabilidade; para tanto, preciso planejamento e disciplina parapensar em termos genricos, no voltados simplesmente para a aplicao corrente.

  • 8/12/2019 poo_advpl.pdf

    7/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 7

    4. Modelo de Objetos e Definio de Classe

    Um modelo de objetos busca capturar a estrutura esttica de um sistema mostrando os objetosexistentes, seus relacionamentos, e atributos e operaes que caracterizam cada classe deobjetos. atravs do uso deste modelo que se enfatiza o desenvolvimento em termos de objetosao invs de mecanismos tradicionais de desenvolvimento baseado em funcionalidades, permitindo

    uma representao mais prxima do mundo real.

    Uma vez que as principais definies e conceitos da abordagem de orientao a objetos estodefinidos, possvel introduzir o modelo de objetosque ser adotado ao longo deste texto. Omodelo apresentado um subconjunto do modelo OMT (Object Modeling Technique), proposto porRumbaugh e outros1.1. OMT tambm introduz uma representao diagramtica para este modelo,a qual ser tambm apresentada aqui.

    Objetos e Classes

    Objeto definido neste modelo como um conceito, abstrao ou coisa com limites e significadosbem definidos para a aplicao em questo. Objetos tm dois propsitos: promover oentendimento do mundo real e suportar uma base prtica para uma implementao computacional.

    No existe uma maneira ``correta'' de decompor um problema em objetos; esta decomposiodepende do julgamento do projetista e da natureza do problema. Todos objetos tm identidadeprpria e so distinguveis.

    Uma classe de objetosdescreve um grupo de objetos com propriedades (atributos) similares,comportamento (operaes) similares, relacionamentos comuns com outros objetos e umasemntica comum. Por exemplo, Pessoae Companhiaso classes de objetos. Cada pessoa temum nome e uma idade; estes seriam os atributos comuns da classe. Companhias tambm podemter os mesmos atributos nome e idade definidos. Entretanto, devido distino semntica elasprovavelmente estariam agrupados em outra classe que no Pessoa. Como se pode observar, oagrupamento em classes no leva em conta apenas o compartilhamento de propriedades.

    Todo objeto sabe a que classe ele pertence, ou seja, a classe de um objeto um atributo implcito

    do objeto. Este conceito suportado na maior parte das linguagens de programao orientada aobjetos, tais como C ++.

    OMT define dois tipos de diagramas de objetos, diagramas de classes e diagramas de instncias.Um diagrama de classe um esquema, ou seja, um padro ou gabarito que descreve as muitaspossveis instncias de dados. Um diagrama de instncias descreve como um conjunto particularde objetos est relacionado. Diagramas de instncias so teis para apresentar exemplos edocumentar casos de testes; diagramas de classes tm uso mais amplo. A Figura apresenta anotao adotada para estes diagramas.

    Figura:Representao diagramtica de OMT para classes e objetos. Um diagrama de classe apresentado esquerda. Um possvel diagrama de instncias apresentado direita.

  • 8/12/2019 poo_advpl.pdf

    8/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 8

    Atributos

    Um atributo um valor de dado assumido pelos objetos de uma classe. Nome, idade e peso soexemplos de atributos de objetos Pessoa. Cor, peso e modelo so possveis atributos de objetos

    Carro. Cada atributo tem um valor para cada instncia de objeto. Por exemplo, o atributo idadetemvalor ``29'' no objeto Pedro Y.Em outras palavras, Pedro Y tem 29 anos de idade. Diferentesinstncias de objetos podem ter o mesmo valor para um dado atributo.

    Cada nome de atributo nico para uma dada classe, mas no necessariamente nico entre todasas classes. Por exemplo, ambos Pessoae Companhiapodem ter um atributo chamado endereo.

    No diagrama de classes, atributos so listados no segundo segmento da caixa que representa aclasse. O nome do atributo pode ser seguido por detalhes opcionais, tais como o tipo de dadoassumido e valor default. A Figura mostra esta representao.

    Figura:Representao diagramtica de OMT para classes e objetos com atributos. Um diagrama

    de classe com atributos apresentado esquerda. Um possvel diagrama de instncias com osrespectivos valores apresentado direita.

    No se deve confundir identificadores internos de objetos com atributos do mundo real.Identificadores de objetos so uma convenincia de implementao, e no tm nenhum significadopara o domnio da aplicao. Por exemplo, CIC e RG no so identificadores de objetos, mas simverdadeiros atributos do mundo real.

    Operaes e Mtodos

    Uma operao uma funo ou transformao que pode ser aplicada a ou por objetos em umaclasse. Por exemplo, abrir, salvare imprimirso operaes que podem ser aplicadas a objetos daclasse Arquivo. Todos objetos em uma classe compartilham as mesmas operaes.

    Toda operao tem um objeto-alvo como um argumento implcito. O comportamento de umaoperao depende da classe de seu alvo. Como um objeto ``sabe'' qual sua classe, possvelescolher a implementao correta da operao. Alm disto, outros argumentos (parmetros)podem ser necessrios para uma operao.

    Uma mesma operao pode se aplicar a diversas classes diferentes. Uma operao como esta dita ser polimrfica, ou seja, ela pode assumir distintas formas em classes diferentes.

  • 8/12/2019 poo_advpl.pdf

    9/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 9

    Um mtodo a implementao de uma operao para uma classe. Por exemplo, a operaoimprimirpode ser implementada de forma distinta, dependendo se o arquivo a ser impresso contmapenas texto ASCII, um arquivo de um processador de texto ou binrio. Todos estes mtodosexecutam a mesma operao -- imprimir o arquivo; porm, cada mtodo ser implementado porum diferente cdigo.

    A assinaturade um mtodo dada pelo nmero e tipos de argumentos do mtodo, assim comopor seu valor de retorno. Uma estratgia de desenvolvimento recomendvel manter assinaturascoerentes para mtodos implementando uma dada operao, assim como um comportamentoconsistente entre as implementaes.

    Em termos de diagramas OMT, operaes so listadas na terceira parte da caixa de uma classe.Cada nome de operao pode ser seguida por detalhes opcionais, tais como lista de argumentos etipo de retorno. A lista de argumentos apresentada entre parnteses aps o nome da operao.Uma lista de argumentos vazia indica que a operao no tem argumentos; da ausncia da lista deargumentos no se pode concluir nada. O tipo de resultado vem aps a lista de argumentos, sendoprecedido por dois pontos (:). Caso a operao retorne resultado, este no deve ser omitido -- esta a forma de distingu-la de operaes que no retornam resultado. Exemplos de representao deoperaes em OMT so apresentados na Figura .

  • 8/12/2019 poo_advpl.pdf

    10/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 10

    Ligaes e Associaes

    Ligaes e associaes so os mecanismos para estabelecer relacionamentos entre objetos eclasses. Uma ligao uma conexo fsica ou conceitual entre duas instncias de objetos. Porexemplo, Pedro Y trabalha-paraCompanhia W. Uma ligao uma instncia de uma associao.

    Uma associao descreve um grupo de ligaes com estrutura e semntica comuns, tal como``uma pessoa trabalha-parauma companhia.'' Uma associao descreve um conjunto de ligaespotenciais da mesma forma que uma classe descreve um conjunto de objetos potenciais.

    A notao de diagramas OMT para associao uma linha conectando duas classes. Uma ligao representada como uma linha conectando objetos. Nomes de associaes so usualmenteapresentada em itlico. Se entre um par de classes s existe uma nica associao cujo sentidodeva ser bvio, ento o nome da associao pode ser omitido. A Figura apresenta um exemplode diagrama OMT com associaes.

    Figura:Representao diagramtica de OMT para associaes entre classes (topo) e ligaesentre objetos (abaixo).

    Alguns atributos podem dizer respeito a associaes, e no a classes. Para tais casos, OMTintroduz o conceito de atributo de ligao. Quando a associao tem ainda operaes associadas,ento ela pode ser modelada como uma classe que est ``conectada'' associao. Um exemplodeste caso apresentado na Figura .

  • 8/12/2019 poo_advpl.pdf

    11/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 11

    Figura:Representao diagramtica de OMT para associaes entre classes com atributos. Nestecaso, os atributos da associao esto representados atravs de uma classe explcita,

    Autorizao. O crculo preto no final da linha da associao indica que mais de um objeto de umaclasse podem estar associados a cada objeto da outra classe. Um crculo vazado indicaria quepossivelmente nenhum objeto poderia estar associado, ou seja, o conceito de associao opcional.

    Agregao

    Uma agregao um relacionamento do tipo ``uma-parte-de,'' nos quais objetos representando oscomponentes de alguma coisa so associados com objetos representando uma montagem. Porexemplo, o texto de um documento pode ser visto como um conjunto de pargrafos, e cadapargrafo um conjunto de sentenas (Figura ).

    Figura:Representao diagramtica de OMT para agregao.

    Agregao uma forma de associao com alguma semntica adicional. Por exemplo, agregao transitiva: se A parte de Be B parte de C, ento A parte de C. Agregao tambm anti-simtrica: se A parte de B, ento Bno parte de A.

  • 8/12/2019 poo_advpl.pdf

    12/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 12

    5. Herana

    Generalizao e herana so abstraes poderosas para compartilhar similaridades entre classese ao mesmo tempo preservar suas diferenas.

    Generalizao o relacionamento entre uma classe e um ou mais verses refinadas

    (especializadas) desta classe. A classe sendo refinada chamada de superclasse ou classe base,enquanto que a verso refinada da classe chamada uma subclasse ou classe derivada. Atributose operaes comuns a um grupo de classes derivadas so colocadas como atributos e operaesda classe base, sendo compartilhados por cada classe derivada. Diz-se que cada classe derivadaherdaas caractersticas de sua classe base. Algumas vezes, generalizao chamada derelacionamento is-a(-um), porque cada instncia de uma classe derivada tambm umainstncia da classe base.

    Generalizao e herana so transitivas, isto , podem ser recursivamente aplicadas a um nmeroarbitrrio de nveis. Cada classe derivada no apenas herda todas as caractersticas de todos seusancestrais como tambm pode acrescentar seus atributos e operaes especficos.

    A Figura mostra a notao diagramtica de OMT para representar generalizao, um tringulo

    com o vrtice apontado para a classe base. Um discriminadorpode estar associado a cadaassociao do tipo generalizao; este um atributo do tipo enumerao que indica qual apropriedade de um objeto est sendo abstrada pelo relacionamento de generalizao. Estediscriminador simplesmente um nome para a base de generalizao.

    Figura:Representao diagramtica de OMT para generalizao.

  • 8/12/2019 poo_advpl.pdf

    13/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 13

    Uma classe derivada pode sobrepor1.2uma caracterstica de sua classe base definindo umacaracterstica prpria com o mesmo nome. A caracterstica local (da classe derivada) ir refinar esubstituir a caracterstica da classe base. Uma caracterstica pode ser sobreposta, por exemplo,por questes de refinamento de especificao ou por questes de desempenho.

    Entre as caractersticas que podem ser sobrepostas esto valores defaultde atributos e mtodos

    de operao. Uma boa estratgia de desenvolvimento no deve sobrepor uma caracterstica deforma inconsistente com a semntica da classe base.

  • 8/12/2019 poo_advpl.pdf

    14/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 14

    6. Interface

    um tipo definido da qual no se deseja que sejam criadas instncias da mesma, mas apenasdeve ser seguida como padro para a criao de novas classes como um contrato.Na interface so apenas definidas as assinaturas de operaes e ou propriedades que devero ser

    suportadas pelas classes que utilizem a interface, sem a incluso de cdigo de programao nainterface.O uso de interfaces esta diretamente associada troca de mensagens entre os objetos, destamaneira o programador cria qualquer nova classe que necessite e assim mesmo as mensagenscontinuam sendo trocadas entre objetos sem prejuzos ao sistema.As classes que implementam uma interface, devem implementar todas as operaes definidas pelainterface e o respectivo cdigo de programao para que sempre que um objeto necessitar trocaruma mensagem no cause erros.Veja o exemplo abaixo:

    Figura: Exemplo de interface

    No exemplo acima, demonstrado o uso de interface com o caso dos pedais de uma bicicletaonde o pedal da esquerda e o pedal da direita executam os mesmos movimentos, ento,respondem s mesmas mensagens.H uma interface chamada Pedalque descreve duas operaes IrParaFrente()e IrParaTrs()eduas classes que implementam a interface Pedal sendo as classes PedalEsquerdae PedalDireitaque devero responder as mensagens definidas na interface.

  • 8/12/2019 poo_advpl.pdf

    15/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 15

    7. Classe Abstrata

    A classe abstrata um tipo de dado bastante similiar Interfaceonde tambm so definidas asassinaturas de operaes e propriedades no podendo ser instanciado diretamente por umaclasse, servindo apenas ao propsito de ser um padro para a criao de novas classes como um

    contrato. A grande diferena da Classe Abstrata para a Interface a possibilidade de apenasdefinir as assinaturas das operaes, deixando a responsabilidade da implementao do cdigo daoperao para a classe que implemente a Classe Abstrata como ocorre com a Interface, ou entotambm implementar o cdigo de implementao para a operao na prpria Classe Abstratapodendo o cdigo ser sobrescrito pela classe implementadora respeitando-se a assinatura originalda operao.

    Figura: Exemplo de Classe Abstrata

    No exemplo acima, h a classe abstrata Rodae as classes que a implementam Dianteirae

    Traseira. Neste caso a classe Traseira utiliza as operaes como foram implementadas na classeRoda, j a classe Dianteira sobrescreveu a operao Girarpara melhor atender ao seu propsito.

  • 8/12/2019 poo_advpl.pdf

    16/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 16

    8. Escopo de classe, varivel e mtodo

    Em tempo de desenvolvimento, o programador/ analista deve escolher o escopo de uma classe,varivel ou mtodo que nada mais como a definio de como ser a visibilidade perante outrosobjetos.

    Falando em OOP podemos ter os seguintes modelos de escopo:- Public: todos os objetos visualizam.- Protected: apenas os mtodos da mesma classe ou classes que recebem herana da

    classe so capazes de visualizar.- Private: apenas os mtodos da mesma classe so capazes de visualizar.- Package: pode ser visualizado por todas as classes que compartilham do mesmo pacote.

  • 8/12/2019 poo_advpl.pdf

    17/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 17

    9. Orientao a Objetos no ADVPL

    Definio

    Classes no Protheus podem conter mtodos, propriedades e herana, conforme a sintaxe abaixo:

    CLASS [FROM]//Declarando uma propriedade/varivelDATA

    //Declarando o mtodo que executado quando a classe criadaMETHOD NEW() CONSTRUCTOR

    //Declarando o mtodo que no necessita ser implementado pela classe. Utilizado porinterface.

    METHOD (PARAM1, PARAMN)VIRTUAL

    //Declarando um mtodo da classeMETHOD(PARAM1, PARAMN)

    ENDCLASS

    O mtodo de inicializao executado sempre que uma nova instncia da classe for criada pelosistema e sempre deve retornar a prpria classe.METHOD NEW() CLASS

    //Coloque as propriedades e funes que devem ser executadas na inicializaoRETURN SELF

    A criao de mtodos de uma classe realizada da mesma maneira que j estamos acostumadosa criar funes em ADVPL.METHOD(PARAM1, PARAMN)CLASS

    //Coloque o cdigo de programao da funo.RETURN

    Dicas teis

    //Use para acessar propriedades e mtodos da classe::ou:Self

    //Use para acessar propriedades e mtodos da classe herdada:Parent

    Importante:Para maiores detalhes sobre Classes e Objetos no ADVPL veja o arquivo deajuda do Norton Guides chamado FW19.NG.

  • 8/12/2019 poo_advpl.pdf

    18/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 18

    Modelagem das classes de Exemplo

  • 8/12/2019 poo_advpl.pdf

    19/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 19

    Criao de uma classe

  • 8/12/2019 poo_advpl.pdf

    20/21

    Programao Orientada Objetos Reviso: 23/02/2007 - Pgina 20

    Herana com ADVPL

    Exemplo da criao de um objeto

  • 8/12/2019 poo_advpl.pdf

    21/21

    10. Sugestes de Desenvolvimento

    Na construo de um modelo para uma aplicao, as seguintes sugestes devem ser observadasa fim de se obter resultados claros e consistentes:

    1. No comece a construir um modelo de objetos simplesmente definindo classes,associaes e heranas. A primeira coisa a se fazer entender o problema a ser resolvido.2. Tente manter seu modelo simples. Evite complicaes desnecessrias.3. Escolha nomes cuidadosamente. Nomes so importantes e carregam conotaes

    poderosas. Nomes devem ser descritivos, claros e no deixar ambiguidades. A escolha debons nomes um dos aspectos mais difceis da modelagem.

    4. No ``enterre'' apontadores ou outras referncias a objetos dentro de objetos comoatributos. Ao invs disto, modele estas referncias como associaes. Isto torna o modelomais claro e independente da implementao.

    5. Tente evitar associaes que envolvam trs ou mais classes de objetos. Muitas vezes,estes tipos de associaes podem ser decompostos em termos de associaes binrias,tornando o modelo mais claro.

    6. No transfira os atributos de ligao para dentro de uma das classes.

    7. Tente evitar hierarquias de generalizao muito profundas.8. No se surpreenda se o seu modelo necessitar vrias revises; isto o normal.9. Sempre documente seus modelos de objetos. O diagrama pode especificar a estrutura do

    modelo, mas nem sempre suficiente para descrever as razes por trs da definio domodelo. Uma explicao escrita pode clarificar pontos tais como significado de nomes eexplicar a razo para cada classe e relacionamento.

    10. Nem sempre todas as construes OMT so necessrias para descrever uma aplicao.Use apenas aquelas que forem adequadas para o problema analisado.

    11. Referncia Bibliogrfica:

    1. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do usurio. Rio deJaneiro : Campus, 2000.

    2. DEITEL, H. M.; DEITEL, P. J..JAVA Como Programar. Porto Alegre : Bookman, 2003.