Projeto de sistemas com UML - Parte 2

925 views
734 views

Published on

Conceitos fundamentais de diagramas de caso de uso e de classe exemplificando passo a passo a elicitação dos requisitos e implementação

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
925
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
53
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Projeto de sistemas com UML - Parte 2

  1. 1. #AnaliseDeSistem as Prof. Natanael Simões Projeto de Sistemas com UML Parte 2: Representação gráfica dos principais diagramas e exercícios práticos de diagramação natanaelsimoes
  2. 2. Diagrama de Caso de Uso • Representa as funções globais de um sistema • Notações gráficas: – – – – Ator Caso de uso Relacionamento Limite 2
  3. 3. Ator • Representa um agente externo ao sistema – – – – – Pessoa Dispositivo (Impressora, leitor) Organização (IFRO, Prefeitura) Departamento (Recursos Humanos, Financeiro) Outro sistema (Webservice, DLL) Ator 3
  4. 4. Ator a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…” b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…” c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…” 4
  5. 5. Ator d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 5
  6. 6. Ator a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…” b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…” c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…” 6
  7. 7. Ator d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 7
  8. 8. Caso de Uso • Representa uma grande função do sistema Gerar relatório 8
  9. 9. Caso de Uso a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…” b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…” c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…” 9
  10. 10. Caso de Uso d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 10
  11. 11. Caso de Uso a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…” b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…” c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…” 11
  12. 12. Caso de Uso d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 12
  13. 13. Relacionamentos • Definem como atores e casos de uso se relacionam entre si • Entre ator e caso de uso – Associação: O que o ator usa Gerar relatório Ator 13
  14. 14. Relacionamentos • Entre atores – Generalização ou Especialização: herança de usos Ator C Ator A Ator B 14
  15. 15. Relacionamentos • Entre ator e casos de uso – Generalização ou Especialização: herança de funções Gerar relatório Imprimir 15
  16. 16. Relacionamentos • Entre ator e casos de uso – Include: processamento obrigatório Marcar consulta <<include>> Procurar registro do paciente 16
  17. 17. Relacionamentos • Entre ator e casos de uso – Extend: processamento condicional Verificar nível do compartimento <<extend>> Reabastecer compartimento 17
  18. 18. Limite • Conhecido como System Boundary • Delimita o sistema computacional 18
  19. 19. Diagramas ! a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…” b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…” c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…” 19
  20. 20. Diagramas ! d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 20
  21. 21. Diagrama de Classes • Conjunto de representações de estruturas de objetos do mundo real e suas relações • Pré-requisito para os diagramas de: – Comunicação – Sequência – Estados 21
  22. 22. Classe • Representação das características e comportamentos abstraídos de objetos em comum do mundo real • Possui atributos, métodos e relacionamentos Identificação da classe Atributos Métodos <<class>> Cachorro - Cor:string - Altura:double - Tamanho:double - Peso:double - Raça:string - Nome:string + EmitirSom():void + Correr(int velocidade):void + Comer(Comida c):void + Comer(Objeto o):void 22
  23. 23. Identificação da Classe Estereótipo Nome • • • • • • <<class>> Cachorro <<class>> <<entity>> <<control>> <<boundary>> <<interface>> <<abstract>> 23
  24. 24. Interface x Abstrata Herança múltipla Interface Abstrata Uma classe pode Uma classe pode implementar herdar somente diversas interfaces uma classe 24
  25. 25. Interface x Abstrata Implementação padrão Interface Abstrata Uma interface não pode conter qualquer tipo de código, muito menos código padrão. Uma classe abstrata pode fornecer código completo, código padrão ou ter apenas a declaração de seu esqueleto para ser posteriormente sobrescrita. 25
  26. 26. Interface x Abstrata Homogeneidade Interface Abstrata Se todas as diversas implementações compartilham a assinatura do método então a interface funciona melhor. Se as várias implementações são todas do tipo e compartilham um comportamento e status comum , então a classe abstrata funciona melhor. 26
  27. 27. Interface x Abstrata Funcionalidades adicionais Interface Abstrata Se você incluir um novo Se você incluir um novo método em uma método em uma classe abstrata você tem a interface você precisa opção de fornecer uma ajustar todas as implementação padrão implementações da para ele. interface. 27
  28. 28. Atributos [visibilidade] [nome] : [tipo] • Visibilidade – Pública (+) – Protegida (#) – Privada (-) • Nome do atributo • Tipo de dado - Cor:string - Altura:double - Tamanho:double - Peso:double - Raça:string - Nome:string 28
  29. 29. Métodos [visibilidade] [nome] ([tipo p1] [nome p1], [tipo p2] [nome p2]): [tipo] • Visibilidade – Pública (+) – Protegida (#) – Privada (-) + EmitirSom():void + Correr(int velocidade):void + Comer(Comida c):void + Comer(Objeto o):void • Nome do Método • Tipo e Nome de cada parâmetro • Tipo de retorno do método 29
  30. 30. Relacionamentos entre classes • Herança Mamifero - Cor:string - Altura:double - Tamanho:double - Peso:double - Raça:string - Nome:string Cachorro + Pegar(Bolinha b):boolean + Pegar(Graveto g): boolean + EmitirSom():void + Correr(int velocidade):void + EmitirSom():void + Correr(int velocidade):void + Comer(Comida c):void 30
  31. 31. Relacionamentos entre classes • Associação Empresa Funcionário 31
  32. 32. Relacionamentos entre classes • Multiplicidade Empresa Funcionário 1 0 .. * 32
  33. 33. Relacionamentos entre classes • Agregação A B - b: B 1 1 33
  34. 34. Relacionamentos entre classes • Agregação public class B { public B( ){ } } public class A { private B b; public A( ){ } public void setB( B b ){ this.b = b; } public B getB( ) { return b; } } 34
  35. 35. Relacionamentos entre classes • Composição A B - b: B 1 1 35
  36. 36. Relacionamentos entre classes • Composição public class A { private B b; public A( ){ b = new B(); } } public class B { public B( ){ } } 36
  37. 37. Relacionamentos entre classes • Realização <<interface>> DB + AbrirConexao(string host, string usuario, string senha, string porta, string banco):boolean + Executar(string query): boolean + Selecionar(string query): Collection + FecharConexao:void MySQL PostgreSQL SQLServer 37

×