UML: Diagrama de Classes



Documentos relacionados
Prof. Claudio Passos Apresentação cedida pela Ceça Moraes

Sumário. Uma visão mais clara da UML

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

PRDS - Programa de Residência em Desenvolvimento de Software

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

2 Diagrama de Caso de Uso

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

UML Aspectos de projetos em Diagramas de classes

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

CASO DE USO. Isac Aguiar isacaguiar.com.br

Um modelo é uma simplificação da realidade. Construímos modelos para compreender melhor o sistema que estamos desenvolvendo.

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

UML: Casos de Uso. Projeto de Sistemas de Software

Unified Modeling Language UML

Engenharia de Software III

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Análise e Projeto Orientado a Objetos

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Modelo de Entidade e Relacionamento (MER) - Parte 07

UML: Diagrama de Casos de Uso, Diagrama de Classes

Especificação do 3º Trabalho

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Análise e Projeto Orientados por Objetos

A Linguagem de Modelagem Unificada (UML)

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Especificação de Requisitos

Modelagem de Sistemas Prof. Marcos Roberto e Silva

Casos de Uso - definições

Uma visão mais clara da UML Sumário

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Disciplina: Unidade II: Prof.: Período:

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Sistema Ativo de Segurança Automotiva Manual de Utilização

Engenharia de Requisitos Estudo de Caso

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

Visibilidade e Diagrama de Classe de Projeto Estudo de Caso Sistema TPV

TCEnet e TCELogin Manual Técnico

Herança. Alberto Costa Neto DComp - UFS

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

Especificação de Requisitos

Unified Modeling Language UML - Notações

Desenvolvimento de Sistema de Software

Roteiro do Trabalho Prático

Engenharia de Software

Capítulo 6. Criando um Diagrama de Caso de Uso Inicial

Diagrama de classes. Ricardo Roberto de Lima UNIPÊ APS-I

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Disciplina: Unidade III: Prof.: Período:

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Capítulo 8. Introdução UML

Disciplina Técnicas de Modelagem

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

Nome do Processo: Requisição Gera Múltiplos pedidos para Múltiplos Fornecedores

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Controle de Almoxarifado

Manual Geral do OASIS

Introdução! 1. Modelos de Domínio! 1. Identificação de classes conceituais! 2. Estratégia para identificar classes conceituais! 2

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

MANUAL DE MEMBRO COMUNIDADE DO AMIGO

Uma visão mais clara da UML Sumário

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

O Oficina Integrada é um sistema completo para o controle e gerenciamento de oficinas mecânicas. É o primeiro e único software que controla o fluxo

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Roteiro 3 Modelagem relacional

Apresentação. Nossa sugestão é que você experimente e não tenha medo de clicar!!!

Cenários do CEL. Acessar ao sistema

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Introdução Diagramas de Casos de Uso Diagramas de Classes Estoque Fácil

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Terceira Avaliação Visualg & Pascal

Capítulo 09. Construindo o Modelo do Domínio

Manual Verba Conceito de verba. Funcionamento Básico

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Modelagem com UML. Fabio Perez Marzullo. IEEE Body of Knowledge on Services Computing Committee on Services Computing, IEEE Computer Society

QUESTÃO 01 - DIAGRAMA DE SEQUENCIA (CONCEITOS)

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

MC536 Bancos de Dados: Teoria e Prática

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliams.wordpress.com Laboratório de Programação

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

QUESTÕES PARA ESTUDO DIAGRAMA DE CLASSE

Feature-Driven Development

PROCESSO JUDICIAL ELETRÔNICO PJe

Manual do usuário. v1.0

Tarciane Andrade.

UML Diagramas. UML Diagramas. UML Diagrama Diagrama de Classes. UML Diagrama Diagrama de Classes

Manual de Férias do Servidor

BEM-VINDO AO dhl PROVIEW

EMPRESAS RANDON MANUAL DE ACESSO PORTAL DE FORNECEDOR QUALIDADE

ÍNDICE 1. CADASTRO DE BOLSAS... 2

UML Itens Estruturais - Interface

Transcrição:

UML: Diagrama de Classes

UML Diagrama de Classes Introdução Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

Introdução - Diagrama de Classes Mostra um conjunto de classes e seus relacionamentos. É o diagrama central da modelagem orientada a objetos. Turma está-matriculado-em código: Texto sala: Texto horario: Horario é-ministrada-por Aluno nome: Texto matrícula: Inteiro estaaberta() definirprofessor(professor) incluiraluno(aluno) Professor nome: Texto titulação: Texto definirnome(nome) obternome() definirmatricula(matricula) obtermatricula definirnome(nome) obternome() definirtitulacao(titulo) obtertitulacao

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

Classes Graficamente, as classes são representadas por retângulos incluindo nome, atributos e métodos. Nome_da_classe atributo atributo2... metodo metodo2 metodo3... 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

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

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

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

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.., 0..*,,..*, 2, 3..7 Tipo: associação (agregação, composição), generalização e dependência Papéis: desempenhados por classes em um relacionamento

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

Relacionamentos navegabilidade Cliente reside * Endereço O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

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

