20
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama 9. Modelo conceitual (diagrama conceitual de classes) conceitual de classes) 9.1 Conceitos 9.1 Conceitos 9.2 Associações 9.2 Associações 9.3 Atributos 9.3 Atributos Objetivo: compreender e aplicar um modelo Objetivo: compreender e aplicar um modelo conceitual conceitual Aluno Professo r ensina * 1.. *

1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

Embed Size (px)

Citation preview

Page 1: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

11 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

9. Modelo conceitual (diagrama conceitual de 9. Modelo conceitual (diagrama conceitual de classes)classes)

9.1 Conceitos9.1 Conceitos9.2 Associações9.2 Associações9.3 Atributos9.3 Atributos

Objetivo: compreender e aplicar um modelo Objetivo: compreender e aplicar um modelo conceitual conceitual

Aluno Professor

ensina*1..*

Page 2: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

22 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• Um modelo conceitual mostra os conceitos significativos PARA QUEM MODELA o sistema no domínio de uma determinada atividade

• É necessário que sejam identificados conceitos adequados a partir da investigação de um problema para que o projeto e a implementação sejam feitos também de forma mais adequada

• Uma série de esforços (dicas) devem ser despendidos pelo MODELADOR para a construção do modelo conceitual

• DICA 1: deve-se ter um esforço para pensar no modelo conceitual como uma representação de coisas do mundo real e nunca como componentes de software

Page 3: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

33 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 2: o modelo conceitual é sempre feito a partir dos casos de uso

• O modelo conceitual trata de conceitos, associações entre conceitos e atributos de conceitos

• Exemplo dos pontos de venda que pode partir de diversos pontos de vista de caso de uso

Page 4: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

44 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

Page 5: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

55 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• 9.1 Conceitos9.1 Conceitos

• Conceitos são idéias, coisas ou objetos– Mais especificamente

• Símbolos – palavras ou imagens representam conceitos• Intenções – definições de conceitos• Extensões – conjunto de exemplos aos quais o conceito se

aplica

• Por exemplo, “colocar material na página” é um evento cujo símbolo eu posso escolher “material”?

• DICA 3: a análise deve sempre ser orientada a objetos. Cuidado para não dividir por funções!!

Page 6: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

66 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

Page 7: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

77 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 4: Estratégias para se identificar conceitos a partir de um caso de uso– Principal: especificar muitos conceitos (SEM PENA!!!!!)– Enfoque 1 – Criar um modelo conceitual a partir de uma lista de

categorias de conceitos

Categoria de conceitoCategoria de conceito ExemplosExemplos

Objetos físicos ou tangíveis POST

Especificação de projeto ou descrição de objeto EspecificaçãodeProduto

Lugares Loja

Transações Venda, Pagamento

Linhas de itens de transações LinhadeItemdeVenda

Papéis Caixa

Contêineres Depósito, armário

Objetos dos contêineres Item

Outros sistemas SistemadeCartãodeCrédito

Page 8: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

88 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

Categoria de conceitoCategoria de conceito ExemplosExemplos

Substantivos abstratos Fome

Organizações DepartamentodeVendas

Eventos Venda, Roubo, Reunião

Processo VendendoumProduto

Regras e estratégias PolíticadeReembolsos

Catálogos CatálogodeProdutos

Registros Recibo, DiáriodeCaixa

Serviços LinhadeCrédito

Manuais, livros ManualdoEmpregado

– Enfoque 2 – Criar um modelo conceitual a partir da identificação de substantivos

• CUIDADO: não trabalhar mecanicamente!

Page 9: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

99 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• Exemplo na sequência de eventos do caso de uso Comprar Itens

Açao do AtorAçao do Ator Resposta do SistemaResposta do Sistema

1. Este caso de uso começa quando um Cliente chega a um ponto de pagamento com POST, com vários itens que deseja comprar

2. O caixa registra o Código Universal de Produto (UPC) de cada item

3. Determina o preço do item e acrescenta informação sobre o item à transação de vendas em andamento

Se houver mais de um exemplar do item, o Caixa também pode entrar a quantidade

A descrição e o preço do item corrente são apresentados

Page 10: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1010 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 5: objetos-relatórios, incluir ou não?– No caso do ponto de venda

• I) recibo é relatório de venda e mostrar relatório em um modelo conceitual não é útil porque toda a informação é derivada de outras fontes

• II) recibo tem um papel importante: dá direito ao portador de retornar itens comprados pelo mesmo

• De uma maneira geral, deve-se usar a “regra do cartógrafo”!

Page 11: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1111 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• ERROS COMUNS:

– 1) representar algo como atributo quando deve ser um conceito

• Dica: se você pensa em um conceito X como um número ou um texto no mundo real, provavelmente é um conceito e não um atributo

– 2) ignorar conceitos de especificação• Dica: no mundo real, uma especificação é algo que não é

necessariamente intrinseco a um objeto, já que, se assim fosse, se os objetos acabassem, as epecificações acabariam também

Page 12: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1212 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• 9.2 Associações9.2 Associações

• Associações são relacionamentos entre conceitos com algum significado para o domínio de conhecimento

• Exemplo do ponto-de-venda

Page 13: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1313 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 6: as associaçõe devem ser encontradas a partir de uma lista de categorias de associações comuns

Categoria Categoria ExemploExemplo

A é uma parte física de B Gaveta-POST

A é uma parte lógica de B LinhadeItemVenda-Venda

A está fisicamente em / sobre B POST-Loja

A está logicamente em / sobre B Descriçãodeitem-Catálogo

A é descrição de B DescriçãodeItem-Catálogo

A é linha de item de transação/relatório B LinhadeItemVenda-Venda

A é conhecido/logado/registrado por B Venda-POST

A é membro de B Caixa-Loja

A usa/gerencia B Caixa-POST

A é subunidade de B Departamento-Loja

A se comunica com B Cliente-Caixa

A relacionado com transação B Cliente-Pagamento

A é transação relacionada com transação B Pagamento-Venda

A é vizinho/de lado de B POST-POST

A é possuído por B POST-Loja

Page 14: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1414 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 7: nunca se dedicar mais a associações do que a conceitos

• DICA 8: focalizar as associações que são necessárias de ser conhecidas

• DICA 9: evitar associações redundantes e deriváveis

• Papéis: cada extremo de uma associação com:– Nome– Multiplicidade– Navegabilidade

Page 15: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1515 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

Page 16: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1616 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• Exemplo do modelo conceitual para ponto de vendas

Page 17: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1717 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• 9.3 Atributos9.3 Atributos

• Valores de dados lógicos de um objeto

• DICA 10: colocar atributos para os quais os requisitos indicam que as informações devem ser memorizadas

• Exemplo para ponto de venda

Page 18: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1818 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• DICA 11: como diferenciar atributos de associações– Deixar os atributos simples

Page 19: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

1919 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

– Identificados como aqueles para os quais uma entidade única não faz sentido

– Em nehuma hipótese definir atributo como chave estrangeira

• DICA 12: pensar o modelo conceitual principalmente como uma ferramenta de comunicação

Page 20: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 9. Modelo conceitual (diagrama conceitual de classes) 9.1 Conceitos

2020 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB

• Exemplo completo para o ponto de vendas