Notação Básica dos Diagramas de Comunicação

Documentos relacionados
Aula 6 Notação Básica dos Diagramas de Comunicação

Aula 5 Diagramas de Seqüência do Sistema e Contratos de Operações

Notação Básica dos Diagramas de Comunicação

Diagramas de Sequência do Sistema e Contratos de Operações. SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012

DIAGRAMA DE COMUNICAÇÃO. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa

Aula 7 Visibilidade entre objetos e Diagramas de Classes

Análise do Sistema Casos de Uso

Modelagem de Software

Diagramas de Classes. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

DIAGRAMA DE COMUNICAÇÃO

Modelo Conceitual. Prof. Seiji Isotani Slides baseados no material da Profa Dra Rosana T. V. Braga

Descrição de Casos de Uso (Casos de Uso Textuais) SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa

Casos de Uso. SSC-121 Engenharia de Software I. Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012

DIAGRAMA DE CLASSES DE PROJETO

Diagrama de Comunicação. SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa

Diagramas de Sequência do Sistema. SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa

Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação

Diagrama de Classes Aula 11 (parte 1)

Casos de Uso. Análise e Projeto Orientados a Objetos. Profa Dra Rosana T. V. Braga

Do Projeto à Codificação. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Diagramas de Colaboração e Padrões GRASP

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Modelo Conceitual. SSC 526: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa

Diagramas de Sequência e Contrato das Operações

Orientação a Objetos e Java

4 Conceito de Herança

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Análise e Projeto Orientados a Objetos

Programação Orientada a Objetos

Documento de Especificação de Requisitos

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.

Estudo de Caso TPV: do Projeto para a Codificação

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

ANÁLISE DE SISTEMAS UML. por. Antônio Maurício Pitangueira

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Metodologias de Desenvolvimento (I)

Modelagem de Casos de Uso (Parte 1)

Engenharia de Software. Caso de Uso - Continuação

Apêndice 1. Recomendações para testes de módulos

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Algoritmos e Programação

27/02/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE SEQUÊNCIA

Análise e Projeto de Software Parte II. Marcos Dósea

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

Pontifícia Universidade Católica

Análise de Sistemas 4º Bimestre (material 3)

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

04/11/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE CLASSE

Estruturas de seleção. Prof.: Jesus

Fase de Concepção. Levantamento e Organização de Requisitos

Projeto Orientado a Objetos

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Departamento de Engenharia Industrial. ENG Sistemas de Informação Gerenciais Caso de Uso - Exercícios

Sintaxe Básica de Java Parte 2

Modelagem Temporal com UML

Modelagem Temporal com UML

Linguagem de Programação I Apresentação da Disciplina

Estruturas de seleção. Prof.: Jesus

Modelagem Dinâmica. Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel. O pensamento é o ensaio da ação.

Linguagem de Programação II Implementação

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Análise e Projeto Orientados a Objetos Aula I Introdução. Prof.: Bruno E. G. Gomes IFRN

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Panorama da notação UML

Marcelo Henrique dos Santos

Resolução da lista de exercícios de casos de uso

Fatec Ipiranga - Engenharia de Software I 18/02/2013. Agenda. 0. Relembrando os Relacionamentos do Diagrama de Classes

Documento de Especificação de Projeto

UML & Padrões Aula 6. UML & Padrões - Profª Kelly C C Silva

Programação Orientada a Objetos

Aula 4 Estruturas de Controle

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Análise e Projeto Orientado a Objetos

4. Constantes. Constantes pré-definidas

PCS3413 Engenharia de Software e Banco de Dados

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Modelo conceitual Aula 08

Aula 4 Objetivos if/else while

Desenvolvimento de Aplicações Desktop

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Transcrição:

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Notação Básica dos Diagramas de Comunicação Projeto e Desenvolvimento de Sistemas de Informação

Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 1. Refinar a arquitetura do sistema 2. Definir diagramas de interação 3. Definir Diagramas de Classes de Projeto 4. Definir o Esquema Do Banco de Dados

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?

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 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

O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de Uso Ator Principal: Atendente Caso de Uso: Emprestar Livro Interessados e Interesses: Emprestar Livro - 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. Garantia de Sucesso (Pós-Condições): Os dados do novo empréstimo estão armazenados no Sistema. Os livros emprestados possuem status emprestado Atendente Bibliotecária Devolver Livro Incluir Livro Comprar Livro Leitor Consultar Livro 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)

