1 - lafayette b. melo – análise e projeto de sistemas para a internet – coinfo – cefet-pb 7....

24
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 7. Análise e projeto orientados a 7. Análise e projeto orientados a objetos objetos 7.1 Técnica de modelagem de objetos (TMO) 7.1 Técnica de modelagem de objetos (TMO) 7.2 Características básicas da TMO 7.2 Características básicas da TMO 7.3 O modelo dos objetos 7.3 O modelo dos objetos 7.4 O modelo dinâmico 7.4 O modelo dinâmico 7.5 O modelo funcional 7.5 O modelo funcional 7.6 Um exemplo completo de TMO 7.6 Um exemplo completo de TMO Objetivo: compreender os termos essenciais da Objetivo: compreender os termos essenciais da análise orientada a objetos e a forma como análise orientada a objetos e a forma como estão relacionados com o projeto de estão relacionados com o projeto de desenvolvimento desenvolvimento

Upload: internet

Post on 22-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

7. Análise e projeto orientados a objetos7. Análise e projeto orientados a objetos

7.1 Técnica de modelagem de objetos (TMO)7.1 Técnica de modelagem de objetos (TMO)7.2 Características básicas da TMO7.2 Características básicas da TMO7.3 O modelo dos objetos7.3 O modelo dos objetos7.4 O modelo dinâmico7.4 O modelo dinâmico7.5 O modelo funcional7.5 O modelo funcional7.6 Um exemplo completo de TMO7.6 Um exemplo completo de TMO

Objetivo: compreender os termos essenciais da Objetivo: compreender os termos essenciais da análise orientada a objetos e a forma como estão análise orientada a objetos e a forma como estão relacionados com o projeto de desenvolvimentorelacionados com o projeto de desenvolvimento

Page 2: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• A análise orientada a objetos é um modo de estudar problemas com a utilização de modelos fundamentados em conceitos do mundo real nos quais os objetos agrupam conjuntamente dois elementos– Estrutura– Comportamento

• Difere do modo tradicional com ênfase no funcional e em objetos focalizados nos problemas das linguagens de programação

• A metodologia baseada em objetos é acompanhada por uma notação gráfica e consiste na construção de um modelo de DOMÍNIO DA APLICAÇÃO com noções específicas como classe, polimorfismo e herança

Page 3: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Exemplo:

Objetos de pessoas

Objetos de polígonos

Classe pessoaAtributos:

NomeProfissão Endereço

Comportamentos:Andar

ComprarReceber salário

Classe PolígonoAtributos:

VérticeCor de preenchimento

Espessura da bordaComportamentos:

DesenharApagarMover

Page 4: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 7.1 Técnica de modelagem de objetos (TMO)7.1 Técnica de modelagem de objetos (TMO)

• Há várias metodologias orientadas a objeto– Uma que trabalha com ênfase em um modelo no DOMÍNIO DA

APLICAÇÃO é a de Rumbaugh e será a que nós nos basearemos

• Etapas da TMO

– 1) Análise• Parte do enunciado para construir o modelo de uma situação

real• Ênfase no “o quê” e não no “como”• Um bom modelo pode ser criticado por não programadores• Atributos e operações são visíveis ao usuário

– Como deve ser descrita em termos de atributos e Como deve ser descrita em termos de atributos e operaçõe uma classe de objetos como “janela”?operaçõe uma classe de objetos como “janela”?

Page 5: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

– 2) Projeto do sistema• Decisões de alto nível da arquitetura geral• Sub-sistemas baseados na estrutura de análise e na

arquitetura proposta– Como objetos da classe “janela” seriam modificados?Como objetos da classe “janela” seriam modificados?

– 3) Projeto dos objetos• Modelo de projeto baseado no módulo de análise com

alguma implementação• Estrutura de dados e algoritmos de cada classe

– Como as operações de “janela” são especificadas agora?Como as operações de “janela” são especificadas agora?

Page 6: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

– 4) Implementação• Deve ser mecânica• Deve ser a parte mais fácil e de menor importância• Detalhes da linguagem de programação não devem trazer

restrições– Como “janela” deveria ser implementada? Em que se Como “janela” deveria ser implementada? Em que se

deve pensar no momento da implementação?deve pensar no momento da implementação?

Page 7: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• A TMO usa três tipos de modelos

– 1) Modelo de objetos• Nós são classes• Arcos são relacionamentos

– 2) Modelos dinâmicos• Nós são estados• Arcos são transições causadas por eventos

– 3) Modelo funcional• Nós são processos• Arcos são fluxos de dados

Page 8: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 7.2 Características básicas da TMO7.2 Características básicas da TMO

• 1) Abstração

– Concentrar-se nos aspectos essenciais e ignorar os acidentais

– Permite liberdade de decisões, evitando detalhes

– Preocupa-se com o domínio da aplicação e não com os detalhes do projeto ou da implementação

– Todas as palavras e linguagens são abstrações – descrições incompletas do mundo real

– Devem se ater a algum propósito

Page 9: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 2) Encapsulamento

– Separação dos aspectos externos de um objeto, acessíveis por outros objetos, de seus detalhes internos

– Torna a modificação da implementação possível

• 3) Dados e comportamento em conjunto

– É a essência da orientação a objeto; faz com que uma implementação não precise considerarm implementação de uma determinada operação

– Manutenção fácil e desnecessário repetir a escolha de um procedimento

Page 10: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 4) Compartilhamento

– Uma hierarquia de classes em vez da separação da hierarquia da estrutura de dados e da hierarquia de procedimentos

– Faz mais do que permitir reutilização, pois possibilita clareza conceitual

