UML Exemplos de Modelagem André Constantino da Silva Júnia C. A. Silva DC- UFSCar 2003
Biblioteca 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? 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 Empréstimo Bibliotecária Disponível Leitor Prazo de devolução Retirado Atraso
Identificando Objetos São coisas sobre as quais o sistema deseja guardar informação Livros Empréstimo Bibliotecária Disponível Leitor Prazo de devolução Retirado Atraso
Identificando Atributos dos Objetos São informações dos objetos que devem ser armazenados pelo sistema Livros Empréstimo Bibliotecária Disponível Leitor Prazo de devolução Retirado 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 dados ou solicitação AtorX mensagem ou objeto verbop redicado 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 Eventos nº descrição entrada 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 7 É hora de imprimir relatório de leitores com empréstimos em atraso 8 É hora de imprimir relatório de livros disponíveis 9 É hora de imprimir relatório de livros retirados RelatórioLeitores RelatórioLeitores Atrasados RelatórioLivros Disponíveis RelatórioLivros Retirados ImprimirRelatórioLeitores ImprimirRelatórioLeitores Atrasados ImprmirRelatórioLivros Disponíveis ImprimirRelatórioLivros Retirados
Casos de uso para o ator leitor 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.
Diagramas de caso de uso (1) Cons ultarlivro dadosco nsulta dadoslivrosolicitad o d adosem prestimo livro ObterLivroEm pres tim o msg3, livro AtorLeitor msg2 DevolverLivro dados Leitor msg1 Cadas trarleitor
Casos de uso para o ator bibliotecária 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.
Diagramas de caso de uso (2) Cons ultarlivro dadosc onsulta dados LivroCons ultado Im prim irrelatórioleitores RelatórioLeitores Im prim irrelatórioleitores Atras ados RelatórioLeitores Atras ados RelatórioLivros Retirados AtorBibliotec ária RelatórioLivros Dis poníveis Im prim irrelatóriolivrosretirados dadosli vro ms g2 Im prim irrelat órioli vrosdis p oníveis Cadas trarlivro
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 dadosleitor A torleitor msg1 CadastrarLeitor Curso Normal 1. 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'. 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.
Descrição do caso de uso: cadastrarleitor dadosleitor A torleitor msg1 CadastrarLeitor Curso Normal 1. 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'. 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.
Descrição do caso de uso: cadastrarleitor dadosleitor A torleitor msg1 CadastrarLeitor Curso Normal 1. 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'. 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.
Descrição do caso de uso: cadastrarleitor dadosleitor A torleitor msg1 CadastrarLeitor Curso Normal 1. 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'. 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 - cadastrarcliente (curso normal) Curso Normal 1. 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'. : AtorLeit or : Leitor Linha do tempo
Diagrama de Seqüência - cadastrarcliente (curso normal) Curso Normal 1. 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'. : AtorLeit or dados Leitor : Leitor dados Leitor A torleitor msg1 Cadas trarleitor
Diagrama de Seqüência - cadastrarcliente (curso normal) Curso Normal 1. 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'. : Ato rleitor dados Leitor : Leitor verificarleitorcadastro( ) 'não cadastrado'
Diagrama de Seqüência - cadastrarcliente (curso normal) Curso Normal 1. 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 dadosleitor : Leitor verificarleitorcadastro( ) 'não cadastrado' Adionar NovoLeitor( )
Diagrama de Seqüência - cadastrarcliente (curso normal) Curso Normal 1. 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'. : Leitor : Ato rleitor dadosleitor msg1 'Leitor cadastrado' verific arleitorcadastro( ) 'não cadas trado' AdionarNovoLeitor( ) dados Leitor A torleitor msg1 Cadas trarleitor
Diagrama de Seqüência - cadastrarcliente (curso alternativo) Curso Normal 1. 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. : AtorLeitor dadosleitor : Leitor msg1 'Leitor já está cadastrado' verificarleitorcadastro( ) 'cadastrado'
Diagrama de Seqüência ObterLivroEmprestado (curso normal) Curso Normal 1. 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. : AtorLeit or dadosemprestimo : Empréstimo emprest arlivro( ) veri ficarsit uação( ) 'disponível ' : Livro : Leitor verific arlei to rcadastro( ) 'cadast rado' efetuaremprestimo( ) alterarsituaç ão ('em prestado') return Msg01 'Livro emprestado', livro
Diagrama de Seqüência ObterLivroEmprestado (curso alternativo) Curso Normal 1. 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. Cursos Alternativos Caso 1: O livro está emprestado. 3. Em caso negativo, sistema emite a msg01 'Este livro já está emprestado'. 4. Abandonar o use case. : Em pré stimo : Livro : AtorLeitor dadosem prestimo em pres tarlivro( ) verificarsituaçã o( ) 'emprestado' Msg01 'Este livro já est á emprestado'
Diagrama de Seqüência ObterLivroEmprestado (curso alternativo) Curso Normal : AtorLeit or 1. 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. Cursos Alternativos Caso 2: O leitor não está cadastrado. 4. Em caso negativo, sistema emite a msg01 'Leitor não cadastrado'. 5. Abandonar o use case. dadosemprestimo : Em préstimo emprest arlivro( ) verific arsituaç ão( ) 'dis ponível' Ms g01 'Leitor não cadas trado' : Livro : Leitor verific arleitorcadas tro( ) 'não cadast rad o'
Diagrama de Seqüência consultarlivro (curso normal) 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 dados Consulta da doslivro : Livro loc aliz arlivro( ) exibirdados Livro( ) Cursos Alternativos Caso 1: não é encontrado nenhum livro com as especificações fornecidas 3.1 O sistema emite a msg5 'Nenhum livro encontrado com as especificações fornecidas'. 3.2. Abandonar o use case. Se algum livro for encontrado com os dados especificados
Diagrama de Seqüência consultarlivro (curso normal) 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. Cursos Alternativos Caso 1: não é encontrado nenhum livro com as especificações fornecidas 3.1 O sistema emite a msg5 'Nenhum livro encontrado com as especificações fornecidas'. 3.2. Abandonar o use case. : At orusuário dados Consul ta : Livro Se nenhum livro for encontrado com os dados es pec ificados loc aliz arlivro( ) ms g5 'Nenhum livro encontrado c om as especific aç ões fornecidas'
Diagrama de Classes Leit or nome endereç o Livro nome código situaç ão Leitor deseja empréstimo de livro Empréstimo d ataretirada datadevolução
Diagrama de Classes Livro nome código situação 0..n é emprestado 0..n Leitor nome endere ço Leitor deseja empréstimo de livro Empréstimo dataretirada datadevolução
Revendedora de Automóveis Uma 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 Cliente (Gerente) (coisas sobre as quais os sistema quer guardar informações) Carro Venda Serviços de manutenção Cliente Atributos dos objetos Novos Vendidos Troca de peças revisão Agentes (meio entre ator e sistema)
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 Eventos nº 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 dadosmanute nçãoserviço Msg4 adionarserviçomanutenção 5 Cliente solicita cadastro dadoscliente Msg5 cadastrarcliente 6 É hora de imprimir relatório de vendas Relatório Vendas 7 É hora de imprimir relatório de clientes Relatório Clientes 8 É hora de imprimir relatório de carros novos Relatório CarrosNovos 9 É hora de imprimir relatório de serviços Relatório de serviços imprimirrelatóriovendas IiprimirRelatórioClientes imprimirrelatóriocarrosnovos imprimirrelatórioserviços
Casos de Uso para o ator Cliente c adast rarcli ente dados Cliente dadosvenda msg5 dadosmanutenç ão, c arro c om prarcarro msg1, carro AtorCliente msg2 fazerm anutenção carro retirarcarrom anutenç ão
Casos de Uso para atores Funcionário e Gerente dados Manutenç ãoserviç o AtorFunc ionário msg4 Adic ionarserviç om anutenç ão Im prim irrelatóriov endas Re lat óri ov endas dad oscarro RelatórioClientes c adas trarcarro msg6 A torgerente Imprim irrelatórioclientes Re latóri ocarrosn ovos Rela tórioserviços Im prim irrelatórios erviç os Im prim irrelatóriocarrosnovos
Descrição do caso de uso: comprarcarro dado sve nda Curso Normal 1. 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'. ComprarCarro Cursos Alternativos msg1, carro 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. A torcliente
Diagrama de Seqüência comprarcarro (curso normal) Curso Normal 1. 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'. : AtorCliente dad oscarro : Venda : CarroVenda : Cliente carrosdisponíveis carroe scolhido, dadoscliente solicitaçãoconfirm ação confirm ação m sg1 'Carro vendido' VenderCarro( ) obt ercarrosdisponíveis( ) V erificarclientecadastrado( ) 'c adastrado' Cadast rarnovav enda( ) alterarsituação ( "vendido" )
Diagrama de Seqüência comprarcarro (cursos alternativos) : AtorCliente : Venda : CarroVenda : AtorCliente : Venda : CarroV enda : Cliente dadosv enda dadosvenda V endercarro( ) VenderCarro( ) obtercarrosdisponíveis( ) obt ercarrosdi sponívei s( ) m sg1 'Nenhum carro disponível para venda com tais características' carrosdisponíveis carroescolh ido dadoscliente VerificarClienteCadastrado( ) 'não cadastrado' msg1 'Cliente 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'. A torcliente dadosmanutenção, carro msg2 fazerman utenç ã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.
Diagrama de Seqüência fazermanutenção (curso normal) 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'. : AtorCli ente dados Cliente solici ta çãoescolh aca rro carro s olicitaçãom otivoserviç o m otivoserviç o : Serviço : Cliente : Carro VerificarClienteCadas trado( ) 'c adas trado' s olicitaserviç o( ) msg2 'Carro enviado para realizar o serviço' obtercarrocom pradocliente( ) 'carros comprados lista de carros
Diagrama de Classes Venda data Cli ente Carro nome endereç o telefone CPF 0..1 1 com pra envia para serviço 0..n 1..n p laca fabricante modelo a no Serviço descrição preço
Diagrama de Classes Venda data Cli ente Carro n ome e ndereço t elefone CPF 0..1 1 compra envia para serviço 0..n 1..n placa fabric ante modelo ano Serviço descriç ão preço Revisão TrocaPeças
Diagrama de Classes (atributos e métodos) placa fabricante modelo ano Ca rro 1 é enviado situação CarroV enda obtercarrosdisponíveis() adicionarcarrorelatorio() im primirrelatóriocarrosnovos() 0..n compra verificarcarrocadastrado() alterars ituação() nome endereço telefone CPF 0..n Cliente possui 0..n Manutenção datasoli citação situaç ão motivo CadastrarMa nuten ção() V erificarexistênciam anutenção() V erificartérm inomanutenção() Alt erarsituação() localizarma nuten ção() adicionars erviçorealiz ado() solicita 0..n 0..n 0..n realiza 1..n descrição preço Serviço Im primirrelatórioserviços() adicionarservicorelatorio() obtertodoss erviços() localizarserviço() exibirserviços() Venda 0..1 VerificarClienteCadastrado() ObterTodosClientes() Im prim irrelatórioclientes() adicionarclienterelatório() 1 data VenderCarro() CadastrarNovaV enda() imp rimirrelat óriov endas() obt ertodasv endas () adicionarve ndarelatório()