• Nenhum resultado encontrado

Aula10 RS DiagramasdeClasses

N/A
N/A
Protected

Academic year: 2021

Share "Aula10 RS DiagramasdeClasses"

Copied!
42
0
0

Texto

(1)

Requisitos de

Software

Modelagem de Classes de Domínio

Profa. Giliane Bernardi – giliane@unifra.br

(2)

Modelo de Classes de Domínio

O Modelo de Casos de Uso é construído para formar

a visão de casos de uso do sistema

 fornece uma perspectiva do sistema a partir de um ponto

de vista externo.

Internamente, os objetos do sistema colaboram uns

com os outros para produzir resultados visíveis de

fora;

esta colaboração pode ser vista sob o aspecto dinâmico

(3)

Modelo de Classes de Domínio

O aspecto dinâmico descreve a troca de mensagens

entre os objetos e a sua reação aos eventos que

ocorrem no sistema;

O

aspecto estrutural estático

permite compreender

como o sistema está estruturado internamente para

que as funcionalidades externamente visíveis sejam

produzidas

estático porque não apresenta informações sobre como os

objetos do sistema interagem no decorrer do tempo;

(4)

Modelo de Classes de Domínio

Um dos modelos da UML que representam os

aspectos estáticos e estruturais do sistema é o Modelo

de Classes;

O

modelo

de

classes

evolui

durante

o

desenvolvimento do sistema.

À medida que o sistema é desenvolvido, o modelo de classes é incrementado com novos detalhes.

Três níveis sucessivos de abstração:

Domínio

EspecificaçãoImplementação.

(5)

Modelo de Classes de Domínio

O modelo de classes de domínio representa as classes

no domínio do negócio em questão. Não leva em

consideração restrições inerentes à tecnologia a ser

utilizada na solução de um problema.

O modelo de classes de especificação é obtido

através da adição de detalhes ao modelo anterior

conforme a solução de software escolhida.

O modelo de classes de implementação corresponde

à implementação das classes em alguma linguagem

de programação.

(6)

Modelo de Classes de Domínio

O diagrama da UML utilizado para representar

o aspecto estático é o Diagrama de Classes.

(7)
(8)

Diagrama de Classes

Nome_Classe1 Atributos Operações() Nome_Classe2 Atributos Operações()

O Diagrama de Classes mostra a visão estática da

estrutura do sistema. Deve esboçar o que interage e

(9)

Um diagrama de classes é um gráfico de elementos

conectados

através

de

vários

relacionamentos

estáticos;

Pode

conter

classes,

interfaces,

pacotes,

relacionamentos e instâncias, como objetos;

Poderia ser chamado de Diagrama Estrutural Estático;

(10)

Componentes básicos

Pedido

Doce Salgada Mista ItemPedido Pizza 1..* 0..* Ingrediente 1..*

Diagrama de Classes para uma Pizzaria Nota Classe Associativa Classe Herança SuperClasse SubClasses Agregação Multiplicidade Associação

Diagrama de Classes

(11)

Diagrama de Classes - Classes

Uma classe de objetos, ou simplesmente classe,

descreve :

um conjunto de objetos com propriedades semelhantes

(atributos);

o mesmo comportamento (operações);

os mesmos relacionamentos; e

a mesma semântica.

São os blocos de construção mais importantes de

qualquer sistema orientado a objetos;

(12)

Diagrama de Classes - Classes

Representada através de uma “caixa” com no máximo

três compartimentos exibidos.

A Notação utilizada depende do nível de abstração

desejado.

(13)

Dicionário

Relatório

Bíblia

Livro

(14)

Livro Titulo Editora Ano_Publicação Edição Lingua Livro

Classe com detalhes suprimidos

Classe com detalhes a nível de análise Livro +Titulo : string[40] +Editora : string[30] -Ano_Publicação : data -Edição : int +Língua : string[15] +Cadastrar(argumento) +Excluir() +Consultar()

Classe com detalhes a nível de implementação

(15)

Diagrama de Classes - Atributos

Representam uma propriedade do objeto que está

sendo modelado;

Cada atributo possui um valor para cada instância de

um objeto;

Cada nome de atributo deve ser único dentro de uma

classe;

Podem ser representados apenas por seu nome, ou

especificando seu tipo e valor inicial;

(16)

Dicionário

Objeto do mundo Real

Objeto: Dicionário Estrutura de Dados Adicionar Palavra() Eliminar Palavra() Encontrar Palavra() Imprimir definição()

(17)

Atributos Completos Atributos Simples

Exemplo:

Diagrama de Classes - Atributos

Livro +Titulo : string[40] +Editora : string[30] -Ano_Publicação : data -Edição : int +Língua : string[15] +Cadastrar(argumento) +Excluir() +Consultar() Livro Titulo Editora Ano_Publicação Edição Lingua

(18)

Diagrama de Classes - Relacionamentos

Os dois tipos de relacionamentos mais importantes

são:

Associação - conexão entre classes, o que significa que é uma conexão entre objetos daquelas classes. Em UML, uma associação é definida com um relacionamento que descreve uma série de ligações, onde a ligação é definida como a semântica entre as duplas de objetos ligados; e

Generalização - relacionamento de um elemento mais

geral e outro mais específico. Refinamentos de uma classe.

(19)

Associações

 associações normais (binárias);

 associações binárias recursivas;

 associação ternária; e

 agregação.

(20)

Associações Normais (binárias)

 Tipo mais comum de associação, sendo uma conexão entre duas classes;

 Representada por uma linha sólida entre duas classes;

 Uma associação pode possuir um nome, que normalmente é um verbo (substantivos são aceitos);

 Cada terminação da associação pode possuir um papel, mostrando como uma classe é vista pela outra;

(21)

Livro Editora

Livro Pertence Editora

Diretor Empregado Trabalha para

Funcionário Chefe

Associações Normais

Diagrama de Classes - Relacionamentos

Diretor Empregado Trabalha para

Funcionário Chefe

Nome da Associação

(22)

PESSOA

é casada com Pessoa Esposa Marido É casado com

Associações Binária Recursiva (reflexiva,

auto-associação)

Associação entre dois objetos, sendo que os mesmos

pertencem a mesma classe;

(23)

Multiplicidade

 A multiplicidade especifica quantos objetos de uma

classe relacionam-se a um único objeto de classe associada;

 Os diagramas de classe indicam multiplicidade com

símbolos especiais nas extremidades das linhas de associação

Correspondem as cardinalidades no DER.

(24)

um-e-somente-um zero-ou-mais um-ou-mais zero-ou-um Classe Classe 2 Classe 3 Classe 4 Classe 1 1 0..* 1..* 0..1 1..6 7...15

(25)

Diagrama de Classes - Relacionamentos

Classe Associativa

Uma classe associativa é uma associação com

propriedades de classe;

 este tipo de classe surge quando duas ou mais classes estão associadas e é necessário manter informações sobre a associação; Pessoa Empresa 1..* 1..* Trabalho Função Salário 1..* 1..*

(26)

Diagrama de Classes - Relacionamentos

Classe Associativa

Não se deve nomear a linha de associação de uma classe

associativa;

 somente o nome escolhido para a classe associativa deve ser suficiente para expressar o significado desejado;

Uma classe associativa pode participar de outros relacionamentos; Pessoa Empresa 1..* 1..* Trabalho Função Salário 1..* 1..* Equipamento 1 0..*

(27)

Associações Ternárias

quando três classes estão associadas entre si;

representada por um losango, ligando cada classe do

relacionamento;

Diagrama de Classes - Relacionamentos

CIDADE

PRODUTO

DISTRIBUIDOR

0..* 0..*

(28)

Associações Ternárias

 pode ter uma classe associada ligada na ternária;

Diagrama de Classes - Relacionamentos

CIDADE

PRODUTO

DISTRIBUIDOR

Distribuição Data Quantidade 0..* 0..* 0..*

(29)

Agregação

 Caso especial de associação;

 Indica que uma das classes do relacionamento é uma

parte de outra classe – relação todo-parte;

Pode-se utilizar agregação já na fase de análise

(modelagem de classes de domínio)

 pode-se utilizar apenas na fase do modelo de especificação (projeto)

(30)

Equipe Jogador

Agregação

 A diferença entre associação e agregação é puramente

semântica

 em uma agregação um objeto está contido no outro

 Onde se puder utilizar uma agregação, pode-se usar

também uma associação;

Palavras Chaves: “consiste em”, “é parte de”;

 Graficamente representada por uma linha conectando as

classes relacionadas, com um diamante (losango) branco perto da classe que representa o todo.

Diagrama de Classes - Relacionamentos

(31)

Generalização

Os termos herança, generalização e especialização referem-se a aspectos da mesma idéia e são freqüentemente usados de forma intercambiável;

 Generalização – relacionamento entre classes – superclasse generaliza subclasses;

 Herança – mecanismo de compartilhamento de atributos e operações utilizando o mecanismo de generalização (implementação da generalização);

 Especialização – subclasses refinam ou especializam a superclasse.

(32)

ClasseMae

ClasseFilha1 ClasseFilha2

Estilo com setas separadas

Estilo com setas Agrupadas

Diagrama de Classes - Relacionamentos

Exemplo

ClasseMae

(33)

Médico Nome CRM Efetivo DataEfetivacao Especialidade Residente Orientador Generalização

Diagrama de Classes - Relacionamentos

(34)

Efetivo DataEfetivacao Especialidade Médico Nome CRM Cidade 1 0..* 1 0..* Residente DataInício Orientador 1 0..* 1 0..*

Diagrama de Classes - Relacionamentos

(35)

Generalização

 Uma classe pode ter mais de uma superclasse (herança múltipla)

Diagrama de Classes - Relacionamentos

Carro Barco

(36)

Generalização

 Podem existir vários níveis de especialização

