A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ementário O Modelo de Objetos

Apresentações semelhantes


Apresentação em tema: "Ementário O Modelo de Objetos"— Transcrição da apresentação:

1 Ementário O Modelo de Objetos
Histórico da evolução das linguagens de programação, PE versus POO, fundamentos do modelo de objetos, a importância da modelagem, métodos OO Tecnologias para apoio a orientação a objetos UML- Unified Modeling Language A Linguagem Java introdução, a sintaxe e estruturas de controle Vocabulário da Orientação a Objetos (Abordagem com Java)

2 Diagrama de Classe é a essência da UML (OMT e Booch)
coleção de elementos declarativos de modelo, como classes, tipos e seus respectivos conteúdos e relações estruturar atributos e operações em classes é fundamental para o trabalho de modelagem através do enfoque da orientação a objetos

3 Atributos Associação Agregação Classe associativa Classe Visibilidade Multiplicidade Superclasse Generalização (herança) Restrição Operações Subclasses

4 Relacionamentos (1/4) ligam as classes/objetos entre si criando relações lógicas entre estas entidades tipos de relacionamentos: generalização/ especificação (herança) associação agregação dependência

5 Relacionamentos (2/4) Generalização/ especificação
indica relacionamento entre um elemento mais geral e um elemento mais específico (respectivamente, superclasse e subclasse) também conhecido como herança ou classificação (por exemplo, um enfermeira “é um tipo de” pessoa)

6 Relacionamentos (3/4) Agregação Associação
usada para denotar relacionamentos todo/parte por exemplo, um Item de compra é parte de um Pedido Associação é um relacionamento que descreve um conjunto de vínculos, onde cada vínculo é definido como uma conexão semântica entre tuplas de objetos por exemplo, um Cliente possui Conta Corrente

7 Relacionamentos (4/4) Dependência
é um relacionamento entre elementos, um independente e outro dependente uma modificação no elemento independente afetará diretamente os elementos dependentes do anterior é um relacionamento de utilização

8 Elementos Chaves 1. Objeto 2. Classe 3. Atributo 4. Operação
5. Associação 6. Restrição 7. Classe de associação 8. Dependência 9. Interface 10. Normalização do modelo de classes

9 1. Objeto é uma unidade real ou abstrata, individualizada e identificável características básicas: estado: características herdadas ou distintas identidade (id.): propriedade que o distingue de todos os demais comportamento: modo como age e reage a estímulos externos (passagem de mensagens)

10 2. Classe “um conjunto de objetos que compartilham estrutura e comportamento comuns” (Booch) se a classe possuir como instâncias classes em vez de objetos, ela será denominada de metaclasse abstração = seleção de alguns aspectos de domínio do problema para modelagem

11 Ao definir classes, é importante:
Buscar equilíbrio entre funcionalidade e reutilização, resistindo-se ao desejo de criar classes grandes que abrangem tudo: Classes grandes são mais difíceis de entender e reutilizar, assim a criação de classes de objetos que possuam propósitos bem definidos contribui significativamente na reutilização por outras aplicações. Classes menos complicadas são mais fáceis de entender e manter, e se uma classe não puder ser explicada de forma simples ela é forte candidata a subdivisão em classes menores.

12 As classes são os blocos de construção mais
importantes de qualquer sistema orientado a objetos.

13 Notação gráfica para declarar e usar Classes
Nome da Classe atributo atributo: tipo do dado atributo: tipo do dado = valor inicial ... operação () operação (lista de parâmetros) operação (lista de parâmetros): tipo de resultado ...

14 Variações Classes 1) Indivíduo Nome da Classe Indivíduo
atributos da classe (opcional) +códigoDoIndivíduo:long +sexo: M ou F +dataDoNascimento: data 2) operações da classe (opcional) Indivíduo 3) +incluirIndivíduo(códigoDoIndivíduo) +destruirIndivíduo(códigoDoIndivíduo) Variações Indivíduo +códigoDoIndivíduo:long +sexo: M ou F +dataDoNascimento: data 4) +incluirIndivíduo(códigoDoIndivíduo) +destruirIndivíduo(códigoDoIndivíduo)

15 Nome da Classe (1/2) cada classe deve ter um nome que a diferencie de outras classes o nome é uma seqüência de caracteres o nome de uma classe deve ser único no pacote que a contém somente o nome da classe é conhecido como nome simples nome de caminho é o nome da classe, tendo como prefixo o nome do pacote a que essa classe pertence

