DIAGRAMA DE COMUNICAÇÃO

Tamanho: px
Começar a partir da página:

Download "DIAGRAMA DE COMUNICAÇÃO"

Transcrição

1 Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DIAGRAMA DE COMUNICAÇÃO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015

2 O QUE JÁ FOI VISTO ATÉ AGORA Diagrama de Casos de Uso Casos de Uso Completo Abstrato Ator Principal: Atendente Interessados e Interesses: Caso de Uso: Emprestar Livro 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. Atendente Bibliotecária Devolver Livro Incluir Livro Leitor Consultar Livro 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: Comprar Livro (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) 2

3 O QUE JÁ FOI VISTO ATÉ AGORA Casos de Uso com substantivos e verbos sublinhados Caso de Uso 1 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 adicionar um novo empréstimo. 3. O Atendente solicita ao leitor sua carteirinha, 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. O Atendente desbloqueia os livros para que possam sair da biblioteca. 10. O Leitor sai com os livros. Caso de Uso n 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 adicionar um novo empréstimo. 3. O Atendente solicita ao leitor sua carteirinha, 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. O Atendente desbloqueia os livros para que possam sair da biblioteca. 10. O Leitor sai com os livros. Atendente nome Bibliotecaria nome n registra refere-se a > Leitor nome tipo : char registra 0..n 0..n ^ faz n Modelo Conceitual 1..1 faz Reserva período situacao : char 0..1 Empréstimo/Devolução data do empréstimo n situação : Char Livro titulo : String[30] autor : String[30] ano : int ISBN : string[20] editora : int tipo : char possui 0..n 0..1 corresponde a corresponde a CopiaDoLivro 0..1 nro sequencial situacao : char liberadoparaemprestimo : char 1..1 possui 1..n 0..1 LinhaDoEmpréstimo data_prevista_devolução data_entrega_real n < refere-se a 3

4 4 O QUE JÁ FOI VISTO ATÉ AGORA Diagrama de Sequência do Sistema (para cada caso de uso) Modelo Conceitual + Casos de Uso :Atendente 1: iniciarempréstimo(id_leitor) 2: emprestarlivro(id_livro) Sistema * mais livros a emprestar 3: encerrarempréstimo()

5 5 O QUE JÁ FOI VISTO ATÉ AGORA Diagrama de Sequência do Sistema (para cada caso de uso) Contrato da Operação (para cada operação relevante) :Atendente Sistema Operação: encerrarempréstimo() 1: iniciarempréstimo(id_leitor) 2: emprestarlivro(id_livro) * mais livros a emprestar 3: encerrarempréstimo() Referências Cruzadas: Caso de uso: Emprestar Livro Pré-Condições: Umleitor apto a emprestar livros já foi identificado; pelo menos umlivro já foi identificado e está disponível para ser emprestado. Pós-Condições: umnovo empréstimo foi registrado; o novo empréstimo foi relacionado ao leitor já identificado na operação iniciar o empréstimo ; a situação dos livros emprestados foi alterada para emprestado.

6 CONCLUSÃO DA FASE DE ANÁLISE A fase de análise enfatiza uma compreensão dos requisitos do sistema Fazer a Coisa Certa compreender objetivos, conceitos e características do domínio do problema Artefatos estudados: Artefato da análise Casos de Uso Modelo Conceitual Diagramas de Sequência do Sistema Questões respondidas Quais são os processos do domínio? Quais são os conceitos (objetos)? Quais são os eventos e operações? 6

7 INÍCIO DA FASE DE PROJETO Nessa fase, é desenvolvida uma solução lógica baseada no paradigma de orientação a objetos objetos, mensagens, classes, métodos,. Fazer certo a coisa projetar de maneira competente uma solução que satisfaça os requisitos Os dois artefatos principais a serem desenvolvidos são: Diagramas de Interação Diagramas de Classe de Projeto 7

8 DIAGRAMAS DE INTERAÇÃO Os Diagramas de Interação apresentam como os objetos interagem, por meio de mensagens, para responder a um determinado evento Importantes para o desenvolvimento de um bom projeto Exigem criatividade A UML fornece dois tipos de diagramas de interação que permitem representar interação (colaboração) entre classes (ou objetos): diagramas de comunicação formato de grafo diagramas de sequência formato de cerca 8

9 DIAGRAMA DE COMUNICAÇÃO mensagem1() :Instância da Classe A 1:mensagem2)) 2:mensagem3() :Instância da Classe B Os diagramas de comunicação têm melhor capacidade de expressar informações contextuais e podem ser mais econômicos em termos de espaço 9

10 DIAGRAMA DE SEQUÊNCIA :instância de Classe A :instância de Classe B :instância de Classe C mensagem1() 1:mensagem2() 2:mensagem3() 3:mensagem4() 10

11 DIAGRAMA DE COMUNICAÇÃO O Diagrama de Comunicação é um dos artefatos mais importantes do projeto OO O tempo gasto na sua criação deveria absorver um percentual de tempo significativo projeto Elaborar diagramas de comunicação exige conhecimento de: princípios de atribuição de responsabilidades padrões de projeto 11

12 CLASSES E INSTÂNCIAS Classe Instância Instância nomeada Venda :Venda venda1:venda 12

