Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Dados Curriculares
Carga Horria
Dias da Semana
60 Horas
Ementa
Histrico e Introduo UML; Conceitos e Elementos da Anlise
Orientada a Objetos; Anlise de requisitos; Modelagem de
sistemas orientados a objetos UML (Unified Modelling
Language); Transformao de classes em modelos de dados;
Introduo a Padres de Projeto.
Dados Curriculares
Carga Horria
Dias da Semana
60 Horas
Ementa
Histrico e Introduo UML; Conceitos e Elementos da Anlise
Orientada a Objetos; Anlise de requisitos; Modelagem de
sistemas orientados a objetos UML (Unified Modelling
Language); Transformao de classes em modelos de dados;
Introduo a Padres de Projeto.
Contedo
Primeira Avaliao
Fundamentos da Orientao a Objetos;
Identificando Atores; o
Contedo
Segunda Avaliao
Diagrama de Sequencia
Terceira Avaliao
Modelagem da Estrutura Dinmica
Diagrama de Atividades
Referncias Bsicas
Referncias Bsicas
COAD, Peter. Anlise Baseada em Objetos. 2 Edio, Rio de Janeiro,
Campus, 1992.
PRESSMAN, Roger. Engenharia de Software. 7 Edio, So Paul,
McGraw-hill, 2011.
LARMAN, Craig . Utilizando UML e padres - Uma introduo a anlise e
ao projeto orientados. 3 Edio, Bookman, 2007.
Boock, G. and Rumbaugh, J. The Unified Modeling Language User
Guide . Addison-Wesley, 1999
Importncia da modelagem
Exigncia de mercado.
Qualidade.
Estimativa.
Gerenciar modificaes.
Comunicao.
Conceito em realidade.
Linguagem
Linguagem para
visualizao
Linguagem para
especificao
Especificar
significa
construir
modelos
precisos,
sem
ambigidades e completos.
Atende
a todas as decises
importantes em termos de anlise,
projeto e implementao.
Linguagem para
documentao
Requisitos
Arquitetura
Projeto
Cdigo-fonte.
Planos de Projeto
Testes
Prottipos
Verses
Estes artefatos no so apenas partes do projeto a ser entregue, mas
tambm so crticos para controlar, medir e comunicar determinado
sistema durante seu desenvolvimento e aps sua implementao
A UML abrange a documentao da arquitetura do sistema e de todos os
seus detalhes.
Telecomunicaes.
Transportes.
Defesa/espao areo.
Vendas de varejo.
Eletrnica mdica.
Um modelo conceitual da
UML.
Para compreender
a UML precisa-se
formar um modelo conceitual da
linguagem.
Aprender trs elementos principais:
Os blocos de construo bsicos
As regras que determinam como
esses blocos podero ser
combinados.
Mecanismos comuns aplicados a
UML.
Blocos de construo
Itens
Relacionamentos
Diagramas
Itens da UML
Existem quatro tipos de itens:
Itens estruturais
Itens comportamentais
Itens de agrupamento
Itens anotacionais
Estes itens constituem os blocos
de construo bsicos orientados
a objetos da UML.
Itens estruturais
Sete tipos:
Classes
Interface
Colaboraes
Caso de uso
Classes ativas
Componentes
Ns
Classes
So descries de conjuntos de
objetos que compartilham os
mesmos
atributos,
operaes,
relacionamentos e semntica.
Implementam
uma
ou
mais
interfaces. Window
Graficamenteorigin so
representadas
size
por retngulos
open()
close()
move()
display()
Interfaces
Poder representar
comportamento.
comportamento
ISpeling
ou
parte
desse
Colaboraes
Cadeia de responsabilidades
Caso de Uso
Colocar Pedido
Classes ativas
So classes cujos objetos tm um ou
mais processos ou threads e, portanto,
podem iniciar a atividade de controle.
semelhante a uma classe, exceto pelo
fato de que seus objetos representam
elementos
cujo
comportamento
Componentes
Ordemform.java
N
um elemento fsico existente em
tempo de execuo que representa
um recurso computacional
Um
conjunto de componentes
poder estar contido em um n e
tambm poder migrar de um n
para outro.
Graficamente representado por
um cubo.
Servidor
Itens comportamentais
So as partes dinmicas dos
modelos da UML.
So os verbos de um modelo,
representando comportamentos
no tempo e no espao.
Dois tipos principais:
Interao
Mquina de estado.
Interao
inclusive
Mquina de estado
Aguardando
Itens de agrupamento
So as partes organizacionais
dos modelos de UML.
So
os blocos em que os
modelos
podem
ser
decompostos.
Existe apenas um tipo principal
de
item
de
agrupamento
chamado pacote.
Pacotes
puramente conceitual
Regras de
negcios
Itens anotacionais
So as parte explicativas dos
modelos de UML.
So comentrios includos para
descrever, esclarecer e fazer
alguma
observao
sobre
qualquer elemento do modelo.
Existe um nico tipo chamado
nota.
Nota
apenas um smbolo para
representar
restries
e
comentrios
anexados
a
um
elemento ou a uma coleo de
elementos.
Graficamente representado por
um retnguloretornar
com
cpia um dos cantos
como uma dobra de pgina,
acompanhado
por
texto
ou
comentrio grfico.
Modelagem de Dados
com
UML
Diagrama
de Classes
Representao dos dados manipulados
e armazenados pelos programas de
acordo com os conceitos de
Orientao a Objetos
Notao fortemente baseada no
Diagramas Entidade-Relacionamento
de Peter Chen
Deve-se observar que o Diagrama de
Classes privilegia a descrio segundo
o paradigma OO
Diagramas de Classe
So os principais diagramas
estruturais da UML
Ilustram as classes, interfaces e
relacionamentos entre elas
As
classes
especificam
a
estrutura e o comportamento
(operaes) dos objetos, que so
instncias das classes
Diagramas de Classe
Classe
Pode ser:
substantivos do enunciado
Responsabilidade
Responsabilidade
So descritas como frases ou
pargrafos curtos em formato
textual livre.
So documentadas como um
compartimento especfico, como
parte da descrio da classe ou
como uma nota estereotipada
como <<responsability>> ligada
a classe.
Exemplo:
Classes - Notao
Esteretipo;
Atributos;
Operaes;
Visibilidade;
Tipo;
<<entidade>>
Cliente
CPF : Long
Nome : String
Endereco : String
Consultar(CPF : Long) : Integer
Mostrar Todos os
Detalhes se necesrio
Atributos
Visibilidade
Visibilidade:
+ pblico
: visvel em qualquer
classe
# protegido : qualquer descendente
poder usar
- privado : visvel somente dentro
da classe
+ saldoEM (date: Date): Money
Assinatura
Operaes/Mtodos
Visibilidade
pblico
protegido
privado
Notaes
Diagrama de classe
Atributo:
Operao
Relacionamentos
Relacionamentos - Notao
Associao
Sem/com navegao
Agregao
Composio
Dependncia
Generalizao
Realizao
Relacionamentos
Nome
Papel
Multiplicidade
Associao
0..*
+funcionrio
Classe B
+empregador
1..*
Companhia *
+empregador
Empregado
+chefe 1
+subordinado
0..*
- Papel (Role)
Multiplicidade
Padro 1..1
Funcionario
0..*
-Nome do relacionamento
-Multiplicidade
-Navegabilidade
-Ocultar Detalhes
Chefia
Funcionario
Codigo : Long
Nome : String
CodigoChefe : Long
ConsFuncionario(Codigo : Long) : Integer
ConsChefe(CodigoChefe : Long) : Integer
Associao Binria
<<entity>>
Pedido
Possui
Scio
-data: date
-status: Integer
-obs: String
-valorTotal: Float
0..*
Dependente
Pedido
-data
-status
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
+calcImposto()
+calcTotal()
1
0..*
0..*
1..*
<<entity>>
Cliente
-razaoSocial: String
-cpf: String
+getRazaoSocial()
+setRazaoSocial(razaoSocial: String)
Pagamento
-quantia
1
Cliente
-nome
-cpf
Turma
Professor
0..*
Todos
0..*
Disciplina
0..*
Agregao
Tipo especial de associao.
Demonstra que as informaes de um objeto (objeto-todo) precisam ser
complementadas pelas informaes contidas em um ou mais objetos de
outra classe (objeto-parte).
Um objeto-parte no pode ser destrudo por um objeto diferente do objetotodo
Pedido
Possui
1..*
ItemPedido
0..*
Compe
Produto
Relacionamento:
agregao
Exemplo
Um Controlador de Temperatura
contm
um
Aquecedor
ControlaTemp
Aquecedor
classControlaTemp{
classAquecedor{...}
Composio
Uma variao da agregao
Representa um vnculo mais forte entre objetos-todo e os objetos-parte.
O objeto-parte exclusivo do objeto-todo.
Um objeto-parte no pode associar-se a mais de um objeto-todo
RevistaCientfica
Publica
1..*
Edio
Contm
6..10
Artigo
Implementao de
Composio
classBotao{..
//propriedades...
}
classJanela{
Botaob1,b2;
Tituloidentifica;
Stringcor;
....
}
campos
b1:objeto
Boto
classTitulo{..
//propriedades..
}
b2:objeto
Boto
identifica: cor:objeto
objetoTtulo String
lembrete:cadaobjetopossuiseuscamposeseusmtodos
lembrete:cadaobjetopossuiseuscamposeseusmtodos
Exemplo de composio
class Pessoa{
String nome;
char sexo;
Data dataNasc;
----}
class Data{
private int dia, mes, ano;
public void alteraData(int d, int m, int a){
dia = d;
mes = m;
ano = a;
}}
Herana
Umas das caractersticas mais
poderosas e importantes da O.O.
Permite a reaproveitamento de
atributos e mtodos.
Otimiza
o
tempo
de
desenvolvimento.
Diminui linhas de cdigos.
Facilita a manuteno.
Benefcios do uso de
herana
Generalizao
um relacionamento de especializao/generalizao,
nos quais os objetos dos elementos especializados (os
filhos) so substituveis por objetos do elemento
generalizado (os pais)
Fornecedor
Fornecedor cimento
Generalizao
Retngulo
ponto : Ponto
Crculo
raio : float
Polgono
pontos : ListaDePontos
exibir()
Quadrado
Especializao /
Generalizao
ContaComum
- Generalizao
Nrconta : Long
Saldo : Double
Dtaber : Date
Tipo : Integer
Dtencer : Date
Situacao : Boolean
Senha : Integer
- Especializao
- Polimorfismo
ContaEspecial
- Sobrecarga
- Sobreposio
ContaPoupana
Limite : Double
Rendimento(DatDia : Date, Juros : Double) : Integer
Abertura(Saldo : Double, Senha : Integer, Limite : Double) : Long
Saque(Valor : Double) : Integer
JurCheqEsp(Juros : Double) : Integer
Exemplo de Implementao
de Herana
class Pessoa{
public String nome;
public char sexo;
public Data dataNasc;
---}
Herana Mltipla
Veculo
Veculo Terrestre
Veculo Aqutico
Veculo Anfbio
Classe abstrata
Polimorfismo
Operaes
tm
algumas
propriedades similares a classes.
Uma operao abstrata aquela
que no tem um mtodo definido.
Uma
implementao para a
operao tem que ser suprida
em algum de seus descendentes
concretos.
Um elemento abstrato denotado
pelo nome em itlico.
O oposto de abstrato concreto
Polimorfismo
Exemplo a seguir:
Exemplo de polimorfismo
classPessoa{
publicStringnome;
publiccharsexo;
publicDatadataNasc;
voidlista(){
imprime(nome);
imprime(sexo);
}
publicclassProfessorextendsPessoa{
publicStringcontrato;
voidlista(){
imprime(nome);
imprime(contrato);
}
}
publicclassAlunoextendsPessoa{
publiclongmatric;
voidlista(){
imprime(nome);
imprime(idade);
imprime(matric);}
}
Dependncia
Fornecedor
Pedido
Pacotes e Relacionamento
de Dependncia
Interface
ItemCarrinho
Regras de negcio
Banco de Dados
Carrinho
Interfaces
Interfaces e Realizao
A realizao um relacionamento
especificao e sua implementao
entre
uma
Realizao
Classe A
Classe B
Realizao - Notao
<<interface>>
Empregado
Empregado_Impl
verificarFicha()
calcularSalrio()
Empregado_Impl
Empregado
Realizao
<<Interface>>
Idado
Mos trarLado()
RolarDado()
Dado
Dado()
MostrarLado()
RolarDado()
Classe Associativa ou
Intermediria
1..*
Artigo
Artigo
Escreve
Autor
1..*
Autor
Classe
Intermediria
Escreve
Classe
Associativa
Restries
Scio
Realiza
1..*
PessoaFisica
Locao
1..*
Possui
ContaComum
ContaComum
Nrconta : Long
Saldo : Double
Dtaber : Date
Tipo : Integer
Dtencer : Date
Situacao : Boolean
Senha : Integer
Abertura(Saldo : Double, Tipo : Integer, Senha : Integer) : Long
Encerramento() : Integer
Saque(Valor : Double) : Integer
Deposito(Nrconta : Long, valor : Double) : Integer
VerSaldo() : Double
...
{ou}
1..*
Possui
PessoaJuridica
O tributo senha
deve conter no
mnimo 4 digitos
Restries
Pessoa
{Separada, Completa}
PessoaFsica
PessoaJuridica
Veiculo
{Sobreposta, Incompleta}
Areo
Aqutico
Esteritipos
Entity
Boundary
Control
Interface
<<boundary>>
Tela
Tela
<<entity>>
PessoaJuridica
PessoaJuridica
<<control>>
PontoEletrnico
PontoEletrnico
<<Interface>>
Idado
Idado
Classe
associativa:
verifica-se
se
existem
informaes que precisam estar vinculadas
associao de dois objetos (mas no a um deles em
particular)
<<entity>>
Pedido
-data: date
-status: Integer
-obs: String
-valorTotal: Float
<<entity>>
Cliente
-razaoSocial: String
-cpf: String
+getRazaoSocial()
+setRazaoSocial(razaoSocial: String)
0..*
<<entity>>
Pagamento
+calcImposto()
+calcTotal()
-calcSubTotal()
+setCliente(cliente: Cliente)
+inserirItem(item: ItemPedido)
1..*
-quantia: Float
+getQuantia()
<<boundary>>
FormPedido
1
+criarPedido()
+gravarPedido()
<<entity>>
Produto
+descricao: String
1..*
<<entity>>
ItemPedido
0..*
+qtd: Integer
+setQuantidade(qtd: Integer)
+setProduto(produto: Produto)
<<entity>>
Cartao
<<entity>>
Cheque
+numero: Integer
+tipo: Integer
-banco: Integer
<<entity>>
Dinheiro
Segura
1..*
VeculoSegurado
Parcela
Possui
0..*
Consultar()
Sofre
0..*
1..*
Tem
Pertence
Modelo
Sinistro
Tipo
1..4
Produz
0..*
Dano
1..*
Produz
Marca
Diagramas de objetos
Diagramas de objetos
Diagramas de objetos
Objetos Simples
: Curso
Bill Clinton
Andr: Professor
: Aluno
Monica: Aluno
codCurso: "IF291"
descrio: "MPS"
codTurma: I7
Fulano :
MultiObjects
MultiObjects - Exemplos
p 2: P ro fe s s o r
c3: C u rs o
c1: C u rs o
c2: C u rs o
: A lu n o
: A lu n o
Diagramas de Objetos
Curso
Professor
ministra
-matrcula: String
-nome: String
[1..3]
-codDisciplina: String
[1..5] -descrio: String
-codTurma: String
Aluno
* -matrcula: String
-nome: String
[0..10]
-perodo: Integer
p1: Professor
p2: Professor
matricula: "205-6712-09"
nome: "Jaelson Castro"
c1: Curso
: Curso
c2: Curso
: Curso
codCurso: "IF291"
descrio: "MPS"
codTurma: I7
c3: Curso
codCurso: "IF185"
descrio: "AER"
codTurma: I6
: Aluno
: Aluno
: Aluno
: Aluno
: Aluno
:aluno
Bill
matricula: "219846534"
nome: "Nelson Mandella"
:aluno
matricula: "562746134"
nome: "John Major"
: Aluno
Lewinsky
Exerccio
Exerccio
Diagrama de
Seqncia
Diagrama de
Seqncia
Diagrama de
Seqncia
Sequenciamento
Diagramas de
Seqncia
Diagrama de Seqncia de
Eventos do Sistema
Importncia do Diagrama de
Sequncia
Importncia do Diagrama de
Sequncia
Importncia do Diagrama de
Sequncia
Importncia do Diagrama de
Sequncia
Aplicaes do Diagrama de
Sequncia
Ao fim da
coordenador
verificao,
verificador
informa
Recomendaes
: Cliente
: Cliente
Linha de vida
Foco de controle ou
Ativao
Diagrama de
Seqncia
Componentes FOCO DE
CONTROLE/ATIVAO
Mensagens ou
Estmulos
Mensagens ou
Estmulos
Mensagens ou
Estmulos
Mensagens
Mensagens
Identificando mensagens:
Chamada (Call)
Retorno (Return)
Envio (Send)
Criao (Create)
Destruio (Destroy)
Mensagens
Mensagens
Tipos de Mensagens
- Notao
Tipos de Mensagens
que
no
so
Tipos de Mensagens
- Notao
Retorno de
Mensagens
Mensagem de Sincrona
Retorno ... Linha
tracejada.
Podem retornar
valores ou
status...
Retorno de
Mensagens
Assincrona
Criao e destruio
de objetos
Mensagens
condicionais,
iteradas
O valor de retorno de uma mensagem sncrona pode ser indicado na
chamada, com atribuio :=, ou na mensagem de retorno
com retorno
Exemplo: ret e
:= msg(args)
Condio de Guarda
Mensagem com
Condio de
Guarda
Entre colchetes
[]
Condio de Guarda
Auto-Chamadas ou Auto-Delegaes
fisica1 :
Fisica
: Banco
2: conCPF( )
Auto-Chamada
3: [se Existir] Dados do cliente
4: [Se necessrio] gravar()
5: valCpf( )
6: Cliente Atualizado
7: Pedido Aprovado
8: Fornecer Valor de Depsito e senha
9: Abertura( )
Conta1 :
ContaComum
10: gravar( )
hist1 :
Historico
11: Historico Registrado com
sucesso
Abertura de Conta
: Cliente
fisica1 :
Fisica
: Banco
2: conCPF( )
Auto-Chamada
3: [se Existir] Dados do cliente
4: [Se necessrio] gravar()
5: valCpf( )
6: Cliente Atualizado
7: Pedido Aprovado
8: Fornecer Valor de Depsito e senha
9: Abertura( )
Conta1 :
ContaComum
10: gravar( )
hist1 :
Historico
11: Historico Registrado com
sucesso
Encerramento de
Conta
Associando
Consultrio
Dentrio
Um dentista quer automatizar o atendimento aos pacientes de seu consultrio.
Quando um paciente deseja marcar uma consulta, verificada a agenda do dentista e
oferecido o primeiro horrio disponvel (data e hora), de acordo com o que o paciente
deseja.
Se o paciente concordar com o horrio, registrado na agenda o nome do paciente e
horrio combinado.
Os pacientes j cadastrados tm a ficha de consulta preenchida automaticamente. Os
pacientes novos devem fornecer seus dados de cadastro: RG, endereo, telefone, data
nascimento, profisso.
A consulta consiste de 2 tipos de servios: de limpeza e restaurao, ou exames para
diagnstico. Na realizao da consulta, o dentista faz o registro do servio efetuado em
detalhes e, se necessrio, o paciente marca uma nova consulta.
O dentista pode pesquisar as fichas de seus pacientes por nome ou data de consultas.
Diariamente, impressa a agenda com 2 dias de antecedncia para que os pacientes
confirmem a consulta. Tambm pode ser impressa a agenda do dia ou da semana.
Atores
Nome
(fonte de informao/solicitao ao sistema)
Paciente
dentista
Objetos
Paciente
Consulta/Ficha de consulta
Agenda
Horrio
Dentista
Servio
RG
Endereo
Telefone
Data nascimento
Profisso
Hora
Data
Tipo de servio
Verbos de ao
Funes do sistema
Mtodos
+ genricos
use case
Tabela de Eventos
n
descrio
entrada
sada
Use case
Solicitao
Consulta
Msg1
Marcar consulta
Paciente se cadastra
Dados cadastro
Msg2
Cadastrar paciente
Dados confirmao
Msg3
Confirmar consulta
Descrio servios
Msg4
Solicitao de ficha
fichas de
consulta
(08:00 hs)
Agenda dia
(segunda-feira 08:00
hs)
Agenda
semana
(08:00 hs)
Agenda 2 dias
dados confirmao
confirmar consulta
msg3
AtorPaciente
dados cadastro
msg2
cadastrar paciente
marcar consulta
msg1
descrio servios
registrar servios
efetuados
solicitao de ficha
AtorDentista
msg4
pesquisar fichas de
consulta
fichas de consulta
secretria
(agente)
agenda 2 dias
agenda semana
OU
resgatar agenda
agenda
secretria
(agente)
Descrio do caso
de uso (1) dados cadastro
Curso Normal
1. Paciente fornece dados para cadastro;
cadastrar paciente
msg2
AtorPaciente
Descrio do caso
Curso Normal
de
uso
(2)
1. O paciente solicita consulta para um
solicitao consulta
determinado dia;
2. O sistema abre a agenda do dentista e
mostra os horrios de atendimento para o
dia escolhido;
3. O paciente confirma o horrio escolhido
ao sistema;
4. O sistema solicita o nome do paciente;
5. O paciente informa o nome;
6. O sistema verifica que j existe o
cadastro do paciente;
7. O sistema agenda, no horrio e data
escolhidos, a consulta com este paciente;
8. O sistema emite a msg1 "Consulta
Agendada"
marcar consulta
AtorPaciente
msg1
Cursos Alternativos
Caso 2: Paciente deseja escolher horrios de
outro dia
3. O paciente deseja outro horrio
3.1. O sistema retorna ao passo 1;
Caso 3: Paciente ainda no foi cadastrado
6 O sistema verifica que o paciente no
cadastrado
6.1. O sistema inicia o use case cadastrar
paciente;
6.2. O sistema continua com o passo 7
Descrio do caso
de uso (3)
Curso Normal
descrio servios
Descrio do caso
de uso (4)
dados confirmao
AtorPaciente
confirmar consulta
msg3
Curso Normal
1. O paciente solicita a confirmao da consulta com o sistema;
2. O sistema verifica se existe uma consulta marcada para este
paciente;
3. O paciente confirma os dados;
3. O sistema altera a situao da consulta para confirmada;
4. O sistema emite a Msg3 "Consulta confirmada".
Classes
Paciente
Nome
RG
Consulta
Exame
Servio
Limpeza/Restaurao
Horrio
Endereo
Telefone
Data nascimento
Profisso
Hora
Data
Tipo de servio
Diagrama de Classes
Generalizao: um tipo de
Associao
Diagrama de classes
Paciente
nome
rg
endereo
telefone
data de nascimento
Profisso
consulta
Agenda
ano
0..n
1
formada por
n
Servio
descrio
preo
Limpeza/Restaurao
material usado
dente tratado
Consulta
histrico
realiza
0..n
0..n
Exame
medida preventiva
tipo de exame
marcada em
0..1
1..n
Horrio
data
hora
Diagrama de Seqncia
cadastrar paciente
(curso normal)
: Paciente
: AtorPaciente
dados paciente
cadastrar paciente( )
VerificarPacienteCadastrado()
Diagrama de Seqncia
cadastrar
: Paciente
: AtorPaciente
dados paciente
cadastrar paciente( )
VerificarPacienteCadastrado()
Diagrama de
Seqncia marcar consulta curso
: AtorPaciente
: Agenda
: Consulta
: Horrio
: Paciente
solicitao de consulta
AbrirAgenda( )
ObterHorariosDisponiveis( )
horrios disponveis
confirmao de horrio
AlterarDisponibilidadeHorrio( )
HorarioPreenchido
SolicitaodeNome
NomePaciente
VerificarPacienteCadastrado()
PacienteCadastrado
RegistarConsulta( )
normal
ConsultaRegistrada
Diagrama de Classes
(atributos e mtodos)
Paciente
nome
rg
endereo
telefone
data de nascimento
Profisso
Agenda
consulta
0..n
VerificarPacienteCadastrado()
AdicionarPaciente()
ObterPaciente()
ObterConsulta()
AdicionarConsulta()
LocalizarPaciente()
CadastrarPaciente()
Servio
descrio
preo
RegistrarServio()
RecuperarServio()
Limpeza/Restaurao
material usado
dente tratado
ano
formada por
n
Horrio
Consulta
realiza
0..n
0..n
AbrirAgenda()
ResgatarAgendaDia()
ResgatarAgenda2Dias()
ResgatarAgendaSemana()
1
histrico
marcada em
RegistarConsulta()
RecuperarHistricoConsulta()
0..1
Exame
medida preventiva
tipo de exame
1..n
data
hora
ObterHorariosDisponiveis()
AlterarDisponibilidadeHorrio()
Pousada
O gerente de uma pousada deseja um sistema para gerenciar as reservas.
Quando um cliente potencial deseja fazer uma reserva, o sistema verifica se existem
quartos disponveis no perodo, e em caso positivo, o sistema solicitar os dados do
cliente (nome, endereo, telefone).
O sistema tambm deve armazenar sobre a reserva a data prevista para entrada, data
prevista para sada, valor do desconto concedido e o nmero de quartos.
Cada quarto possui um preo e uma descrio. No h frigobar. Nem sevios de quarto.
As reservas so garantidas atravs do pagamento de uma diria.
Caso o cliente no efetue este pagamento at trs dias antes da data prevista de
entrada, a reserva cancelada pelo sistema. Um relatrio de reservas canceladas
gerado pelo sistema diariamente. Outros relatrios dirios so o relatrio de reservas
no pagas e o relatrio sobre as reservas a serem efetivadas no dia.
O gerente tambm deseja que o sistema imprima um relatrio de reservas dado um
determinado perodo.
Substantivos
Atributos
Atores
Cliente
Objetos
Cliente
Quarto
Reserva
pagame
nto
Nome
Endereo
Telefone
Nmero
Preo
Descrio
Perodo
Desconto
Situao
Valor
Situao
Verbos de ao
Funes do sistema
Mtodos
+ genricos
use case
pagas diariamente
(sistema) gerar relatrio de reservas a
serem efetivadas no dia
(gerente) solicitar relatrio de reservas
para um perodo
(sistema) gerar relatrio de reservas para
um perodo
Tabela de Eventos
n
descrio
entrada
sada
Use case
Solicitao
Reserva
Msg1
Fazer reserva
Dados Pagamento
Reserva
Msg2
Confirmar reserva
(08:00 hs)
Relatrio de
reservas no pagas
Imprimir Relatrio de
Reservas no Pagas
(12:00 hs)
Relatrio de
reservas canceladas
Imprimir Relatrio de
Reservas Canceladas
(12:00 hs)
Relatrio Reservas
para Hoje
Imprimir Relatrio de
Reservas para Hoje
perodo
Reservas no perodo
Consultar Reservas no
Perodo
solicitao reserva
AtorCliente
FazerReserva
msg1
ConfirmarReserva
msg2
ImprimirRelatrio
ReservasNoPagas
AtorGerente
ImprimirRelatrio
ReservasCanceladas
ImprimirRelatrioReservasHoje
AtorGerente
ConsultarReservasPerodo
reservas no perodo
Descrio do caso de
Curso Normal
uso
(1)
1. O cliente solicita uma reserva para um perodo;
solicitao reserva
AtorCliente
FazerReserva
msg1
Cursos Alternativos
Caso 2: no existe quarto disponvel no
perodo fornecido pelo cliente
Descrio do caso de
uso (2)
dados pagamento reserva
AtorCliente
ConfirmarReserva
msg2
Curso Normal
1. O Cliente fornece os dados do pagamento da reserva;
2. O sistema registra o pagamento da reserva;
3. O sistema emite msg2 "Reserva garantida"
Descrio do caso de
uso (3)
relatrio reservas canceladas
AtorGerente
ImprimirRelatrio
ReservasCanceladas
Curso Normal
1. O sistema lista todas as reservas;
2. Para cada reserva:
2.1. o sistema verifica se o pagamento da reserva foi realizado;
2.2. Caso no tenha sido realizado, O sistema verifica se o tempo para garantir a
reserva atravs do pagamento expirou;
2.3. Caso o tempo tenha expirado, o sistema cancela esta reserva e adiciona a reserva
no relatrio.
3. O relatrio de reservas canceladas entregue ao gerente.
Diagrama de Classes
Quarto
preo
descrio
nmero
Reserva
data entrada
data sada
desconto
1..*
1
reserva
garante
0..1
Cliente
nome
endereo
telefone
0..1
faz
1
0..1
Pagamento
valor
situao
Diagrama de Seqncia
fazer reserva (curso normal)
: AtorCliente
: Reserva
: Quarto
solicitao reserva
ListarQuartos( )
nro dos quartos
VerificarDisponibilidade( )
quartos disponveis
quartos selecionados
CalcularDesconto( )
desconto concedido
dados para reserva
CadastrarCliente( )
Cliente cadastrado
FazerReserva( )
msg1"reserva efetuada"
: Cliente
Diagrama de
Seqncia -
alternativo)
: AtorCliente
: Reserva
: Quarto
solicitao reserva
ListarQuartos( )
nro dos quartos
VerificarDisponibilidade( )
Diagrama de
Seqncia -
normal)
: AtorCliente
: Pagamento
Diagrama de
Seqncia
: AtorGerente
canceladas
: Reserva
(curso normal)
: Pagamento
ListarTodasReservas( )
VerificarPagamento( )
pagamento no efetuado
VerificarTempoParaGarantirReservaExpirou( )
"expirou"
CancelarReserva( )
AdicionarReservaRelatrio( )
relatrio de reservas canceladas
Diagrama de Classe
Reserva
Quarto
preo
descrio
nmero
data entrada
data sada
desconto
VerificarDisponibilidade()
CalcularDesconto()
FazerReserva()
ListarTodasReservas()
AdicionarReservaRelatrio()
VerificarTempoParaGarantirReservaExpirou()
CancelarReserva()
1
ListarQuartos()
1..*
reserva
garante
0..1
0..1
Cliente
nome
endereo
telefone
CadastrarCliente()
Pagamento
valor
situao
faz
1
0..1
RegistrarPagamento()
VerificarPagamento()