Diagrama de Classes.

Slides:



Advertisements
Apresentações semelhantes
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Advertisements

Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
PHPOO Erick Souza. Conceitos de Orientação a Objetos Objeto é um conceito ou item(concreto ou abstrato). Software orientado a objetos Uma classe é uma.
O Modelo E-R Definição: Características
Projeto 1.
Diagrama de Classes.
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
UML: Diagrama de Classes
Modelagem Orientada a Objetos
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.
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Linguagem de Programação II
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Interfaces em Java1 Interfaces Prof. Ricardo Linden.
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.
Diagrama de Classes.
Curso de extensão em Desenvolvimento Web
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Diagrama de Classes e Colaboração
Aula prática 13 Orientação a Objetos – C++ Parte 1
DIAGRAMA DE CLASSE Modelagem de Software
Tópicos avançados em internet A
Programação I Aula 2 (Métodos)
Capítulo 5: diagrama de classes: conceitos avançados Responsabilidade Agregação e composição Interfaces e classes abstratas Objeto de referencia e objeto.
Herança em Java.
Classes, Objetos, Atributos e Métodos JAVA
Referências: Booch, G. et al. The Unified Modeling Language User Guide
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Marcio de Carvalho Victorino
Programação Orientada à Objetos
Análise e Projeto de Sistemas
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
UML Diagrama de classes.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
© Ricardo Pereira e Silva
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Implementação Orientada a Objetos – Aula 03
Análise Orientado aos Objetos Prof. Wolley W. Silva
Banco de Dados Aplicado ao Desenvolvimento de Software
Programação Orientada à Objetos
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
Prof. Gilberto Irajá Müller
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Aula Prática 4 Monitoria IP/CC (~if669).
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Classes Abstratas e Interface
Paradigmas da Programação – Semestre 1 – Aula 8 Professor: Eduardo Mantovani )
Bruno Inojosa MCP .NET Framework
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
Introdução a Orientação a Objetos
Herança.
20/04/2017 Orientação a Objetos 1 1.
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
Implementação Orientada a Objetos – Aula 03 Atributos e Encapsulamento Prof. Danielle Martin/ Marcia Bissaco Universidade de Mogi das Cruzes
Implementação Orientada a Objetos – Aula 08 Herança, sobrescrita de métodos e polimorfismo Prof. Danielle Martin Universidade de Mogi das Cruzes
Diagrama de Classes Herança Dependências.
Análise e Design de Software Site:
Diagrama de Classes Modelagem e Programação Orientada a Objetos Curso Superior de Tecnologia em Sistemas para Internet Prof. Cristiano Stüpp Nunes
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
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:

Diagrama de Classes

Classe Nome da classe

Classe Lista de Atributos

Classe Visibilidade Lista de Atributos

Classe Nome do atributo Lista de Atributos

Classe Tipo de dados Lista de Atributos

Classe Lista de Métodos

Classe Visibilidade Lista de Métodos

Classe Nome do método Lista de Métodos

Classe Tipo de dados Lista de Métodos

<? class Pessoa {   private $nome;   private $idade;   private $endereco;   private $cidade;   public function fazAniversario(){     return ++$this->idade;   } } ?>

Relacionamentos Associação Agregação Composição Herança Dependência

Associação A associação é quando temos uma relação entre duas classes onde as classes são suficientemente independentes, ou seja, não se constituem de parte de uma classe maior nem é um tipo mais específico de uma outra classe.

Associação Exemplos: Um carro é dirigido por um motorista Uma disciplina é cursada por um aluno Um morador habita uma casa Uma novela é produzida por um canal de televisão A navegação é bi-direcional, porém se pode limitar a uma direção.

Exemplo Motorista.class.php

Carro.class.php

instancia.class.php

Agregação Agregação é um tipo especial de Associação onde se tenta demonstrar que as informações de um objeto precisam ser complementadas pelas informações contidas em um ou mais objetos de outra Classe.

Agregação Alguns exemplos disso são: Um Pedido possui Itens Pedidos; Um Carro possui quatro Rodas; Um Livro possui Páginas; Note que neste tipo de relacionamento, um depende do outro para ter sentido. Por exemplo, como uma bicicleta funcionaria sem duas rodas? Ou, existe um livro sem páginas?

Roda.class.php

Carro.class.php

Existe uma relação de agregação entre Carro e Roda instancia.class.php Existe uma relação de agregação entre Carro e Roda porque uma roda pode ser trocada de carro.

Composição A Composição é um tipo especial de Agregação onde se tem um vínculo mais forte entre os objetos.

Composição Exemplo: um chassi só pode ser usado em um carro (um carro contém um chassi), já uma roda pode ser removida de um carro e ser colocada em outro (agregação)

Roda.class.php

Carro.class.php

Composição entre Carro e Chassi, pois um Chassi instancia.class.php Existe uma relação de Composição entre Carro e Chassi, pois um Chassi não pode ser trocado de carro.

Observações Note que a implementação dos três tipos de relacionamento é igual O que difere é o significado de cada relacionamento Todo relacionamento gera uma variável na classe que irá utilizar