13 MENSAGENS Sintaxe UML: retorno := mensagem ( parâmetro : tipoparâmetro ) : tiporetorno O retorno pode não existir Os tipos podem ser omitidos ser forem óbvios ou não forem importantes Exemplo: especificacao := obterespecificacaoproduto(id) especificacao := obterespecificacaoproduto(id:iditem) especificacao := obterespecificacaoproduto(id:iditem) : EspecificacaoProduto 13

14 MENSAGENS No paradigma de orientação a objetos: Mensagem é o mecanismo de comunicação entre objetos Invoca as operações desejadas O processo de invocar um método é chamado de envio de uma mensagem ao objeto Ex: quando uma mensagem facaalgo() é enviada a uma objeto obj, o método facaalgo() definido na classe de obj é executado: obj.facaalgo() 14

15 LIGAÇÕES Conexão entre dois objeto que indica a possibilidade de alguma forma de navegação ou de visibilidade entre eles Permite que mensagens fluam de um objeto para outro :TPV total:=totalizarvenda():float :Venda :Venda.totalizarVenda() 15

16 MENSAGENS MÚLTIPLAS Várias mensagens, em ambos os sentidos, podem fluir ao longo de uma mesma ligação: Usar seta para indicar direção da mensagem Usar números de sequência para indicar ordem de execução das mensagens :Instância Classe A 1:mensagem1() 2:mensagem2() 3:mensagem3() 4:mensagem4() :Instância Classe B 16

17 EXEMPLO acionar() :BotaoElevador 1:atualizar( ) 2:iluminar( ) :ControladorElevador 17

18 em algum lugar no sistema PRIMEIRA MENSAGEM A primeira mensagem é aquela enviada ao objeto que inicia o tratamento de um determinado evento O emissor da primeira mensagem não é identificado primeiramsg() :Instância Classe A 1:mensagem1() 2:mensagem2() 3:mensagem3() 4:mensagem4() :Instância Classe B :InstanciaClasseA.primeiraMsg() 18

19 EXEMPLO Aterrissar() :Aeronave 1:ok :=posicionarangulo(angulo):booleano :Flape 19

20 NÚMERO DE SEQUÊNCIA DA MENSAGEM Primeira mensagem não é numerada Numeração formal e agregada indica a ordem e o aninhamento das mensagens msg1() :ClasseA 1:msg2() :ClasseB 1.1:msg3() aninhamento de mensagens :ClasseC 20

21 ANINHAMENTO DE MENSAGENS msg1() :ClasseA msg1() :ClasseB.msg2() 1:msg2() msg2() :ClasseC.msg3() :ClasseB 1.1:msg3() :ClasseC 21

22 ANINHAMENTO DE MENSAGENS EXEMPLO Msg1() :ClasseA 1:msg2() 2:msg4() :ClasseB 1.1:msg3() 2.1:msg5() :ClasseC 2.2:msg6() :ClasseD 22

23 ANINHAMENTO DE MENSAGENS EXEMPLO em algum lugar no sistema :ClasseA.msg1() msg1() :ClasseB.msg2() :ClasseC.msg4() msg2() :ClasseC.msg3() msg4() :ClasseB.msg5() :ClasseD.msg6() 23

24 AUTOMENSAGEM (THIS) msg1() :ClasseA 1: msg2() iniciarsistema() :TPV 1: iniciar() 24

25 msg1() ITERAÇÃO msg1() :ClasseA 1*:[i:=1..10]msg2() for i=1 to 10 { :ClasseB.msg2() :ClasseC.msg3() } :ClasseB 2*:[i:=1..10]msg3() :ClasseC 25

26 ITERAÇÃO msg1() :TPV 1 * : linha:=proxlinhaitem():linhaitemvenda :Venda Cláusula de Iteração ([i:=1..10]) é opcional 26

27 CRIAÇÃO DE INSTÂNCIA Uma mensagem pode ser usada para criar uma instância nomear mensagem como criar() :TPV iniciarvenda() 1:criar(caixa) mensagem criar(), com parâmetros opcionais, normalmente é interpretada, na implementação, como chamada a um construtor da classe de software :Venda 27

28 MENSAGENS CONDICIONAIS Uma mensagem condicional só será enviada se a cláusula entre [ ] tiver valor true :ClasseA msg1() 1: [condição] msg2() msg1() if (condicao = true) { :ClasseB.msg2() } :ClasseB 28

29 MENSAGENS CONDICIONAIS msg1() :TPV 1: [nova venda] criar() :Venda 29

30 CONDICIONAL MUTUAMENTE EXCLUSIVA Apenas uma ou outra mensagem é 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 30

31 CONDICIONAL MUTUAMENTE EXCLUSIVA :ClasseE 2:msg6() msg1() :ClasseA 1a: [condição] msg2() :ClasseB 1b:[not condição] msg4() 1a.1:msg3() :ClasseD 1b.1:msg5() :ClasseC 31

32 MULTIOBJETOS Um multiobjeto é uma coleção de instâncias, representada por um único ícone Uma mensagem pode ser enviada ao multiobjeto ou a cada membro da coleção 32

33 MENSAGENS PARA MULTIOBJETOS :Venda msg1() mensagem enviada à coleção 1: qt:=obterquantidade( ) : Int ItemLinhaVenda :Venda msg1() 1*: id:=obterid( ) * ItemLinhaVenda mensagem enviada a cada membro da coleção 33

34 EXEMPLO TPV - DSS :Caixa iniciarnovavenda( ) Comprar Itens :Sistema entraritem(cup, quantidade) descrição item, total *[mais itens] terminarvenda() fazerpagamento(quantia) troco, recibo 34

