De que se trata o artigo:

O artigo é a segunda parte de uma série de artigos sobre modelagem de sistemas orientados a objetos (OO) com a UML (Unified Modeling Language). Nesta parte da série, é abordado o diagrama de classes, um dos diagramas mais utilizados desta linguagem de modelagem.


Para que serve:

O diagrama de classes da UML serve para representar a parte estática de um sistema: as classes existentes e seus atributos, métodos e relacionamentos com outras classes. Tal diagrama pode ser utilizado em deferentes fases do desenvolvimento de software (análise de requisitos, projeto de software, etc.) para representar características do sistema em diferentes níveis de abstração.


Em que situação o tema é útil:

O tema é útil para qualquer desenvolvedor de software que tenha que escrever ou ler especificações de requisitos, projetos de software ou modelos de sistema em geral, desde que a UML – mais especificamente o diagrama de classes – tenha sido utilizado. A grande maioria dos modelos de sistemas construídos no paradigma OO utiliza a UML e o seu diagrama de classes.

Resumo DevMan:

A UML especifica diversos diagramas que podem ser utilizados para modelagem de sistemas OO, cada um adequado para uma ou mais situações específicas. O diagrama de classes da UML é um destes, cujo propósito é apresentar as estruturas estáticas de um sistema: classes, seus atributos, métodos e relacionamentos. Neste artigo, apresentamos o diagrama de classes da UML, explicando como modelar as diferentes características de um sistema utilizando sua sintaxe e como interpretá-los posteriormente, implementando em Java as classes que nele forem modeladas. Começamos com os fundamentos básicos (classes, atributos e métodos – Figura 1 e Listagem 1), passando em seguida a falar de associação/delegação entre classes (Figura 2, Listagens 2 a 4) e herança (Figura 3 e Listagem 5), abordando especificamente a sobrescrita de métodos (Listagem 6), a herança múltipla (Figura 4 e Listagem 7) e o polimorfismo (Listagem 8). Apresentados os conceitos de delegação e herança, discutimos quando utilizar um ou outro e finalizamos o artigo apresentando a relação de dependência entre classes (Figura 5).

Autores: Celso André Rodrigues de Souza e Vítor E. Silva Souza

A UML provê diversos diagramas para modelar sistemas de software. Cada um desses diagramas é adequado para uma determinada situação e visão de software. O livro “UML: guia do usuário” [1], aborda todos os diagramas UML de forma didática e exemplificada. Ele é uma boa referência para o leitor que deseja se aprofundar no estudo de modelagem de software.

Neste artigo o foco será o diagrama de classes da UML, que é um dos diagramas mais importantes da UML. Ele apresenta as estruturas estáticas do sistema, que são as classes, os relacionamentos, atributos e métodos de cada classe. Ele pode ser utilizado tanto na fase de análise dos requisitos (representando conceitos do mundo real relevantes ao sistema) quanto na fase de projeto (modelando artefatos de código que serão implementados em alguma linguagem de programação do modo como estão representados no diagrama).

Nas seções a seguir, apresentaremos suas características, demonstrando como modelar neste diagrama os conceitos relacionados aos sistemas que desenvolvemos e, em seguida, como implementar o que modelamos no diagrama de classes utilizando a linguagem Java.

Fundamentos: Classes, Atributos e Métodos

O elemento fundamental do diagrama de classes é, obviamente, a classe. Uma classe é representada por um retângulo dividido verticalmente em três seções que contêm, respectivamente, o nome, os atributos e os métodos dessa classe. A Figura 1 mostra como representar classes em UML.

Figura 1. Representação de classes e interfaces em UML.

No diagrama da Figura 1 foi modelada a classe Usuario, que possivelmente representa usuários do sistema em questão. Usuario é uma classe concreta, ou seja, pode ter instâncias diretas. Caso se queira representar uma classe abstrata (em Java utiliza-se as palavras-chave abstract class), deve-se colocar o nome da classe em itálico ou associá-la ao estereótipo <<abstract>>, colocando-o acima do nome da mesma. Estereótipos são utilizados também para declarar interfaces, as quais serão abordadas mais adiante.

Estereótipos: Um estereótipo é um dos mecanismos de extensão da UML, que permite que um desenvolvedor crie uma nova categoria de elementos – no caso deste artigo, classes, porém estereótipos podem ser aplicados a vários outros elementos da UML.

A nova categoria pode definir propriedades ou maneiras de utilização específicas, geralmente ligadas a um domínio em particular, que são associadas automaticamente ao elemento que recebe o estereótipo. Por exemplo, as extensões da UML para aplicações Web propostas por Conallen [5] incluem estereótipos relacionados com a plataforma Web, como <<screen>> para telas, <<input form>> para formulários, e assim por diante.

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