Você está na página 1de 74

Anlise e Desenvolvimento de

Sistemas
Modelagem de Sistemas
3 Mdulo 7 Semana

Prof Anderson Siqueira


2017
Agenda 7 semana
Agenda 7 semana
Agenda

Dica;

Reviso classes e objetos : breve;

Diagrama de Classes

Introduo;

Componentes;

Associaes.

Dvidas?

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 3


Dica
Dica
Acesso biblioteca Pearson

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 5


Dica
Acesso biblioteca Pearson

Endereo: http://www.portal.fmu.br/biblioteca/

Via Link:

Credenciais do aluno on-line.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 6


Dica
Acesso Minha Biblioteca

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 7


Dica
Acesso Minha Biblioteca

Endereo: http://www.portal.fmu.br/biblioteca/

Via Link:

Credenciais do aluno on-line.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 8


Classes e Objetos
Breve reviso
Classes e objetos
Breve reviso

O que um objeto?

De onde vem os objetos?

O que a abordagem: modelos orientados a objetos?

Os objetos so compostos por : dados e comportamentos?

O que significa instanciar uma classe?

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 10


Classes e objetos
Breve reviso

Princpios da orientao a objetos

Abstrao, herana, polimorfismo e encapsulamento

O que UML?

Diagrama de casos de uso

E a sua relao com as classes?


Prof Anderson Siqueira 7 Semana - Abril / 2017.1 11
Diagrama de Classes
Introduo
Diagrama de Classes
Introduo

O diagrama de classes um dos principais diagramas da


UML, representa a estrutura do sistema (elementos,
objetos que foram selecionados para fazer parte do
sistema);

A partir do diagrama de classes, por exemplo, o


esqueleto do cdigo fonte pode ser gerado
automaticamente.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 13


Diagrama de Classes
Introduo

Fragmento de um
Diagrama de classe

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 14


Diagrama de Classes
Introduo

O comportamento do sistema alcanado pela


colaborao entre objetos;

O diagrama de classes fornece uma representao


esttica da colaborao por meio de relacionamentos;

Os relacionamentos utilizados no diagrama de classes


so refinados incrementalmente (modelo do domnio,
anlise e, posteriormente, no projeto).

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 15


Diagrama de Classes
Notao UML para classes
Diagrama de Classes
Notao UML para classes

Uma classe representada por um retngulo dividido em


trs compartimentos:

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 17


Diagrama de Classes
Notao UML para classes

Os compartimentos de atributos e mtodos so


opcionais;

Um esteretipo define um tipo para a classe.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 18


Diagrama de Classes
Notao UML para classes: atributos

A sintaxe para declarao de um atributo em UML


segue o formato:

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 19


Diagrama de Classes
Notao UML para classes: atributos

Exemplos de declarao de um atributo em UML:

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 20


Diagrama de Classes
Notao UML para classes: atributos

Exemplos de declarao de um atributo em UML (ASTAH):


Classe

Atributos

Mtodos

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 21


Diagrama de Classes
Notao UML para classes: mtodos

Sintaxe para declarao de um mtodo em UML :

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 22


Diagrama de Classes
Notao UML para classes: mtodos

Exemplos de declarao de um mtodo em UML:

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 23


Diagrama de Classes
Notao UML para classes: mtodos

Exemplos de declarao de um mtodo em UML (ASTAH):


Classe

Atributos

Mtodos

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 24


Diagrama de Classes
Notao UML para classes, exemplos: atributos e mtodos

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 25


Diagrama de Classes
Relacionamento entre classes
Diagrama de Classes
Relacionamento entre classes:
associao
Diagrama de Classes
Relaes entre classes : associao

uma relao entre duas classes significando que os


objetos destas classes possuem uma ligao;

Por exemplo, a figura 46 representa um Professor leciona


uma Disciplina.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 28


Diagrama de Classes
Associao: multiplicidade
Diagrama de Classes
Relaes entre classes : na associao a multiplicidade

possvel designar que uma quantidade objetos de uma


classe se relacionam com uma quantidade de objetos
de outra classe por meio da notao de multiplicidade
(tabela 7);

As multiplicidades so colocadas nos extremos das


linhas que representam as relaes.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 30


Diagrama de Classes
Relaes entre classes : na associao a multiplicidade

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 31


Diagrama de Classes
Relaes entre classes : na associao a multiplicidade

A Figura 47 interpretada como um Professor leciona uma ou


mais Disciplinas, sendo ilimitado o nmero mximo de
disciplinas;

Observar que no lado do Professor a multiplicidade igual a


1, ento a participao de objetos Professor no relacionamento
leciona obrigatria, ou seja, um professor s pode existir se
estiver associado a uma disciplina.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 32


Diagrama de Classes
Relaes entre classes : na associao a multiplicidade

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 33


Diagrama de Classes
Associao: navegabilidade
Diagrama de Classes
Relaes entre classes : na associao a navegabilidade

As associaes podem OPCIONALMENTE ser direcionadas;

A partir de um Professor pode-se chegar a uma Disciplina,