O que já foi visto até agora Casos de uso com substantivos e verbos sublinhados Caso de Uso 1 Caso de Uso 2... Caso de Uso n Atendente nome Bibliotecaria nome 1 0..n registra refere-se a > 1 registra 1 Leitor nome tipo : char 1 ^ faz 0..n 1 Modelo Conceitual 0..n 0..n faz 1 0..n Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char Reserva período situacao : char possui 0..n 0..1 corresponde a 0..1 Empréstimo/Devolução data do empréstimo situação : Char corresponde a CopiaDoLivro 0..1 nro sequencial situacao : char liberadoparaemprestimo : char 1 possui 1..n 0..1 LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 1 0..n < refere-se a

O que já foi visto até agora Modelo Conceitual + Casos de Uso

O que foi visto até agora

Projeto Orientado a Objetos Finalizada a análise, parte-se para o Projeto do sistema. Artefatos de projeto contém detalhes de 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.

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 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)

Diagrama de Sequência SISTEMA :instância da Classe A :instância da Classe B :instância da Classe C mensagem1() 1:mensagem2() Objetos 2:mensagem3() 3:mensagem4() Observar que o diagrama de sequência na fase de projeto abre o sistema em objetos que interagem entre si.

Diagramas de Comunicação mensagem1() :Instância da Classe A 1:mensagem2() 2:mensagem3() :Instância da Classe B 3:mensagem4() :Instância da Classe C 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.

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 significativo do tempo gasto no projeto Os padrões estabelecidos, os princípios e idiomas podem ser aplicados para melhorar a qualidade do projeto.

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 associações. Possível alteração na estrutura das classes e associações. Possível criação de atributos privados ou protegidos.

Notação básica para diagramas de comunicação Mensagem entre dois objetos obj1:classe1 1:mensagem1(parâmetro1, parâmetro2) obj2:classe2 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.

Classes X Instâncias Livro :Livro livro1:livro Classe instância Instância nomeada

ligações Linha de ligação obj1:classe1 1:mensagem1(parâmetro1, parâmetro2) obj2:classe2 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

Mensagens Se existe uma ligação, podem fluir mensagens As mensagens podem ser escritas em diferentes sintaxes. Ex. UML, Java e Smalltalk, etc. Sintaxe UML: Return := message(parameter : parametertype) : returntype

Ordem das mensagens, condicionais e atribuição às variáveis 1: [novo] criar(id_leitor, id_livro) Criar só é executada se apto for true :CópiaTítulo :Empréstimo 3: [apto] criar(t) 2: t=obtertipoleitor() A variável t é passada como parâmetro pelo método criar :Leitor obtertipoleitor retorna um resultado que é armazenado na variável t :linhadoempréstimo

Objeto como retorno de método e1: Empresti mo Agora e1 conhece c1 e pode enviar-lhe a mensagem mudarsituacao() 2: mudarsituacao("emprestada") 1: c1: copia() c1 é um objeto que retornou como l1: LinhaDoEmprestim o resultado da invocação de copia() c1: CopiaDoLivro

Criação de instância C++: aloc. automática ou new + cham. construtor Java: operador new Smalltalk: new + initiatilize :Obj1 msg1() 1:criar() <<new>>:obj2

Condicionais e operadores lógicos e relacionais e1: Emprestimo 1: [naoestaematraso] and [nrolivros < maximopermitido] criar() :linhadoemprestimo 1: [condi cao1] mensagem1() c2: Classe2 c1: Classe1 2: [not condi cao1] mensagem 2() c3: Classe3

Caminhos condicionais Mutuamente exclusivos Apenas uma das mensagens é enviada, dependendo da condição ser verdadeira ou falsa msg1() :ClasseA 1a: [condição] msg2() msg1() --- --- if (condicao = true) :ClasseB.msg2() else :ClasseC.msg3() --- --- :ClasseB 1b:[not condição] msg3() :ClasseC

Caminhos condicionais Mutuamente exclusivos :ClasseE 2:msg6() msg1() :ClasseA 1a: [condição] msg2() :ClasseB 1b:[not condição] msg4() 1a.1:msg3() :ClasseD 1b.1:msg5() :ClasseC

Repetição de mensagem 1: [repita para i de 1 a 100] mensagem1(i) c1: Classe1 c2: Classe2 1: [para cada registro] mensagem1() c1: Classe1 c2: Classe2 Em ambos os casos, a mensagem é enviada várias vezes, sempre para o mesmo objeto.