35 EXEMPLO TPV MODELO CONCEITUAL Venda data hora 1..1 Capturada-em 1..1 TPV 1..1 Paga-por 1..1 Pagamento quantia 35

36 EXEMPLO - DIAGRAMA DE COMUNICAÇÃO fazerpagamento(quantia) :TPV 1:fazerPagamento(quantia) :Venda 1.1:criar(quantia) :Pagamento 36

37 PORTANTO É importante ser consistente ao sublinhar os nomes de instância quando realmente se deseja uma instância; caso contrário, mensagens para instâncias e mensagens para classes podem ser interpretadas incorretamente. 37

38 GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES Responsabilidade Um contrato ou obrigação de um tipo ou classe Serviços fornecidos por um elemento (classe ou subsistema) Incorpora os objetivos de um elemento 38

39 GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES Dois tipos de responsabilidades básicas: Fazer: fazer algo (criar um objeto, executar uma operação ) iniciar ações em outros objetos coordenar e controlar atividades em outros objetos Saber: conhecer dados privados encapsulados conhecer objetos relacionados conhecer coisas que podem ser derivadas ou calculadas 39

40 RESPONSABILIDADE Exemplos: uma Venda é responsável por criar ItemLinhaVenda - FAZER uma Venda é responsável por conhecer o seu total - SABER Obs: responsabilidades do tipo saber frequentemente podem ser deduzidas do modelo conceitual (atributos e associações) 40

41 RESPONSABILIDADES E DIAGRAMAS DE COMUNICAÇÃO Diagramas de comunicação mostram escolhas de atribuição de responsabilidade a objetos Exemplo: atribuir aos objetos do tipo Venda a responsabilidade de imprimirem a si próprios. imprimir() :Venda Responsabilidade de imprimir a si própria 41

42 EXEMPLO fazerpagamento(quantia) :Venda 1:criar(quantia) Responsabilidade Fazer Pagamento atribuída ao objeto Venda colaboração entre Venda e Pagamento :Pagamento 42

43 PADRÕES Padrão é uma descrição nomeada de um problema e uma solução, que pode ser aplicado em novos contextos Padrões usualmente não contêm novas ideias organizam conhecimentos e princípios existentes, testados e consagrados 43

44 PADRÕES GRASP GRASP = General Responsibility Assignment Software Patterns Descrevem princípios fundamentais de atribuição de responsabilidade a objetos Principais padrões GRASP: Especialista (Expert) Criador (Creator) Coesão alta (High Cohesion) Acoplamento fraco (Low Coupling) Controlador (Controller) 44

45 ESPECIALISTA Problema: qual é o princípio mais básico de atribuição de responsabilidades a objetos? Solução: Atribuir responsabilidade ao especialista da informação. Exemplo: no sistema TPV, alguma classe precisa conhecer o total geral de uma venda 45

46 EXEMPLO Venda => conhece o total da venda ItemLinhaVenda => conhece o subtotal da linha EspecificaçãoProduto => conhece o preço do produto. 46

47 t:=obtertotal( ) :Venda 1*: st:=obtersubtotal( ) * :LinhadeItemdeVenda 1.1: p:=obterpreço( ) :Especificaçãode Produto

48 ESPECIALISTA Discussão: É o padrão mais utilizado Fazê-lo eu mesmo Objetos fazem coisas relacionadas à informação que têm Lembrar que existem especialistas parciais que colaboram numa tarefa informação espalhada comunicação via mensagens Tem uma analogia no mundo real 48

49 ESPECIALISTA Benefícios: Mantém encapsulamento favorece o acoplamento fraco O comportamento fica distribuído entre as classes que têm a informação necessária favorece alta coesão Contraindicações Contra indicado quando aumenta acoplamento e reduz coesão Ex: quem é responsável por salvar uma Venda no banco de dados? 49

50 CRIADOR Problema: Quem deveria ser responsável pela criação de uma nova instância de alguma classe? Solução: atribua à classe B a responsabilidade de criar uma nova instância da classe A, se uma das seguintes condições for verdadeira: B agrega/contém/registra objetos de A B usa objetos de A B tem os valores iniciais que serão passados para objetos de A, quando de sua criação 50

51 CRIADOR Exemplo: No sistema TPV, quem é responsável pela criação de uma instância de ItemLinhaVenda? criaritemlinha (quantidade) :Venda Venda contém vários itens de linha de venda 1:criar(quantidade) :ItemLinhaVenda 51

52 CRIADOR Discussão Objetivo do padrão: definir como criador o objeto que precise ser conectado ao objeto criador em algum evento Escolha adequada favorece acoplamento fraco Objetos agregados e contêineres são bons candidatos à responsabilidade de criar outros objetos Algumas vezes o candidato a criador é o objeto que conhece os dados iniciais do objeto a ser criado Ex: Venda e Pagamento 52

53 EXEMPLO fazerpagamento(quantia) :Venda Venda possui dados iniciais do pagamento 1:criar(quantia) :Pagamento 53

54 CRIADOR Benefícios Favorece o acoplamento fraco provavelmente o acoplamento não é aumentado porque o objeto criado provavelmente já é visível para o objeto criador, devido às associações existentes que motivaram sua escolha como criador 54