Relacionamentos: Associação Indicadores de multiplicidade: Exatamente um..* Um ou mais 0..* Zero ou mais (muitos) * Zero ou mais (muitos) 0.. Zero ou um m..n Faixa de valores (por exemplo: 4..7) multiplicidade Pessoa..* trabalha para * Empresa associação

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 ser cursada por no mínimo aluno Um aluno pode cursar de 0 até 8 disciplinas

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

Relacionamento: Agregação É um tipo especial de associação Utilizada para indicar todo-parte todo parte Pedido..* Item agregação um objeto parte pode fazer parte de vários objetos todo

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

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 Notebook Window 0..* Teclado Frame..* 0..* errado Quando o todo morre todas as suas partes também morrem

Relacionamento: Composição Ex: 0.. Empresa..* Departamento *..* Escritório Janela 2 0.. Scroll Título Corpo

Agregação X Composição Sala..n Mesa Andar..n Edifício

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

Relacionamento: Generalização É um relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) superclasse Veículo é um é um tipo de subclasse Terrestre Aéreo

Elementos de um diagrama de classes Classes Relacionamentos Associação Agregação Composição Generalização Dependência

Relacionamento: Dependência Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente) Ex: cliente fornecedor 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

Import java.awt.graphics; class HelloWorld extends java.applet.applet { public void paint (Graphics g) g.drawstring( Hello, world!, 0, 0); } Applet HelloWorld Graphics paint(graphics g)

Classe de associação Usada quando uma associação entre duas classes contiver atributos da associação Atributos farão parte da classe de associação C existe para todo relacionamento de A com B A B C C possui referência para A e para B Não existem dois objetos C e C que referenciam a mesma tupla A,B, isto é, não existe c(a,b,x) e c (a,b,x ) onde a e b são objetos de A e B, respectivamente, e x e x são valores de um atributo de C. d(a,b,x) e d(a,b,x ) existem A D B

Classe de associação Empresa 0..* trabalha..* Pessoa Não existe uma pessoa com dois empregos na mesma empresa Emprego descrição salário atributos do relacionamento Uma pessoa pode fazer mais de um pedido na mesma empresa Empresa 0..* pertence Pedido itempedido 0..* faz Pessoa

Exemplo: O Blog Um blog tem um título e uma data de criação e além disso é um conjunto de conteúdos. Estes conteúdos (mensagens) podem ser notas ou comentários sobre as notas. Tanto notas quanto comentários têm características comuns como o texto e a data de sua criação. Todo usuário possui: E-mail (deve ser único, ou seja, não há mais de um usuário com o mesmo e-mail)

Blog: o sistema deve... Permitir a criação de blogs Permitir a utilização de blogs Qualquer usuário pode ler conteúdos Somente o dono do blog pode criar notas Qualquer usuário pode criar comentários. Para criar um comentário o usuários precisa ler as notas. Somente o dono do blog pode remover conteúdos. Para remover um conteúdo ele precisará ler o conteúdo. Caso ele remova um comentário, o autor do comentário deve ser notificado por e-mail.

Blog: Casos de uso Criar Blog blogsystem Criar Comentario <<include>> Ler Conteudo Ler Nota Usuario Ler Comentario <<include>> <<include>> Remover Comentario Remover Conteudo Remover Nota Dono do blog Criar Nota

Blog: Diagrama de Classes dono UsuarioBlog -email:string +notificarexclusao:void autor 0..* 0..* usa usuario Blog -dtcriacao:date -titulo:string -dono:usuarioblog -conteudos:vector +criarnota:void +exibirconteudo:void +comentar:void +lercomentarios:vector +removerconteudo:void +lernotas:vector +Blog 0..* 0..* Conteudo -dtcriacao:date -texto:string -autor:usuarioblog +Conteudo +exibirconteudo:void Nota -comentarios:vector -attribute:int +comentar:void +lercomentarios:vector +finalize:void 0..* Comentario +finalize:void

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 0. 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. O Coordenador também. 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 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.

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

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

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

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. código sala horário Turma

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

Exemplo: Sistema de Matrícula Diagrama de Classes: identificando os métodos : submeterformulario(f) : SIM : AnalisadorMatricula AnalisadorMatricula adicionar(aluno, disciplina) 2: adicionar(a,d ) SIM submeterformulario(formulario)

Exemplo: Sistema de Matrícula Diagrama de Classes: E a navegabilidade? Estudante está-matriculado-em 3..0 4 Turma 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. Us uario nome : Texto definirnome(nome) obternome() Estudante matricula : Inteiro definirmatricula(matricula) obtermatricula() Professor titulacao : Texto definirtitulacao(titul acao) obtertitulacao()

Exemplo: Sistema de Matrícula FormularioMatricula obterestudante() : Estudante obternomedisciplina(i : Inteiro) : Texto 0..* é-processado-por AnalisadorMatricula usa adicionar(aluno, disciplina) SIM é-preenchido-por gerencia -aluno Estudante matricula : Inteiro definirmatricula(matricula) obtermatricula() 3..0 está-matriculado-em 0..* Disciplina nome : Texto numcreditos : Inteiro estacompleta() adicionar(aluno : Estudante) Usuario nome : Texto definirnome(nome) obternome() Professor titulacao : Texto definirtitulacao(titulacao) obtertitulacao() responsável-por 4 0..3..* Turma codigo : Texto sala : Texto horario : Horario numalunos : Inteiro completa : Booleano estacompleta() : Booleano