Buscar

SL-MS-03-02-UML-Classes

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Modelagem de Sistemas
Análise e Desenvolvimento de Sistemas
Janete Pereira do Amaral janete@mentoring.com.br
UNIDADE 3 – MODELAGEM UNIFICADA (UML)
*
DIAGRAMA DE ESTRUTURA – CLASSE E OBJETOS
*
Um diagrama de classes:
Dá uma visão estática do sistema
Exibe um conjunto de classes, interfaces e seus relacionamentos
As classes especificam tanto a estrutura como o comportamento dos objetos (que são instâncias de classes)
Ao completar os diagramas de interação, pode-se completar o diagrama de classes:
Normalmente cria-se os diagramas de classe em paralelo aos de interação
No final, precisa-se apenas incluir os detalhes que faltam (métodos, atributos ou associações)
INTRODUÇÃO
*
É o ponto central do modelo UML 
Mostra as abstrações importantes do sistema e como elas se relacionam
Os elementos básicos encontrados no diagrama de classe são os ícones de classe e de relacionamentos
Classes, Atributos e Operações
Uma classe é representada como um retângulo com um, dois ou três compartimentos
O primeiro compartimento é reservado para o nome da classe. 
O segundo e terceiro compartimentos são opcionais e devem ser utilizados para listar os atributos e as operações definidas para a classe
Diagrama de Classes
*
FormMatrícula
GerenciadorMatrícula
addEstudante(Curso, InfoEstud)
Curso
nome
créditos
open()
addEstudante(EstInfo)
Estudante
nome
nomatrícula
Oferta de Curso
localização
open()
addEstudante(EstInfo)
Professor
nome
formação
AlgoritmoMatricula
Diagrama de Classes
*
Exemplo de Digrama de Classes
Possui
1
1
Possui
1
1
1
Controla
1
1
Nome
Atributo
Método
Associação
Multiplicidade
Navegabilidade
*
Uma classe é composta por três seções
Nome da Classe
Dvd
Atributos 
Operações
hora
status
Estrutura
Comportamento
voltar()
pausar()
adiantar()
parar()
tocar()
Diagrama de Classes
*
Classe
Diagrama de Classes
Nome da Classe centralizada, fonte negrito e começando com letra maiúscula 
Atributos e Operações ajustados a esquerda, fonte normal e começando com letras minúsculas 
*
Atributos
Cada curso ofertado tem um número, uma sala e um horário
CursoOfertado
número
sala
horário
A estrutura de uma classe é representada por seus atributos.
Atributos podem ser encontrados através da análise da definição da classe, dos requisitos do problema e pela aplicação do conhecimento do domínio.
Exemplo
Atributo - Alinhamento à esquerda / Começando com minúsculo / Plain face
*
 Classes individualmente fornecem pouco valor numa representação 
Muitas classes num sistema estão relacionadas com outras classes, tal que seus correspondentes objetos colaboram para realizar funcionalidades mais complexas 
Assim, adicionalmente a classes, atributos e operações, os diagramas de classes também representam vários tipos de relacionamentos existentes entre classes 
O UML distingue vários tipos de relacionamentos, cada um dos quais possui seu próprio conjunto de notação 
Relacionamentos
*
FormMatrícula
GerenciadorMatrícula
Curso
Estudante
OfertaCurso
Professor
(addEstudanteCurso, EstudInfo)
nome
créditos
open()
addEstudante(EstInfo)
nome
noMatrícula
localização
open()
addEstudante(EstInfo)
nome
formação
AlgoritmoMatrícula
Relacionamentos
*
Generalizações - Abstrações 
Associações - Binárias / Ternárias e de Alta ordem
Associação-Classe - Associação com propriedades 
Agregações/Composições 
Qualificação - Atributos de uma associação 
Multiplicidade/Cardinalidade - Número de elementos
Links - Uma instância de uma associação
Dependências - Relacionamento semântico
Elementos Derivados - Computados de outros elementos
Relacionamentos
*
 Generalizações - Abstrações
