Ceça Moraes Diagrama de Classes.

Slides:



Advertisements
Apresentações semelhantes
Um pouco mais de cardinalidade e Relacionamentos
Advertisements

Análise e Projeto Orientado a Objetos
Análise e Projeto Orientado a Objetos
Modelagem de Classes do Domínio
ANÁLISE E PROJETO DE SISTEMAS
UML Modelando um sistema.
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
Diagrama de Classes.
Modelo Entidade-Relacionamento
UML - Diagrama de Classes e objetos
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
UML: Diagrama de Classes
Modelagem Orientada a Objetos
Cartões CRC (Class Responsibility Card)
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Professora: Aline Vasconcelos IF Fluminense
Introdução a diagrama de classes e UML
Diagrama de Classes.
Diagramas de Classes.
Fases do desenvolvimento de software UML
Classes e objetos P. O. O. Prof. Grace.
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
O.O.H.D.M. Modelagem Conceitual
TÉCNICAS DE PROGRAMAÇÃO II
Especificação de Requisitos de Software com Casos de Uso
Diagrama de Classes e Diagrama de Objetos
Diagrama de Classes.
Diagrama de Classes e Colaboração
DIAGRAMA DE CLASSE Modelagem de Software
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Diagrama de Classes George Gomes Cabral.
Profª Daniela TLBD.
2.2 MODELAGEM DE SISTEMAS COM UML
Marcio de Carvalho Victorino
Programação Orientada à Objetos
Análise e Projeto de Sistemas
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
UML Diagrama de classes.
UML: Diagrama de Classes
© Ricardo Pereira e Silva
DIAGRAMA DE CLASSE Médio Integrado.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Análise Orientado aos Objetos Prof. Wolley W. Silva
Programação Orientada à Objetos
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Laboratório de Programação
Laboratório de Programação II Pacotes Visibilidade Referências a Objetos.
Diagrama de Colaboração. Diagramas de Interação Expressam informações bastante similares porém de maneira diferente Diagrama de seqüência: – Interação.
Generalização e herança Agregação e composição
Análise e Projeto de Sistemas
UML Diagramas de Classes Disciplina: Engenharia de Software
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Engenharia de Software Orientada a Objetos
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
O que é modelagem orientada a objetos?
Diagrama de Classes Herança Dependências.
Análise e Design de Software Site:
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Diagrama de Classes Modelagem e Programação Orientada a Objetos Curso Superior de Tecnologia em Sistemas para Internet Prof. Cristiano Stüpp Nunes
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Ceça Moraes Diagrama de Classes

Classes Programação Orientada a Objetos: os problemas de programação são pensados em termos de objetos Em vez de funções e rotinas Problema = desenvolver um sistema para locadoras Dividir o problema em objetos Clientes,DVDs,Filmes,Locação,...

Classes "Um objeto  é um termo que usamos para representar uma entidade do mundo real"  Fazemos isto através de um exercício de abstração...

Classes Podemos descrever o cachorro Bilú  em termos de seus atributos físicos: é pequeno sua cor principal é castanha olhos pretos orelhas pequenas e caídas,  rabo pequeno

Classes Podemos também descrever algumas ações que ele faz (temos aqui os métodos): balança o rabo foge e se deita quando leva reclamação late quando ouve um barulho ou vê um cão ou gato atende quando o chamamos pelo seu nome

Classes Representação do cachorro Bilú: Propriedades : [Cor do corpo : castanha;  cor dos olhos : pretos;  altura: 15 cm;   comprimento: 38 cm   largura : 24 cm] Métodos : [balançar o rabo , latir , correr, deitar , sentar ] 

Classes Uma classe representa um conjunto de objetos que possuem comportamentos e características comuns Têm os mesmos atributos, operações, relacionamentos e semântica Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programação

Classes Ao definir uma classe é necessário definir : Propriedades Informações específicas relacionadas a uma classe de objeto Características dos objetos da classe Exemplo: Cor , altura , tamanho , largura ,... Métodos: São ações que os objetos de uma classe podem realizar Exemplo : Latir , correr , sentar , comer, etc.

Diagrama de Classes Ilustram atributos e operações de uma classe e as restrições como que os objetos podem ser conectados ; Descrevem também os tipos de objetos no sistema e os relacionamentos entre estes objetos

Representação de Classe Atributos visibilidade nome: tipo + altura: float Métodos visibilidade nome(args): tipo retorno + latir() + media(n1,n2): float Atributos Métodos

Diagramas de Classes Visibilidade dos atributos e métodos em uma classe : + (público) visível em qualquer classe # (protegido) qualquer descendente pode usar – (privado)  visível somente dentro da classe

Relacionamentos entre Classes Os relacionamentos determinam conexões entre os objetos das classes Fornecem um caminho para a comunicação entre os objetos Tipos de Relacionamentos: Associações :  agregação e composição Generalização (herança) Dependências

Relacionamento entre Classes Os relacionamentos possuem: Nome: descrição dada ao relacionamento (faz, tem, possui,...) Sentido de leitura Navegabilidade: indicada por uma seta no fim do relacionamento Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7 Tipo: associação (agregação, composição), generalização e dependência Papéis: desempenhados por classes em um relacionamento

Relacionamentos E a navegabilidade? Pessoa Empresa nome multiplicidade sentido de leitura Pessoa 1..* trabalha para * Empresa empregado empregador Tipo: associação papéis E a navegabilidade?

Relaci0namentos O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence navegabilidade reside Cliente Endereço 1 * © LES/PUC-Rio

Associação Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem Não há conceito de posse As associações podem ser: unárias - quando a associação ocorre entre objetos de uma mesma classe binárias - quando a associação ocorre entre dois objetos de classes distintas