55 ACOPLAMENTO Dependência entre elementos (classes, subsistemas ), normalmente resultante de comunicação para atender a uma responsabilidade O acoplamento mede o quanto um objeto está conectado a, tem conhecimento de ou depende de outros objetos acoplamento fraco (ou baixo) um objeto não depende de muitos outros acoplamento forte (ou alto) um objeto depende de muitos outros 55

56 ACOPLAMENTO Formas de acoplamento: Um objeto tem um atributo que referencia um objeto de outra classe Um objeto tem um método que referencia um objeto de outra classe Parâmetro, variável local ou retorno Um objeto invoca os serviços de um objeto de outra classe Uma classe é subclasse de outra, direta ou indiretamente 56

57 ACOPLAMENTO Problemas do acoplamento alto: Mudanças em classes interdependentes forçam mudanças locais Dificulta reutilização 57

58 ACOPLAMENTO FRACO Problema: como favorecer a baixa dependência e aumentar a reutilização? Solução: Atribuir responsabilidade de maneira que o acoplamento permaneça baixo. Exemplo: No sistema TPV, suponha que queremos criar uma instância de pagamento e associá-la à venda. Qual classe deve ser responsável por essa tarefa? 58

59 Projeto 1: segundo padrão Criador, responsabilidade atribuída ao TPV fazerpagamento( ) :TPV 1: criar( ) p:pagamento 2 : adicionarpagamento(p) :Venda Projeto 2: alternativa responsabilidade atribuída à Venda fazerpagamento( ) :TPV 1: fazer Pagamento( ) 1.1: criar( ) :Venda :Pagamento

60 Projeto 1: segundo padrão Criador, responsabilidade atribuída ao TPV fazerpagamento( ) :TPV 1: criar( ) p:pagamento 2 : adicionarpagamento(p) :Venda Projeto 2: alternativa responsabilidade atribuída à Venda fazerpagamento( ) :TPV PREFERÍVEL 1: fazer Pagamento( ) 1.1: criar( ) :Venda :Pagamento

61 ACOPLAMENTO FRACO Discussão: Acoplamento fraco classes mais independentes Reduz impacto de mudanças Favorece reúso de classes Extremo de acoplamento fraco não é desejável Fere princípios da tecnologia de objetos comunicação por mensagens Projeto pobre: objetos inchados e complexos, responsáveis por muito trabalho baixa coesão 61

62 ACOPLAMENTO FRACO Discussão: Dica: concentre-se em reduzir o acoplamento em pontos de evolução ou de alta instabilidade do Sistema Ex: cálculo de impostos terceirizados no sistema TPV Benefícios: Classe são pouco afetadas por mudanças em outras partes Classes são simples de entender isoladamente Conveniente para reutilização 62

63 COESÃO Coesão mede o quanto as responsabilidades de um elemento (classe, objeto, subsistema, ) são fortemente focalizadas e relacionadas Objeto com Coesão Alta objeto cujas responsabilidades são altamente relacionadas e que não executa um volume muito grande de trabalho Objeto com Coesão Baixa objeto que faz muitas coisas não relacionadas ou executa muitas tarefas Difícil de compreender, reutilizar e manter Constantemente afetadas por mudanças 63

64 COESÃO ALTA Problema: Como manter a complexidade sob controle? Solução: Atribuir responsabilidade de tal forma que a coesão permaneça alta. Exemplo (o mesmo para o acoplamento fraco): No sistema TPV, suponha que queremos criar uma instância de pagamento e associá-la à venda. Qual classe deve ser responsável por essa tarefa? 64

65 Projeto 1: segundo padrão Criador, responsabilidade atribuída ao TPV fazerpagamento( ) :TPV 1: criar( ) p:pagamento 2 : adicionarpagamento(p) :Venda O TPV toma parte na responsabilidade de fazer pagamento. Neste exemplo, isso seria aceitável, mas o que aconteceria se houvessem 50 mensagens recebidas por TPV?

66 Projeto 2: alternativa responsabilidade atribuída à Venda fazerpagamento( ) :TPV 1: fazer Pagamento( ) 1.1: criar( ) :Venda :Pagamento Esta solução favorece uma coesão mais alta em TPV e também um acoplamento mais fraco. Portanto, projeto 2 é preferível.

67 COESÃO ALTA Discussão: Coesão alta, assim como Acoplamento Fraco, são princípios que devem ser considerados no projeto de objetos Má coesão traz acoplamento ruim e vice-versa Regra prática: classe com coesão alta tem um número relativamente pequeno de métodos, com funcionalidades relacionadas, e não executa muito trabalho Analogia com mundo real Ex: pessoas que assumem muitas responsabilidades não associadas podem tornar-se (e normalmente tornam-se) ineficientes 67

68 COESÃO ALTA Benefícios Mais clareza e facilidade de compreensão no projeto Simplificação de manutenção e acréscimo de funcionalidade/melhorias Favorecimento do acoplamento fraco Aumento no potencial de reutilização Classe altamente coesa pode ser usada para uma finalidade bastante específica 68

69 CONTROLADOR Problema: Quem deve ser responsável por tratar um evento do sistema? Solução: A responsabilidade de receber ou tratar as mensagens de eventos (operações) do sistema pode ser atribuída a uma classe que: Represente todo o sistema, um dispositivo ou um subsistema chamado de controlador fachada - OU Represente um cenário de um caso de uso dentro do qual ocorra o evento TratadorDe<NomeDoCasoDeUso>, ControladorDe<NomeDoCasoDeUso> 69

