Buscar

AED_2020_2021_01_diagrama_de_classes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e Estruturas de Dados
Diagrama de Classes
Universidade Autónoma de Lisboa
UAL © 2021 AED: Diagrama de Classes 1 / 11
Unified Modeling Language (UML)
Unified Modeling Language (UML)
Diagrama de classes
UAL © 2021 AED: Diagrama de Classes 2 / 11
Unified Modeling Language (UML)
Unified Modeling Language (UML)
A especificação UML é constituída por um conjunto de linguagens diagramáticas e padrões de
documentos, com o objetivo de se constituir como o mecanismo de comunicação entre os vários
interessados num projeto.
Os artefactos produzidos pelo UML servem de especificação do sistema, e posterior
documentação.
As várias linguagens foram desenhadas para comunicar o problema e a solução a implementar,
incluindo descrição de requisitos (e.g., diagrama de casos de uso), os processos envolvidos (e.g.,
diagrama de atividades), e propostas de solução (e.g., diagrama de classes).
UAL © 2021 AED: Diagrama de Classes 3 / 11
Diagrama de classes
Unified Modeling Language (UML)
Diagrama de classes
UAL © 2021 AED: Diagrama de Classes 4 / 11
Diagrama de classes
Diagrama de classes
O diagrama de classes é um dos instrumentos mais utilizados para modelar aplicações ou
sistemas.
A noção de classe, como descrição de um tipo de objeto constituído por um conjunto de
atributos, operações, associações, e semântica é bastante reconhecida.
O nível de detalhe do diagrama pode variar mas, no mínimo, inclui classes e relações hierárquicas
(i.e., heranças) entre si. As relações podem ainda ser anotadas com a cardinalidade associada.
O diagrama pode incluir declarações de atributos e métodos por classe, outros tipos de elemento
além de classes, e outros tipos de relação entre elementos.
UAL © 2021 AED: Diagrama de Classes 5 / 11
Diagrama de classes
Tipos de elemento
A formalização do diagrama prevê quatro tipos elemento: classe, classe abstrata, interface, e
enumeração.
Apenas as classes têm correspondência com estruturas nativas Python.
As classes abstratas e enumerações estão disponíveis através de módulos distribuídos com a
linguagem:
• Classes abstratas, através do módulo abc (https://docs.python.org/3/library/abc.html)
• Enumerações, através do módulo enum (https://docs.python.org/3/library/enum.html)
Não existe representação de interface em Python.
UAL © 2021 AED: Diagrama de Classes 6 / 11
https://docs.python.org/3/library/abc.html
https://docs.python.org/3/library/enum.html
Diagrama de classes
Interfaces
A interface representa um contrato que define o comportamento esperado de um tipo de
informação.
A interface determina a assinatura de métodos que uma classe terá que implementar, sem
especificar detalhes de implementação.
Ao construir interfaces estamos a determinar o que a classe tem que implementar, e não como
implementa.
É um instrumento particularmente útil na construção de estruturas de dados, porque permite
definir o contrato da estrutura, permitindo implementações alternativas.
UAL © 2021 AED: Diagrama de Classes 7 / 11
Diagrama de classes
Classe abstrata
A classe abstrata é uma classe que tem implementação parcial de um tipo de dados.
Representa um protótipo de classe, no sentido em que a classe está incompleta, e eventualmente
inclui métodos sem implementação (tal como acontece numa interface).
Estando incompleta, a classe abstrata não serve para construir objetos diretamente.
A classe abstrata serve para ser estendida. A extensão de uma classe abstrata obriga a
implementar todos os métodos assinalados como incompletos.
Indiretamente, classe abstrata pode funcionar como interface, se todos os métodos estiverem
por implementar.
UAL © 2021 AED: Diagrama de Classes 8 / 11
Diagrama de classes
Notação
Vamos considerar dois tipos de elemento no
diagrama: classe, e classe abstrata.
A classe abstrata vai servir para definir
contratos de implementação de tipos de dados.
Os métodos da classe abstrata assinalados com
@abstractmethod não estão implementados na
classe, e têm que ser implementados por classes
que a estendam.
UAL © 2021 AED: Diagrama de Classes 9 / 11
Diagrama de classes
Relações
UAL © 2021 AED: Diagrama de Classes 10 / 11
Diagrama de classes
Exemplo
A classe abstrata Person inclui dois métodos:
get_name(), e get_email(). O primeiro retorna o
nome da pessoa. O segundo, retorna o email de
acordo com o tipo de pessoa, i.e., aluno
(student_number@example.com), ou docente
(name@example.com).
A implementação de get_name() pode ser feita
diretamente na classe Person, e fica disponível
para qualquer extensão.
A implementação de get_email() tem que ser
feita nas extensões (i.e., Student e Professor).
UAL © 2021 AED: Diagrama de Classes 11 / 11
	Unified Modeling Language (UML)
	Diagrama de classes

Outros materiais