UML: Diagrama de Classes

Slides:



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

Análise e Projeto Orientado a Objetos
Modelagem de Classes do Domínio
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
Diagrama de Classes.
Diagrama de Classes continuação.
UML - Diagrama de Classes e objetos
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Projeto de Sistemas de Software
Linguagens de Modelagem para SMA
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.
Professora: Aline Vasconcelos IF Fluminense
Modelagem de Sistemas de Informação
Introdução a diagrama de classes e UML
Diagrama de Classes.
Diagramas de Classes.
Paradigmas da Programação – Semestre 1 – Aula 5
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
Especificação de Requisitos de Software com Casos de Uso
Diagrama de Classes e Diagrama de Objetos
Diagrama de Classes.
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Complemento de AOO 9.4 Comportamentos 9.5 Visibilidade 9.6.
Diagrama de Classes e Colaboração
Sistema de Inscrições A Universidade pretende desenvolver um Sistema de Inscrições A Secretaria Académica prepara o curriculum de disciplinas para um.
DIAGRAMA DE CLASSE Modelagem de Software
UML – Diagrama de Classes
Profa Simone Sawasaki Tanaka
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Diagrama de Classes George Gomes Cabral.
Profª Daniela TLBD.
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
UNIDADE 2 UML MODELAGEM TEMPORAL
2.2 MODELAGEM DE SISTEMAS COM UML
Marcio de Carvalho Victorino
Análise e Projeto de Sistemas
UML Diagrama de classes.
Ceça Moraes 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
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Modelagem Visual de Objetos Com UML
Análise Orientado aos Objetos Prof. Wolley W. Silva
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
Generalização e herança Agregação e composição
Análise e Projeto de Sistemas
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Engenharia de Software e Sistemas
UML Diagramas de Classes Disciplina: Engenharia de Software
20/04/2017 Orientação a Objetos 1 1.
Modelagem de Sistemas Orientada a Objeto Com UML
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.
Analisar Caso de Uso. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Analisar caso de uso | 2 Objetivos deste módulo.
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
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
UML - Requisitos 1 PESC/COPPE/UFRJ - Toacy C. de Oliveira.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Transcrição da apresentação:

UML: Diagrama de Classes Projeto de Sistemas de Software

UML – Diagrama de Classes Introdução – Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula © LES/PUC-Rio

Introdução - Diagrama de Classes Mostra um conjunto de classes e seus relacionamentos. É o diagrama central da modelagem orientada a objetos. Turma código: Texto sala: Texto horario: Horario estaAberta() definirProfessor(professor) incluirAluno(aluno) está-matriculado-em é-ministrada-por Aluno nome: Texto matrícula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula Professor nome: Texto titulação: Texto definirNome(nome) obterNome() definirTitulacao(titulo) obterTitulacao © 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 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 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 Nome_da_classe atributo1 atributo2 ... metodo1 metodo2 metodo3 © LES/PUC-Rio

Elementos – Diagrama de Classes Atributos Representam o conjunto de características (estado) dos objetos daquela classe Visibilidade: + público: visível em qualquer classe de qualquer pacote # protegido: visível para classes do mesmo pacote - privado: visível somente para classe Exemplo: + nome : String © LES/PUC-Rio

Elementos – Diagrama de Classes Métodos Representam o conjunto de operações (comportamento) que a classe fornece Visibilidade: + público: visível em qualquer classe de qualquer pacote # protegido: visível para classes do mesmo pacote - privado: visível somente para classe Exemplo: - getNome() : String © 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 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 nome multiplicidade sentido de leitura Pessoa 1..* trabalha para * Empresa empregado empregador Tipo: associação papéis E a navegabilidade? © LES/PUC-Rio

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 navegabilidade reside Cliente Endereço 1 * © 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 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. Pessoa Empresa associação © LES/PUC-Rio

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 Faixa de valores (por exemplo: 4..7) multiplicidade Pessoa 1..* trabalha para * Empresa associação © LES/PUC-Rio

Relacionamentos: 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 © 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: Agregação É um tipo especial de associação Utilizada para indicar “todo-parte” um objeto “parte” pode fazer parte de vários objetos “todo” todo parte 1 Item Pedido 1..* agregaçã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: 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 1 1 Notebook Teclado 1 0..* Window Frame 1..* 0..* errado © LES/PUC-Rio

Elementos – Diagrama de Classes Relacionamento: Composição Ex: Empresa 1 1..* 1..* 0..1 Departamento Escritório * Janela 1 2 0..1 1 Scroll Título Corpo © LES/PUC-Rio

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) Veículo superclasse “é um” “é um tipo de” Terrestre Aéreo subclasse © 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: 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 cliente fornecedor © LES/PUC-Rio

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 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

Exemplo: Sistema de Matrícula Diagrama de Casos de Uso © LES/PUC-Rio

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 Diagrama de Classes: identificando as classes Professor Coordenador Estudante Universidade Disciplina Turma Curso FormularioMatricula AnalisadorMatricula SistemaRegistroAcademico ListaAlunos © LES/PUC-Rio

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos 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

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os relacionamentos O formulário de matrícula é processado por um analisador de matrícula O analisador de matrícula gerencia a disciplina FormularioMatricula é-processado-por AnalisadorMatricula 0..* 1 é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 0..* Disciplina © LES/PUC-Rio

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 © LES/PUC-Rio

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 © LES/PUC-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 © LES/PUC-Rio

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os métodos Somente depois de modelar os diagramas de seqüência © LES/PUC-Rio

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! © LES/PUC-Rio

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. © LES/PUC-Rio

Exemplo: Sistema de Matrícula © LES/PUC-Rio