70 CONTROLADOR Exemplo: quem vai tratar os eventos do sistema TPV? Comprar Itens :Sistema :Caixa iniciarnovavenda( ) entraritem(cup, quantidade) descrição item, total *[mais itens] terminarvenda() fazerpagamento(quantia) troco, recibo 70

71 ID Item Quantidade :Caixa Entrar Item açãoexecutada(eventodaação) Camada de Interface :CWindow entraritem(itemid, quantidade) Camada do Domínio :????

72 EXEMPLO: OPÇÕES DE CONTROLADOR todo o sistema (controlador fachada): TPV um tratador do caso de uso: ControladorDeComprarItem entraritem( ) :TPV entraritem( ) :ControladorDe ComprarItem 72

73 DISCUSSÃO: CONTROLADORES DE CASOS DE USO Deve existir um controlador para cada caso de uso Não é um objeto do domínio, e sim uma construção artificial para dar suporte ao sistema. Ex: ControladorDeComprarItem, ControladorDeDevolução Pode ser uma alternativa se a escolha de controladores fachada deixar a classe controladora com alto acoplamento e/ou baixa coesão É uma boa alternativa quando existem muitos eventos envolvendo diferentes processos 73

74 CONTROLADORES INCHADOS Classe controladora mal projetada Coesão baixa - falta de foco e tratamentos de muitas responsabilidades Sinais de inchaço: Uma única classe controladora tratando todos os eventos, que são muitos. O próprio controlador executa as tarefas necessárias para atender o evento, sem delegar para outras classes Controlador tem muitos atributos ou duplica informações existentes em outros lugares 74

75 CONTROLADOR Curas para controladores inchados Acrescentar mais controladores misturar controladores fachada e de casos de uso Delegar responsabilidades 75

76 CONTROLADOR Benefícios: Conhecimento do estado do caso de uso controlador pode armazenar estado do caso de uso, garantindo a sequência correta de execução de operações Redução da complexidade das classes do modelo 76

77 EXEMPLO: ACOPLAMENTO

78 EXEMPLO: ACOPLAMENTO

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

Diagrama de Comunicação. SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa Diagrama de Comunicação SSC 526 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2013 1 2 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos

Leia mais

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

DIAGRAMA DE COMUNICAÇÃO. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa DIAGRAMA DE COMUNICAÇÃO SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2016 1 O QUE JÁ FOI VISTO ATÉ AGORA Casos de Uso Completo Abstrato Diagrama de Casos

Leia mais

GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa

GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES. SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa GRASP: PADRÕES PARA ATRIBUIÇÃO DE RESPONSABILIDADES SSC 124 Análise e Projeto Orientado a Objeto Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2016 1 RESPONSABILIDADE Responsabilidade um contrato ou

Leia mais

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

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 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 1 O que já foi visto até agora Casos de Uso Completo Abstrato

Leia mais

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

Aula 5 Diagramas de Seqüência do Sistema e Contratos de Operações Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 5 Diagramas de Seqüência do Sistema e Contratos de Operações Responsável Prof. Seiji Isotani

Leia mais

Aula 7 Visibilidade entre objetos e Diagramas de Classes

Aula 7 Visibilidade entre objetos e Diagramas de Classes Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 7 Visibilidade entre objetos e Diagramas de Classes Responsável Prof. Seiji Isotani

Leia mais

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

Aula 6 Notação Básica dos Diagramas de Comunicação Departamento de Sistemas de Computação Universidade de São Paulo SSC 124 Análise e Projeto Orientados a Objetos Aula 6 Notação Básica dos Diagramas de Comunicação Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

Leia mais

Modelagem de Software

Modelagem de Software Modelagem de Software Engenharia de Software Rosana T. Vaccare Braga Material adaptado a partir de material da Profa. Simone Senger Souza ICMC/USP São Carlos Modelagem Construção de modelos abstratos Auxílio

Leia mais

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

Notação Básica dos Diagramas de Comunicaçã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

Leia mais

Análise do Sistema Casos de Uso

Análise do Sistema Casos de Uso As Fases do PU 1 Análise do Sistema Casos de Uso Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar Livro Ator Principal: Atendente Interessados e Interesses: Caso de Uso: Emprestar Livro

Leia mais

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

Diagramas de Classes. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 Diagramas de Classes SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de

Leia mais

Engenharia de Software II

Engenharia de Software II Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 01 (rogerio@fct.unesp.br) Bibliografia Básica PRESSMAN, R.

Leia mais

Diagramas de Colaboração e Padrões GRASP

Diagramas de Colaboração e Padrões GRASP UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Diagramas de Colaboração

Leia mais

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

Descrição de Casos de Uso (Casos de Uso Textuais) SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa Descrição de Casos de Uso (Casos de Uso Textuais) SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa 1 Documentação de Casos de Uso n Notação diagramática: n Diagrama de Casos

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático Padrões Básicos Information Expert Creator High Cohesion Low Coupling Controller Padrões Avançados

Leia mais

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

Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação CASOS DE USO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre 2015 DEFINIÇÃO Um

Leia mais

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

Modelo Conceitual. Prof. Seiji Isotani Slides baseados no material da Profa Dra Rosana T. V. Braga Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Modelo Conceitual Prof. Seiji Isotani (sisotani@icmc.usp.br) Slides baseados no material da Profa

