25
Diagrama de Classe "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Givanaldo Rocha de Souza [email protected] http://docente.ifrn.edu.br/givanaldorocha Engenharia de Software Material original gentilmente cedido pelo professor Fábio Procópio

ESw 07 - Diagrama Classe

Embed Size (px)

DESCRIPTION

apostila de diagrama de classes

Citation preview

  • Diagrama de Classe

    "Antes de imprimir pense em sua responsabilidade

    e compromisso com o MEIO AMBIENTE."

    Givanaldo Rocha de Souza

    [email protected]

    http://docente.ifrn.edu.br/givanaldorocha

    Engenharia de Software

    Material original gentilmente cedido pelo professor Fbio Procpio

  • Diagrama de Classe

    Introduo

    Diagrama mais utilizado da UML.

    Permite a visualizao das classes utilizadas pelo sistema e como elas se relacionam.

    Apresenta uma viso esttica de como as classes esto organizadas a fim de definir sua estrutura lgica.

    Foi projetado para ser uma evoluo (e no substituio) do Modelo Entidade-Relacionamento do Banco de Dados.

  • Diagrama de Classe

    Introduo

    Uma classe no corresponde, obrigatoriamente, a uma tabela em um banco de dados. (Exemplos: classes de interface, classes de controle)

    Eventualmente, os atributos de uma classe correspondem aos atributos de uma tabela, porm uma classe no uma tabela.

    Em um modelo lgico de Banco de Dados, os mtodos de uma classe podem corresponder s operaes realizadas sobre uma tabela (incluir, alterar, excluir, consultar).

  • Diagrama de Classe

    Classe uma descrio de um conjunto de objetos que compartilham os mesmos

    atributos, operaes, relacionamentos e semntica.

    Representada por um retngulo que pode possuir at trs divises:

    Nome da classe Atributos da classe Mtodos da classe

    Pessoa

    Pessoa

    + consultarPorNome()

    + validarCPF()

    - CPF

    - nome

    - RG

    Atributos (caractersticas)

    Mtodos (comportamento)

    Nome

  • Diagrama de Classe

    Relembrando...

    Atributo

    Representa caractersticas de uma classe. Exemplo: Jogador (nome, sexo, idade etc.).

    Mtodo

    Representa atividades que um objeto de uma classe pode executar. Exemplo: Jogador (correr, driblar, chutar).

    Visibilidade

    Indica o nvel de acessibilidade de um atributo ou mtodo. Tipos: Pblica (+), Privada (-) e Protegida (#).

  • Diagrama de Classe

    Relacionamento

    Permite compartilhar informaes e colaborar com a execuo dos processos do sistema.

    Descreve um vnculo que ocorre, normalmente, entre os objetos de uma ou mais classes.

    Os tipos de relacionamentos so:

    Associao

    Agregao

    Composio

    Especializao/Generalizao

    Dependncia

  • Diagrama de Classe

    Associao

    Descreve um conjunto de vnculos entre elementos de modelo.

    Relacionamento estrutural que especifica objetos de um item conectados a objetos de outro item:

    Associao binria quando h duas classes envolvidas na associao de forma direta de uma para outra.

    Relacionamento entre duas classes (tipo mais comum).

    Podem possuir ttulos para determinar o tipo de vnculo.

    Associao unria quando h um relacionamento de uma classe consigo

    mesma. Se comparada ao modelo ER, seria um auto-relacionamento.

  • Diagrama de Classe

    Associao unria (ou reflexiva)

    Ocorre quando h um relacionamento de um objeto de uma classe com objetos da mesma classe;

    No exemplo abaixo, percebe-se que um objeto da classe Funcionrio pode (ou no) supervisionar outros objetos dessa mesma classe;

    Para o relacionamento ficar mais claro, pode-se informar a sua multiplicidade.

  • Diagrama de Classe

    Associao binria

    public class Funcionario {

    private int matricula;

    ...

    private Dependente[] dependentes;

    // mtodos

    ...

    }

    public class Dependente {

    private String nome;

    private String parentesco;

    private Funcionario funcionario;

    }

  • Diagrama de Classe

    Associao binria

    public class Funcionario {

    private int matricula;

    ...

    private Dependente[] dependentes;

    // mtodos

    ...

    }

    public class Dependente {

    private String nome;

    private String parentesco;

    }

  • Diagrama de Classe

    Multiplicidade

    Multiplicidade Significado

    0..1

    No mnimo zero e no mximo um. Os objetos no

    precisam estar relacionados, porm se houver

    relacionamento deve ser de no mximo 1.

    1..1 Um e somente um

    0..* No mnimo nenhum e no mximo muitos.

    * Muitos

    1..* No mnimo um e no mximo muitos.

    3..5 No mnimo 3 e no mximo 5.

  • Diagrama de Classe

    Agregao Tipo especial de associao que tenta demonstrar que as informaes de um

    objeto-todo precisam ser complementadas pelas informaes contidas em um (ou mais) objetos-parte.

    A existncia do objeto-parte faz sentido mesmo no existindo o objeto-todo.

    A associao de agregao pode, em muitos casos, ser substituda por uma associao binria simples, dependendo da viso de quem faz a modelagem.

  • Diagrama de Classe

    Composio uma variao da agregao e considerada mais forte.

    O objeto-parte no pode existir sem o objeto-todo.

    Se o objeto-todo for destrudo, o objeto-parte tambm ser.

  • Diagrama de Classe

    Especializao/Generalizao Tem como objetivo identificar classes-me, denominadas de gerais, e classes-filha

    chamadas de especializadas;

    So chamados de relacionamentos um tipo de.

  • Diagrama de Classe

    Dependncia Como o nome sugere, indica um grau de dependncia entre uma classe e outra.

    Uma dependncia difere de uma associao porque a conexo entre as classes temporria.

    Representada por uma seta tracejada entre duas classes.

    Funcionrio no instancia um Automvel,

    apenas usa-o como parmetro de um mtodo.

  • Diagrama de Classe

    Classe associativa Utilizada quando ocorrem associaes que possuem multiplicidade muitos para

    muitos em todas as suas extremidades;

    Armazena os atributos transmitidos pela associao;

    Pode possuir seus prprios atributos;

    Representada por uma reta tracejada partindo do meio da associao at uma classe.

  • Diagrama de Classe

    Classe intermediria

    Substitui as classes associativas;

    Apresenta, exatamente, a mesma funo da classe associativa;.

    Pode possuir seus prprios atributos;

  • Diagrama de Classe

    Restrio Informaes extras que definem condies a serem validadas durante a

    implementao dos mtodos de uma classe, das associaes entre as classes ou mesmo de seus atributos;

    Representadas por textos limitados por chaves.

  • Diagrama de Classe

    Interface Tipo especial de classe a qual no pode ser instanciada.

    Serve apenas para especificar operaes externamente visveis para uma outra

    classe implementar.

  • Diagrama de Classe

    Boundary, Control e Entity Classes estereotipadas... Pgina 270.

    Boundary: classe de fronteira, geralmente interfaces grficas.

    Control: classe de controle, geralmente implementa as regras de negcio.

    Entity: classe de entidade, geralmente implementa os objetos persistentes.

  • Diagrama de Classe

    Boundary, Control e Entity

  • Diagrama de Classe

    Exemplos de Diagramas de Classe

  • Diagrama de Classe

    Exemplos de Diagramas de Classe

  • Diagrama de Classe

    Exemplos de Diagramas de Classe

  • Diagrama de Classe

    Referncias

    SIERRA, Katy; BATES, Bert. Use a cabea JAVA. Ed 2, Editora Altabooks.

    GUEDES, Gilleanes. UML Uma Abordagem Prtica. Editora Novatec. So Paulo, 2007.

    FURLAN, Jos. Modelagem de Objetos atravs da UML. Editora Makron Books.

    CASTRO, Maurcio. Orientao a Objetos. Solis/Univates (internet).

    BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usurio. Editora Campus.

    LIMA, Gleydson. Diagrama de Classes. Curso de Especializao em Sistemas Corporativos, FARN/2008.

    MACEDO, Jos Alexandre. Modelando objetos com cores. Disponvel em: http://jamacedo.com/tag/uml-em-cores/. Acessado em: 16 mai. 2011.

    MENDES, Ricardo. UML: composio x agregao. Disponvel em: http://imasters.com.br/artigo/18901/uml/uml_composicao_x_agregacao/. Acessado em: 26 mai. 2011 TONSIG, Srgio Luiz. Engenharia de Software: Anlise e Projeto de Sistemas. 2 edio. Rio de Janeiro: Editora Cincia Moderna, 2008.