16 Nome da Classe (2/2) Nomes Simples Nomes de caminho HelloWorld
Regras de Negócio::ValidaPedido Cliente Tabelas::Cliente TButton Quick Report::TQuickRep

17 3. Atributo menor unidade que em si possui significância própria e interrelacionada com o conceito lógico da classe à qual pertence (equivale aos campos de um registro) uma propriedade nomeada de um tipo em síntese, armazena valores em células sintaxe padrão: Visibilidade nomeDoAtributo: TipoDeExpressão = ValorInicial {Propriedade}

18 Sintaxe padrão p/ atributos (1/2)
nomeDoAtributo é uma seqüência de caracteres de identificação começando tipicamente com letra minúscula primeira letra de cada palavra em maiúscula ex: nomeDoIndivíduo, limiteDeCréditoDoCliente TipoDeExpressão depende da linguagem de programação e do tipo de implementação de um atributo

19 Sintaxe padrão p/ atributos (1/2)
ValorInicial é uma expressão que também depende da linguagem de programação Propriedade descrição do atributo tipo de dado tipo de atributo domínios de valores (valores mínimo e máximo)

20 Visibilidade de atributo (1/2)
+ visibilidade pública (valor default) todos têm acesso # visibilidade protegida é acessível dentro da mesma classe e por classes ao longo do pacote no qual a classe é definida - visibilidade privada é acessível apenas por operações declaradas dentro da mesma classe

21 Visibilidade de atributo (2/2)
Nome da classe Visibilidade pública Cliente +códigoDoCliente #situação -limiteDeCrédito Visibilidade protegida Visibilidade privada Nome do atributo

22 4. Operação um serviço que é requisitado a um objeto como parte de seu comportamento em resposta a estímulos (procedimento algorítmico) operação é algo invocado por um objeto (procedimento de chamada) método é um corpo de procedimento sintaxe padrão: Visibilidade nomeDaOperação(Parâmetro): ExpressãoDeTipoDeRetorno {Propriedade}

23 Sintaxe padrão p/ operações (1/3)
nomeDaOperação é uma seqüência de caracteres de identificação começando tipicamente com letra minúscula primeira letra de cada palavra em maiúscula exemplos: obterNomeDoIndivíduo obterLimiteDeCréditoDoCliente

24 Sintaxe padrão p/ operações (2/3)
Parâmetro é uma lista de valores separados por vírgula nome tipo: tipo-expressão = valor-padrão nome é o nome de um parâmetro formal tipo é in, out, ou inout, com padrão in tipo-expressão é a especificação de um tipo de implementação dependente da linguagem valor-padrão é uma expressão de valor opcional para o parâmetro

25 Sintaxe padrão p/ operações (3/3)
ExpressãoDeTipoDeRetorno é uma especificação dependente de linguagem de programação sobre o tipo de implementação do valor retornado pela operação Propriedade indica valores de propriedade que se aplicam ao elemento classificação, pré-condição, pós-condição, tipo de execução, concorrência, transformação e estereótipo

26 Visibilidade para operações (1/2)
definida da mesma forma que se define para os atributos. + visibilidade pública (valor default) # visibilidade protegida - visibilidade privada

27 Visibilidade de operação (2/2)
Nome da classe Cliente Visibilidade pública +obterLimiteDeCrédito #bloquearCliente -cancelarCliente Visibilidade protegida Visibilidade privada Nome da operação

28 Organização de atributos e operações (1/2)
Ao representar uma classe, não é preciso exibir todos os atributos e operações ao mesmo tempo. Na verdade, na maioria dos casos, isso não é possível (haverá um número muito grande de itens) nem é adequado (somente um subconjunto desses atributos e operações será relevante para uma determinada visão). Um compartimento vazio não significará necessariamente que não existam atributos ou operações, mas apenas foi decidido não mostrá-los.

29 Organização de atributos e operações (2/2)
Para especificar explicitamente a existência de mais atributos ou métodos do que os apresentados, terminar cada lista com reticências (...). Para melhor organização de listas extensas de atributos e operações cada grupo pode receber um prefixo com uma categoria descritiva, utilizando-se estereótipos. Por exemplo, organizando métodos construtores: <<constructor>> Create() Create(y, m, d: word)

30 5. Associação é uma relação que descreve um conjunto de vínculos entre elementos de modelo uma associação representa que duas classes possuem uma ligação (link) entre elas: conhecem uma a outra estão conectadas com para cada X existe um Y

