UML Diagrama de Classes

Documentos relacionados
Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Diagrama de Classes (Notação) - Aula 11 (parte 2)

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

UML. Diagrama de Classes

UML. Diagrama de Classe

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

UNIVERSIDADE FEDERAL DE SERGIPE CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO E ESTATÍSTICA. Professor: Eduardo Coelho

Análise e Projeto de Sistemas

Linguagem de Modelagem Unificada UML

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Conceitos de Programação Orientada a Objetos

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

INF1404 MODELAGEM DE SISTEMAS

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Modelagem Orientada a Objeto

INF1013 MODELAGEM DE SOFTWARE

Linguagem de Programação. Diagrama de classes

PROGRAMAÇÃO ORIENTADA A

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

PROJETO DE DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Project-Based Learning TADS MS Diagrama de Classes

Introdução a UML. Uma associação em UML é representada por uma linha ligando os retângulos que representam as classes envolvidas.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Panorama da notação UML

Marcelo Henrique dos Santos

Diagrama de Classes 2017

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos

Modelagem de Processos

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

UML. Adriano J. Holanda 21/3/

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

Programação Orientada a Objetos JAVA - NETBEANS

Modelagem de Dados Usando o Modelo Entidade-Relacionamento (ME-R)

Modelo Entidade-Relacionamento

Introdução a UML (Unified Modeling Language)

Requisitos de sistemas

Orientação a Objetos Revisão dos conceitos

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

UML Diagrama de Casos de Uso (Use Case)

Modelagem de dados usando MER. Andre Noel

UML. Modelando um sistema

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

ENGENHARIA DE SOFTWARE. Aula 10 Introdução ao Diagrama de Classes

Diagramas de Classe. Sumário. Introdução aos Diagramas de Classe

ACH2002. Orientação a Objetos

INF1404 MODELAGEM DE SISTEMAS

Programação Orientada a Objetos Relacionamentos entre classes

Projeto Banco de Dados

Programação Orientada a Objetos

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

INF1012 MODELAGEM DE DADOS

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

Introdução a UML. Uma agregação em UML é representada por ligando os retângulos que representam as classes envolvidas. Casa -cor -tamanho

Abordagem ER. Capítulo 2

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

COMPORTAMENTOS - Observações

Análise e Projeto Orientados a Objetos

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

ASSOCIAÇÃO ENTRE CLASSES

MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Prof. Rosemary Melo

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Modelagem de Dados MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Profa. Rosemary Melo

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Modelagem Conceitual e o Modelo Entidade-Relacionamento

UML Diagramas de Interação

DIAGRAMAS DE CLASSE UML

Unidade 3 23/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

UML Linguagem Unificada de Modelagem (Visão Geral)

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Retrospectiva (Aula 2) O Modelo Entidade-Relacionamento. O Modelo Entidade- Relacionamento. O Modelo Entidade- Relacionamento

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

UML Itens Estruturais - Interface UML UML UML

Modelagem de Dados MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Profa. Rosemary Melo

Análise de Sistemas 2º Bimestre (material 2)

Linguagem de Programação II Relacionamento entre classes

PROGRAMAÇÃO ORIENTADA A OBJETOS I -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU

Transcrição:

CBSI Curso de Bacharelado em Sistemas de Informação UML Diagrama de Classes Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Análise e Projeto de Sistemas Faculdade de Computação Instituto de Ciências e Exatas e Naturais Universidade Federal de Pará Objetivos Notação Básica Dicas Práticas Exercício 1

Sobre Classes Classe é o elemento mais importante de qualquer sistema orientado a objetos Ela que permite definir a estrutura interna do sistema Uma classe é uma descrição de um conjunto de objetos com os mesmos atributos, relacionamentos, operações e semântica. Classes são usadas para capturar o vocabulário de um sistema Classes podem ser abstrações do domínio do problema, como Cliente, Banco, Conta Classes podem também ser usadas a nível de implementação (listas, filas, eventos). Nomes Toda classe deve ter um nome que a distingua das outras casses Um nome pode ser simples (apenas o nome), ou pode ser precedido pelo nome do pacotes em que a classe está contida. Conta Banco Cliente Exceções::ClienteNãoCadastrado 2

Notação Básica Atributos(opcional) Nome(Obrigatório) Forma origem mover() redimensionar() exibir() Operações (opcional) Variações Indivíduo Indivíduo Código : long Sexo : char Nome : char Indivíduo incluir() atu alizar() Indivíduo Código : long Sexo : char Nome : char incluir() atualizar() 3

Atributos Um atributo representa alguma propriedade do que está sendo modelado, que é compartilhada por todos os objetos da classe Os atributos descrevem os dados contidos nas instâncias de uma classe Em um dado momento, um objeto de uma classe conterá valores para todos os atributos descritos na sua classe Atributos (Notação) Atributos podem ser identificados apenas com nomes Cliente nome endereço telefone Atributos podem ter seus tipos (ou classes) especificados e terem valores padrão definidos Parede altura : real largura : real espessura : real viga : boolean = false 4

Operações Uma operação é uma abstração de alguma coisa que se pode fazer com um objeto e que é compartilhada por todos os objetos da classe Uma classe pode ter qualquer número de operações, inclusive nenhuma Operações (Notação) Como para os atributos, você pode especificar uma operação apenas com seu nome Retângulo mover() aumentar() diminuir() Você pode também especificar a assinatura da operação: seus parâmetros, o tipo desses parâmetros e o tipo de retorno 5

