07 diagrama de classes de análise

497 views
328 views

Published on

Não fui eu que fiz o slide mas o considero muito útil. Ele foi apresentado a mim no técnico. O autor do slide pertence a Deisymar Botega, uma material adaptado de um texto escrito pelo Prof. Marcelo Balbino.

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

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

No notes for slide

07 diagrama de classes de análise

  1. 1. Curso Técnico de Informática Industrial Professora Deisymar Botega Tavares CEFET-MG – Timóteo Material adaptado do texto Análise Orientada a Objetos do Professor: Marcelo Balbino
  2. 2.  Etapa responsável pelo estudo do sistema;  Nesta fase não se deve preocupar com questões tecnológicas ou de implementação;  Nesta fase devemos:  Verificar a qualidade dos requisitos obtidos;  Modelar os conceitos do domínio do problema;  Detalhar os requisitos no nível adequado aos desenvolvedores, servindo de base para o desenho do produto. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 2
  3. 3.  Na fase de análise utiliza-se o recurso de Classes para estudar os requisitos funcionais.  Classes são abstrações de elementos do mundo real que fazem parte do problema estudado.  Os objetos são as instâncias das classes.  Exemplo: no domínio acadêmico:  ALUNO é uma CLASSE;  Lorean, Filipe, Vinícius, Alex, alunos matriculados num curso, são objetos da classe aluno. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 3
  4. 4.  Os objetos possuem atributos (campos) e operações (procedimentos).  Veja um exemplo da representação da classe Aluno: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 4 Aluno Nome RG Data Nascimento Inserir Aluno Alterar dados Aluno Excluir Aluno
  5. 5. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 5 Venda Forma de Pagamento Valor Data Totalizar Emitir Ticket Emitir Nota Fiscal Imprimir Nota Fiscal Inserir Venda Gravar Venda Excluir 1º Compartimento: NOME DA CLASSE 2º Compartimento: ATRIBUTOS DA CLASSE 3º Compartimento: OPERAÇÕES DA CLASSE
  6. 6.  Técnica de Análise das Descrições dos Casos de Uso:  Procure por substantivos existentes nos fluxos dos casos de uso;  Cada substantivo normalmente será: 1. Uma provável classe; 2. Um atributo de uma classe; 3. Uma operação de uma classe; 4. Um aspecto de implementação (ex. relatório); 5. Uma entidade fora do escopo do produto; Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 6
  7. 7.  Os substantivos que se encaixarem nos casos 4 e 5 não interessam e devem ser descartados.  Não se deve também incluir os atores (sujeitos das frases nos fluxos dos casos de uso) como prováveis classes.  Outros documentos gerados até então também podem ser utilizados para análise (mini mundo, lista de funcionalidades, entrevistas ... etc) Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 7
  8. 8. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 8 O caixa faz a abertura da venda. Para cada item de venda: O caixa registra informa a identificação e a quantidade do item. O Sistema totaliza a venda para o cliente. O caixa encerra a venda. O Sistema emite o ticket de caixa para o cliente. O caixa registra a forma de pagamento. O Sistema faz a baixa no estoque das mercadorias vendidas.
  9. 9. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 9 Classe candidata Análise Abertura operação Venda provável classe item de venda provável classe Identificação atributo do Item de Venda Quantidade atributo do Item de Venda Cliente entidade fora do escopo ticket de caixa relatório (entidade de implementação) forma de pagamento atributo de Venda Baixa operação Estoque atributo da mercadoria (saldo do estoque) Mercadoria provável classe
  10. 10.  Classes Candidatas:  Venda;  Itens de Venda;  Mercadoria;  Geralmente as classes encontradas são classes persistentes:  Classes que possuem dados persistentes, ou seja, dados que devem ser armazenados pelo sistema.  As classes persistentes são aquelas que sobrevivem a cada execução do programa por estarem armazenadas em arquivos ou bancos de dados. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 10
  11. 11.  Vamos fazer o seguinte exercício 1 do arquivo disponível no qualidata.  Lista Exercício 6 - Detecção de Classes - Diagrama de Classes e Diagrama de Sequencia Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 11
  12. 12.  As classes de um domínio não são informações isoladas.  Classes se relacionam;  Após identificarmos as classes teremos que relacioná-las.  Existem alguns tipos básicos de relacionamentos entre as classes:  Associação;  Agregação;  Composição;  Associação Reflexiva;  Classe de Associação; Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 12
  13. 13.  Denota relação lógica entre os objetos das classes em questão.  São representadas por uma linha que liga as classes cujos objetos se relacionam. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 13 Empresa Nome CNPJ Telefone Inserir( ) Excluir( ) IncluirProduto( ) ExcluirProduto( ) Mercadoria Nome Unidade Inserir( ) Excluir( ) IncluirFornecedor( ) ExcluirFornecedor( ) GetListaFornecedores( )
  14. 14. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 14
  15. 15.  Representam a informação dos limites inferior e superior da quantidade de objetos aos quais outro objeto pode se associar. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 15 NOME SIMBOLOGIA NA UML Apenas Um 1..1 ( ou 1) Zero ou Muitos 0 ..* ( ou *) Um ou Muitos 1 .. * Zero ou Um 0..1 Intervalo Específico Li ...Ls
  16. 16. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 16
  17. 17.  A conectividade corresponde ao tipo de associação entre duas classes: “muitos para muitos”, “um para muitos” e “um para um”. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 17
  18. 18.  Nome da Associação: fornece algum significado semântico a mesma.  Direção de Leitura: indica como a associação deve ser lida  Papel: para representar um papel específico em uma associação. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 18
  19. 19. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 19
  20. 20. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 20 Mercadoria Nome Unidade Inserir( ) Excluir( ) IncluirFornecedor( ) ExcluirFornecedor( ) GetListaFornecedores( ) 1..*0..* Pessoa Nome CPF Telefone Inserir( ) Excluir( ) Empresa Nome CNPJ Telefone Inserir( ) Excluir( ) IncluirProduto( ) ExcluirProduto( ) 1..*0..* 0..1 1..* 0..1 1..* fornece produtofornecedor emprega empregador empregado
  21. 21. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 21
  22. 22. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 22
  23. 23.  Ou também chamada classe Associativa.  É uma classe que está ligada a uma associação;  Geralmente é necessária quando duas ou mais classes estão associadas, e dessa associação surgem informações importantes.  Uma classe associativa pode estar ligada a associações de qualquer tipo de conectividade. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 23
  24. 24. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 24
  25. 25. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 25
  26. 26.  A maioria das associações entre classes são binárias:  Envolve duas classes.  Mas podem existir associações envolvendo 3, 4 ,5 ... Classes.  Associações ternárias envolvem 3 classes e não são muito raras.  Em UML utiliza-se o losango para relacionar associações n-árias. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 26
  27. 27. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 27
  28. 28.  São associações que representam ligações entre objetos de uma mesma classe.  Não quer dizer que um objeto se ligue a ele próprio.  Deve-se utilizar a denominações de papéis em associações reflexivas. Veja exemplo: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 28
  29. 29. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 29
  30. 30.  Para entendermos agregação e composição temos que entender o conceito de:  Relação Todo-Parte;  Uma relação Todo-Parte entre dois objetos indica que um dos objetos está contido no outro. Podemos também dizer que um objeto contém o outro. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 30
  31. 31.  Se uma das perguntas a seguir for respondida com um sim, provavelmente há uma agregação onde X é todo e Y é parte.  X tem um ou mais Y?  Y é parte de X? Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 31
  32. 32. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 32
  33. 33.  Composição é uma Agregação mais forte.  Implica que o “todo” é responsável pela criação da “parte” e que esta não vive sem o “todo”.  A composição é mais física, uma parte não pode pertencer a dois objetos compostos ao mesmo tempo:  um motor não pode pertencer a dois carros ao mesmo tempo;  uma casa e suas paredes  Implica uma forma de propagação de algumas propriedades:  Quando o objeto composto morrer, as partes morrem também.  Quando um carro se mover, as partes se movem também. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 33
  34. 34. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 34
  35. 35.  Muitas vezes relacionamentos entre classe denotam:  Generalidade ou especificidade entre as classes envolvidas.  Exemplo:  O conceito mamífero é mais genérico que o conceito ser humano.  O conceito carro é mais específico que o conceito veículo.  Esse é o chamado relacionamento de herança.  Herança é o termo em orientação a objetos que se refere à criação de novas classes a partir de existentes onde os atributos e operações comuns são agrupados para fins de reutilização de código. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 35
  36. 36.  Observe as duas classes abaixo: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 36
  37. 37.  Num contexto de um sistema de controle de pessoal podemos ter a seguinte Generalização: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 37
  38. 38. OU Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 38
  39. 39. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 39
  40. 40. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 40
  41. 41. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 41
  42. 42. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 42
  43. 43. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 43
  44. 44. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 44
  45. 45. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 45
  46. 46.  BALBINO, Marcelo. Análise Orientada a Objetos. Notas de aula.2010.  BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 2. ed. Rio de Janeiro: Elsevier, 2007.  DIAGRAMA de Classes. Disponível em: <http://www.fca.pt/docs- online/722-636-8_des_sis_inf.pdf>. Acesso em: 08 jun 2011.  GIULIANO. Modelagem Conceitual: Generalização/ Especialização, Agregação e Composição. Disponível em: http://vqv.com.br/lucelia/projSistemas/Classes.pdf. Acesso em: 08 jun 2011.  PAULA Filho, Wilson de Pádua. Engenharia de Software: Fundamentos, Métodos e Padrões. 2. ed. São Paulo: LTC, 2003. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 46

×