A UML é uma linguagem de modelagem. Ela traz um conjunto de notações e indica que podemos modelar. Entretanto, por ser uma linguagem de modelagem, a UML não define como modelar. Esta é uma responsabilidade dos profissionais envolvidos no projeto de software.
Modelos são extremamente úteis no processo de desenvolvimento de software. Eles permitem um melhor entendimento do ambiente no qual o sistema irá operar e uma melhor comunicação entre as pessoas envolvidas em um projeto. Estes dois fatores são consequência do fato da UML promover uma melhor compreensão dos requisitos do projeto através do compartilhamento deste conhecimento entre os envolvidos. Uma vez que existe uma notação bem definida, ela pode ser entendida por todos os participantes do projeto.

A UML surgiu da necessidade de termos algum mecanismo para representar os conceitos provenientes do paradigma orientado a objetos. Um de seus objetivos é justamente ajudar as pessoas a focarem nas vantagens possibilitadas por este paradigma de desenvolvimento.

Assim, a UML permite a visualização, especificação, construção e documentação dos projetos de software.

Neste contexto, iremos analisar neste artigo dois conceitos importantes presentes na UML (e provenientes, naturalmente, do paradigma orientado a objetos): herança e interface. Em complemento, veremos como estes conceitos estão presentes na linguagem Java.

Herança
A herança é um dos fundamentos básicos do paradigma orientado a objetos que permite a classes compartilharem atributos e métodos através da definição de uma hierarquia de classes, onde subclasses herdam elementos da classe pai, também chamada de superclasse. O uso mais comum de heranças em projetos orientados a objetos é permitir a reutilização de código através da generalização de comportamentos ou especialização de operações e atributos.

Em Java, podemos declarar que uma classe estende outra classe e implementa uma ou mais interfaces. A partir de agora vamos dar uma olhada como representamos cada uma dessas idéias em diagramas de classe UML.

Conhecendo o extend
A Listagem 1 apresenta alguns trechos de três classes escritas em Java. A primeira é uma classe abstrata que representa um pagamento de algum tipo. As outras duas classes estendem a classe de pagamento e representam dois métodos diferentes de pagamento.

...
Quer ler esse conteúdo completo? Tenha acesso completo