Diagrama de Classes - Relacionamentos

CarroAnfíbio

Carro Barco

(37)

Exemplo Berçário

 Um berçário deseja controlar suas tarefas. Para isso deseja manter um cadastro para os bebês, constando nome, médico que fez seu parto, sua mãe e data de nascimento. Para os médicos é necessário saber: o nome, data de nascimento, CRM, endereço e telefone celular. Para as mães dos bebês é necessário manter informações como: nome, data de nascimento, sobrenome, endereço e telefone. Ainda, é necessário manter um controle dos medicamentos ingeridos pelos bebês no berçário. Sobre os medicamentos é necessário manter: descrição, quantidade em estoque e unidade de medida. Um bebê pode tomar vários medicamentos, assim como um medicamento pode ser dado para vários bebês. Quando um bebê toma uma medicação ainda é importante saber a quantidade, o dia e a hora do medicamento.

(38)

Exemplo Berçário

 Um berçário deseja controlar suas tarefas. Para isso deseja manter um cadastro para os bebês, constando nome, médico

que fez seu parto, sua mãe e data de nascimento. Para os

médicos é necessário saber: o nome, data de nascimento,

CRM, endereço e telefone celular. Para as mães dos bebês é

necessário manter informações como: nome, sobrenome,data

de nascimento, endereço e telefone. Ainda, é necessário

manter um controle dos medicamentos ingeridos pelos bebês no berçário. Sobre os medicamentos é necessário manter:

descrição, quantidade em estoque e unidade de medida. Um

bebê pode tomar vários medicamentos, assim como um medicamento pode ser dado para vários bebês. Quando um bebê toma uma medicação ainda é importante saber a

(39)

Medicamento Descrição Quantidade em Estoque UnidadeMedida Medicação Quantidade Data Hora Medico Nome Data de Nascimento CRM Endereço Telefone Celular Bebe nome data de nascimento 0..* 0..* 0..* 1 0..* 1 Mae Nome Data de Nascimento Sobrenome Endereco Telefone 1 1..* 1 1..* 0..* 0..*

Exemplo Berçário

(40)

Medicamento Descrição Quantidade em Estoque UnidadeMedida Medicação Quantidade Data Hora Pessoa Nome Data de Nascimento Medico CRM Endereço Telefone Celular Bebe 0..* 0..* 0..* 0..* 1 0..* Mae Sobrenome Endereco Telefone 1 1..* 1 1..* 0..* 1

faz parto possui uma

ingere

Uma pessoa pode ser um bebê, um médico ou uma mãe

(41)

Exercícios

Construa um diagrama de classes para os seguintes

objetos. Se quiser, pode incluir novas classes. Utilize

herança, agregação e demais conceitos.

Escola, computador, playground, livro, porta,

laboratório, salas, biblioteca, régua, alunos, giz, balanço, revista, janela, sala de aula, professor, carteira, sala dos professores, cadeira, teclado, monitor, escorregador, bibliotecário, quadro-negro, secretária, boletim

(42)

Exercícios

Construa um diagrama de classes para os seguintes

objetos. Se quiser, pode incluir novas classes. Utilize

herança, agregação e demais conceitos.

Casa, cozinha, sofá, banheiro, panela, armário,lâmpada,

geladeira, janela, sala, cama, pia, sala de estar, fogão, tampa da panela, sistema de alarme, abajur, sala de jantar, porta, mesa, sistema de incêndio, pão, leite, sabonete, cabo da panela

Referências

Documentos relacionados

Considerando que essa despesa foi utilizada para fins de gerenciamento de resultados visando alinhá-lo a previsão dos analistas, espera-se que o efeito da mudança da ETR do quarto

abaixo deles, haverá uma majoração de 50%, ao passo que o entendimento da AT é que os encargos individuais com o trabalhador deverão ser majorados em 50%, para efeitos de

20 (2703) TÓPICOS ESPECIAIS EM CIÊNCIAS BIOLÓGICAS I - TAXONOMIA ZOOLÓGICA (CÓD. Albuquerque Multiuso (Bloco XV)

@Verdade traz ao leitor a conversa que manteve com Arlindo Murririua, coordenador Provincial da Associação Moçambicana para o Desenvolvimento da Democracia (AMODE), em Nampula,

No itinerário cultural ibero-americano, o Ano da Música é um dos mais representativos de todas as disciplinas culturais e, por isso, pode continuar a apoiar o

(P&F) Inverted monorail systems (IMS + PPC) Skillet Systems Skid Handling Technology/ Transportadores de rolos, corrente, correia Automated Guided Vehicles (AGV)

1) Áreas com mais de 30% de tocos atacados devem ir para a reforma imediatamente, para dimi- nuir a pressão da população em áreas vizinhas; 2) Para retardar a disseminação da

2. O texto de Isaías não contém neste caso as repreensões feitas a Israel como a esposa desleal, a ecoarem com tanta energia nos outros textos, em particular de Oséias ou de