Upload
andre-constantino-da-silva
View
11.472
Download
13
Embed Size (px)
DESCRIPTION
Slides contendo a aplicação de métodos para criação de diagramas UML a nível de análise considerando o contexto de uma biblioteca.
Citation preview
UML – Exemplos de Modelagemaula 2
André Constantino da SilvaJúnia C. A. SilvaDC- UFSCar 2003
BibliotecaUma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
Quais são os substantivos?Uma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
Quais são os substantivos relevantes?Uma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
Identificando Atores• Atores são fontes de informação para o sistema,
solicitam informações do sistema• Agentes apenas interagem com o sistema,
sendo um meio entre o Ator e o Sistema
Livros LeitorEmpréstimo Prazo de devoluçãoBibliotecária RetiradoDisponível Atraso
Identificando Objetos• São coisas sobre as quais o sistema deseja
guardar informação
Livros LeitorEmpréstimo Prazo de devoluçãoBibliotecária RetiradoDisponível Atraso
Identificando Atributos dos Objetos• São informações dos objetos que devem ser
armazenados pelo sistema
Livros LeitorEmpréstimo Prazo de devoluçãoBibliotecária RetiradoDisponível Atraso
Relacionando o atributo aos seu objeto
• Atores– Leitores– Bibliotecária
• Objetos– Leitor– Livro– Empréstimo
•Atributos
•Situação (disponível ou retirado)
•Prazo de devolução
Representação Padrão
verboPredicadoAtorX
dados ou solicitação
mensagem ou objeto
Como obtemos os casos de uso?
Quais são os verbos de ação?Uma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
Tabela de Eventosnº descrição e
ntrada
saída
Use case
1 Leitor solicita cadastro dadosLeitor Msg1
CadastrarLeitor
2 Bibliotecária cadastra livro dadosLivro Msg2 CadastrarLivro
3 Leitor solicita empréstimo de livro
dadosEmpréstimo Msg3, livro ObterLivroEmpréstimo
4 Leitor devolve livro emprestado
livro
Msg4
DevolverLivro
5 Usuário (leitor ou bibliotecária) consulta acervo
dadosConsulta
dadosLivro
ConsultarLivro
6 É hora de imprimir relatório de leitores
RelatórioLeitores
ImprimirRelatórioLeitores
7 É hora de imprimir relatório de leitores com empréstimos em atraso
RelatórioLeitores Atrasados
ImprimirRelatórioLeitoresAtrasados
8 É hora de imprimir relatório de livros disponíveis
RelatórioLivros Disponíveis
ImprmirRelatórioLivros Disponíveis
9 É hora de imprimir relatório de livros retirados
RelatórioLivros Retirados
ImprimirRelatórioLivros Retirados
Casos de uso para o ator leitorUma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
ObterLivroEmprestimo DevolverLivro
CadastrarLeitor
ConsultarLivro
AtorLeitor
dadosEmprestimo
msg3, livro
livro
msg2
dadosLeitor msg1
dadosConsulta dadosLivroSolicitado
Diagramas de caso de uso (1)
Casos de uso para o ator bibliotecáriaUma biblioteca deve automatizar seus registros de livros, leitores e empréstimos. Suponha que seus procedimentos sejam básicos, onde não há reserva de livros, o prazo de devolução é de uma semana, não há multa e o leitor não tem limite máximo para retirada de livros. O sistema deve permitir a consulta da bibliotecária ou leitor ao acervo, indicando se o livro está retirado ou disponível, imprimir relatórios de leitores, leitores em atraso e livros disponíveis e retirados.
Diagramas de caso de uso (2)
ImprimirRelatórioLivrosDisponíveis
ImprimirRelatórioLeitoresAtrasadosImprimirRelatórioLeitores
ImprimirRelatórioLivrosRetirados
CadastrarLivro
ConsultarLivro
AtorBibliotecáriaRelatórioLivrosDisponíveis
RelatórioLeitoresAtrasadosRelatórioLeitores
RelatórioLivrosRetirados
dadosLivro msg2
dadosConsultadadosLivroConsultado
Como descrever os casos de uso?
Curso Normal
Número seqüência . Ator + verbo + complemento ;
Cursos Alternativos
Caso número: Descrição do caso alternativo
Número seqüência . Ator + verbo + complemento ;
Número seqüência . Finalizar caso de uso ou retornar ao passo...
Descrição do caso de uso: cadastrarLeitor
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
Cursos AlternativosCaso 1: o leitor já está cadastrado.2. O sistema verifica se este leitor está cadastrado;3. O sistema emite a msg1 'leitor já está cadastrado';4. Finalizar caso de uso.
Descrição do caso de uso: cadastrarLeitor
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
Cursos AlternativosCaso 1: o leitor já está cadastrado.2. O sistema verifica se este leitor está cadastrado;3. O sistema emite a msg1 'leitor já está cadastrado';4. Finalizar caso de uso.
Descrição do caso de uso: cadastrarLeitor
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
Cursos AlternativosCaso 1: o leitor já está cadastrado.2. O sistema verifica se este leitor está cadastrado;3. O sistema emite a msg1 'leitor já está cadastrado';4. Finalizar caso de uso.
Descrição do caso de uso: cadastrarLeitor
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
Cursos AlternativosCaso 1: o leitor já está cadastrado.2. O sistema verifica se este leitor está cadastrado;3. O sistema emite a msg1 'leitor já está cadastrado';4. Finalizar caso de uso.
: AtorLeitor : Leitor
Diagrama de Seqüência - cadastrarCliente (curso normal)
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
Linha do tempo
Diagrama de Seqüência - cadastrarCliente (curso normal)
: AtorLeitor : Leitor
dadosLeitor
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
: AtorLeitor : Leitor
dadosLeitor
verificarLeitorCadastro( )
'não cadastrado'
Diagrama de Seqüência - cadastrarCliente (curso normal)
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitornão está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
: AtorLeitor : Leitor
dadosLeitor
verificarLeitorCadastro( )
'não cadastrado'
AdionarNovoLeitor( )
Diagrama de Seqüência - cadastrarCliente (curso normal)
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitornão está cadastrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
: AtorLeitor : Leitor
dadosLeitor
verificarLeitorCadastro( )
'não cadastrado'
AdionarNovoLeitor( )
msg1 'Leitor cadastrado'
Diagrama de Seqüência - cadastrarCliente (curso normal)
AtorLeitor CadastrarLeitor
dadosLeitor
msg1
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está castrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
: AtorLeitor : Leitor
'cadastrado'
dadosLeitor
verificarLeitorCadastro( )
msg1 'Leitor já está cadastrado'
Diagrama de Seqüência - cadastrarCliente (curso alternativo)
Curso Normal1. O leitor fornece seus dados;2. O sistema verifica se este leitor não está castrado;3. O sistema adiciona novo leitor; 4. O sistema emite a msg1 'leitor cadastrado'.
Cursos Alternativos
Caso 1: o leitor já está cadastrado.2. O sistema verifica se este leitor
está cadastrado;3. O sistema emite a msg1 'leitor já
está cadastrado';4. Finalizar caso de uso.
Diagrama de Seqüência – ObterLivroEmprestado (curso normal)
: AtorLeitor : Livro : Leitor : Empréstimo
dadosEmprestimo
emprestarLivro( )
verificarSituação( )
'disponível'
verificarLeitorCadastro( )
'cadastrado'
efetuarEmprestimo( )
alterarSituação ('emprestado')
return
Msg01 'Livro emprestado', livro
Curso Normal1. O leitor fornece os dados para empréstimo;2. O sistema verifica se a situação do livro é 'disponível';3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado;4. Em caso afirmativo, o sistema efetua o empréstimo;5. O sistema altera a situação do livro para 'emprestado';6. O sistema emita a msg01 'Livro emprestado', fornecendo o livro solicitado.
Diagrama de Seqüência – ObterLivroEmprestado (curso alternativo)
Cursos AlternativosCaso 1: O livro está emprestado.3. Em caso negativo, sistema emite a msg01 'Este livro já está emprestado'.4. Abandonar o use case.
: AtorLeitor : Livro : Empréstimo
dadosEmprestimo
emprestarLivro( )
verificarSituação( )
'emprestado'
Msg01 'Este livro já está emprestado'
Curso Normal1. O leitor fornece os dados para empréstimo;2. O sistema verifica se a situação do livro é 'disponível';3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado;4. Em caso afirmativo, o sistema efetua o empréstimo;5. O sistema altera a situação do livro para 'emprestado';6. O sistema emita a msg01 'Livro emprestado', fornecendo o livro solicitado.
Diagrama de Seqüência – ObterLivroEmprestado (curso alternativo)
Cursos AlternativosCaso 2: O leitor não está cadastrado.4. Em caso negativo, sistema emite a msg01 'Leitor não cadastrado'.5. Abandonar o use case.
Curso Normal1. O leitor fornece os dados para empréstimo;2. O sistema verifica se a situação do livro é 'disponível';3. Em caso afirmativo, o sistema verifica se o leitor está cadastrado;4. Em caso afirmativo, o sistema efetua o empréstimo;5. O sistema altera a situação do livro para 'emprestado';6. O sistema emita a msg01 'Livro emprestado', fornecendo o livro solicitado.
: AtorLeitor : Livro : Leitor : Empréstimo
dadosEmprestimo
emprestarLivro( )
verificarSituação( )
'disponível'
verificarLeitorCadastro( )
'não cadastrado'
Msg01 'Leitor não cadastrado'
Diagrama de Seqüência – consultarLivro (curso normal)
Cursos AlternativosCaso 1: não é encontrado nenhum livro com as especificações fornecidas3.1 O sistema emite a msg5 'Nenhum livro encontrado com as especificações fornecidas'.3.2. Abandonar o use case.
Curso Normal
1. O usuário fornece os dados da consulta;2. O sistema localiza o livro que possui as especificações fornecidas pelo usuário;3. O sistema exibe ao usuário os dados do livro encontrado.
: AtorUsuário : Livro
dadosConsulta
localizarLivro( )
exibirDadosLivro( )
dadosLivro
Se algum livro for encontrado com os dados especificados
Diagrama de Seqüência – consultarLivro (curso normal)
Cursos AlternativosCaso 1: não é encontrado nenhum livro com as especificações fornecidas3.1 O sistema emite a msg5 'Nenhum livro encontrado com as especificações fornecidas'.3.2. Abandonar o use case.
Curso Normal
1. O usuário fornece os dados da consulta;2. O sistema localiza o livro que possui as especificações fornecidas pelo usuário;3. O sistema exibe ao usuário os dados do livro encontrado.
: AtorUsuário : Livro
Se nenhum livro for encontrado com os dados especificados
dadosConsulta
localizarLivro( )
msg5 'Nenhum livro encontrado com as especificações fornecidas'
Empréstimo
dataRetiradadataDevolução
Leitor
nomeendereço
Livro
nomecódigosituação
Diagrama de Classes
Leitor deseja empréstimo de livro
Diagrama de Classes
Leitor deseja empréstimo de livro
Empréstimo
dataRetiradadataDevolução
Leitor
nomeendereço
Livro
nomecódigosituação 0..n0..n 0..n0..n
é emprestado
Revendedora de AutomóveisUma revendedora de automóveis deseja automatizar os registros de venda e de seus serviços de manutenção. Para isso, deseja manter informações sobre os carros novos e vendidos, clientes, e serviços prestados a esses clientes com seus carros (troca de peça, revisão, etc). Deseja-se que o sistema possa gerar relatórios de vendas, de clientes, de carros novos, de serviços.
Substantivos• Atores (fonte de informação/solicitação ao sistema)
• Objetos(coisas sobre as quais os sistema quer guardar informações)
• Agentes (meio entre ator e sistema)
•Carro•Venda•Serviços de manutenção•Cliente
•Novos
•Vendidos
•Troca de peças•revisão
Cliente (Gerente)
•Atributos dos objetos
Verbos de ação • Funções do sistema– Métodos
• + genéricos use case
(sistema) manter informações sobre carros (novos e usados)
(sistema) manter informações sobre clientes
(sistema) manter informações sobre serviços prestados
(sistema) gerar relatório de vendas
(sistema) gerar relatório de clientes
(sistema) gerar relatório de carros novos
(sistema) gerar relatório de serviços
Tabela e Eventosnº descrição entrada saída Use case
1 Cliente compra carro dadosVenda Msg1, Carro comprarCarro
2 Cliente solicita serviço de manutenção dadosManu tenção, carro
Msg2 fazerManutenção
3 Cliente retira carro após manutenção carro retirarCarroManutenção
Funcionário registra serviço efetuado dadosManutençãoServiço
Msg4 adionarServiçoManutenção
5 Cliente solicita cadastro dadosCliente Msg5 cadastrarCliente
6 É hora de imprimir relatório de vendas Relatório Vendas
imprimirRelatórioVendas
7 É hora de imprimir relatório de clientes Relatório Clientes
IiprimirRelatórioClientes
8 É hora de imprimir relatório de carros novos
Relatório CarrosNovos
imprimirRelatórioCarrosNovos
9 É hora de imprimir relatório de serviços Relatório de serviços
imprimirRelatórioServiços
Casos de Uso para o ator Cliente
fazerManutençãocomprarCarro
retirarCarroManutenção
cadastrarCliente
AtorCliente
dadosManutenção, carro
msg2
dadosVenda
msg1, carro
carro
dadosClientemsg5
Casos de Uso para atores Funcionário e Gerente
AdicionarServiçoManutençãoAtorFuncionário
dadosManutençãoServiço
msg4
ImprimirRelatórioServiços ImprimirRelatórioCarrosNovos
ImprimirRelatórioClientes
ImprimirRelatórioVendas
cadastrarCarroAtorGerente
RelatórioServiços
RelatórioCarrosNovos
RelatórioClientes
RelatórioVendas
dadosCarro
msg6
Descrição do caso de uso: comprarCarro
Curso Normal1. O cliente informa as características do carro desejado;2. O sistema obtém todos os carros disponíveis para venda;3. O sistema exibe os carros disponíveis para venda ao cliente;4. O cliente informa ao sistema o carro escolhido;5. O sistema verifica se este cliente já está cadastrado;6. Em caso afirmativo, o sistema solicita confirmação do cliente;7. O cliente confirma a compra;8. O sistema cadastra a nova venda;9. O sistema altera a situação do carro para 'vendido';10. O sistema emite a msg1 'Carro vendido'.
Cursos Alternativos
Caso 1: Não existe carro disponível para venda com as características solicitadas pelo cliente.3. O sistema emite a msg1 'Nenhum carro disponível para venda com tais características' 4. Finalizar caso de uso.
Caso 2: O cliente não foi cadastrado.6. O sistema emite a msg1 'Cliente não cadastrado';7. Finalizar caso de uso.
ComprarCarro AtorCliente
dadosVenda
msg1, carro
Diagrama de Seqüência – comprarCarro (curso normal)
: AtorCliente : Venda : CarroVenda : Cliente
dadosCarro
VenderCarro( )
obterCarrosDisponíveis( )
carroEscolhido, dadosCliente
carrosDisponíveis
confirmação
solicitaçãoConfirmação
CadastrarNovaVenda( )
alterarSituação ( "vendido" )
msg1 'Carro vendido'
VerificarClienteCadastrado( )
'cadastrado'
Curso Normal1. O cliente informa as características do carro desejado;2. O sistema obtém todos os carros disponíveis para venda;3. O sistema exibe os carros disponíveis para venda ao cliente;4. O cliente informa ao sistema o carro escolhido;5. O sistema verifica se este cliente já está cadastrado;6. Em caso afirmativo, o sistema solicita confirmação do cliente;7. O cliente confirma a compra;8. O sistema cadastra a nova venda;9. O sistema altera a situação do carro para 'vendido';10. O sistema emite a msg1 'Carro vendido'.
Diagrama de Seqüência – comprarCarro (cursos alternativos)
: AtorCliente : Venda : CarroVenda
dadosVenda
VenderCarro( )
obterCarrosDisponíveis( )
msg1 'Nenhum carro disponível para venda com tais características'
: AtorCliente : Venda : CarroVenda : Cliente
dadosVenda
VenderCarro( )
carroEscolhido
dadosCliente
msg1 'Cliente não cadastrado'
obterCarrosDisponíveis( )
carrosDisponíveis
VerificarClienteCadastrado( )
'não cadastrado'
Descrição do caso de uso: fazerManutenção
Curso Normal
1. O cliente informa os seus dados;2. O sistema verifica se o cliente já está cadastrado;3. Em caso afirmativo,verifica quais carros foram comprados pelo cliente;4. O sistema solicita a escolha do carro que vai para a manutenção;5. O cliente informa o carro;6. O sistema solicita o motivo do serviço;7. O cliente informa o motivo do serviço;8. O sistema cadastra o serviço;9. O sistema emite a msg2 'Carro enviado para realizar o serviço'.
Cursos Alternativos
Curso 1: O cliente não está cadastrado.3. Em caso negativo, sistema emite a msg2 'Cliente não cadastrado'.4. Finalizar caso de uso.
Curso 2: O cliente não comprou carro.4. O sistema emite a msg2 'Cliente não comprou carro nesta revendedora'.5. Finalizar caso de uso.
fazerManutençãoAtorCliente
dadosManutenção, carro
msg2
Diagrama de Seqüência – fazerManutenção (curso normal)
: AtorCliente : Cliente : Carro : Serviço
VerificarClienteCadastrado( )
dadosCliente
'cadastrado'
solicitaçãoMotivoServiço
motivoServiço
solicitaServiço( )
msg2 'Carro enviado para realizar o serviço'
obterCarroCompradoCliente( )
'carros comprados lista de carros
solicitaçãoEscolhaCarro
carro
Curso Normal
1. O cliente informa os seus dados;2. O sistema verifica se o cliente já está cadastrado;3. Em caso afirmativo,verifica quais carros foram comprados pelo cliente;4. O sistema solicita a escolha do carro que vai para a manutenção;5. O cliente informa o carro;6. O sistema solicita o motivo do serviço;7. O cliente informa o motivo do serviço;8. O sistema cadastra o serviço;9. O sistema emite a msg2 'Carro enviado para realizar o serviço'.
Diagrama de Classes
Serviço
descriçãopreço
Venda
data
Cliente
nomeendereçotelefoneCPF
Carro
placafabricantemodeloano
0..n0..1
1..n1
compra
envia para serviço
0..n0..1
1..n1
Diagrama de Classes
Serviço
descriçãopreço
Venda
data
Cliente
nomeendereçotelefoneCPF
Carro
placafabricantemodeloano
0..n0..1
1..n1
compra
envia para serviço
0..n0..1
1..n1
Revisão TrocaPeças
Diagrama de Classes (atributos e métodos)
Venda
data
VenderCarro()CadastrarNovaVenda()imprimirRelatórioVendas()obterTodasVendas()adicionarVendaRelatório()
CarroVenda
situação
obterCarrosDisponíveis()adicionarCarroRelatorio()imprimirRelatórioCarrosNovos()
Serviço
descriçãopreço
ImprimirRelatórioServiços()adicionarServicoRelatorio()obterTodosServiços()localizarServiço()exibirServiços()
Cliente
nomeendereçotelefoneCPF
VerificarClienteCadastrado()ObterTodosClientes()ImprimirRelatórioClientes()adicionarClienteRelatório()
0..n
0..1
0..n
0..1
compra
Manutenção
dataSolicitaçãosituaçãomotivo
CadastrarManutenção()VerificarExistênciaManutenção()VerificarTérminoManutenção()AlterarSituação()localizarManutenção()adicionarServiçoRealizado()
0..n
1
0..n
1
solicita
0..n 1..n0..n 1..n
realiza
Carro
placafabricantemodeloano
verificarCarroCadastrado()alterarSituação()
0..n
0..n
0..n
0..n
possui
0..n
1
0..n
é enviado1