Leia mais

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

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

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3)

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3) ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3) Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Desenvolvendo Software com UML 2.0 (MEDEIROS, 2004) Modelo de Projeto O

Leia mais

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

Casos de Uso. SSC-121 Engenharia de Software I. Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Casos de Uso SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 1 Definição Um caso de uso representa uma possível utilização do sistema por um ator, que pode ser uma

Leia mais

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

Notação Básica dos Diagramas de Comunicação Notação Básica dos Diagramas de Comunicação Análise e Projeto Orientados a Objetos Profa Rosana 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar Livro A

Leia mais

DIAGRAMA DE CLASSES DE PROJETO

DIAGRAMA DE CLASSES DE PROJETO Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação DIAGRAMA DE CLASSES DE PROJETO SSC 621: Análise e Projeto Orientados a Objetos Prof. Dr. Lucas Bueno R. Oliveira 2º Semestre

Leia mais

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé)

GRASP. Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) GRASP Nazareno Andrade (baseado em Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Introdução a padrões O que são? Por que utilizá-los? Padrões GRASP O que são? Quais serão apresentados na disciplina?

Leia mais

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

Casos de Uso. Análise e Projeto Orientados a Objetos. Profa Dra Rosana T. V. Braga Casos de Uso Análise e Projeto Orientados a Objetos Profa Dra Rosana T. V. Braga 1 Definição Um caso de uso representa uma possível utilização do sistema por um ator, que pode ser uma pessoa, dispositivo

Leia mais

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

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 Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe

Leia mais

Diagramas de Sequência do Sistema. SSC 124: Análise e Projeto Orientados a Objetos 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 Diagramas de Sequêcia do Sistema SSC 124: Aálise e Projeto Orietados a Objetos Profa. Dra. Elisa Yumi Nakagawa 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos de Uso Emprestar

Leia mais

Projeto Orientado a Objetos

Projeto Orientado a Objetos Projeto Orientado a Objetos Ivan Mathias Filho Toacy Cavalcante de Oliveira Design Orientado a Objetos Após a identificação dos requisitos e a criação do modelo de domínio, devemos adicionar os métodos

Leia mais

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

Do Projeto à Codificação. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 Do Projeto à Codificação SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 O que já foi visto até agora Casos de Uso Completo Abstrato Diagrama de Casos

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 4 Design Baseado em Responsabilidades 1 Programa Capítulo 4 Design Baseado em Responsabilidades

Leia mais

Padrões GRASP. Leonardo Gresta Paulino Murta

Padrões GRASP. Leonardo Gresta Paulino Murta Padrões GRASP Leonardo Gresta Paulino Murta leomurta@ic.uff.br Introdução Estilo MVC Padrões Expert Creator Controller Low Coupling High Cohesion Polymorphism Pure Fabrication Indirection Don t Talk to

Leia mais

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

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6. Conteúdo 1. Introdução 2. Levantamento de Requisitos 3. Análise Orientada a Objetos 4. Projeto Orientado a Objetos 5. UML 6. Métodos Ágeis Projeto Orientado a Objetos Definição das Operações Responsabilidade

Leia mais

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

Estudo de Caso TPV: do Projeto para a Codificação UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Estudo de Caso

Leia mais

Modelagem de Casos de Uso (Parte 1)

Modelagem de Casos de Uso (Parte 1) Modelagem de Casos de Uso (Parte 1) Introdução (1) Objetivos Principais dos Casos de Uso: Delimitação do contexto de um sistema Documentação e o entendimento dos requisitos Descrição dos requisitos funcionais

Leia mais

Estudo de Caso TPV Projetando uma solução com objetos e Padrões GRASP

Estudo de Caso TPV Projetando uma solução com objetos e Padrões GRASP UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de Informação Estudo de Caso

Leia mais

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

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelo Conceitual 879 Projeto e Desenvolvimento de Sistemas de Informação

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 03 Padrões de Projeto GRASP Edirlei Soares de Lima Padrões de Projeto de Software Problemas no desenvolvimento de software se repetem...

Leia mais

Introdução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Introdução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) Introdução a Padrões, GRASP Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Processo de Desenvolvimento de Software Visão geral de processo Processos

Leia mais

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

Diagramas de Sequência e Contrato das Operações UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Projeto e Desenvolvimento de Sistemas de informação Comportamento

Leia mais

Diagramas de Sequência de Sistema e Contratos de Operação

Diagramas de Sequência de Sistema e Contratos de Operação Diagramas de Sequência de Sistema e Contratos de Operação CI163 Projeto de Software Prof. Andrey Ricardo Pimentel Comportamento do Sistema A etapa de análise tem como objetivo definir o comportamento do

Leia mais

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

Modelagem Dinâmica. Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel. O pensamento é o ensaio da ação. Modelagem Dinâmica Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel O pensamento é o ensaio da ação. Sigmund Freud Modelagem Dinâmica Identifica e modela os aspectos do sistema

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

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

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago Diagramas de Classes Conceitos Básicos O caso de uso fornece uma perspectiva do sistema de um ponto de vista externo (do ator) Internamente os objetos colaboram para atender às funcionalidades do sistema

Leia mais

PROJETO DE ARQUITETURA

PROJETO DE ARQUITETURA PROJETO DE ARQUITETURA Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Próximas aulas: Seminários de Padrões de Projeto GoF 1º Dia: 10/11/2017, 08h 10h, Sala 04 2º Dia:

Leia mais

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

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

Leia mais

Projeto Orientado a Objetos