• 5) Ênfase na estrutura de objetos e não nos procedimentos

– O objeto (o que é) é dependente dos detalhes e frequentemente muda

– Quando os requisitos envolvem os objetos se tornam mais estáveis

– Similar às técnicas de modelagem da informação

Page 11: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 6) Sinergia

– Utilização dos conceitos de orientação a objetos de forma complementar e em conjunto

– Estilo diferente

– Encapsulamento como alicerce

– Herança utilizando empacotamento para viabilização de código

Page 12: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• 7.3 O modelo dos objetos7.3 O modelo dos objetos

• Incorpora a estrutura estática de um sitema de objetos, os relacionamentos entre eles e os atributos e operações de cada classe de objetos

• Tenciona-se se aproximar do mundo real

• Novos conceitos fundamentais: objeto, classe, ligação, associação, generalização e herança

Page 13: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Objetos

– A modelagem tem como função principal descrevê-los

– O que faz sentido no contexto da aplicação

– Os objetos se distinguem pela sua própria existência e não pela propriedade descritiva

– Às vezes, são confundidos com grupos, mas merecem explicitação

• Instância• Classe

Page 14: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Classes

– Um grupo de objetos com propriedades semelhantes (atributos)• Mesmo comportamento (operações)• Mesmos relacionamentos com outros objetos• Mesma semântica

– Ex.: pessoa, empresa, animal, processo, janela etcEx.: pessoa, empresa, animal, processo, janela etc

– Substantivos

– É possível a existência de objetos com idênticos atributos e relacionamentos; não de classes

– Cadeira e cachorro podem pertencer à mesma classe?

Page 15: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Diagramas de objetos

– Notação gráfica formal para a modelagem de objetos e os seus inter-relacionamentos

– Há dois tipos:• Diagramas de classe – esquema que descreve muitas

instâncias possíveis e suas classes• Diagramas de instâncias – descreve como os objetos de um

conjunto se relacionam entre si

Page 16: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

– Cada objeto conhece sua classe, que é uma propriedade implícita e seus procedimentos podem ser sempre melhorados

(Pessoa)

João

Pessoa

(Pessoa)

Maria

(Pessoa)

Classes

Objetos

Page 17: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Atributos

– Valor de dado guardado pelo objeto de uma classe• Ex.: idade, peso, cor, endereço, anos

– Um atributo deve ser um puro valor de dados e não um objeto• Ex.: Brasil e Brasília

– Valores puros de dados não têm identidade

Page 18: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

– Os identificadores explícitos de cada objeto NÃO SÃO OBRIGATÓRIOS em um modelo de objetos

PessoanomeID: id de pessoamudar-cargomudar-endereço

Erro!

Page 19: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

• Operações e métodos

– Operações: função ou transformação que pode ser aplicada a objetos ou por estes a uma classe

• Quais seriam as operações da classe empresa?• Quais seriam as operações de “janela”?

– Cada operação tem um objeto-alvo como argumento implícito

– A mesma operação pode ser aplicada a objetos diferentes: POLIMORFISMO

– Método: implementação de uma operação para uma classe• Como pode ser aplicado um método “imprimir”?

Page 20: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

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

– Uma operação pode ter argumentos além do objeto-alvo

– Quando houver uma operação com métodos em várias classes, é importante uma assinatura

• Que cuidados devem ser observados ao se definir um método?

– As características são os atributos e as operações

– As operações são:• Com efeito colateral• Cálculo do valor funcional sem mudar o objeto (consulta)

Pessoanomeidademudar-cargomudar-endereço

Arquivonome do arquivotamanho em bytesúltima atualizaçãoimprimir

Objeto geométricocorposiçãomover (delta: Vetor)selecionar (p: Ponto): Booleanogirar (ângulo)

Page 21: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

2121 - 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

– Consultas sem argumentos são atributos derivados• Como pode ser definido um atributo derivado de um

“quadro”?

– A escolha de atributos básicos é arbitrária e deve ser feita para evitar superespecificação

• Ligações e associações

– Ligações e associações são meios para se estabelecer relacionamentos entre objetos e classes

– Ligação: conexão física ou conceitual entre instâncias de objetos

• Ex.: Ana Maria estuda no CEFET

Page 22: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

2222 - 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

– Associação: grupos de ligações com semântica e estrutura comuns• Ex.:Uma pessoa estuda em uma escola

– Uma ligação é uma instância de uma associação

– Associações são intrinsecamente bidirecionais mas podem ser lidas de formas diferentes

• Ex.: trabalha

– Associação um-para-um:

Paísnome

Cidadenome

Tem-capital

(País)Canadá

(Cidade)Ottawa

Tem-capital

(País)França

(Cidade)Paris

Tem-capital

(País)Senegal

(Cidade)Dakar

Tem-capital

Diagrama de classes

Diagrama de instâncias

Page 23: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

2323 - 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

– Existem associações binárias, ternárias e de outras ordens

– As associações binárias devem ser as mais utilizadas

– Associação ternária:

Projeto Linguagem

(Projeto)Sistema de

contabilidade

(Linguagem)Cobol

(Projeto)Pograma CAD

(Linguagem)C

Diagrama de classes

Diagrama de instâncias

Pessoa

(Pessoa)Maria

Page 24: 1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 7. Análise e projeto orientados a objetos 7.1 Técnica de modelagem

2424 - 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

• Multiplicidade

– Especifica quantas instâncias de uma classe relacionam-se a uma única instância de uma classe asociada

– Pode ser uma, muitas, um conjunto de intervalos associados– Exemplos:

• 1• 1+• 3-5• 2,4,18•