Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia...
Transcript of Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia...
![Page 1: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/1.jpg)
Notação Básica dos Diagramas de Comunicação
UNIVERSIDADE ESTADUAL PAULISTAINSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATASDEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA
Diagramas de Comunicação
Projeto e Desenvolvimento de Sistemas de Informação
![Page 2: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/2.jpg)
RefinarPlano
Sincronizarartefatos
Analisar Projetar Construir Testar
1. Refinar a arquitetura do sistema
2. Definir diagramasde interação
3. Definir Diagramas deClasses de Projeto
4. Definir o EsquemaDo Banco de Dados
![Page 3: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/3.jpg)
Conclusão da Fase de Análise
� A fase de análise enfatiza uma compreensão dos requisitos do sistema.
� Conjunto mínimo de artefatos:
Artefato da Análise
Casos de Uso
Modelo Conceitual
Diagramas de Sequência do Sistema
Contratos
Questões respondidas
Quais são os processos do domínio?
Quais são os conceitos, os termos?
Quais são os eventos e operações?
O que fazem as operações do sistema?
![Page 4: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/4.jpg)
O começo da fase projetar� Nesta fase é desenvolvida uma solução
lógica baseada no paradigma orientado a objetos.
� Os dois artefatos principais a serem � Os dois artefatos principais a serem desenvolvidos são:� Diagramas de Interação
� Princípios para atribuição de responsabilidades aos objetos envolvidos em uma operação
� Uso de Padrões.� Diagramas de Classe de Projeto
![Page 5: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/5.jpg)
O que já foi visto até agoraCasos de Uso Completo Abstrato
Caso de Uso: Emprestar Livro
Ator Principal: Atendente
Interessados e Interesses:
- Atendente: deseja registrar que um ou mais livros estão em posse de um leitor, para
controlar se a devolução será feita no tempo determinado.
- Leitor: deseja emprestar um ou mais livros, de forma rápida e segura.
- Bibliotecário: deseja controlar o uso dos livros, para que não se percam e para que
sempre se saiba com que leitor estão no momento.
Pré-Condições: O Atendente é identificado e autenticado. Emprestar Livro
Diagrama de Casos de Uso
Pré-Condições: O Atendente é identificado e autenticado.
Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados
no Sistema. Os livros emprestados possuem status “emprestado”
Cenário de Sucesso Principal:
1. O Leitor chega ao balcão de atendimento da biblioteca e diz ao atendente que deseja
emprestar um ou mais livros da biblioteca.
2. O Atendente seleciona a opção para realizar um novo empréstimo.
3. O Atendente solicita ao leitor sua carteira de identificação, seja de estudante ou
professor.
4. O Atendente informa ao sistema a identificação do leitor.
5. O Sistema exibe o nome do leitor e sua situação.
6. O Atendente solicita os livros a serem emprestados.
7. Para cada um deles, informa ao sistema o código de identificação do livro.
8. O Sistema informa a data de devolução de cada livro.
9. Se necessário, o Atendente desbloqueia os livros para que possam sair da biblioteca.
10. O Leitor sai com os livros.
Fluxos Alternativos: (1-8). A qualquer momento o Leitor informa ao Atendente que desistiu do empréstimo.
3. O Leitor informa ao Atendente que esqueceu a carteira de identificação.
1. O Atendente faz uma busca pelo cadastro do Leitor e pede a ele alguma
informação pessoal para garantir que ele é mesmo quem diz ser.
4. O Leitor está impedido de fazer empréstimo, por ter não estar apto.
1.Cancelar a operação.
7a. O Livro não pode ser emprestado, pois está reservado para outro leitor.
1. O Atendente informa ao Leitor que não poderá emprestar o livro e pergunta se
deseja reservá-lo.
2. Cancelar a operação (se for o único livro)
7b. O Livro não pode ser emprestado, pois é um livro reservado somente para consulta.
1. Cancelar a operação (se for o único livro)
Consultar Livro
Devolver Livro
Atendente
Incluir LivroBibliotecária
Comprar Livro
Leitor
![Page 6: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/6.jpg)
O que já foi visto até agoraCasos de uso com
substantivos e verbos sublinhados
Caso de Uso 1
Modelo Conceitual
Atendente Leitor0..n1 0..n1
Reserva
períodosituacao : char0..n0..n
1
^
faz
0..1
0..1
0..1
0..1
corresponde a
0..10..1 corresponde a0..n0..n
Caso de Uso 2
Caso de Uso n
.
.
.
Atendente
nome
Leitor
nometipo : char
0..n1 0..n1
registra
Empréstimo/Devolução
data do empréstimosituação : Char0..n1 0..n1
faz
LinhaDoEmpréstimo
data_prevista_devoluçãodata_entrega_real
1..n
1
1..n
1 possui
Bibliotecaria
nome
0..10..1
CopiaDoLivro
nro sequencialsituacao : charliberadoParaEmprestimo : char
1
0..n
1
0..n
< refere-se a
Livro
titulo : String[30]autor : String[30]ano : intISBN : string[20]editora : inttipo : char
0..n1 0..n
registra
11refere-se a >
0..n0..n
1possui
![Page 7: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/7.jpg)
O que já foi visto até agora
Modelo Conceitual
+
Casos de Uso
![Page 8: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/8.jpg)
O que foi visto até agora
![Page 9: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/9.jpg)
Projeto Orientado a Objetos
� Finalizada a análise, parte-se para o Projetodo sistema.
� Artefatos de projeto contém detalhes de como o sistema poderá ser implementado como o sistema poderá ser implementado utilizando um computador.� Comportamento esperado de cada objeto e a
colaboração entre os objetos -> diagramas de interação.
� Detalhar as informações sobre as classes que irão compor o sistema -> diagrama de classes.
![Page 10: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/10.jpg)
Diagramas de Interação
� A UML oferece dois tipos de diagrama para mostrar a interação entre os objetos do sistema, por meio de troca objetos do sistema, por meio de troca de mensagens:� Diagrama de sequência e� Diagrama de Comunicação (obs: era
chamado de Diagrama de Colaboração nas versões anteriores à UML 2.0)
![Page 11: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/11.jpg)
Diagrama de Sequência
mensagem1()
:instância da
Classe A
:instância da
Classe B
1:mensagem2()
:instância da
Classe C
SISTEMA
mensagem1()1:mensagem2()
2:mensagem3()3:mensagem4()
Observar que o diagrama de sequência na fase de projeto
“abre” o sistema em objetos que interagem entre si.
Objetos
![Page 12: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/12.jpg)
Diagramas de Comunicação
mensagem1():Instância da
Classe A
:Instância da
Classe B
1:mensagem2()
2:mensagem3()
3:mensagem4()
� Os diagramas de comunicação têm melhor capacidade de expressar informações contextuais e exceções e podem ser mais econômicos em termos de espaço.
:Instância da
Classe C
3:mensagem4()
![Page 13: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/13.jpg)
Diagramas de Comunicação
� São um dos artefatos mais importantes criados na análise e projeto OO
� O tempo gasto na sua criação deve absorver um percentual de tempo
� O tempo gasto na sua criação deve absorver um percentual de tempo significativo do tempo gasto no projeto
� Os padrões estabelecidos, os princípios e idiomas podem ser aplicados para melhorar a qualidade do projeto.
![Page 14: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/14.jpg)
Contribuições dos Diagramas de Comunicação
� Adição dos métodos� Adição da direção das associações� Possível detalhamento dos atributos e � Possível detalhamento dos atributos e
associações.� Possível alteração na estrutura das
classes e associações.� Possível criação de atributos privados
ou protegidos.
![Page 15: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/15.jpg)
Notação básica para diagramas de comunicação
Mensagem entre dois objetos
obj1:Classe1 obj2:Classe21:mensagem1(parâmetro1, parâmetro2)
• obj1 é uma instância da classe Classe1
• obj2 é uma instância da classe Classe2
• A mensagem1 está sendo enviada pelo objeto obj1 ao objeto obj2
• A mensagem1 passa dois parâmetros para o objeto obj2.
![Page 16: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/16.jpg)
Classes X Instâncias
Livro :Livro livro1:Livro
Classeinstância
Instância
nomeada
![Page 17: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/17.jpg)
ligações
obj1:Classe1 obj2:Classe21:mensagem1(parâmetro1, parâmetro2)
Linha de ligação
• Uma ligação é uma conexão entre duas instâncias
• Indicam que existe (ou é possível) alguma forma de navegação e de visibilidade entre as instâncias
• Uma ligação é uma instância de uma associação
![Page 18: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/18.jpg)
Mensagens
� Se existe uma ligação, podem fluir mensagens
� As mensagens podem ser escritas em diferentes sintaxes. Ex. UML, Java e
� As mensagens podem ser escritas em diferentes sintaxes. Ex. UML, Java e Smalltalk, etc.
� Sintaxe UML:
Return := message(parameter : parameterType) : returnType
![Page 19: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/19.jpg)
Ordem das mensagens, condicionais e atribuição às
variáveis
:CópiaTítulo :Empréstimo
1: [novo] criar(id_leitor, id_livro)
Criar só é executada se apto for true
:linhaDoEmpréstimo:Leitor
3: [apto] criar(t)
2: t=obterTipoLeitor()
obterTipoLeitor retorna um resultado que é armazenado na
variável t
A variável t é passada como parâmetro pelo
método criar
![Page 20: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/20.jpg)
Objeto como retorno de método
e1: Emprestimo
2: mudarSituacao("emprestada")
Agora e1 conhece c1 e pode enviar-lhe a mensagem
mudarSituacao()
l1: LinhaDoEmprestimo c1: CopiaDoLivro
1: c1: copia()
c1 é um objeto que retornou como resultado da
invocação de copia()
![Page 21: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/21.jpg)
Criação de instância
C++: aloc. automática ou
new + cham. construtor
Java: operador new
Smalltalk: new + initiatilize
:Obj1 <<new>>:Obj2
1:criar()
msg1()
![Page 22: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/22.jpg)
Condicionais e operadores lógicos e relacionais
e1: Emprestimo
1: [naoEstaEmAtraso] and [nroLivros < maximoPermitido] criar()
:linhaDoEmprestimo
c1: Classe1
c2: Classe2
c3: Classe3
1: [condicao1] mensagem1()
2: [not condicao1] mensagem2()
![Page 23: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/23.jpg)
Caminhos condicionais Mutuamente exclusivos
Apenas uma das mensagens é enviada, dependendo da condição ser verdadeira ou falsa
---
---
if (condicao = true)
:ClasseB.msg2()
msg1()
:ClasseA :ClasseB
:ClasseC
msg1()
1a: [condição] msg2()
1b:[not condição] msg3()
falsa :ClasseB.msg2()
else :ClasseC.msg3()
---
---
![Page 24: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/24.jpg)
Caminhos condicionais Mutuamente exclusivos
:ClasseE
2:msg6()
1a.1:msg3()
:ClasseA :ClasseB
:ClasseC
msg1() 1a: [condição] msg2()
1b:[not condição] msg4()
:ClasseD1b.1:msg5()
![Page 25: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/25.jpg)
Repetição de mensagem
c1: Classe1 c2: Classe2
1: [repita para i de 1 a 100] mensagem1(i)
Em ambos os casos, a mensagem é enviada várias vezes, sempre para o mesmo objeto.
c2: Classe2c1: Classe1
1: [para cada registro] mensagem1()
![Page 26: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/26.jpg)
Múltiplas mensagens na mesma iteração
msg1()
msg1() {
for i=1 to 10 {
meuB.msg2()
meuC.msg3()}
}
1*:[i:=1..10]msg2()
2*:[i:=1..10]msg3()
:A meuB:B
meuC:C
}
Cláusulas de
iteração iguais
![Page 27: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/27.jpg)
Coleções de objetos
� Em um DC pode ser necessário a representação de vários objetos de uma mesma classe (multi-objeto)
� Um multi-objeto ou conjunto de instâncias é representado por um ícone de objeto com repetições.
� Um multi-objeto normalmente é implementado como um grupo de instâncias armazenado em um contêiner ou em um objeto coleção (lista, vector, etc.)
� Uma mensagem enviada a um ícone de multi-objeto indica que ela é enviada ao objeto-coleção.
![Page 28: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/28.jpg)
Mensagens para coleções
:Emprestimo
1: s:=size() : int
msg1()
:LinhaDoEmpres-
timo
msg1()
2: imprimir()
1:le:=obtenha(ID):Emprestimo :LinhaDoEmprestimo
le:LinhaDoEmprestimo
![Page 29: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/29.jpg)
Mensagem para cada elemento da coleção
:Emprestimo :LinhaDoEmprestimo1: * [para cada] obterTituloDoLivro()
A mensagem é enviada uma vez para cada objeto da coleção
![Page 30: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/30.jpg)
Criação de uma coleção, percurso de uma coleção
: Emprestimo
:LinhaDoEmprestimo2: * [para cada linha de emprestimo] linh:=proximo()
3: tit:=obterTituloDoLivro()
A coleção é criada (1) para depois ser preenchida com títulos (4). O método próximo() é utilizado para percorrer a coleção.
titulosEmprestados: String
linh: LinhaDoEmprestimo1: criar()
4: adicionar(tit)
![Page 31: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/31.jpg)
Auto-mensagem
1: cons :=ehDeConsulta()
c1: CopiaDoLivrol1: Livro
2: [not cons] mudarSituacao("emprestada")
![Page 32: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/32.jpg)
Exemplo de um Diagrama de Comunicação – Sistema VideoLocadora
emprestar(fCodigo)
![Page 33: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/33.jpg)
Sistema Biblioteca - Elaborar o DC para cada uma dasoperações do Caso de Uso Emprestar Livro
![Page 34: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/34.jpg)
Atendente
nomeLeitor
nometipo
0..n1 0..n1
registra
Reserva
períodosituacao
0..n
1
0..n
1
^faz
0..n0..n
Empréstimo/Devoluçãodata do empréstimosituação0..n0..n1
faz
0..1
0..1
0..1
0..1
corresponde a
0..10..1
corresponde a
Modelo Conceitual Biblioteca
Bibliotecarianome
CopiaDoLivronro sequencialsituacaoliberadoParaEmprestimo
LivrotituloautoranoISBNeditoratipo
0..n1 0..n1
registra
11refere-se a >
0..n0..n
1
possui
LinhaDoEmpréstimodata_prevista_devoluçãodata_entrega_real
0..10..1
1
0..n
1
0..n
refere-se a
1..n1..n
![Page 35: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/35.jpg)
Fazer um DC para a operação iniciarEmprestimo()
� Operação: iniciarEmprestimo(id_leitor)� Referências Cruzadas: Caso de uso:
“Emprestar Livro”� Pré-Condições:
� O leitor é registrado na biblioteca e sabe-se seu ID.
� Pós-Condições:� Um leitor apto a emprestar livros foi
identificado.� Um objeto Empréstimo/Devolução foi
criado e associado ao leitor
![Page 36: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/36.jpg)
Diagrama de Comunicação
:BibliotecaLeitoriniciarEmprestimo (idLeitor) --->
1. le:=busca(idLeitor)
le: Leitor
e : Empréstimo/Devolução
2. [le not null] inadimp:=verificarInadimplencia()
3. [not inadimp] criar() 4. Associar_e(e)
![Page 37: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/37.jpg)
Diagrama de Comunicação para a operação EmprestarLivro
� Operação: emprestarLivro(id_Livro)
� Referências Cruzadas: Caso de uso: “Emprestar Livro”
� Pré-Condições: � Pré-Condições: � Um leitor apto a emprestar livros já foi identificado;
� Pós-Condições:� um objeto LinhaDoEmpréstimo foi criado;
� a LinhaDoEmpréstimo foi associada à cópia do livro e ao empréstimo criado para o leitor na operação anterior “iniciarEmprestimo”;
� O atributo “situação” da cópia do livro foi alterado para “emprestada”.
� a data de devolução foi calculada, armazenada na “LinhaDoEmprestimo” e informada ao leitor.
![Page 38: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/38.jpg)
Atendente
nomeLeitor
nometipo
0..n1 0..n1
registra
Reserva
períodosituacao
0..n
1
0..n
1
^faz
0..n0..n
Empréstimo/Devoluçãodata do empréstimosituação0..n0..n1
faz
0..1
0..1
0..1
0..1
corresponde a
0..10..1
corresponde a
Modelo Conceitual Biblioteca
Bibliotecarianome
CopiaDoLivronro sequencialsituacaoliberadoParaEmprestimo
LivrotituloautoranoISBNeditoratipo
0..n1 0..n1
registra
11refere-se a >
0..n0..n
1
possui
LinhaDoEmpréstimodata_prevista_devoluçãodata_entrega_real
0..10..1
1
0..n
1
0..n
refere-se a
1..n1..n
![Page 39: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/39.jpg)
:Biblioteca
: LivroemprestarLivro(idLivro)
le: Leitor
1. liv:=busca(idLivro)
2. disponivel:=verificaLivro()3. [disponivel] dtDev:=calcularDataDevolucao()
Diagrama de Comunicação
:Reserva
lemp: LinhaEmprest
: CopiaDoLivrocl :CopiaDoLivro
liv : Livro
2.1. nc:=qtCopiasDispon()
4.1. mudaSituacaoCopia()
4.1.1. cl:=buscaCopiaDispon()4.1.2. tornarEmprestado()
le: Leitor
4. [disponivel] criar(liv, dtDev)
2.1.1. nr:=qtCopiasReserv()
e:Emprestimo
5. associarLE(lemp)
![Page 40: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/40.jpg)
Para o que serve o Diagrama de Comunicação?
� Isso será discutido nas próximas aulas(GRASP)
![Page 41: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/41.jpg)
Exercício: Complementar a operação emprestarLivro(idLivro) -> verificar se leitor já não tem o número máximo leitor já não tem o número máximo permitido de livros em seu poder.
![Page 42: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/42.jpg)
Fazer um DC para a operação encerrarEmprestimo()
� Operação: encerrarEmpréstimo()
� Referências Cruzadas: Caso de uso: “Emprestar Livro”
� Pré-Condições: � Pré-Condições: � Existe “emprestimo/devolução” e ao menos uma linha do empréstimo
� Pós-Condições: � O sistema foi informado que o empréstimo atual foi concluído.
� O atributo “situação” de “Emprestimo/Devolução” foi alterado para “vigente”
![Page 43: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/43.jpg)
1.1. alterarSi tuacao("Vigente")
Diagrama de Comunicação
encerrarEmprestimo() --->:Biblioteca e :
Empréstimo/Devolução
1. encerrar()
![Page 44: Notação Básica dos Diagramas de Comunicaçãoines/cursos/proj-si/materiais/aula0… · Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no](https://reader034.fdocumentos.tips/reader034/viewer/2022042412/5f2b0ee82604b21414519a43/html5/thumbnails/44.jpg)
Próxima aulaRefinarPlano
Sincronizarartefatos
Analisar Projetar Construir Testar
Padrões GRASP
1. Refinar a arquitetura do sistema
2. Definir diagramasde interação
3. Definir Diagramas deClasses de Projeto
4. Definir o EsquemaDo Banco de Dados