Projeto Orientado a Objetos Projeto Orientado a Objetos Conjunto de atividades que têm como objetivo a criação de um modelo orientado a objetos de um sistema de software de acordo com os requisitos especificados Estratégia geral

Leia mais

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:

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: Diagramas de Interação Os modelos de análise não respondem a algumas perguntas: Como as operações do sistema são executadas internamente? A que classes estas operações internas pertencem? Quais objetos

Leia mais

Diagrama de Classes Aula 11 (parte 1)

Diagrama de Classes Aula 11 (parte 1) Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Diagrama de Classes Aula 11 (parte 1) Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin

Leia mais

Modulo II Padrões GRASP

Modulo II Padrões GRASP Modulo II Padrões GRASP Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Padrões de Projeto

Leia mais

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

Modelo Conceitual. SSC 526: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa Modelo Conceitual SSC 526: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa Modelo Conceitual Mostra todos os conceitos importantes no domínio do sistema, bem como as associações

Leia mais

PCS3413 Engenharia de Software e Banco de Dados

PCS3413 Engenharia de Software e Banco de Dados PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações

Leia mais

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

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Casos de Uso Objetivos Identificar

Leia mais

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

Análise e Projeto de Software Parte II. Marcos Dósea Análise e Projeto de Software Parte II Marcos Dósea marcosdosea@gmail.com Agenda Aula III Análise de Software Orientado à Objetos Motivação Marcos Dósea marcosdosea@gmail.com O que é análise e projeto?

Leia mais

Modelos de Sistemas Casos de Uso

Modelos de Sistemas Casos de Uso Modelos de Sistemas Casos de Uso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Casos de Uso Objetivos Principais dos Casos de Uso: Delimitação do contexto de

Leia mais

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos Análise e Projeto Orientados a Objetos Diagramas de interação Diretoria Acadêmica de Gestão e Tecnologia da Informação Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Introdução Os diagramas

Leia mais

Interações entre objetos

Interações entre objetos Interações entre objetos 1 Interações! Interações mostram os aspectos dinâmicos de um sistema, enfatizando a troca de mensagens entre objetos! Dois diagramas podem ser usados para modelar as interações:

Leia mais

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

Engenharia de Software. Caso de Uso - Continuação Engenharia de Software Caso de Uso - Continuação Visão de casos de Uso Caso de Uso - Continuação Descrever a funcionalidade que o sistema deve oferecer, do ponto de vista do mundo externo. Os casos de

Leia mais

Panorama da notação UML

Panorama da notação UML Panorama da notação UML A notação UML (Unified Modeling Language linguagem de modelagem unificada) evoluiu desde que foi adotada a primeira vez como um padrão em 1997. Uma revisão maior para o padrão foi

Leia mais

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

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013 Revisão Diagrama de Caso de Uso Rodolfo Adamshuk Silva 30/08/2013 Processo Unificado (PU) É um modelo de processo de software baseado no modelo incremental, visando a construção de software orientado a

Leia mais

Padrões para atribuir responsabilidades: Expert

Padrões para atribuir responsabilidades: Expert Padrão para atribuir responsabilidades: Expert Introdução Um sistema OO é composto de objetos que enviam mensagens uns para os outros Uma mensagem é um método executado no contexto de um objeto Escolher

Leia mais

Introdução ao Java. Prof. Herbert Rausch Fernandes

Introdução ao Java. Prof. Herbert Rausch Fernandes Introdução ao Java Prof. Herbert Rausch Fernandes Orientação a Objetos Programação Orientada por Objetos: é a construção de sistemas de software como uma coleção estruturada de implementações de tipos

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

PROJETO DE ARQUITETURA (PARTE 2)

PROJETO DE ARQUITETURA (PARTE 2) PROJETO DE ARQUITETURA (PARTE 2) Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... 5ª Lista de Exercícios Já está disponível no site a 5ª Lista de Exercícios Entrega: dia

Leia mais

Padrões de Projeto. Conteúdo. Objetivos

Padrões de Projeto. Conteúdo. Objetivos Padrões de Projeto Conteúdo O que são Padrões de Projeto? Para que servem? Vantagens/Desvantagens, Pontos Fortes/Fracos Exemplos e Alternativas Objetivos Conhecer diferentes padrões; Entender sua utilidade;

Leia mais

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

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

Análise e Projeto de Sistemas

Análise e Projeto de Sistemas Análise e Projeto de Sistemas Prof. Dr. Ronaldo C. de Oliveira ronaldo.co@ufu.br www.facom.ufu.br/~ronaldooliveira FACOM - 2018 Diagramas de Interação de Objetos Diagramas de Interação O Diagrama de Interação

Leia mais

Introdução a UML. Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski

Introdução a UML. Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski Introdução a UML 1 Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski rita.gaieski@qi.edu.br 2 Introdução a UML É uma linguagem criada para especificação, construção, visualização e documentação

Leia mais

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite Modelo Conceitual Análise e Projeto de Sistemas Avançados Aula 5 Allan Rodrigo Leite Modelo Conceitual Oferece uma visão das informações que são gerenciadas pelo sistema Representação e transformação da

Leia mais

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

04/11/2016 UML. Prof. Esp. Fabiano Taguchi  DIAGRAMAS DE CLASSE UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com DIAGRAMAS DE CLASSE 1 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES O diagrama de classes serve de apoio para

Leia mais

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

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais

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

