Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Diagramas Avançados de Classes e Objetos em Engenharia de Software, Notas de aula de Análise de Sistemas de Engenharia

Este documento aborda os diagramas avançados de classes e objetos em engenharia de software, incluindo características avançadas como classes abstractas, classes de associação, multiplicidade de classes e atributos, relação de composição, visibilidade de atributos e operações, restrições, exemplos e diferenças entre multiplicidade em classes e associações. O documento também apresenta ferramentas de protótipos como argouml.

Tipologia: Notas de aula

2010

Compartilhado em 22/03/2010

ednaldo-miranda-6
ednaldo-miranda-6 🇧🇷

4

(1)

38 documentos

1 / 23

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Diagramas de classe avan¸cados
Diagramas de objectos
Conclus˜ao
Engenharia de software
Lu´ıs A. Alexandre
UBI, 28 de Abril de 2008
Lu´ıs A. Alexandre Engenharia de software
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Pré-visualização parcial do texto

Baixe Diagramas Avançados de Classes e Objetos em Engenharia de Software e outras Notas de aula em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Engenharia de software

Lu´ıs A. Alexandre

UBI, 28 de Abril de 2008

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Conte´udo

I Diagramas de classe: caracter´ısticas avan¸cadas

I Diagramas de objectos

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Prot´otipos: ArgoUML

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Classes de associa¸c˜ao

I Numa rela¸c˜ao de associa¸c˜ao entre duas classes, a pr´opria

rela¸c˜ao pode ter propriedades.

I Isto pode ser modelado com recurso a uma classe de

associa¸c˜ao que ´e um misto entre uma classe e uma rela¸c˜ao de

associa¸c˜ao.

I Este tipo de classes s˜ao representadas usando os s´ımbolos

normais duma classe e ´e ligada `a linha da associa¸c˜ao atrav´es

duma linha tracejada.

I De notar que uma classe de associa¸c˜ao s´o pode ter uma

liga¸c˜ao a uma associa¸c˜ao.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Multiplicidade das classes

I A representa¸c˜ao duma classe pode indicar o

n´umero de objectos que podem ser criados a

partir dela directamente (n˜ao contando com os

objectos de classes derivadas dela). A este

n´umero chamamos a multiplicidade da classe.

PlacaRede ¹

ports [2..*]: Port

I A multiplicidade ´e representada por um n´umero no canto

superior direito do s´ımbolo da classe.

I Quando n˜ao ´e representada explicitamente a multiplicidade

duma classe assume-se que esta pode gerar qualquer n´umero

de objectos.

I Aos atributos tamb´em ´e poss´ıvel atribuir multiplicidade, que se

representa logo a seguir ao seu nome entre parˆentesis rectos.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Diferen¸ca entre multiplicidade nas classes e nas associa¸c˜oes

I Qual a diferen¸ca entre multiplicidade nas classes e nas

associa¸c˜oes?

I Exemplo:

Motor ¹ Carro ¹

Motor Carro

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Exemplo de composi¸c˜ao

Empresa

Departamento

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Associa¸c˜ao unidireccional

I A rela¸c˜ao de associa¸c˜ao unidireccional mostra que duas

classes est˜ao relacionadas mas apenas uma sabe dessa rela¸c˜ao.

I Para tal coloca-se no fim da linha de associa¸c˜ao uma cabe¸ca

de seta aberta do lado da classe que ignora a associa¸c˜ao.

I Exemplo:

ContaBancária

depositar(quantia : int) : void levantar(quantia : int) : void

saldo : int dono : String

RelatórioDescoberto

refresh() : void

geradoEm : Date

I A classe ContaBanc´aria n˜ao sabe da existˆencia da classe

Relat´orioDescoberto. Apenas esta segunda conhece a

primeira.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Visibilidade dos atributos e opera¸c˜oes

I E poss´´ ıvel representar a visibilidade de atributos e opera¸c˜oes

num diagrama de classes.

I A visibilidade indica se um determinado atributo ou opera¸c˜ao

pode ser usado por outros elementos.

I Para tal s˜ao usados os seguintes s´ımbolos:

I + = public. Qualquer classe pode usar.

I − = private. S´o esta classe pode usar.

I # = protected. Esta e as classes derivadas podem usar.

I ∼ = package. As classes deste pacote podem usar.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Classes abstractas ArgoUML cria prot´otipos automaticamente Classes de associa¸c˜ao Multiplicidade das classes e atributos Rela¸c˜ao de composi¸c˜ao Associa¸c˜ao unidireccional Associa¸c˜ao reflexiva Visibilidade dos atributos e opera¸c˜oes Restri¸c˜oes

Visibilidade dos atributos e opera¸c˜oes (cont.)

I Estes s´ımbolos s˜ao colocados imediatamente antes do nome

do atributo ou opera¸c˜ao.

I A falta de um destes s´ımbolos ´e normalmente entendida como

representando public.

Toolbar

# seleccaoActual: Tool

# contaTool: Integer

+ escolheItem(i: Integer)

+ getTool(): Tool

# verificaOrfaos()

− compacta()

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Diagramas de objectos Conte´udo Quando e como usar?

Diagramas de objectos

I Um diagrama de objectos mostra os objectos e as suas

rela¸c˜oes num dado instante de tempo.

I Permitem visualizar instˆancias de classes.

I Exibem a parte est´atica duma interac¸c˜ao: os objectos que

colaboram entre si mas sem as mensagens que trocam.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Diagramas de objectos Conte´udo Quando e como usar?

Conte´udo

I Um diagrama de objectos ´e composto por objectos

(representados dentro de rectˆangulos semelhantes aos das

classes) e por liga¸c˜oes entre eles.

I As liga¸c˜oes representam instˆancias das associa¸c˜oes dos

diagramas de classes.

I E normal representar os valores dos atributos no instante´

representado.

I Representam-se ainda os nomes dos objectos antes do nome

da sua classe e separado por ”:”.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Diagramas de objectos Conte´udo Quando e como usar?

Quando e como usar?

I Um diagrama de objectos ´e usado muitas vezes como auxiliar

na detec¸c˜ao de erros.

I Representar apenas a parte do sistema que est´a sob an´alise.

I Expor apenas os atributos necess´arios `a compreens˜ao.

I Atribuir um nome ao diagrama que deixe claro o fim para o

qual foi desenhado.

I Organizar os elementos no diagrama para que os objectos

semanticamente pr´oximos estejam tamb´em pr´oximos no

diagrama.

I Usar notas para salientar caracter´ısticas importantes.

Diagramas de classe avan¸cados Diagramas de objectos Conclus˜ao

Leituras complementares Question´ario

Leituras complementares

I Booch: cap. 9 e 10 (classes avan¸cadas), 14 (diag. objectos)

I Fowler: cap. 6

I Nunes: cap. 3