Sei sulla pagina 1di 21

Unified Modeling Language (UML)

Universidade Federal do Maranho UFMA Ps Graduao de Engenharia de Eletricidade Grupo de Computao Assunto: Diagrama de Classes

Autoria:Aristfanes Corra Silva Adaptao: Alexandre Csar M de Oliveira

3 Diagrama de Classes
3.1 Definies

Uma classe a descrio de um tipo de objeto. Todos os objetos so instncias de classes, onde a classe descreve as propriedades e comportamentos daquele objeto.

Identificar as classes de um sistema pode ser complicado, e deve ser feito por experts no domnio do problema a que o software modelado se baseia.

O diagrama de classes considerado esttico j que a estrutura descrita sempre vlida durante o ciclo de vida do sistema.

Um sistema normalmente possui alguns diagramas de classes, j que no so todas as classes que esto inseridas em um nico diagrama e uma certa classe pode participar de vrios diagramas de classes.

As classes devem ser extradas do domnio do problema e serem nomeadas pelo que elas representam no sistema.

3.2 Relacionamentos

Classes podem se relacionar com outras atravs de diversas maneiras: associao (conectadas entre si), dependncia (uma classe depende ou usa outra classe), especializao (uma classe uma especializao de outra classe), ou em pacotes (classes agrupadas por caractersticas similares).

Os relacionamentos so mostrados no diagrama de classes juntamente com as suas estruturas internas, que so os atributos e operaes.

Exemplo

3.3 Propsitos Bsicos e Distintos


Fazer modelagem do vocabulrio do sistema


Indica quais abstraes fazem parte do sistema e quais esto fora do limite do mesmo

Fazer a modelagem e colaborao simples


Mostra como as classes trabalham em conjunto permitindo a compreenso de uma semntica maior do que se estas mesmas classes fossem analisadas individualmente.

Fazer a modelagem do esquema lgico de um banco de dados


Descreve, de forma orientada a objetos, o esquema lgico de um banco de dados que fisicamente pode ser orientado a objetos, relacional ou hbrido.

3.4 Identificao de classes


Questes que podem ajudar a identific-las:


Existem informaes que devem ser armazenadas ou analisadas? Se existir alguma informao que tenha que ser guardada, transformada ou analisada de alguma forma, ento uma possvel candidata para ser uma classe.

Existem sistemas externos ao modelado? Se existir, eles devero ser vistos como classes pelo sistema para que possa interagir com outros externos.

Existem classes de bibliotecas, componentes ou modelos externos a serem utilizados pelo sistema modelado? Se sim, normalmente essas classes, componentes e modelos contero classes candidatas ao nosso sistema.

Qual o papel dos atores dentro do sistema? Talvez o papel deles possa ser visto como classes, por exemplo, usurio, operador, cliente e da por diante.

3.5 Representao

Em UML, as classes so representadas por um retngulo dividido em trs compartimentos: o compartimento de nome, que conter apenas o nome da classe modelada, o de atributos, que possuir a relao de atributos que a classe possui em sua estrutura interna, e o compartimento de operaes, que sero os mtodos de manipulao de dados e de comunicao de uma classe com outras do sistema.

A sintaxe usada em cada um destes compartimentos independente de qualquer linguagem de programao, embora podem ser usadas outras sintaxes como a do C++, Java, e etc.

Representao Grfica

Visibilidade

3.6 Tipos de relacionamentos


Os relacionamentos ligam as classes/objetos entre si criando relaes lgicas entre estas entidades. Os relacionamentos podem ser dos seguintes tipos:

Associao: uma conexo entre classes que tambm significa uma conexo entre objetos daquelas classes. Em UML, uma associao definida com um relacionamento que descreve uma srie de ligaes, onde a ligao definida como a semntica entre as duplas de objetos ligados.

Generalizao: um relacionamento de um elemento mais geral e outro mais especfico. O elemento mais especfico pode conter apenas informaes adicionais. Uma instncia (ou objeto) do elemento mais especfico pode ser usada onde o elemento mais geral seja permitido.

Dependncia

Refinamentos:

Dependncia

um

relacionamento entre elementos, um independente e outro dependente. Uma modificao de um elemento independente afetar diretamente elementos dependentes dele. Refinamento um relacionamento entre duas descries de uma mesma entidade, mas em nveis diferentes de abstrao.

3.7 Associaes