Relacionamentos
*
Generalizações - Abstrações
Generalização/Especialização
Relacionamentos
*
Generalização 
Relacionamentos
*
Generalização 
Relacionamentos
*
Associações
É um relacionamento estrutural que especifica que objetos de um elemento estão conectados a objetos de outro elemento
Descreve um vínculo que ocorre normalmente entre duas classes (binária), entre uma classe com ela mesma (unária) e entre várias classes (ternária/N-ária)
Determinam-se que instâncias de uma classe estão de alguma forma ligadas às instâncias de outra classe – podendo haver troca de informações e compartilhamento de métodos ...
*
O fluxo dos dados pode ser em apenas uma direção ou em ambas direções
Associações
Pode existir mais de uma associação entre duas classes
Se existir mais de uma associação entre duas classes, então elas devem ser nomeadas
Dada uma instância de Coordenador existe um objeto Curso associado
Dada uma instância de Curso existe um objeto Coordenador associado
*
Multiplicidade
Multiplicidade define quantos objetos participam do relacionamento
O número de instâncias de uma classe relacionada a uma instância de outra classe
Especificado em cada uma das pontas da associação
É a cardinalidade de uma associação
*
Numa Associação, é necessário colocar a multiplicidade, demonstrando quantas instâncias de uma classe estão relacionadas com quantas instâncias de outra classe.
“Um aluno cursa uma ou até seis disciplinas”
“Uma disciplina é cursada por zero ou até quarenta alunos”
Multiplicidade
*
Multiplicidade
Não especificada............
Exatamente um...............
Zero ou mais.................
Muitos (mesmo que 0..*)
Um ou mais..................
Zero ou um...................
Intervalo determinado....
Valores múltiplos.........
*
Navegação
Especifica a direção da associação
Associações e agregações são bidirecionais por default
*
Agregação 
Composição
Relacionamentos
*
Um relacionamento de agregação é uma associação que reflete a construção física ou a posse lógica.
Relacionamentos de agregação são casos particulares dos relacionamentos de associação, e só é necessário distingui-los quando for conveniente enfatizar o caráter "todo-parte" do relacionamento.
Geralmente um relacionamento de agregação é caracterizado pela presença da expressão "parte de" na descrição do relacionamento, e pela assimetria da navegação.
AGREGAÇÃO
*
COMPOSIÇÃO
Um tipo mais forte de relacionamento todo-parte é o relacionamento de composição.
Os objetos da classe parte não têm existência independente da classe todo. 
*
COMPOSIÇÃO
Composição é um tipo especial de agregação (por valor)
Semanticamente equivalente a um atributo
A remoção do todo implica na remoção das partes
O acesso às partes é restrito ao todo
*
Na Figura 1 (Agregação) Um funcionário pode ou não ser membro de uma equipe de projeto. Os funcionários existem independentes das equipes de projeto
Na Figura 2 (Composição) Uma peça precisa estar associada a um e somente um evento. Uma peça não pode existir independente do evento
AGREGAÇÃO / COMPOSIÇÃO
Figura 1 - Agregação
Figura2 - Composição
Equipe Projeto
Funcionário
0..*
2..*
Evento
Peças
1
0..*
*
AGREGAÇÃO / COMPOSIÇÃO
*
Associação Os objetos estão cientes uns dos outros, de modo que podem trabalhar juntos
Agregação 
1- Protege a integridade da configuração
2- Funciona como uma única unidade
3- Controla através de um objeto – Propaga para baixo
Composição 
Uma parte pode ser membro de somente uma configuração. A parte não pode existir fora da configuração
ASSOCIAÇÃO / AGREGAÇÃO / COMPOSIÇÃO
*
Uma associação pode ser reflexiva. Uma auto-associação indica um relacionamento entre objetos de mesma classe que desempenham diferentes participações
 Na Figura indica-se uma “Pessoa” na qualidade de “chefe” relaciona-se com uma ou mais instâncias de “Pessoa” que exercem o papel de “subordinado”
Auto - Associação
Pessoa
Marido
Esposa
 é casado com
*
Associação - Classe
Os relacionamentos
podem ser de natureza complexa. Em certos casos, um relacionamento é mais bem explicado através de uma classe de associação, que exprime atributos e até operações que são propriedades do relacionamento como um todo e não de cada participante isoladamente.
 Na figura a classe “Emprego” inclui atributos e operações que não estão ligados a uma “Empresa” ou uma “Pessoa” isolada, mas ao relacionamento entre elas. Ex.: o atributo “data de início” ou a operação “imprimir atestado de emprego”.
*
Relacionamentos
*
Relacionamentos
*
Restrições
Relacionamentos
Pessoa
Contrato
Empresa
0..*
0..*
1..*
1..*
{ou}
*
Nomes de Papéis e Associações Derivadas
Relacionamentos
*
Dependências - Entre Classes
Relacionamentos
*
Associações - Binárias / Ternárias e de Alta ordem
Relacionamentos
*
Elementos Derivados - Associações Derivadas
Relacionamentos
*
Elementos Derivados - Atributos Derivados 
Relacionamentos
*
*
*
*
*
*
Os diagramas de classe descrevem as classes que formam a estrutura do sistema e suas relações
As relações entre as classe podem ser associações, agregações, composições ou heranças
As classes possuem além de um nome, os atributos e as operações que desempenham para o sistema. 
Um relacionamento indica um tipo de dependência entre as classes, essa dependência pode ser forte como herança ou agregação ou mais fraca como uma associação, mas indicam que as classe relacionadas cooperam de alguma forma para cumprir um objetivo para o sistema.
O Diagrama de Classes, ao final da modelagem, será traduzido em uma estrutura de código que servirá de base para a implementação do sistema. 
Observa-se que não existe neste diagrama informações sobre os algoritmos que serão utilizados nas operações, e também não se pode precisar a dinâmica do sistema porque não há elementos sobre o processo ou a seqüência de processamento neste modelo. Estas informações serão representadas em outros diagramas (seqüência ou de estado). 
Diagrama de Classes
*
Construindo um Diagrama de Classes
Identificar todas as classes que participam do modelo. Normalmente é conseguido através de análise dos diagramas de interação
Adicionar as classes ao diagrama
Copiar os atributos para as classes apropriadas
Adicionar os nomes dos métodos observados nos diagramas de interação
Escolher os tipos dos atributos e dos parâmetros dos métodos
Incluir as associações necessárias para dar visibilidade de atributos
Adicionar setas às associações para indicar a direção da visibilidade de atributos
Introduzir linhas de relações de dependência para indicar a visibilidade que não seja de atributo
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais