Sistemas de Informação Diagramas de Classes
Sumário: Introdução – Diagrama de classes Elementos do diagrama de classes Relações entre classes © LES/PUC-Rio
Introdução - Diagrama de Classes Uma  classe  é qualquer coleção de objetos, pessoas ou outras entidades, relativamente aos quais há dados a registar no sistema (ex: clientes, produtos, encomendas) Diagrama de classes  é constituido por um conjunto de  classes  interligadas através de relações ou relacionamentosMostra um conjunto de classes e seus relacionamentos. © LES/PUC-Rio Nome da classe Zona de atributos Zona de operações Aluno nome: Texto matrícula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Classes Graficamente, as classes são representadas por retângulos incluindo  nome ,  atributos  e  métodos . Devem receber nomes de acordo com o vocabulário do domínio do problema. É comum adotar um padrão para nomeá-las Ex:  todos os nomes de classes serão substantivos singulares    com a primeira letra maiúscula © LES/PUC-Rio Nome_da_classe atributo1 atributo2 ... metodo1 metodo2 metodo3 ...
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamentos 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 © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamentos © LES/PUC-Rio 1..* Tipo:  associação multiplicidade * trabalha para empregado papéis empregador sentido de leitura E a navegabilidade? nome Pessoa Empresa
Elementos – Diagrama de Classes Relacionamentos O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence © LES/PUC-Rio Endereço Cliente reside 1 * navegabilidade
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamentos:  Associação Uma  associação  é   um relacionamento estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe. Uma associação é representada por uma linha sólida conectando duas classes. © LES/PUC-Rio associação Pessoa Empresa
Elementos – Diagrama de Classes Relacionamentos:  Associação Indicadores de multiplicidade: 1 Exatamente um 1..* Um ou mais 0..* Zero ou mais (muitos) * Zero ou mais (muitos) 0..1 Zero ou um m..n  intervalo de valores (por exemplo: 4..7) © LES/PUC-Rio 1..* associação multiplicidade * trabalha para Pessoa Empresa
Relacionamentos: Associação Relacionamentos:  Associação Exemplo: Um  Estudante  pode ser  um  aluno   de uma Disciplina e  um  jogador   da Equipe de Futebol Cada Disciplina deve ter pelo mínimo 1 aluno Um aluno pode frequentar de 0 até 8 disciplinas © LES/PUC-Rio equipa
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamento: Agregação É um tipo especial de associação  Utilizada para indicar “todo-parte” um objeto “parte” pode fazer parte de vários objetos “todo” © LES/PUC-Rio 1 1..* agregação todo parte Item Pedido
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamento: Composição É uma variante semanticamente mais “forte” da agregação Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele Quando o “todo”  morre  todas as suas “partes” também  morrem © LES/PUC-Rio Teclado Notebook Frame Window 1 1 1 0..* 1..* 0..* errado
Elementos – Diagrama de Classes Relacionamento: Composição Ex: © LES/PUC-Rio Janela Scroll Título Corpo 1 0..1 2 1 Empresa Departamento Escritório 1 1..* 1..* 0..1 *
Elementos – Diagrama de Classes Agregação  X  Composição © LES/PUC-Rio
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamento: Generalização É um relacionamento entre itens gerais (superclasses)  e itens mais específicos (subclasses) © LES/PUC-Rio “ é um” “ é um tipo de” superclasse subclasse Veículo Terrestre Aéreo
Elementos – Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
Elementos – Diagrama de Classes Relacionamento: Dependência Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente) Ex: Obs: A classe cliente depende de algum serviço da classe fornecedor A mudança de estado do fornecedor afeta o objeto cliente  A classe cliente não declara nos seus atributos um objeto do tipo fornecedor Fornecedor é recebido por parâmetro de método © LES/PUC-Rio cliente fornecedor
Exemplo: Sistema de Matrícula 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  selecionam 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. © LES/PUC-Rio Descrição
Exemplo: Sistema de Matrícula © LES/PUC-Rio Diagrama de Casos de Uso
Exemplo: Sistema de Matrícula Descrição 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 uma 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. © LES/PUC-Rio
Exemplo: Sistema de Matrícula © LES/PUC-Rio Professor Coordenador Estudante Turma Universidade Disciplina FormularioMatricula Curso AnalisadorMatricula SistemaRegistroAcademico ListaAlunos Diagrama de Classes:  identificando as classes
Exemplo: Sistema de Matrícula Exemplos de candidatos a relacionamentos: 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 . © LES/PUC-Rio Diagrama de Classes:  identificando os relacionamentos
Exemplo: Sistema de Matrícula O formulário de matrícula  é processado por  um analisador de matrícula O analisador de matrícula  gerencia  a disciplina © LES/PUC-Rio FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* Disciplina FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* 1 0..* Diagrama de Classes:  identificando os relacionamentos
Exemplo: Sistema de Matrícula © LES/PUC-Rio Professor Coordenador Estudante Turma Disciplina FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4 Diagrama de Classes
Exemplo: Sistema de Matrícula 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. © LES/PUC-Rio Diagrama de Classes:  identificando os atributos Turma código sala horário
Exemplo: Sistema de Matrícula © LES/PUC-Rio Coordenador FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4 Professor nome titulação Estudante nome matricula Diagrama de Classes Turma código sala horário Disciplina nome numCréditos
Exemplo: Sistema de Matrícula Somente depois de modelar os diagramas de seqüência © LES/PUC-Rio Diagrama de Classes:  identificando os métodos
Exemplo: Sistema de Matrícula E a navegabilidade? © LES/PUC-Rio public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... } Diagrama de Classes: public class Estudante { private String nome; private String matricula; ... } OBS: Turma não aparece como atributo de Estudante! Turma Estudante 3..10 está-matriculado-em 3..10 4
Exemplo: Sistema de Matrícula Acrescentando generalizações: Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral. © LES/PUC-Rio Diagrama de Classes:
Exemplo: Sistema de Matrícula © LES/PUC-Rio

Si diagrama de classes

  • 1.
    Sistemas de InformaçãoDiagramas de Classes
  • 2.
    Sumário: Introdução –Diagrama de classes Elementos do diagrama de classes Relações entre classes © LES/PUC-Rio
  • 3.
    Introdução - Diagramade Classes Uma classe é qualquer coleção de objetos, pessoas ou outras entidades, relativamente aos quais há dados a registar no sistema (ex: clientes, produtos, encomendas) Diagrama de classes é constituido por um conjunto de classes interligadas através de relações ou relacionamentosMostra um conjunto de classes e seus relacionamentos. © LES/PUC-Rio Nome da classe Zona de atributos Zona de operações Aluno nome: Texto matrícula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula
  • 4.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 5.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 6.
    Elementos – Diagramade Classes Classes Graficamente, as classes são representadas por retângulos incluindo nome , atributos e métodos . Devem receber nomes de acordo com o vocabulário do domínio do problema. É comum adotar um padrão para nomeá-las Ex: todos os nomes de classes serão substantivos singulares com a primeira letra maiúscula © LES/PUC-Rio Nome_da_classe atributo1 atributo2 ... metodo1 metodo2 metodo3 ...
  • 7.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 8.
    Elementos – Diagramade Classes Relacionamentos 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 © LES/PUC-Rio
  • 9.
    Elementos – Diagramade Classes Relacionamentos © LES/PUC-Rio 1..* Tipo: associação multiplicidade * trabalha para empregado papéis empregador sentido de leitura E a navegabilidade? nome Pessoa Empresa
  • 10.
    Elementos – Diagramade Classes Relacionamentos O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence © LES/PUC-Rio Endereço Cliente reside 1 * navegabilidade
  • 11.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 12.
    Elementos – Diagramade Classes Relacionamentos: Associação Uma associação é um relacionamento estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe. Uma associação é representada por uma linha sólida conectando duas classes. © LES/PUC-Rio associação Pessoa Empresa
  • 13.
    Elementos – Diagramade Classes Relacionamentos: Associação Indicadores de multiplicidade: 1 Exatamente um 1..* Um ou mais 0..* Zero ou mais (muitos) * Zero ou mais (muitos) 0..1 Zero ou um m..n intervalo de valores (por exemplo: 4..7) © LES/PUC-Rio 1..* associação multiplicidade * trabalha para Pessoa Empresa
  • 14.
    Relacionamentos: Associação Relacionamentos: Associação Exemplo: Um Estudante pode ser um aluno de uma Disciplina e um jogador da Equipe de Futebol Cada Disciplina deve ter pelo mínimo 1 aluno Um aluno pode frequentar de 0 até 8 disciplinas © LES/PUC-Rio equipa
  • 15.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 16.
    Elementos – Diagramade Classes Relacionamento: Agregação É um tipo especial de associação Utilizada para indicar “todo-parte” um objeto “parte” pode fazer parte de vários objetos “todo” © LES/PUC-Rio 1 1..* agregação todo parte Item Pedido
  • 17.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 18.
    Elementos – Diagramade Classes Relacionamento: Composição É uma variante semanticamente mais “forte” da agregação Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele Quando o “todo” morre todas as suas “partes” também morrem © LES/PUC-Rio Teclado Notebook Frame Window 1 1 1 0..* 1..* 0..* errado
  • 19.
    Elementos – Diagramade Classes Relacionamento: Composição Ex: © LES/PUC-Rio Janela Scroll Título Corpo 1 0..1 2 1 Empresa Departamento Escritório 1 1..* 1..* 0..1 *
  • 20.
    Elementos – Diagramade Classes Agregação X Composição © LES/PUC-Rio
  • 21.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 22.
    Elementos – Diagramade Classes Relacionamento: Generalização É um relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) © LES/PUC-Rio “ é um” “ é um tipo de” superclasse subclasse Veículo Terrestre Aéreo
  • 23.
    Elementos – Diagramade Classes Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência © LES/PUC-Rio
  • 24.
    Elementos – Diagramade Classes Relacionamento: Dependência Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente) Ex: Obs: A classe cliente depende de algum serviço da classe fornecedor A mudança de estado do fornecedor afeta o objeto cliente A classe cliente não declara nos seus atributos um objeto do tipo fornecedor Fornecedor é recebido por parâmetro de método © LES/PUC-Rio cliente fornecedor
  • 25.
    Exemplo: Sistema deMatrícula 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 selecionam 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. © LES/PUC-Rio Descrição
  • 26.
    Exemplo: Sistema deMatrícula © LES/PUC-Rio Diagrama de Casos de Uso
  • 27.
    Exemplo: Sistema deMatrícula Descrição 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 uma 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. © LES/PUC-Rio
  • 28.
    Exemplo: Sistema deMatrícula © LES/PUC-Rio Professor Coordenador Estudante Turma Universidade Disciplina FormularioMatricula Curso AnalisadorMatricula SistemaRegistroAcademico ListaAlunos Diagrama de Classes: identificando as classes
  • 29.
    Exemplo: Sistema deMatrícula Exemplos de candidatos a relacionamentos: 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 . © LES/PUC-Rio Diagrama de Classes: identificando os relacionamentos
  • 30.
    Exemplo: Sistema deMatrícula O formulário de matrícula é processado por um analisador de matrícula O analisador de matrícula gerencia a disciplina © LES/PUC-Rio FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* Disciplina FormularioMatricula AnalisadorMatricula é-processado-por 1 0..* 1 0..* Diagrama de Classes: identificando os relacionamentos
  • 31.
    Exemplo: Sistema deMatrícula © LES/PUC-Rio Professor Coordenador Estudante Turma Disciplina FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4 Diagrama de Classes
  • 32.
    Exemplo: Sistema deMatrícula 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. © LES/PUC-Rio Diagrama de Classes: identificando os atributos Turma código sala horário
  • 33.
    Exemplo: Sistema deMatrícula © LES/PUC-Rio Coordenador FormularioMatricula AnalisadorMatricula é-preenchido-por está-matriculado-em é-processado-por é-ministrada-por é-definida-por aluno gerencia 1 1 1 0..* 1 0..* 1 1..* 1 1..* 1 0..3 3..10 4 Professor nome titulação Estudante nome matricula Diagrama de Classes Turma código sala horário Disciplina nome numCréditos
  • 34.
    Exemplo: Sistema deMatrícula Somente depois de modelar os diagramas de seqüência © LES/PUC-Rio Diagrama de Classes: identificando os métodos
  • 35.
    Exemplo: Sistema deMatrícula E a navegabilidade? © LES/PUC-Rio public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... } Diagrama de Classes: public class Estudante { private String nome; private String matricula; ... } OBS: Turma não aparece como atributo de Estudante! Turma Estudante 3..10 está-matriculado-em 3..10 4
  • 36.
    Exemplo: Sistema deMatrícula Acrescentando generalizações: Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral. © LES/PUC-Rio Diagrama de Classes:
  • 37.
    Exemplo: Sistema deMatrícula © LES/PUC-Rio