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

Introdução às classes e relações em Engenharia de Software, Notas de aula de Análise de Sistemas de Engenharia

Neste documento, luís a. Alexandre apresenta as classes, seus atributos e operações, além de explicar as relações entre classes, como dependência, generalização e associação. O autor também discute os papéis e multiplicidades em associações e a utilização da agregação para representar relações do tipo 'todo/parte'.

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
Classes
Rela¸oes
Coment´arios
Conclus˜ao
Engenharia de software
Lu´ıs A. Alexandre
UBI, 14 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 Introdução às classes e relações em Engenharia de Software e outras Notas de aula em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Engenharia de software

Lu´ıs A. Alexandre

UBI, 14 de Abril de 2008

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Conte´udo

I Classes.

I Rela¸c˜oes.

I Coment´arios.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Classes Atributos Opera¸c˜oes Contexto

Representa¸c˜ao das classes

I Em UML a representa¸c˜ao de uma classe pode ser feita a

diferentes n´ıveis: o mais simples consiste em representar

apenas o nome da classe.

NomeDaClasse

I Os nomes das classes devem come¸car por mai´usculas e

quando s˜ao compostos por mais de uma palavra, a primeira

letra de cada palavra deve ser mai´uscula.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Classes Atributos Opera¸c˜oes Contexto

Representa¸c˜ao dos atributos

I Os atributos representam-se por baixo do nome da classe.

I Pode apenas ser escrito o nome de um atributo ou pode ser

colocada tamb´em informa¸c˜ao relativa ao seu tipo.

Cliente

nome : String

morada : String

numeroTelefone : long

I Os nomes dos atributos devem come¸car por min´usculas e

quando s˜ao compostos por mais de uma palavra, a primeira

letra de cada palavra deve ser mai´uscula (exceptuando a

primeira).

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Classes Atributos Opera¸c˜oes Contexto

Representa¸c˜ao dependente do contexto

I A forma usada para

representar as classes depende

do seu fim. Se estivermos

numa fase de an´alise ent˜ao

deve ser usada uma

representa¸c˜ao simplificada:

Cliente

Cliente

I Na fase de desenho devem ser

inclu´ıdos mais detalhes:

Cliente

getNome() : String setNome(novoNome : String) : void

nome : String morada : String numeroTelefone : long

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Rela¸c˜oes entre classes

I As classes est˜ao relacionadas usando as rela¸c˜oes que j´a

estud´amos para os casos de uso: dependˆencia, associa¸c˜ao e

generaliza¸c˜ao.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Rela¸c˜oes de generaliza¸c˜ao

I A generaliza¸c˜ao ´e uma rela¸c˜ao entre uma classe geral (a

super-classe ou pai) e uma ou mais classes mais espec´ıficas

(sub-classes ou filhos).

I As classes filho herdam todos os atributos e opera¸c˜oes da

classe pai e podem ter mais atributos e opera¸c˜oes que aqueles

que herdam.

I Se uma opera¸c˜ao num filho tem o mesmo nome da do pai

est´a a fazer um override `a do pai.

I Exemplo geom´etrico: forma, pol´ıgono, rectˆangulo, quadrado,

elipse, circunferˆencia, triˆangulo.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Rela¸c˜oes de generaliza¸c˜ao

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Nome

I E poss´´ ıvel atribuir um nome a uma associa¸c˜ao para descrever

a natureza da associa¸c˜ao.

I Por vezes usa-se uma seta ao lado do nome a indicar em que

sentido funciona o nome da associa¸c˜ao: no caso acima

poderia ter uma seta da esquerda para a direita.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Papel

I Quando uma classe participa numa associa¸c˜ao representa um

determinado papel. O nome desse papel pode ser colocado

explicitamente junto da classe onde a linha da associa¸c˜ao

termina.

I De notar que uma mesma classe pode representar pap´eis

diferentes em associa¸c˜oes diferentes (a ”Pessoa”pode tamb´em

representar o papel de um contribuinte para o estado).

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Multiplicidade: exemplo

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Rela¸c˜oes entre classes Rela¸c˜oes de dependˆencia Rela¸c˜oes de generaliza¸c˜ao Rela¸c˜oes de associa¸c˜ao Rela¸c˜oes de associa¸c˜ao: nome Rela¸c˜oes de associa¸c˜ao: papel Rela¸c˜oes de associa¸c˜ao: multiplicidade Rela¸c˜oes de associa¸c˜ao: agrega¸c˜ao

Agrega¸c˜ao

I Quando queremos representar uma

rela¸c˜ao do tipo ”todo/parte”, ou

seja, em que as classes n˜ao se

encontram ao mesmo n´ıvel e uma

delas (o ”todo”) ´e constitu´ıda por

v´arias ”partes”, ´e usada a

agrega¸c˜ao.

I ´E uma rela¸c˜ao do tipo ”tem”:

objectos do tipo ”todo” tˆem

objectos do tipo ”parte”.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Leituras complementares Question´ario

Leituras complementares

I Booch: cap. 4, 5, 8

I Fowler: cap. 4

I Nunes: sec. 3.

Classes Rela¸c˜oes Coment´arios Conclus˜ao

Leituras complementares Question´ario

Question´ario

1. O que significa a indica¸c˜ao 0..1, 3..4, 6..* sobre uma

liga¸c˜ao de associa¸c˜ao?

2. Represente num diagrama de classes a rela¸c˜ao entre a classe

que representa os professores e a que representa as disciplinas,

considerando que cada disciplina tem de ter pelo menos um

docente e que cada docente lecciona pelo menos uma

disciplina.

3. Modifique o diagrama anterior para representar o facto de

poderem existir disciplinas em que n˜ao existe nenhum docente

atribu´ıdo (n˜ao funcionam).

4. Modifique o diagrama anterior para representar o facto de uma

disciplina poder ser leccionada no m´aximo por 2 docentes.