mas o caminho inverso no possvel o que representado pelo
X sobre a associao.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 35


Diagrama de Classes
Relaes entre classes : na associao a navegabilidade

Para representar uma associao bidirecional, navegvel nos


dois sentidos, utiliza-se uma flecha bidirecional;

Para facilitar a leitura, pode-se indicar a direo da mesma


(tringulo ao lado do nome da associao).

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 36


Diagrama de Classes
Relaes entre classes : na associao a navegabilidade

Se NO HOUVER definio sobre a navegabilidade pode-se


deix-la no-especificada;

Neste caso, no se deve utilizar flechas;

A Figura 50 representa uma associao 1:1 de navegabilidade


no especificada.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 37


Diagrama de Classes
Relaes entre classes : na associao a navegabilidade

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 38


Diagrama de Classes
Associao: Papis
Diagrama de Classes
Relaes entre classes : na associao os papis

Podemos associar papis s associaes para


CLARIFICAR as responsabilidades dos objetos
participantes;

A Figura 51 ilustra uma associao entre Empresa e


Pessoa. Para evitar um nome ambguo de associao pela
utilizao de papis.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 40


Diagrama de Classes
Relaes entre classes : na associao os papis

O nome trabalha pode ser interpretado como:

Pessoa trabalha para Empresa;

Empresa trabalha (presta um servio) para Pessoa.

O nome emprega pode ser interpretado como:

Empresa emprega Pessoa;

Pessoa emprega (contrata) Empresa

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 41


Diagrama de Classes
Relaes entre classes : na associao os papis

Para representar os dois primeiros itens pode-se utilizar papis,


a Empresa desempenha o papel de empregador de Pessoa e
Pessoa, empregado.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 42


Diagrama de Classes
Associao: reflexiva
Diagrama de Classes
Relaes entre classes : na associao reflexiva

Os objetos de uma classe podem se relacionar com


objetos da mesma classe;

Por exemplo, uma relao do tipo pai-filho ou chefe-


empregado cada objeto desempenha um papel diferente;

Neste tipo de associao frequente a utilizao de


papis ao invs de nome de associao para evitar
ambiguidades na leitura.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 44


Diagrama de Classes
Relaes entre classes : na associao reflexiva

Na associao reflexiva da classe Pessoa (Figura 52), a


interpretao a seguinte: uma pessoa tem zero ou um pai e
uma pessoa pode ser pai de vrios filhos;

A multiplicidade zero no papel filho permite que mulheres e


homens sem filhos no participem desta associao;

A multiplicidade zero no papel pai pode parecer estranha,


pois todo filho tem um pai, porm, se colocarmos 1 na
multiplicidade, todos os pais do mundo teriam que ser
representados no sistema.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 45


Diagrama de Classes
Relaes entre classes : na associao reflexiva

Exemplo (avalie pelo sentido de leitura bidirecional):

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 46


Diagrama de Classes
Relaes entre classes : na associao reflexiva

Na associao reflexiva da classe Empregado (Figura


52), a interpretao a seguinte: um empregado que
desempenha o papel de gerente TEM zero ou mais
subordinados;

Pode parecer estranho um gerente sem subordinados,


mas se colocssemos 1 ao invs de zero na
multiplicidade no lado do papel subordinado, todo
empregado TERIA que ter ao menos um subordinado

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 47


Diagrama de Classes
Relaes entre classes : na associao reflexiva

Portanto, este zero significa que empregados que no


desempenham o papel de gerente no precisam estar
associados a subordinados;

No sentido contrrio, todo empregado est associado a


exatamente um gerente;

Neste caso, define-se que um gerente subordinado a ele


mesmo no nvel mais alto da hierarquia, por isso podemos
deixar multiplicidade igual a 1 no lado gerente.
Prof Anderson Siqueira 7 Semana - Abril / 2017.1 48
Diagrama de Classes
Associao: classes associativas
Diagrama de Classes
Relaes entre classes : na associao as classes associativas

Quando uma relao associativa possui atributos prprios


pode-se criar uma classe associativa;

Estas classes so teis quando queremos armazenar o histrico


de uma associao (relacionamentos que ocorrem e
interessam serem salvos);

No exemplo na Figura 53 quando existir uma associao entre


uma instncia de ALUNO e uma de TURMA haver tambm
uma instncia de INSCRIO para armazenar o resultado
escolar.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 50


Diagrama de Classes
Relaes entre classes : na associao as classes
associativas

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 51


Diagrama de Classes
Relaes entre classes : na associao as classes
associativas

Algumas caractersticas das classes associativas:

Classes associativas so comuns em relaes de


multiplicidade *:*, embora no seja uma regra definitiva;

A linha que representa a associao no nomeada, o nome


da classe associativa deve ser suficiente para identificar a
relao;

Classes associativas podem estar relacionadas a outras


classes.
Prof Anderson Siqueira 7 Semana - Abril / 2017.1 52
Diagrama de Classes
Associao: relaes ternrias
Diagrama de Classes
Relaes entre classes : associao as relaes ternrias

