Aula01 Diagrama Classes
-
Upload
tiago-soares -
Category
Documents
-
view
213 -
download
0
Transcript of Aula01 Diagrama Classes
UML: Diagrama de Classes
Projeto de Sistemas de Software
UML Diagrama de Classes Introduo Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrcula
LES/PUC-Rio
Introduo - Diagrama de Classes Mostra um conjunto de classes e seus relacionamentos. o diagrama central da modelagem orientada a objetos.
Turma est-matriculado-em cdigo: Texto sala: Texto horario: Horario -ministrada-por
Aluno nome: Texto matrcula: Inteiro definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula
estaAberta() definirProfessor(professor) incluirAluno(aluno)
Professor nome: Texto titulao: Texto definirNome(nome) obterNome() definirTitulacao(titulo) obterTitulacao
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de ClassesClasses Graficamente, as classes so representadas por retngulos incluindo nome, atributos e mtodos.Nome_da_classe atributo1 atributo2 ... metodo1 metodo2 metodo3 ...
Devem receber nomes de acordo com o vocabulrio do domnio do problema. comum adotar um padro para nome-las Ex: todos os nomes de classes sero substantivos singulares com a primeira letra maiscula LES/PUC-Rio
Elementos Diagrama de ClassesClasses Atributos Representam o conjunto de caractersticas (estado) dos objetos daquela classe Visibilidade:
+ pblico: visvel em qualquer classe de qualquer pacote # protegido: visvel para classes do mesmo pacote - privado: visvel somente para classe Exemplo: + nome : String
LES/PUC-Rio
Elementos Diagrama de ClassesClasses Mtodos Representam o conjunto de operaes (comportamento) que a classe fornece Visibilidade:
+ pblico: visvel em qualquer classe de qualquer pacote # protegido: visvel para classes do mesmo pacote - privado: visvel somente para classe Exemplo: - getNome() : String
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de ClassesRelacionamentos Os relacionamentos possuem: Nome: descrio 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: associao (agregao, composio), generalizao e dependncia Papis: desempenhados por classes em um relacionamento
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamentos
nome multiplicidade sentido de leitura
Pessoa
1..*
trabalha para
*
empregado
empregador
Empresa
Tipo: associao
papis
E a navegabilidade?
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamentos
navegabilidade
Cliente
reside
1
*
Endereo
O cliente sabe quais so seus endereos, mas o endereo no sabe a quais clientes pertence
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de ClassesRelacionamentos: Associao Uma associao um relacionamento estrutural que indica que os objetos de uma classe esto vinculados a objetos de outra classe. Uma associao representada por uma linha slida conectando duas classes.
Pessoaassociao
Empresa
LES/PUC-Rio
Elementos Diagrama de ClassesRelacionamentos: Associao Indicadores de multiplicidade: 1 1..* 0..* * 0..1 m..n Exatamente um Um ou mais Zero ou mais (muitos) Zero ou mais (muitos) Zero ou um Faixa de valores (por exemplo: 4..7)multiplicidade
Pessoa
1..*
trabalha para
*
Empresa
associao LES/PUC-Rio
Relacionamentos: AssociaoRelacionamentos: Associao Exemplo: Um Estudante pode ser um aluno de uma Disciplina e um jogador da Equipe de Futebol Cada Disciplina deve ser cursada por no mnimo 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 Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamento: Agregao um tipo especial de associao Utilizada para indicar todo-parte
todo
parte
Pedidoagregao
1
1..*
Item
um objeto parte pode fazer parte de vrios objetos todo
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamento: Composio uma variante semanticamente mais forte da agregao Os objetos parte s podem pertencer a um nico objeto todo e tm o seu tempo de vida coincidente com o dele
Notebook Window1..*
1 1
1 0..* 0..*
Teclado Frameerrado
Quando o todo morre todas as suas partes tambm morrem
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamento: Composio Ex:Empresa 1 0..1 1..* Departamento * Janela 1 2 Scroll 0..1 Ttulo 1 Corpo 1..* Escritrio
LES/PUC-Rio
Elementos Diagrama de Classes Agregao X Composio
Sala1 ..n 1
Mesa
Andar
1 ..n
Edifcio
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamento: Generalizao um relacionamento entre itens gerais (superclasses) e itens mais especficos (subclasses)
superclasse um um tipo de subclasse
Veculo
Terrestre
Areo
LES/PUC-Rio
Elementos Diagrama de Classes Elementos de um diagrama de classes Classes Relacionamentos Associao Agregao Composio
Generalizao Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes Relacionamento: Dependncia Representa que a alterao de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente)
Ex:
cliente
fornecedor
Obs: A classe cliente depende de algum servio da classe fornecedor A mudana de estado do fornecedor afeta o objeto cliente A classe cliente no declara nos seus atributos um objeto do tipo fornecedor Fornecedor recebido por parmetro de mtodo LES/PUC-Rio
Exemplo: Sistema de MatrculaDescrioA Universidade XYZ deseja informatizar seu sistema de matrculas: A universidade oferece vrios cursos. O Coordenador de um curso define as disciplinas que sero oferecidas pelo seu curso num dado semestre. Vrias disciplinas so oferecidas em um curso. Vrias turmas podem ser abertas para uma mesma disciplina, porm o nmero 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 Acadmico (SRA) notificado. Aps a matrcula, 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 usurios do sistema devem ser validados. LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Casos de Uso
LES/PUC-Rio
Exemplo: Sistema de MatrculaDescrio do Caso de Uso Matricular em Disciplina Esse caso de uso se inicia quando o Estudante de Curso inicia uma sesso no sistema e apresenta suas credenciais. O sistema verifica se a credencial vlida. O sistema solicita que o estudante realize sua matrcula, selecionando 4 disciplinas. O estudante preenche um formulrio eletrnico de matrcula e o submete para uma anlise de consistncia. O sistema analisa as informaes contidas no formulrio. Se as informaes so consistentes, o estudante includo em turmas abertas de 4 disciplinas, iniciando pelas preferenciais. Se as informaes no so consistentes, o sistema informa o motivo da inconsistncia e solicita que o formulrio seja alterado.
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes: identificando as classes
Professor
Coordenador
Estudante
Universidade
Disciplina
Turma
Curso
FormularioMatricula
AnalisadorMatricula
SistemaRegistroAcademico
ListaAlunos
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes: identificando os relacionamentos Exemplos de candidatos a relacionamentos: A parte fsica ou lgica de B. A est contido fisicamente ou logicamente em B. A uma descrio 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 transao B. A possudo por B. A um tipo de B.
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes: identificando os relacionamentos
O formulrio de matrcula processado por um analisador de matrculaFormularioMatricula-processado-por 0..* 1
AnalisadorMatricula
O analisador de matrcula gerencia a disciplinaFormularioMatricula-processado-por 0..* 1
AnalisadorMatricula1
0..*
Disciplina
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes
FormularioMatricula1
-processado-por 0..* 1
AnalisadorMatricula1 gerencia 0..*
-preenchido-por
Disciplina1
-definida-por 1..* 1
Coordenador
aluno
1 est-matriculado-em 3..10 4
1..*
Estudante
Turma
-ministrada-por 0..3 1
Professor
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes: identificando os atributos Os atributos podem ser encontrados examinando-se as descries dos casos de uso e tambm pelo conhecimento do domnio do problema.
Cada turma oferecida possui um cdigo, uma sala e um horrio.
Turma cdigo sala horrio
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes
FormularioMatricula1
-processado-por 0..* 1
AnalisadorMatricula1 gerencia 0..*
Disciplina-preenchido-por
nome 1..* numCrditos1 1..*
-definida-por 1
Coordenador
aluno
1
Turmaest-matriculado-em 4
Estudante
nome 3..10 matricula
cdigo sala horrio
-ministrada-por 0..3 1
Professor nome titulao
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes: identificando os mtodos Somente depois de modelar os diagramas de seqncia
: SIM
: AnalisadorMatricula
AnalisadorMatriculaadicionar(aluno, disciplina)
1 submeterFormulario(f) :
1 adicionar(a,d ) :
SIMsubmeterFormulario(formulario)
LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes:
E a navegabilidade?
Estudante
est-matriculado-em3..10 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 no aparece como atributo de Estudante! LES/PUC-Rio
Exemplo: Sistema de MatrculaDiagrama de Classes:
Acrescentando generalizaes: Atributos, operaes e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.Us uarionome : Texto definirNome(nome) obterNome()
Estudantematricula : Inteiro definirMatricula(matricula) obterMatricula()
Professortitulacao : Texto definirTitulacao(titul acao) obterTitulacao()
LES/PUC-Rio
Exemplo: Sistema de MatrculaFormularioMatriculaobterEstudante() : Estudante obterNomeDIsciplina(i : Inteiro) : Texto1 1* ..
-processado-por
AnalisadorMatricula1 adicion ar(alun o, di scipli na) 1 1
usa1
SIM
-preenchido-por -aluno1
gerencia
Estudantematricula : Inteiro definirMatricula(matricula) obterMatricula()
1 ..*
Disciplinanome : Texto numCreditos : Inteiro11 .. 1
estaCompleta() adicionar(aluno : Estudante)1
est-matriculado-em
Usuarionome : Texto definirNome(nome) obterNome()
1 ..*
Turmacodigo : Texto sala : Texto 1 horario : Horario numAlunos : Inteiro completa : Booleano1
Professortitulacao : Texto definirTitulacao(titulacao) obterTitulacao()11 ..
responsvel-por
estaCompleta() : Booleano
LES/PUC-Rio