Dependência Este relacionamento indica que há uma relação entre as classes, porém não deve gerar um objeto. Indicado para: Quando criamos uma instância de classe dentro de um método

ArCondicionado.class.php

Carro.class.php

instancia.class.php

Herança A herança é uma especialização de uma classe superior, onde se destaca a relação de "é um tipo de".

Herança Exemplos: Carro esporte e carro conversível são tipos de carro Acadêmico de graduação é um tipo de acadêmico Casa e apartamento é um tipo de moradia

Herança Todos os atributos e métodos não privados da classe pai serão herdados pelas classes filhas. Nos métodos, a herança pode ser direta ou através da sobrescrita Quando um método tem uma implementação na classe pai e outra implementação na classe filha

class Moradia {   private $rua;   private $numero;   private $proprietario;   private function alteraProprietario($p){     $this->proprietario = $p;   } }

class Casa extends Moradia{   function imprimeEndereco(){     return $this->rua.", casa".$this->numero;   } }

public class Apartamento extends Moradia {   private $apartamento;   function imprimeEndereco(){     $endereco = $this->rua.",“; $endereco .= $this->numero."/“; $endereco .= $this->apartamento; return $endereco;   } }

Classe Abstrata Não é permitido criar uma instância de uma classe que foi definida como abstrata. Qualquer classe que contém pelo menos um método abstrato deve também ser abstrata. Métodos definidos como abstratos simplesmente declaram a assinatura do método, eles não podem definir a implementação. Quando uma classe herda uma classe abstrata, todos os métodos marcados como abstratos na declaração da classe-pai devem ser definidos na classe filha; além disso, esses métodos devem ser definidos com a mesma (ou menos restrita) visibilidade. Por exemplo, se um método abstrado é definido como protected, a implementação da função deve ser definida ou como protected ou public, mas não private.

Classe Abstrata

Final O final define que as classes filhas não podem sobrescrever um método

Final

Atributos e Métodos Estáticos Declarar membros ou métodos de uma classe como estáticos faz deles acessíveis sem precisar instanciar a classe. Um atributo declarados como estático não pode ser acessado com um objeto instanciado da classe (embora métodos estáticos podem).

Atributos e Métodos Estáticos Exemplo

Interface Interfaces de Objetos permite a criação de código que especifica quais métodos e variáveis uma classe deve implementar, sem ter que definir como esses métodos serão tratados. Interfaces são definidas usando a palavra-chave 'interface', da mesma maneira que uma classe comum, mas sem nenhum dos métodos ter seu conteúdo definido. Todos os métodos declarados em uma interface devem ser public, essa é a natureza de uma interface.

Interface Para implementar uma interface, o operador implements é usado. Todos os métodos na interface devem ser implementados na classe; não fazer isso resultará em um erro fatal. Classes podem implementar mais de uma interface se assim for desejado, separando cada interface com uma vírgula. Nota: Uma classe não pode implementar duas interfaces que compartilham o mesmo nome uma vez que isso causaria ambigüidade.

Interface Exemplo Relacionamento: Realização

Proteção, Visibilidade ... PRIVATE PUBLIC PROTECTED

Proteção, Visibilidade ... Private Protected Default Public Métodos da mesma classe Sim Métodos de classes herdeiras Não Métodos de outras classes no mesmo pacote Métodos de outras classes em outro pacote Revisão de Orientação a Objetos Programação Orientada a Objetos :: Java

Modelo de Classes O diagrama de classes pode ser utilizado para ilustrar diversas etapas da produção de um sistema. A medida que o sistema vem sendo desenvolvido o diagrama vai ganhando mais detalhes. Somente quando o sistema tiver sua implementação finalizada, é que o diagrama de classes poderá ser finalizado.

Níveis de Abstração Diagrama de classes de domínio: Representa as classes de domínio, independente das tecnologias que serão utilizadas. É feita antes de iniciar a implementação, ajudando na compreensão do problema. Podem ser identificadas as classes e atributos, além dos gets e sets. Os demais métodos podem ser identificados, porém apenas com a implementação se terá maior clareza.

Níveis de Abstração Diagrama de classes de especificação: É uma continuação do diagrama de classes de domínio, com um maior detalhamento. Já envolve algumas questões da implementação. Podem ser construídas novas classes que darão apoio no desenvolvimento (ex: uma classe para conexão com o banco de dados).

Níveis de Abstração Diagrama de classes de implementação: É uma extensão do diagrama de classes de especificação. Reflete claramente as características da linguagem de programação que será utilizada.

Associação com Navegabilidade Quando colocamos a navegação, permitimos compreender como será o comportamento da classe. Exemplo: ao realizarmos uma associação entre sócio e dependente, sem a navegação não conseguimos saber se em sócio ficará um atributo de dependente, ou se em dependente haverá um atributo de sócio.

Roteiro para Criação de Diagrama de Classes Identificar as classes Identificar os relacionamentos Definir os atributos Incluir um identificador / código Colocar os métodos gets e sets Colocar os métodos para incluir, alterar, excluir, listar, buscar Definir os demais métodos