possvel representar em UML relaes entre objetos de


trs ou mais classes;

A Figura 54 representa o fato de um Professor lecionar


numa Sala para vrios Alunos (o professor sempre utiliza a
mesma sala).

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 54


Diagrama de Classes
Relaes entre classes : associao as relaes ternrias

Podemos ter classes associativas (guardar dados do


relacionamento) tambm nas associaes mltiplas;

Por exemplo na Figura 55, o Jogador participa de vrios


Times ao longo de uma Temporada, para cada participao
num Time armazena-se os dados de gols marcados, gols
levados, vitrias e derrotas do time.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 55


Diagrama de Classes
Relaes entre classes : associao as relaes ternrias

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 56


Diagrama de Classes
Associao: levantamento das
associaes
Diagrama de Classes
Levantamento das associaes

Normalmente as associaes so definidas pelas regras


do negcio, dos requisitos funcionais e dos diagramas
de interao;

Por exemplo, em uma biblioteca, alunos no podem


emprestar mais de quatro livros ao mesmo tempo.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 58


Diagrama de Classes
Relaes entre classes: agregaes
Diagrama de Classes
Relaes entre classes : agregao

um caso especial de associao utilizada para representar


relacionamentos de pertinncia (parte de);

Permite representar o fato que um objeto ou mais objetos


de uma classe fazem parte de um objeto de outra classe;

Um exemplo tpico uma janela de interface com o usurio


composta por diversos botes, campos texto, scrolls bars,
etc.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 60


Diagrama de Classes
Relaes entre classes : agregao

A agregao representa uma ligao entre o objeto o todo


(a janela) e as partes (Boto, ComboBox, ScrollBar);

Um comportamento que se aplica ao todo se propaga as


partes, por exemplo, ao movimentar a janela, todos seus
elementos de deslocam tambm.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 61


Diagrama de Classes
Relaes entre classes : agregao

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 62


Diagrama de Classes
Relaes entre classes : agregao

Notao

Podem-se incluir nomes, papis, multiplicidades e


navegabilidades, enfim aceita todos os esteretipos
de uma relao de associao

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 63


Diagrama de Classes
Relaes entre classes : agregao

Multiplicidade

Frequentemente ser 1 do lado da classe todo visto que um


objeto normalmente parte de um s objeto;

Porm, h diversas excees como o exemplo da Figura 59:

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 64


Diagrama de Classes
Relaes entre classes : agregao

Multiplicidade (continuao)

Observar tambm a representao da navegabilidade:


do todo possvel alcanar todas as partes e de cada
uma das partes possvel alcanar o todo;

Nela representa-se que um time composto por vrios


jogadores (inclusive por nenhum) e que um jogador
pode participar de vrios times.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 65


Diagrama de Classes
Relaes entre classes: agregaes e
seus tipos
Diagrama de Classes
Relaes entre classes : agregao e seus tipos

Tipos de agregaes

Nos exemplos anteriores, foram utilizados dois tipos de


agregaes, de composio e de associao,
representadas respectivamente por losangos
preenchidos e vazios.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 67


Diagrama de Classes
Relaes entre classes : agregao e seus tipos

Composio (composite aggregation)

uma agregao de fato, o TODO composto pelas PARTES;

Existe uma relao FORTE entre o TODO e as PARTES, pois


quando o TODO destrudo as PARTES tambm o sero, ou
seja, a eliminao do TODO se propaga para as PARTES;

De outra forma, o TODO e as PARTES tm tempos de vida


semelhantes

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 68


Diagrama de Classes
Relaes entre classes : agregao e seus tipos

Associao

uma forma mais branda de agregao, embora exista uma


relao de composio os TODOS os comportamentos so
propagados para as PARTES;

Por exemplo, uma equipe de futebol composta por vrios


jogadores pode deixar de existir, mas os jogadores continuam.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 69


Diagrama de Classes
Relaes entre classes : agregao e seus tipos

Associao (continuao)

A Figura 60 mostra um exemplo similar, onde uma TURMA


composta por ALUNOS (de 0 a 45);

A TURMA pode ser destruda sem afetar a existncia dos


objetos ALUNOS dentro do SISTEMA (software).

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 70


Diagrama de Classes
Relaes entre classes : agregao e seus tipos

Associao (continuao)
No exemplo da Figura 61, se destruirmos o CINEMA a
BILHETERIA ser destruda. A coleo de FILMES no ter
o mesmo fim. Por que?

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 71


Dvidas?
edmodo.com ou anderson.siqueira@fmu.br
Referncias
Referncias
BLAHA, M.; RUMBAUGH, J. Modelagem e Projetos baseados
em Objetos com UML 2. 2a. ed. Rio de Janeiro: Elsevier, 2006.
496p.

BEZERRA, E. Princpios de Anlise e Projeto de Sistemas


com UML. 3. ed. Rio de Janeiro: Campus, 2015. 398p.

Prof Anderson Siqueira 7 Semana - Abril / 2017.1 74

Você também pode gostar