uml - diagrama de classes

5
Fernando Amaral Home/ Busca/ Índice Geral/ Mais Lidos/ Sobre/ Contato/ UML: Diagrama de Classes e Objetos Nesta segunda parte da série sobre UML, falarei um pouco sobre diagramas de classes e de objetos. Os diagramas mostrados aqui foram criados no Microsoft Visio. Uma classe é representada por um retângulo. Internamente deve constar seu nome, em negrito com primeira letra em maiúscula, geralmente é um substantivo. Uma classe possui atributos, que são exibidos em sessão inferior ao nome da classe: Atributos e operadores possuem uma visibilidade, que pode ser: ~: de pacote: significa que as classes de um pacote podem ser usadas +: publico #: protegido -: Privado Atributos têm um tipo de dado e podem ainda apresentar um valor padrão, note que na classe abaixo, o atributo Nome é do tipo String é o valor padrão, representado pelo símbolo de igual, é Fernando: As operações são representadas em uma terceira sessão do retângulo, abaixo dos atributos. No diagrama abaixo temos as operações Andar e Dormir: Operadores podem ter direção: in, out, inout. isQuery: indica que a operação não altera o valor de nenhum atributo. Um operador pode ter uma pré-condição, por exemplo, ser verdadeiro antes da execução. As operações podem ainda demonstrar sua assinatura, que são os parâmetros que são passados para a operação, bem como seus tipos e possíveis tipos de dados de valores de retorno. Na classe abaixo, a operação andar recebe como parâmetros um tipo direção, e retorna um valor booleano: Page 1 of 5 Fernando Amaral, PMP - UML:Diagramas de Classes 7/4/2013 http://www.fernandoamaral.com.br/Default.aspx?Artigo=40

Upload: alexvrd

Post on 28-Dec-2015

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UML - Diagrama de Classes

Fernando Amaral

Home/ Busca/ Índice Geral/ Mais Lidos/ Sobre/ Contato/

UML: Diagrama de Classes e Objetos

Nesta segunda parte da série sobre UML, falarei um pouco sobre diagramas de classes e de objetos. Os diagramas mostrados aqui foram criados no Microsoft Visio.

Uma classe é representada por um retângulo. Internamente deve constar seu nome, em negrito com primeira letra em maiúscula, geralmente é um substantivo.

Uma classe possui atributos, que são exibidos em sessão inferior ao nome da classe:

Atributos e operadores possuem uma visibilidade, que pode ser: ~: de pacote: significa que as classes de um pacote podem ser usadas+: publico#: protegido-: Privado

Atributos têm um tipo de dado e podem ainda apresentar um valor padrão, note que na classe abaixo, o atributo Nome é do tipo String é o valor padrão, representado pelo símbolo de igual, é Fernando:

As operações são representadas em uma terceira sessão do retângulo, abaixo dos atributos. No diagrama abaixo temos as operações Andar e Dormir:

Operadores podem ter direção: in, out, inout.isQuery: indica que a operação não altera o valor de nenhum atributo.

Um operador pode ter uma pré-condição, por exemplo, ser verdadeiro antes da execução.

As operações podem ainda demonstrar sua assinatura, que são os parâmetros que são passados para a operação, bem como seus tipos e possíveis tipos de dados de valores de retorno. Na classe abaixo, a operação andar recebe como parâmetros um tipo direção, e retorna um valor booleano:

 

Page 1 of 5Fernando Amaral, PMP - UML:Diagramas de Classes

7/4/2013http://www.fernandoamaral.com.br/Default.aspx?Artigo=40

Page 2: UML - Diagrama de Classes

Um artifício não muito utilizado é adicionar uma quarta sessão ao diagrama contendo a responsabilidade da classe, ou seja, o que ela deve fazer:

Também se podem colocar restrições para a classe, que normalmente são indicadas entre “chaves”, na lateral da classe, e utilizam expressões booleanas comuns.

Níveis de abstração para exibição

A classe pode ser exibida em diferentes níveis de abstração, conforme a finalidade do diagrama.