31 Nomenclatura de associações
quando duas classes, ou mesmo uma classe consigo própria, apresenta interdependência onde determinada instância de uma delas origina ou se associa a uma ou mais instâncias da outra a nomenclatura da associação depende do número de classes envolvidas: unária (recursiva), binária (normal), n-ária

32 Associação unária Pessoa associação reflexiva ou recursiva
quando há um relacionamento de uma classe consigo própria conectando-se ambos os fins da associação a ela mesma (mas os dois fins são distintos) semanticamente representa a conexão entre dois objetos da mesma classe é casado com Esposa Marido Pessoa

33 Associação binária (normal)
quando há duas classes envolvidas na associação de forma direta de uma para a outra 1 0..* Cliente Pedido

34 Associação n-ária é uma associação entre três ou mais classes
Funcionário Quesito Projeto * * * Avaliação

35 Semântica da associação
nome da associação Classe A Classe B papel-1 papel-2 onde: nome da associação: usado para definir, ou qualificar, a natureza da relação entre as classes associadas papel-1, papel-2: mostram como uma classe é vista pela outra, ou, o papel desempenhado pela classe no relacionamento

36 Papéis em associação (1/3)
Multiplicidade Ordenação Qualificador Agregação/ composição Navegabilidade Especificador de interface Mutabilidade Visibilidade Generalização

37 Papéis em associação (2/3)
Restrição ou propriedade Qualificador {ordenado} Agregação 1 0..* Classe A Classe B Possui Multiplicidade Nome do papel Navegabilidade Composição Generalização Classe C Classe D

38 Papéis em associação (3/3)
Nome da associação a associação possui um nome que a representa, freqüentemente atribuído a um verbo podem existir dois nomes, um para cada direção do relacionamento “um cliente possui conta corrente” Possui  Cliente Conta corrente é Possuída por

39 Multiplicidade, ou cardinalidade (1/2)
especifica a quantidade de correspondência de um objeto na classe [A] em objetos equivalentes na classe [B] 1 exatamente um * muitos (zero ou mais) 0..1 opcional (zero ou um) m..n seqüência especificada (5..11)

40 Multiplicidade, ou cardinalidade (2/2)
Pessoas 1..* * Empresa funcionário empregador Uma “Pessoa” é funcionário de nenhuma ou mais (*) “Empresas”. Cada “Empresa” possui um ou vários (1..*) “Funcionários”.

41 Papéis em associação Ordenação {ordenado} Qualificador
se a multiplicidade é maior que um, o conjunto de elementos relacionados é ordenado ou não ordenado (padrão) Qualificador é um atributo de associação ou uma estrutura de atributos cujos valores particionam um conjunto de objetos relacionados a um objeto por uma associação (reduz a multiplicidade)

42 Associação qualificada
Pedido, item Pedido Produto 0..1 O qualificador ‘Produto’ diz que em conexão com um pedido pode haver um item de pedido para cada ocorrência de produto. Conceitualmente, esse exemplo indica que não é possível haver dois itens de pedido para um mesmo produto. Para acessar um item de pedido em particular, é necessário identificar o produto como argumento.

43 Agregação Uma agregação é uma forma especial de associação utilizada
para mostrar que um tipo de objeto é composto, pelo menos em parte, de outro em uma relação de todo/ parte. 1 1..* Pedido, item Pedido Tem Todo Parte Agregação regular, relacionamento por-referência

44 Agregação de composição
É uma forma de agregação com uma forte propriedade e vida coincidente da parte com o todo. Na composição, ou relacionamento por-valor, o objeto todo declara uma instância real do objeto parte dentro do seu próprio corpo tornando o objeto parte fisicamente nele contido. Indivíduo, complemento de endereço Indivíduo, endereço 1 0..1 Tem Todo Parte Agregação de composição, relacionamento por-valor

45 Navegabilidade Uma instância de uma classe pode navegar a instâncias de outra classe e vice-versa. Fonte Alvo Pedido Cliente * 1 {ordenado} sentido da navegação

46 Navegabilidade na agregação
Todo 1 1 Navegabilidade unidirecional em agregação regular Navegabilidade bidirecional em agregação de composição 0..* 0..* Parte 1 Parte 2

47 Papéis em associação (1/2)
Especificador de Interface define o comportamento exigido para habilitar a associação nome de um classificador com a sintaxe: “:”nome-do-classificador Mutabilidade se os vínculos são mutáveis podem ser somados, apagados e movidos outras propriedades: congelado, somarSomente