Visibilidade Você pode usar marcações de acesso para especificar o tipo de acesso permitido aos atributos e operações Classificador: calsses, interfaces, componentes, nós, use cases, subsistemas Público: todos os classificadores podem usar Protegido: qualquer descendente do classificador poderá usar Privado: somente o próprio classificador poderá usar Visibilidade do Rose Público Protegido Privado Pessoa nome : String cpf : String telefone : String incluir() consultar() atualizar() 6

Sobre Relacionamentos Poucas classes vivem sozinhas A maioria das classes colabora com outra classes de várias maneiras Tipos de relacionamentos especialmente importantes na modelagem orientada a objetos Dependências Generalizações Associações Agregação Composição Realização Dependência Dependências são relações de uso Uma dependência indica que mudanças em um elemento (o servidor ) podem alterar outro elemento (o cleinte ) Uma dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe Cliente Servidor 7

Generalização Uma generalização (também conhecida como herança) é um relaiconamento entre um elemento mais geral (chamado de superclasse ou pai) e um mais especiífico (chamado de subclasse ou filho) Forma origem mover() exibir() Retângulo ponto : Ponto Círculo raio : float Polígono pontos : ListaDePontos exibir() Quadrado Herança Múltipla Ocorrem múltiplas superclasses para uma mesma subclasse Veículo Veículo Terrestre Veículo Aquático Veículo Anfíbio 8

Associação A associação é um relacionamento estrutural que especifica que objetos de um elemento estão conectados a objetos de outro elemento Companhia empre ga Funcionário Multiplicidade É a cardinalidade de uma associação 1..1 0..0 0..1 0..* 1..* * Classe Class e Classe Classe Classe Classe Exatamente 1 Nenhum (zero ou zero) Opcional (zero ou um) Nenhum ou Muitos (zero ou mais) Um ou Muitos (um ou mais) Muitos 9

Associação Unária Quando há um relacionamento de uma classe para consigo própria Funcionário 1..1 1..* gerencia Associação Binária Quando há duas classes envolvidas na associação de forma direta de uma para a outra Cliente faz 1..1 0..* Pedido 10

Associação e papéis Papéis: um dos lados da associação Uma associação binária possui duas terminações. Cada uma delas pode possuir um nome de papel. Uma associação n-ária pode possuir um papel para cada terminação. Nomes de papéis são necessários para associação entre dois objetos da mesma classe Associação e Papéis Comp anhia contrata * 1..* +em pregador E m pregado 11

Associação e papéis Nome de papéis são úteis para distinguir entre associações entre o mesmo par de classes Companhia contrata Empregado * 1..* +emprega dor +chefe 1..1 +sub ordinado 0..* Associação com Atributos Modela as propriedades associadas com uma associação Para indicar os atributos de uma associação, usamos uma linha tracejada para unir a associação às suas propriedades As propriedades devem ser representadas por uma classe 12

Associação com Atributo Com panhia contrata * 1..* +e mpregador Empregado Trabalho descrição salário Agregação Uma forma especial de associação entre o todo e suas partes, no qual o todo é composto de partes Com putador Monitor Teclado Mouse CaixaSistema 13

Agregação Distingue um Todo de uma Parte Não muda o significado de navegação entre o Todo e as Partes Não impede que a vida das Partes esteja relacionada com a vida do Todo. Composição Uma forma mais forte de Agregação Há uma coincidência da vida das partes Uma vez criada a parte, ela irá viver e morrer com ele O Todo é responsável pelo gereniamento da riação e destruição das partes 14

Composição Pedido Item Pedido Produto Interfaces Uma interface é um conjunto de operações usado pra especificar um serviço de uma classe ou componente Diferentemente das classes, as interfaces não especificam nenhuma estrutura Interfaces não podem conter atributos 15

Interfaces Com as interfaces, é possível se concentrar apenas nos serviços oferecidos por classe ou componentes O uso de interfaces é uma maneira elegante e poderosa de isolar a especificação da implementação Uma interface especifica o contrato para uma classe ou componente, sem definir como ele será implementado Interfaces (Notação) << Interface> > Em pregado verificaficha() calc ularsa lário() IEm pregado 16

Interfaces e Realização Realização é uma relação pela qual um elemento especifica o contrato que outro elemento deve implementar A realização é um relacionamento entre uma especificação e sua implementação É um relacionamento semântico entre classificadores no qual um classificador especifica um contrato que outro classificador garante cumprir Está entre dependência e generalização Será usado no contexto de interface Realização <<Interface>> AgentedeRegras ediçãoregra() mudançaregra() explicaregra() RegrasdeNegóciosdaconta 17

Realização (Notação) <<Interface>> Empregado Em pregado_im pl veri fi carfic ha() calularsalário() Empr egado _Im pl IEm prega do Exemplo Usuário solicita Pedido 1..1 1..* Transação Data It empedido +empregado Funcionário Cliente 1..* chefia 1..1 +chefe Fornec edor IProduto Produto Cor 18

Dicas Não comece a construção do modelo apenas colocando junto classes, associações e herança. Primeiro você deve entender o problema que vai ser resolvido Tente manter o modelo simples Não tente resolver toda a multiplicidade tão cedo Evite generalizações em muitos níveis Revise o modelo várias vezes Peça a outros para fazer a revisão Sempre documente o seu Diagrama de Classe Não é necessário o uso de todos os construtores apresentados no Diagrama de Classe 19