Em nível de domínio são exibidos apenas os nomes das classes e seus relacionamentos

 

Em nível de analise são exibidos os nomes das classes e seus atributos

Finalmente, em nível de design, são exibidos o nome da classe, atributos e operações.

 

Page 2 of 5Fernando Amaral, PMP - UML:Diagramas de Classes

7/4/2013http://www.fernandoamaral.com.br/Default.aspx?Artigo=40

Page 3: UML - Diagrama de Classes

Generalização

Generalização é o conceito de herança. Uma classe mais genérica é herdada por uma classe mais especifica. No exemplo abaixo, veiculo é uma classe genérica. Ônibus, caminhão e utilitário são classes mais especificas que herdam veículos.

Classes abstratas

No exemplo anterior, veiculo pode ser instanciado, já que não é uma classe abstrata. Classes abstratas não podem ser instanciadas, elas têm características e funcionalidades que serão herdadas por outras classes. No exemplo abaixo televisor é uma classe abstrata. Uma classe abstrata pode ter métodos concretos ou abstratos. Métodos abstratos não são implementados na classe abstrata, dependem de implementação na classe que a herdar. Uma classe abstrata é identificada com seu nome em itálico.

Associações

Associações entre classes normalmente são binárias, envolvendo duas classes:

 

Pode haver associações entre três ou mais classes.

Normalmente a associação é bidirecional, mas pode também ter uma única direção, a ser indicado através de uma seta na associação:

Page 3 of 5Fernando Amaral, PMP - UML:Diagramas de Classes

7/4/2013http://www.fernandoamaral.com.br/Default.aspx?Artigo=40

Page 4: UML - Diagrama de Classes

Associações podem ter uma função, que é descrito sobre a associação:

Classe de Associação

Uma classe de associação contem informações de relacionamento entre outras classes. Graficamente fica situada na associação entre as duas classes relacionadas, conectada através de uma linha pontilhada.

Pode existir ainda uma classe de associação “n-ária”, relacionamento diversas classes.

Dependências

Conceitualmente a dependência ocorre quando não é possível existir a classe A sem que a classe B já exista. A dependência é representada por uma seta pontilhada

Um exemplo clássico é a dependência de um item de um pedido com o próprio pedido.

Multiplicidade

Uma associação pode demonstrar ainda sua multiplicidade, o que indica quantas classes pode estar relacionado.

A multiplicidade pode ser representada das seguintes formas:

• Um valor fixo, como 1• Um asterisco, que representa um ou muitos• Um intervalo, como 1..10• Um conjunto de valores, como [1,2,4,5]

Agregações

É um tipo de relacionamento onde uma classe é formada por diversas outras classes, é representado por uma figura na forma de um diamante

Composição

É outro tipo de agregação, em que a relação é mais forte. Assim como na agregação, as diferentes classes representam o “todo”, porém neste caso uma classe sozinha não pode existir. É representado por uma figura na forma de um diamante “preenchido”.

Page 4 of 5Fernando Amaral, PMP - UML:Diagramas de Classes

7/4/2013http://www.fernandoamaral.com.br/Default.aspx?Artigo=40

Page 5: UML - Diagrama de Classes

Interfaces

As interfaces são apenas modelos de comportamentos, não podendo ser instanciadas. Oferecem serviços a outras classes. Todos os métodos são públicos.

Diagrama de Objetos

Um diagrama de objeto representa uma instancia de uma classe especifica. Graficamente falando, é representado pelo nome da classe seguidos de dois pontos e o nome do objeto, ambos sublinhados. Opcionalmente o nome da classe pode ser omitido.

Últimos artigos relacionados:

O Analista de Negócios e o BABOK

Vamos desenvolver Jogos?

Mais um Artigo Sobre como Elaborar um Currículo?

Motivação: Maslow e a pirâmide das necessidades

Vem aí a WEB 3.0

Fernando Amaral, PMP - Porto Alegre - RS Copyright © 2008

Page 5 of 5Fernando Amaral, PMP - UML:Diagramas de Classes

7/4/2013http://www.fernandoamaral.com.br/Default.aspx?Artigo=40