uml – modelaÇÃo da estrutura professor sandro carvalho

31
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

UML – MODELAÇÃO DAESTRUTURA

Professor Sandro Carvalho

Page 2: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Introdução

A modelação da estrutura de um sistema de software consiste

principalmente, segundo a abordagem orientada por objetos, na

identificação de classes e suas respectivas relações.

Um objeto reflete em geral uma entidade do mundo real e apresenta

um estado e comportamento próprio. Os objetos interatuam entre si

por troca de mensagens. Uma classe consiste numa estrutura que

permite criar objetos semelhantes; que apresentem estado e

comportamento semelhante. Neste sentido diz-se que uma classe é

uma fábrica de objetos e que um objeto é uma instância de uma

classe.

Page 3: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Introdução

A UML providencia os seguintes elementos, que permitem a

especificação da estrutura estática de um sistema de software:

classes, relações, interfaces, objetos.

Page 4: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes

Uma classe é a descrição de um conjunto de objetos que partilham os

mesmos atributos, operações, relações e a mesma semântica. Uma

classe corresponde a algo tangível ou a uma abstração conceitual

existente no domínio do utilizador ou no domínio do engenheiro de

software.

Page 5: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes

Uma classe é representada em UML por um rectângulo com uma,

duas ou três seções. Na primeira seção apresenta-se o nome da

classe, na segunda a sua lista de atributos, e na terceira a sua lista de

métodos.

Page 6: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes

Page 7: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relações

Uma relação em UML estabelece a ligação entre elementos e é

representada graficamente por um determinado tipo de linha. Na

modelação orientada por objetos os três tipos de relações mais

importantes são (1) dependências; (2) generalizações; e (3)

associações.

Page 8: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Dependência

Uma relação de dependência, ou simplesmente dependência, indica

que a alteração na especificação de um elemento pode afetar outro

elemento que a usa, mas não necessariamente o oposto. A

dependência é representada em UML através de uma linha dirigida a

tracejado.

Page 9: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Dependência

exemplo da relação de dependência entre as classes

SensorTemperatura e Temperatura.

Page 10: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Generalização

Uma relação de generalização, ou simplesmente generalização, é

uma relação entre um elemento geral (superclasse, super-caso

utilização, super-pacote) e um elemento mais específico (subclasse,

sub-caso-utilização, sub-pacote). É representada em UML por uma

linha dirigida a cheio com um triângulo branco no seu extremo.

No contexto de classes usam-se generalizações para ilustrar as

relações de herança conhecidas das linguagens de programação

orientadas por objetos.

Page 11: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Generalização

A herança providencia um mecanismo natural e potente de

organização dos programas de software ao permitir: (1) que cada

subclasse herde o estado e comportamento de uma superclasse; (2)

subclasses podem adicionar o seu próprio estado e comportamento; e

(3) as subclasses podem ainda alterar os métodos (comportamento)

herdados, providenciando implementações especializadas desses

métodos.

Page 12: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de GeneralizaçãoCatalogue numberAcquisition dateCostTypeStatusNumber of copies

Library item

Acquire ()Catalogue ()Dispose ()Issue ()Return ()

AuthorEditionPublication dateISBN

Book

YearIssue

MagazineDirectorDate of releaseDistributor

Film

VersionPlatform

Computerprogram

TitlePublisher

Published item

TitleMedium

Recorded item

Page 13: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Associação

Uma relação de associação, ou simplesmente associação, é uma relação

estrutural que especifica que objetos de uma classe estão ligados a objetos de

outra.

Page 14: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Associação

A Figura a seguir ilustra a associação de “posse” entre as classes Utilizador

e Password, com uma multiplicidade de “1 para muitos” (1-N). A associação indica

que um utilizador tem várias (0 ou mais) passwords e que uma password pertence

necessariamente a um utilizador.

Page 15: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Associação

Page 16: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Relação de Associação

Page 17: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Multiplicidade

A multiplicidade traduz o número de instâncias de uma classe que se podem