Múltiplas mensagens na mesma iteração msg1() msg1() { for i=1 to 10 { meub.msg2() meuc.msg3()} } 1*:[i:=1..10]msg2() :A meub:b 2*:[i:=1..10]msg3() Cláusulas de iteração iguais meuc:c

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.

Mensagens para coleções msg1() :Emprestimo 1: s:=size() : int :LinhaDoEmprestimo :Emprestimo msg1() 1:le:=obtenha(ID) :LinhaDoEmprestimo 2: imprimir() le:linhadoemprestimo

Mensagem para cada elemento da coleção :Emp restimo 1: * [para cada] obtertitulodolivro() :Li nhad oemp restimo A mensagem é enviada uma vez para cada objeto da coleção

Criação de uma coleção, percurso de uma coleção 2: * [para cada linha de emprestimo] linh:=proximo() :LinhaDoEmprestimo : Emprestimo 3: tit:=obtertitulodolivro() 1: criar() linh: LinhaDoEmprestimo 4: adicionar(tit) titulosemprestados: String A coleção é criada (1) para depois ser preenchida com títulos (4). O método próximo() é utilizado para percorrer a coleção.

Auto-mensagem 1: cons :=ehdeconsulta() l1: Livro c1: CopiaDoLivro 2: [not cons] mudarsituacao("emprestada")

Exemplo de um Diagrama de Comunicação Sistema VideoLocadora emprestar(fcodigo)

Sistema Biblioteca - Elaborar o DC para cada uma das operações do Caso de Uso Emprestar Livro

Modelo Conceitual Biblioteca ^ faz 0..n 0..n Reserva período situacao 0..1 0..1 corresponde a Atendente nome 1 0..n registra 1 Leitor nome tipo 1 faz 0..n Empréstimo/Devolução data do empréstimo situação corresponde a 0..1 Bibliotecaria nome refere-se a > 1 0..n registra 1 Livro titulo autor ano ISBN editora tipo 1..n LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 0..n 0..1 1 refere-se a possui 0..n CopiaDoLivro nro sequencial situacao liberadoparaemprestimo 1

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 sabese 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

Diagrama de Comunicação iniciaremprestimo (idleitor) ---> :Biblioteca 1. le:=busca(idleitor) Leitor 3. [not inadimp] criar() 4. Associar_e(e) e : Empréstimo/Devolução 2. [le not null] inadimp:=verificarinadimplencia() le: Leitor

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: 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.

Modelo Conceitual Biblioteca ^ faz 0..n 0..n Reserva período situacao 0..1 0..1 corresponde a Atendente nome 1 0..n registra 1 Leitor nome tipo 1 faz 0..n Empréstimo/Devolução data do empréstimo situação corresponde a 0..1 Bibliotecaria nome refere-se a > 1 0..n registra 1 Livro titulo autor ano ISBN editora tipo 1..n LinhaDoEmpréstimo data_prevista_devolução data_entrega_real 0..n 0..1 1 refere-se a possui 0..n CopiaDoLivro nro sequencial situacao liberadoparaemprestimo 1

Diagrama de Comunicação emprestarlivro(idlivro) :Biblioteca 1. liv:=busca(idlivro) : Livro 3. [disponivel] dtdev:=calculardatadevolucao() 2. disponivel:=verificalivro() le: Leitor 5. associarle(lemp) 4. [disponivel] criar(liv, dtdev) liv : Livro 2.1. nc:=qtcopiasdispon() 2.1.1. nr:=qtcopiasreserv() lemp: LinhaEmprest 4.1. mudasituacaocopia() :Reserva e:emprestimo 4.1.1. cl:=buscacopiadispon() 4.1.2. tornaremprestado() : CopiaDoLivro cl :CopiaDoLivro

Para o que serve o Diagrama de Comunicação? Isso será discutido nas próximas aulas(grasp)

Exercício: Complementar a operação emprestarlivro(idlivro) -> verificar se leitor já não tem o número máximo permitido de livros em seu poder.

Fazer um DC para a operação encerraremprestimo() Operação: encerrarempréstimo() Referências Cruzadas: Caso de uso: Emprestar Livro 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

Diagrama de Comunicação 1.1. alterarsi tuacao("vi gente") 1. encerrar() encerraremprestimo() ---> :Biblioteca e : Empréstimo/Devolução

Próxima aula Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar Padrões GRASP 1. Refinar a arquitetura do sistema 3. Definir Diagramas de Classes de Projeto 2. Definir diagramas de interação 4. Definir o Esquema Do Banco de Dados