Uma associao representa que duas classes possuem uma ligao (link) entre elas, significando, por exemplo, que elas conhecem uma a outra, esto conectadas com, para cada X existe um Y e assim por diante.

Podem ser:

Normal, Recursiva, Qualificada, Exclusiva, Ordenada, Classe, Ternria e Agregao.

Associao Normal

O tipo mais comum de associao apenas uma conexo entre classes.

representada por uma linha slida entre duas classes. A associao possui um nome (junto linha que representa a associao), normalmente um verbo, mas substantivos tambm so permitidos.

Pode-se tambm colocar uma seta no final da associao indicando que esta s pode ser usada para o lado onde a seta aponta. Mas associaes tambm podem possuir dois nomes, significando um nome para cada sentido da associao.

Para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos esto relacionados no link. O intervalo pode ser de zero para um (0..1), zero para vrios (0..* ou apenas *), um para vrios (1..*), dois (2), cinco para 11 (5..11) e assim por diante. tambm possvel expressar uma srie de nmeros como (1, 4, 6..12). Se no for descrita nenhuma multiplicidade, ento considerado o padro de um para um (1..1 ou apenas 1).

Exemplo: um relacionamento entre as classes Cliente e Conta Corrente que se relacionam por associao.

Associao Recursiva

Quando for necessrio conectar uma classe a ela mesma atravs de uma associao e que ainda representa semanticamente a conexo entre dois objetos da mesma classe.

Associao Qualificada

Associaes qualificadas so usadas com associaes de um para vrios (1..*) ou vrios para vrios (*). O qualificador (identificador da associao qualificada) especifica como um determinado objeto no final da associao n identificado, e pode ser visto como um tipo de chave para separar todos os objetos na associao.

O identificador desenhado como uma pequena caixa no final da associao junto classe de onde a navegao deve ser feita.

Associao Exclusiva

Em alguns modelos nem todas as combinaes so vlidas, e isto pode causar problemas que devem ser tratados.

Uma associao exclusiva uma restrio em duas ou mais associaes.

Ela especifica que objetos de uma classe podem participar de no mximo uma das associaes em um dado momento.

Uma associao exclusiva representada por uma linha tracejada entre as associaes que so partes da associao exclusiva, com a especificao {ou} sobre a linha tracejada.

Exemplo: No diagrama abaixo um contrato no pode se referir a uma pessoa e a uma empresa ao mesmo tempo, significando que o relacionamento exclusivo a somente uma das duas classes.

Associao Ordenada

As associaes entre objetos podem ter uma ordem implcita. O padro para uma associao desordenado (ou sem nenhuma ordem especfica). Mas uma ordem pode ser especificada atravs da associao ordenada.

Este tipo de associao pode ser muito til em casos como este: janelas de um sistema tm que ser ordenadas na tela (uma est no topo, uma est no fundo e assim por diante).

A associao ordenada pode ser escrita apenas colocando {ordenada} junto linha de associao entre as duas classes.

Associao de Classe

Uma classe pode ser associada a uma outra associao, no sendo conectada nenhuma das extremidades da associao j existente, mas na prpria linha da associao.

Esta associao serve para se adicionar informao extra a associao j existente.

Exemplo: A associao da classe Fila com a associao das classes Cliente e Processo pode ser estendida com operaes de adicionar processos na fila, para ler e remover da fila e de ler o seu tamanho. Se operaes ou atributos so adicionados a associao, ela deve ser mostrada como uma classe.

Associao de Ternria

Mais de duas classes podem ser associadas entre si, a associao ternria associa trs classes.

Ela mostrada como uma grade losango (diamante) e ainda suporta uma associao de classe ligada a ela, traar-se-ia, ento, uma linha tracejada a partir do losango para a classe onde seria feita a associao ternria.

Exemplo: A associao ternria especifica que um cliente poder possuir 1 ou mais contratos e cada contrato ser composto de 1 ou vrias regras contratuais.

Associao de Agregao

A agregao um caso particular da associao. A agregao indica que uma das classes do relacionamento uma parte, ou est contida em outra classe. As palavras chaves usadas para identificar uma agregao so: consiste em, contm, parte de.

Existem tipos especiais de agregao que so as agregaes compartilhadas e as compostas.

Agregao Compartilhada:

dita compartilhada quando uma das classes uma parte, ou est contida na outra, mas esta parte pode estar contida na outras vrias vezes em um mesmo momento.

Exemplo: uma pessoa pode ser membro de um time ou vrios times e em determinado momento.

3.8 Generalizao