relacionar (através da associação) com uma única instância da(s) outra(s)

classe(s) participante(s). Pode-se especificar em UML qualquer tipo de

multiplicidade. Por exemplo, multiplicidade muitos (*), um ou mais (1..*),

exatamente um (1), zero ou um (0..1).

Page 18: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Navegação

A navegação traduz a forma como a partir de uma instância de uma classe se

pode aceder a uma ou mais instâncias de outra classe relacionada pela

associação. Por omissão a navegação numa associação é bidirecional.

Page 19: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Agregação (Simples)

A associação entre classes sem agregação reflete que ambas as classes se

encontram no mesmo nível conceitual. Por outro lado, uma relação de agregação

corresponde ao fato de uma instância de determinada classe possuir ou ser

composta por várias instâncias de outra classe. O adorno de agregação é

representado por um losango colocado junto à classe que representa o elemento

agregador ou “o todo”. A associação de agregação traduz apenas o fato de uma

classe ser composta por diferentes outras classes, suas componentes.

Page 20: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Agregação (Simples)

A Figura abaixo ilustra a relação de agregação entre várias classes. Na prática a

descrição das diferentes componentes que compõem um computador pessoal

(PC).

Page 21: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Composição (Agregação Composta)

A composição, ou agregação composta, é uma variante à agregação simples,

em que é adicionada a seguinte semântica: (1) forte pertença do “todo” em relação

à “parte”, e (2) tempo de vida delimitado (as “partes” não podem existir sem o

“todo”). Adicionalmente, o “todo” é responsável pela disposição das suas “partes”,

ou seja, “o todo” é responsável pela criação e destruição das suas “partes”.

Page 22: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Composição (Agregação Composta)

O adorno de agregação composta é representado por um losango a cheio

colocado junto à classe que representa o elemento agregador ou “o todo”.

A Figura acima ilustra um exemplo de uma associação com agregação

composta, de forma a refletir o fato que “um Departamento não existe fora do

contexto de uma Empresa”.

Page 23: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes-Associação

Numa relação de associação entre classes, a associação pode também ter os

seus próprios atributos (e eventualmente operações), devendo ser, por

conseguinte, modelada também como uma classe. Este tipo de classe designa-se

por classe-associação.

Page 24: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes-Associação

Considere-se o exemplo da Figura a seguir, em que a associação entre as

classes Pessoa e Empresa traduz as tarefas que cada empregado realiza na

empresa. Para cada tarefa é mantido um conjunto de atributos. A classe-

associação Tarefa é representada visualmente como qualquer outra classe, mas

apresenta uma linha a tracejado a ligá-la à linha da associação.

Page 25: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes-Associação

Page 26: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes-Associação

Associações N-árias, com aridade maior ou igual a 3, são pouco comuns na

modelação de classes. Contudo, há situações em que a aplicação deste tipo de

associações é vantajosa em termos da clareza do modelo. Nestas circunstâncias,

a associação é representada por um losango com linhas para todas as suas

classes participantes. A Figura a seguir ilustra um exemplo de uma associação n-

ária, a associação Tarefa e correspondente classe-associação, que relaciona as

classes Pessoa, Empresa e TipoTarefa. Caso a associação tenha também

atributos e/ou operações próprias, cria-se uma classe-associação,a qual é ligada

ao losango por uma linha a tracejado.

Page 27: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Classes-Associação

Page 28: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Exemplo de Diagrama de Classes

Page 29: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Exemplo

Considere o sistema de uma equipe de futebol constituído pelos seguintes

atores: jogador, treinador, atacante, goleiro, médio, defesa, presidente. Desenhe o

respectivo diagrama de casos de utilização. Sugestão: considere por exemplo os

seguintes casos: jogar, treinar, defender a baliza, pagar ao jogador, pagar ao

treinador, vender jogador, contratar jogador, contratar treinador, despedir treinador.

Page 30: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Exemplo

Page 31: UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho

Exemplo