Associação Uma associação é uma conexão entre classes (linha sólida)

Associação Indicadores de multiplicidade: 1 Exatamente um 1..* Um ou mais 0..* Zero ou mais (muitos) * Zero ou mais (muitos) 0..1 No máximo um (zero ou um) m..n Faixa de valores (por exemplo: 4..7)

Multiplicidade

"Qualquer empregado é chefiado por no máximo um chefe." Associação "Qualquer empregado é chefiado por no máximo um chefe." UML Empregado Chefe Chefia * 0..1 empregados chefe

Papel

Associação Exemplo

Navegação Navegação por definição, a navegação entre classes associadas é bidirecional por conveniência, a navegação pode ser restringida a uma única direção

Navegação Exemplo

Associação Exemplo Um Estudante pode ser: Um aluno de uma Disciplina e Um jogador da Equipe de Futebol Cada Disciplina deve ser cursada por no mínimo 1 aluno Um Aluno pode cursar de 0 até 8 disciplinas

Associação com Classe Ocorre quando a associação tem propriedades

Agregação É um tipo especial de associação Utilizada para indicar “todo-parte” um objeto “parte” pode fazer parte de vários objetos “todo” Mostra como classes são compostas de outras classes

Agregação

"Uma empresa possui vários veículos." Agregação "Uma empresa possui vários veículos." UML frota Empresa Veículo 0..1 *

Agregação Exemplo

Composição Tipo especial de agregação é um relacionamento de contenção Um objeto (container) CONTÉM outros objetos (elementos) Elementos que estão contidos dentro de outro objeto dependem dele para existir

Composição x Agregação estabelece uma relação todo-parte entre classes, sendo que a parte pode existir sem o todo. Ex: Carro e Roda. Uma Roda é parte de um Carro, porém a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro. Composição: estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo. Ex: Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruídos junto, eles não tem sentido se não houver um Pedido.

Composição Exemplo

Composição Exemplo Língua natural UML "Um humano é composto por uma cabeça e dois braços." UML Humano Cabeça 1 Braço 2

Herança Uma classe pode ser definida a partir de outra já existente Abstrai classes genéricas (superclasse), a partir de classes com propriedades (atributos e operações) semelhantes

Herança Modelar aspectos semelhantes entre classes, preservando suas diferenças As subclasses herdam todas as propriedades de sua superclasse E possuem as suas próprias

Herança Relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) Veículo superclasse “é um” “é um tipo de” Terrestre Aéreo subclasses

Herança Forma Círculo Retângulo FormaComposta uma Forma pode ser um Círculo, um Retângulo ou uma FormaComposta Círculo Retângulo FormaComposta

Herança

Processo de Generalização Identificar classes com propriedades semelhantes Definir uma nova classe com as propriedades comuns As classes originais tornam-se subclasses da nova classe e herdam as propriedades desta Os relacionamentos em comum passam para a superclasse e os demais continuam nas subclasses

Processos de Especialização Definir uma ou mais subclasses a partir de uma classe existente Adicionar propriedades e relacionamentos específicas de cada nova subclasse Relacionamentos comuns a todas as subclasses são ligados à superclasse

Generalização / Especialização

EXEMPLO

Exemplo: Sistema de Matrícula Descrição A Universidade XYZ deseja informatizar seu sistema de matrículas: A universidade oferece vários cursos. O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre. Várias disciplinas são oferecidas em um curso. Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10. Estudantes podem se matricular em 4 disciplinas. Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado. Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas. Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas. Todos os usuários do sistema devem ser validados.

Exemplo: Sistema de Matrícula Diagrama de Casos de Uso

Exemplo: Sistema de Matrícula Descrição Resumida do Caso de Uso “Matricular em Disciplina” Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais. O sistema verifica se a credencial é válida. O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas. O estudante preenche um formulário eletrônico de matrícula e o submete para análise de consistência. O sistema analisa as informações contidas no formulário. Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais. Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando as classes Professor Coordenador Estudante Universidade Disciplina Turma Curso FormularioMatricula AnalisadorMatricula SistemaRegistroAcademico ListaAlunos

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos Exemplos de possibilidades de relacionamentos entre as classes A e B: A é parte física ou lógica de B A está contido fisicamente ou logicamente em B A é uma descrição de B A é membro de B A é subunidade organizacional de B A usa ou gerencia B A se comunica/interage com B A está relacionado com uma transação B A é possuído por B A é um tipo de B

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos O formulário de matrícula é processado por um analisador de matrícula é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos O analisador de matrícula gerencia a disciplina é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 0..* Disciplina

Exemplo: Sistema de Matrícula Diagrama de Classes é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 1 gerencia 0..* é-definida-por é-preenchido-por Disciplina Coordenador 1..* 1 1 aluno 1 1..* está-matriculado-em é-ministrada-por Estudante Turma Professor 3..10 4 0..3 1

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os atributos Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema. Cada turma oferecida possui um código, uma sala e um horário. Turma código sala horário

Exemplo: Sistema de Matrícula Diagrama de Classes é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 1 gerencia 0..* Disciplina nome numCréditos é-definida-por é-preenchido-por Coordenador 1..* 1 1 1..* aluno 1 Turma código sala horário Estudante Professor está-matriculado-em é-ministrada-por nome matricula nome titulação 3..10 4 0..3 1

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os métodos modelar antes os diagramas de seqüência

Exemplo: Sistema de Matrícula Diagrama de Classes: E a navegabilidade? Turma Estudante 3..10 está-matriculado-em 4 public class Estudante { private String nome; private String matricula; ... } public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... } OBS: Turma não aparece como atributo de Estudante!

Exemplo: Sistema de Matrícula Diagrama de Classes: Acrescentando generalizações: Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.

Exemplo: Sistema de Matrícula