A generalizao um relacionamento entre um elemento geral e um outro mais especfico.

O elemento mais especfico possui todas as caractersticas do elemento geral e contm ainda mais particularidades.

Um objeto mais especfico pode ser usado como uma instncia do elemento mais geral.

A generalizao, tambm chamada de herana, permite a criao de elementos especializados em outros.

Existem alguns tipos de generalizaes que variam em sua utilizao a partir da situao. So elas:

Normal Restrita

Sobreposio Disjuntiva Completa Incompleta.

Generalizao Normal

Na generalizao normal a classe mais especfica, chamada de subclasse, herda tudo da classe mais geral, chamada de superclasse. Os atributos, operaes e todas as associaes so herdados.

Uma classe pode ser tanto uma subclasse quanto uma superclasse, se ela estiver numa hierarquia de classes que um grfico onde as classes esto ligadas atravs de generalizaes.

A generalizao normal representada por uma linha entre as duas classes que fazem o relacionamento, sendo que se coloca uma seta no lado da linha onde se encontra a superclasse indicando a generalizao.

Generalizao Restrita

Uma restrio aplicada a uma generalizao especifica informaes mais precisas sobre como a generalizao deve ser usada e estendida no futuro.

Generalizaes restritas com mais de uma subclasse: Sobreposio e Disjuntiva:


Generalizao de sobreposio ocorre quando subclasses herdam de uma superclasse por sobreposio e novas subclasses destas podem herdar de mais de uma subclasse.

A generalizao disjuntiva exatamente o contrrio da sobreposio e a generalizao utilizada como padro.

Completa e Incompleta

Uma restrio simbolizando que uma generalizao completa significa que todas as subclasses j foram especificadas, e no existe mais possibilidade de outra generalizao a partir daquele ponto.

A generalizao incompleta exatamente o contrrio da completa e assumida como padro da linguagem.

3.9 Dependncia e Refinamento


Dependncia uma conexo semntica entre dois modelos de elementos, um independente e outro dependente.

Uma mudana no elemento independente ir afetar o modelo dependente. Como no caso anterior com generalizaes, os modelos de elementos podem ser uma classe, um pacote, um use-case e assim por diante.

Quando uma classe recebe um objeto de outra classe como parmetro, uma classe acessa o objeto global da outra. Nesse caso existe uma dependncia entre estas duas classes, apesar de no ser explcita.

Uma relao de dependncia simbolizada por uma linha tracejada com uma seta no final de um dos lados do relacionamento. E sobre essa linha o tipo de dependncia que existe entre as duas classes.

As classes Amigas provenientes do C++ so um exemplo de um relacionamento de dependncia.

Refinamentos so um tipo de relacionamento entre duas descries de uma mesma coisa, mas em nveis de abstrao diferentes, e podem ser usados para modelar diferentes implementaes de uma mesma coisa (uma implementao simples e outra mais complexa, mas tambm mais eficiente).

Os refinamentos so simbolizados por uma linha tracejada com um tringulo no final de um dos lados do relacionamento e so usados em modelos de coordenao.

Em grandes projetos, todos os modelos que so feitos devem ser coordenados. Coordenao de modelos pode ser usada para mostrar modelos em diferentes nveis de abstrao que se relacionam e mostram tambm como modelos em diferentes fases de desenvolvimento se relacionam.

3.10 Mecanismos gerais


A UML utiliza alguns mecanismos em seus diagramas para tratar informaes adicionais.

Ornamentos:

So grficos so anexados aos modelos de elementos em diagramas e adicionam semnticas ao elemento.

Um exemplo de um ornamento o da tcnica de separar um tipo de uma instncia. Quando um elemento representa um tipo, seu nome mostrado em negrito. Quando o mesmo elemento representa a instncia de um tipo, seu nome escrito sublinhado e pode significar tanto o nome da instncia quanto o nome do tipo.

Outros ornamentos so os de especificao de multiplicidade de relacionamentos, onde a multiplicidade um nmero ou um intervalo que indica quantas instncias de um tipo conectado pode estar envolvido na relao.

Notas:

Nem tudo pode ser definido em uma linguagem de modelagem, sem importar o quanto extensa ela seja.

Para permitir adicionar informaes a um modelo no poderia ser representado de outra forma, UML prov a capacidade de adicionar Notas.

Uma Nota pode ser colocada em qualquer lugar em um diagrama, e pode conter qualquer tipo de informao.

Potrebbero piacerti anche