48 Papéis em associação (2/2)
Visibilidade especificado por um indicador de visibilidade (“+”, “#”, “-” ou palavra-chave explícita tal como {público}) Generalização um relacionamento de taxinomia entre um elemento mais geral e um elemento mais específico que é completamente consistente com o primeiro elemento somando-o informação adicional especializada

49 Generalização Indica que uma classe mais geral, a superclasse, tem atributos, operações e associações comuns que são compartilhados por classes mais especializadas, as subclasses. Por sua vez, as subclasses herdam atributos, operações e associações da superclasse e agregam atributos e operações particulares ao elemento de especialização a que se referem.

50 Restrições para generalização/ especificação
{completo}: N é conhecido {incompleto}: N não é conhecido {disjunção}: B, C, ..., N são mutuamente exclusivos {sobreposição}: B, C, ... N podem ocorrer simultaneamente Generalização Superclasse (classe pai ou classe base) A {Restrição} B C ... Subclasses (classes filha ou classes derivada) N

51 Exemplo de generalização/ especificação com restrição
Animal {disjunção, incompleto} Mamífero Ave Peixe

52 Herança É o mecanismo de reutilização de atributos e operações definidos em classes gerais por classes mais específicas. Permite organizar tipos similares de classes de objetos em categorias hierárquicas, onde é permitida à classe de menor nível, que é uma especialização ou extensão de outra classe, compartilhar atributos e operações de classes superiores na hierarquia.

53 Redefinição de atributos e operações na herança
Veículo terrestre Superclasse Operações redefinidas pela subclasse partida() parada() {disjunção} Automóvel Caminhão Subclasses partida() partida() parada() parada()

54 Herança múltipla Veículo {sobreposição, incompleto} Veículo terrestre
aquático Veículo anfíbio

55 Agregação versus Generalização
Pedido Árvore Agregação: Pedido, item é parte-de (ou atributo-de) Pedido Generalização: Pinus é um tipo-de Árvore Pedido, item Pinus

56 6. Restrição Uma restrição é um relacionamento semântico entre elementos de modelo que especifica condições e proposições que devem ser mantidas como verdadeiras, caso contrário o sistema descrito pelo método é nulo. Restrição Grupo de cidadãos idosos {pessoa.idade > 60} Pessoa 0..1 0..*

57 Restrições predefinidas na UML
Associação Auto Completo Disjunção Global Implícito Incompleto Local Ou Parâmetro Radiodifusão Sobreposição Voto

58 Restrição {Ou} Qualquer instância da classe só pode participar uma vez no máximo de uma das associações. 0..1 Indivíduo Pertence 0..* Conta Corrente {Ou} 0..* Pertence Organização 0..1

59 Restrição em linguagem natural
{Se nível de crédito for insuficiente então condição de pagamento deve ser à vista} 1 0..* Cliente Pedido Faz

60 Linguagem de restrição de objeto
A UML inclui uma especificação da linguagem OCL- Object Constraint Language para ser utilizada em definição de restrições dentro do metamodelo. Na UML, cada restrição é escrita em uma linguagem específica, embora também possa ser escrita em linguagem natural, tal como um comentário.

61 Sintaxe básica da OCL (1/2)
item “.” seletor O seletor é o nome de um atributo no item ou o nome de um papel de fim designado de um vínculo anexado ao item. item “.” seletor “[“ valor-de-qualificador “]” O seletor designa uma associação qualificada que qualifica o item. O valor-de-qualificador é um valor para atributo de qualificador.

62 Sintaxe básica da OCL (2/2)
set “->” “select” “(“ expressão-booleana “)” A expressão-booleana é escrita em termos de objetos dentro do conjunto. O resultado é o subconjunto de objetos no conjunto para o qual a expressão booleana é verdadeira. Exemplos: flight.pilot.training_hours > flight.plane.minimum_hours company.employees -> select (title = “Manager” and self.reports -> size > 10)

63 Nome da classe de associação
Uma classe de associação é um elemento de modelagem que tem associação e propriedades de classe, podendo ser vista tanto como uma associação que tem propriedades de classe como uma classe que tem propriedades de associação. Classe A Classe B Nome da classe de associação atributos da classe de associação operações da classe de associação

64 8. Dependência Dependência indica a ocorrência de um relacionamento semântico entre dois ou mais elementos de modelo onde uma classe cliente é dependente de alguns serviços da classe fornecedora. Indica uma situação na qual uma mudança em um elemento (elemento independente) pode afetar outro elemento da dependência (elemento dependente).

65 Dependência Classe A Classe B Fornecedor Cliente

66 Dependências predefinidas na UML (1/2)
Rastro uma conexão histórica entre dois elementos que representam o mesmo conceito em níveis diferentes de significado Refinamento um histórico ou conexão de derivação entre dois elementos com um mapeamento entre eles

67 Dependências predefinidas na UML (2/2)
Uso uma situação na qual um elemento requer a presença de outro para sua implementação correta ou funcionamento Ligação uma ligação de parâmetros de modelo para valores reais visando criar um elemento não parametrizado

68 9. Interface É um especificador para operações externamente visíveis de uma classe ou um componente sem especificação de sua estrutura interna. Fornece um modo para dividir e caracterizar grupos de operações. nome da interface Classe de implementação Classe cliente Interface dependência

69 Interface especifica uma parte limitada do comportamento de uma classe real e não tem implementação formalmente eqüivale a uma classe abstrata sem atributos, estados ou associações, mas com um conjunto de operações abstratas designa a face externa de uma classe ou um pacote descreve as interações entre dois objetos

70 «interface» Executável {abstrado} «interface» Armazenável {abstrado}
Fornecedor Cliente Classe A Classe B executável Fornecedor executável Classe C Classe A implementa a interface executável e armazenável Classe C implementa a interface executável Classe B usa a interface executável e armazenável de A e executável de C «interface» Executável {abstrado} executar() {abstrato} processar() {abstrato} «interface» Armazenável {abstrado} carregar() {abstrato} salvar() {abstrato}

71 10. Normalização do modelo de classes
Normalização é um processo formal que examina os atributos de classes com o intuito de minimizar redundância em objetos específicos. A normalização causa a simplificação de atributos dentro das respectivas classes colaborando para a integridade e a estabilidade do modelo. O segredo das formas normais está em perceber que alguns atributos determinam o valor de outros.

72 Normalização do modelo de classes
São mais necessárias para os modelos relacionais. Primeira, Terceira e Quarta Forma Normal. A Segunda não ocorre em banco de objetos identificador único e universal ao objeto Uma estrutura de atributos não normalizada é dita estar na zerésima forma normal

73 1ª Forma Normal é verificada quando em determinadas estruturas de atributos, existem dados que se repetem várias vezes objetivo = remoção de grupos repetitivos

74 Exemplo para normalização de classes:

75 Classe pedido preliminar
númeroDoPedido códigoDoCliente nomeDoCliente dataDoPedido códigoDoProduto[15] quantidadeDoProduto[15] descriçãoDoProduto[15]

76 Para atingir a 1ª forma normal
verificar se há ocorrências repetitivas de atributos dentro da classe [A] analisada; destacar os atributos repetitivos e suas respectivas operações, criando uma nova classe [B] que absorverá esses itens; estabelecer a associação de agregação regular e multiplicidade ?..* ou ?..[número de ocorrências] entre as classes [A] e [B].

77 Resultado da 1ª forma normal
Pedido, item Pedido númeroDoPedido códigoDoCliente nomeDoCliente dataDoPedido códigoDoProduto quantidadeDoProduto descriçãoDoProduto 1 1..*

78 3ª Forma Normal objetivo = remoção de dependências transitivas
dependência transitiva é a dependência indireta que um determinado atributo tem com o identificador do objeto através de um outro atributo explícito ou implícito do qual é diretamente dependente

79 Para atingir a 3ª forma normal
verificar se a classe [C] analisada possui atributos que são dependentes de outros atributos nela contidos; destacar os atributos com dependência transitiva e suas respectivas operações, incorporando-os na classe [D]; eliminar os atributos obtidos por cálculo a partir de outros atributos da classe [C].

80 Resultado da 3ª forma normal
Pedido Pedido, item 1 1..* númeroDoPedido dataDoPedido quantidadeDoProduto * * 1 1 Cliente Produto códigoDoCliente nomeDoCliente códigoDoProduto descriçãoDoProduto

81 4ª Forma Normal Tendo como pré-requisito a terceira forma normal, a quarta forma normal busca remover dependências multivaloradas. Livro texto Curso Professor * * * classe de associação CPL

82 Resultado da 4ª forma normal
Livro texto * * * * Professor Curso Professor Curso Livro texto Curso classe de associação

83 Referência Modelagem de Objetos através da UML - the Unified Modeling Language José Davi Furlan MAKRON Books, 1998 Capítulo 2- Modelando com a UML, item 3. pg


Carregar ppt "Ementário O Modelo de Objetos"

Apresentações semelhantes


Anúncios Google