Departamento de Engenharia Industrial. ENG Sistemas de Informação Gerenciais Caso de Uso - Exercícios PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO Departamento de Engenharia Industrial ENG 1518 - Sistemas de Informação Gerenciais Caso de Uso - Exercícios 1 - Construa um modelo de casos de uso para

Leia mais

General Responsibility Assignment Software Patterns

General Responsibility Assignment Software Patterns GRASP General Responsibility Assignment Software Patterns Os padrões GRASP fornecem uma abordagem sistemática para a atribuição de responsabilidades às classes do projeto GRASP Qual é a conexão entre Responsabilidades,

Leia mais

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos UML Aula I Diagramas de Caso de Uso Ricardo Argenton Ramos Engenharia de Software II 2016.1 25/04/2016 Um Exercício Como você pode representar? Uma casa de 2 andares, 4 quartos, 2 banheiros, 1 sala, 1

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Introdução O que é? Como descrever? Principais Padrões de Projetos Unidade 2 Padrões GoF PADRÕES CRIAÇÃO Abstract Factory

Leia mais

Introdução à Análise e Projeto de Sistemas

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br O que é?? 2 A UML

Leia mais

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

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,

Leia mais

Modelagem Orientada a Objetos

Modelagem Orientada a Objetos DCC / ICEx / UFMG Modelagem Orientada a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Atividades de Modelagem OO 1. Definir o contexto do sistema 2. Projetar a arquitetura 3. Identificar

Leia mais

DCC004 - Algoritmos e Estruturas de Dados II

DCC004 - Algoritmos e Estruturas de Dados II Conceito de especificação de software Renato Martins Email: renato.martins@dcc.ufmg.br https://www.dcc.ufmg.br/~renato.martins/courses/dcc004 Material adaptado de PDS2 - Douglas Macharet e Flávio Figueiredo

Leia mais

Documento de Especificação de Requisitos

Documento de Especificação de Requisitos Documento de Especificação de Requisitos Versão: 1.0 com Modelo de Casos de Uso Responsável: Ricardo de Almeida Falbo 1. Introdução Este documento apresenta a especificação de requisitos para a informatização

Leia mais

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

Análise e Projeto de Software Parte I. Marcos Dósea Análise e Projeto de Software Parte I Marcos Dósea marcosdosea@gmail.com Agenda Apresentação do professor Apresentação da disciplina Metodologia e avaliação Apresentação do professor Marcos Barbosa Dósea

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

Metodologias de Desenvolvimento (I)

Metodologias de Desenvolvimento (I) Modelagem Estática Metodologias de Desenvolvimento (I) Método é definido como sendo um conjunto de atividades sistemáticas para realizar uma tarefa. Técnica é um modo de executar as atividades recomendadas

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETO

ANÁLISE E PROJETO ORIENTADO A OBJETO ANÁLISE E PROJETO ORIENTADO A OBJETO Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Modelo de Domínio O que aconteceu na fase de Concepção? Duração: no máximo semana

Leia mais

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos Análise e Projeto Orientados a Objetos Modelagem conceitual do domínio Diretoria Acadêmica de Gestão e Tecnologia da Informação Introdução A modelagem do domínio está relacionada à descoberta das informações

Leia mais

UML Diagramas de Interação

UML Diagramas de Interação CBSI Curso de Bacharelado em Sistemas de Informação UML Diagramas de Interação Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Análise e Projeto de Sistemas Faculdade de Computação

Leia mais

PCS3413 Engenharia de Software e Banco de Dados

PCS3413 Engenharia de Software e Banco de Dados PCS3413 Engenharia de Software e Banco de Dados Aula 7 Escola Politécnica da Universidade de São Paulo 1 Diagramas de Interação Diagramas de Sequência Diagrama de Comunicação 2 Solange N. A. de Souza Principais

Leia mais

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Relacionamentos Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos: Dependência Generalização Associação Realização Relacionamentos - Dependência

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações

Leia mais

MÓDULO. Diagramas de Seqüência

MÓDULO. Diagramas de Seqüência MÓDULO Diagramas de Seqüência Objetivo Mostrar a interação, isto é, a seqüência de mensagens trocadas entre vários objetos num determinado contexto (caso de uso, operação, etc.) Enfatizar a comunicação

Leia mais

Sistema de Reparo de Buracos

Sistema de Reparo de Buracos IBILCE UNESP Departamento de Ciências de Computação e Estatística Profa. Dra. Inês Ap.Gasparotto Boaventura 879 - PROJETO E DESENVOLVIMENTO DE SISTEMAS DE INFORMAÇÃO Projeto para ser Desenvolvido em Grupo

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Modelagem Orientada a Objeto

Modelagem Orientada a Objeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelagem Orientada a Objeto Engenharia de Software 2o. Semestre de

Leia mais

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

UML & Padrões Aula 7. UML & Padrões - Profª Kelly C C Silva UML & Padrões Aula 7 UML & Padrões - Profª Kelly C C Silva Divisão das classes do Modelo de Análise Jacobson propõe a divisão das classes do Modelo de Análise de acordo com os seguintes estereótipos: entidades

Leia mais

Diagramas de Seqüência

Diagramas de Seqüência Diagramas de Seqüência Objetivo Mostrar a interação, isto é, a seqüência de mensagens trocadas entre vários objetos num determinado contexto (caso de uso, operação, etc.) Enfatizar a comunicação e a passagem

Leia mais