objectos introdução (c)ab,20001 sistemas orientados por objectos nos sistemas o.o. os programas...

35
Objectos Introdução (c)AB ,2000 1 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver Os objectos modelam entidades do mundo real mas também podem representar entidades abstractas

Upload: internet

Post on 22-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 1

Sistemas Orientados por Objectos

Nos sistemas O.O. os programas não são mais do que

simulações de problemas a resolver

Os objectos modelam entidades do mundo real

mas também podem representar

entidades abstractas

Page 2: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 2

Sistemas Orientados por Objectos

Vantagens da programação orientada por objectos

Especificação do problema a resolver

Introdução de alterações e melhoramentos

Aumento da produtividade

Melhor robustez

Extensibilidade

Modularidade

Page 3: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 3

Sistemas Orientados por Objectos

Os sistemas orientados por objectos envolvemalguns conceitos fundamentais:

Objecto

Classe

Hierarquia de classes

Abstracção

Encapsulamento

Polimorfismo

Page 4: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 4

Sistemas Orientados por Objectos

É necessário utilizar modelos para representar

abstracções e conceitos fundamentais dos

sistemas orientados por objectos

Abstracção é o processo de ignorar detalhesde forma a ser possível colocar a concentraçãonas características principais do problema

Page 5: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 5

UML

Unified Modeling Language

OMT ( J. Rumbaugh)Booch 93 ( G. Booch )OOSE ( Jacobson )

3 Métodos OO

UML

Recursos Rose UML: www.rational.comOutros: Poseidon www.gentleware.com ArgoUML

Page 6: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 6

UML

Unified Modeling Language

Linguagem para especificar e documentar sistemas

Estrutura do sistema Comportamento do sistema

Relações estáticasentre objectos

Funcionamentodinâmico

Page 7: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 7

Objecto

Objecto

• Um objecto é constituído por valores de dados próprios e operações, vulgarmente designadas por métodos

• Um objecto tem estado e é capaz de responder a perguntas e efectuar operações sobre esse estado

• Um objecto tem identidade única

Page 8: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 8

Objecto (cont.)

Os objectos interagem por mensagens

Ainda aí está?O encontroera às 9.00!!

Que farei?Posso:• desligar o telefone• pedir desculpa e sair• dizer que me esqueci• marcar outra datamensagem

métodos

Page 9: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 9

UML

Unified Modeling Language

Diagramas

ClassesUtilizaçõesEstadosActividadesSequências

Page 10: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 10

Classe

• Unidade modular de qualquer sistema orientado por objectos

• A classe efectua a descrição formal de objectos com características comuns

• É definida ao nível da interface (a forma do mundo exterior comunicar com o

objecto através de mensagens, garantir o encapsulamento,...)

e implementação (a forma como o objecto decide a resposta em relação a

uma determinada mensagem - métodos com responsabilidades próprias)

• Uma classe é formada por métodos e dados

Page 11: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 11

Encapsulamento

Encapsulamento é o processo de esconder dados ouprocedimentos de forma a garantir ou ajudar a manterum determinado nível de abstracção

Em linguagens orientadas por objectos, é necessário efectuar a distinção entre interface e implementação

Apenas a interface deve ser conhecida pelo mundoexterior e os dados de um determinado objecto sódevem ser acedidos pelas suas próprias operações

Page 12: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 12

UMLDiagrama de Classes

Notação que exprime classes e relações entre elas

A identificação das classes esuas relações no enunciadodo problema deve ser feita

previamente...

Page 13: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 13

Efectuar primeiras abstracções

…identificar classes e respectivas relações a partir do enunciado

Lista de substantivos Classes(eliminar substantivos redundantes)

Verbos Métodos

“Tem/Usa” Relação de clientela entre classes“É/É um caso particular de…” Relação de herança

Atenção! Não é regra… É uma aproximação mais sistemática...

Page 14: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 14

UMLRepresentação das Classes

Janela

Janela

posicao : Rect visivel : Booleano

mostrar ()

estaVisivel () : Booleano

move (novaPos : Rect)

esconder ()

• Sem detalhes

• Com detalhes

Nome da classe

Atributos

Métodos

Diagramade Classes

Page 15: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 15

UMLAssociações

Cidade Paístem capital

“tem capital” pode estar associado à ligaçãopara explicitar melhor a abstracção e

facilitar o sentido de leitura

( “Tem/Usa” Clientela )

Diagramade Classes

Page 16: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 16

UMLClasses de Associação

Empresa Pessoatrabalha para

Emprego

salario

aturaChefe ()pedeAumento ()

A associação da classe Emprego explicita melhor a associação Pessoa-Empresa

Diagramade Classes

Page 17: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 17

UMLMultiplicidade

( * indica que não existe limite superior ) Existem “papeis” na associação

Empresa Pessoatrabalha para

Emprego

salario

aturaChefe ()pedeAumento ()

empregador empregado

* 1..*

trabalhador

chefe

comanda

0..1

*

Diagramade Classes

Page 18: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 18

UMLAgregação

contém1* FicheiroDirectório

Esta forma de agregação (por referência) traduz-se naimplementação por apontadores para os elementos(ou seja, o agregado não inclui os elementos em si)

Diagramade Classes

Page 19: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 19

UMLComposição

Carro Rodacontém1 4..5

PortaChassis

contém

contém

11

2..51

O agregado inclui mesmo os elementos (e não meros apontadores)

Diagramade Classes

Page 20: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 20

UMLHerança

Animal

Leão Zebra Cobra

Animal

Leão Zebra Cobra

Notação

(alternativa)

“É/É um caso particular de…”(Herança)

Diagramade Classes

Page 21: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 21

Hierarquia de Classes

Uma das grandes vantagens das metodologias orientadaspor objectos é permitirem a elaboração de hierarquias de classes

É possível derivar uma classe a partir de outra, isto permiteaplicar mecanismos de herança entre classes

A herança permite extensão e especialização ao mesmotempo

Page 22: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 22

Hierarquia de Classes (cont.)

A classe de origem é normalmente designada por classe base

As classes que compartilham características de uma classebase e têm outras características adicionais, chamam-seclasses derivadas

Uma classe que é derivada pode, por sua vez, ser a classebase de outra classe

Page 23: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 23

Hierarquia de Classes (cont.)

O uso de classes derivadas aumenta a eficiência dodesenvolvimento de software uma vez que se evitaa duplicação de código

A facilidade com que classes existentes podem serreutilizadas sem serem alteradas é um dos maioresbenefícios oferecidos por metodologias orientadaspor objectos

Page 24: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 24

UMLClasses parametrizadas

Lista

Lista<Inteiro>

Elemento

Lista<Ponto>

Classes parametrizadasrecebem o tipo dos elementos com que lidamcomo parâmetro decompile-time e nãoduplicam o códigocompilado

Para se poderem usartêm que ser concretizadas. Cada concretização constitui umaclasse diferente (uma das formas de polimorfismo: paramétrico)

Diagramade Classes

Page 25: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 25

Polimorfismo

Polimorfismo, os valores, variáveis e funções podemter mais de um tipo

polimorfismo paramétrico ( generecidade )

polimorfismo de inclusão ( herança )

polimorfismo através de sobrecarga ( overloading de operadores ou métodos )

polimorfismo por coerção (moldes / casts )

Existemvárias formas

depolimorfismo

Page 26: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 26

UMLDiagrama de Classes (exemplo)

Conversor A/D

Sensor

Sensor de temperatura

Controlador

Sensor de pressão

Actuador

Ventoinha

Motor

Aquecedor

obtem dados de envia dados para

0 .. *1

1

11

*

Diagramade Classes

Page 27: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 27

UMLDiagramas de Utilizações

Indicam os casos de utilização do sistema pelosagentes externos ao sistema (designados actores)

Cada utilização irá corresponder a um conjunto deacções, envolvendo uma sequência de mensagensentre objectos

Page 28: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 28

UMLDiagramas de Utilizações (exemplo)

Page 29: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 29

UMLDiagramas de Estados

Estes diagramas permitem modelar os sistemase descrever o seu comportamento por meiode uma máquina de estados

São constituídos por um grafo de estados e transições

Cada grafo pode estar associado a uma classe ouapenas a uma função

Cada estado pode ter subestados (caso do estado Active)

Page 30: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 30

UMLDiagramas de Estados (exemplo)

Page 31: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 31

UMLDiagramas de Actividades

Usam-se normalmente para descrever o comportamentointerno de classes ou funções explicitando as dependênciasentre acções (isto é, uma acção só pode ser executadaquando todas as acções de que ela depende já foramexecutadas).

Particularmente útil quando se pretende - usar concorrência - gerir alocação de recursos

Page 32: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 32

UMLDiagramas de Actividades (exemplo)

Page 33: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 33

UMLDiagramas de sequências

Interacções dos objectos ao longo do tempo

No eixo horizontal representam-se os diferentes objectosenvolvidos

No eixo vertical representa-se o tempo

Os objectos (instâncias) representam-se tal como asclasses mas o nome aparece sublinhado.

Page 34: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 34

UMLDiagramas de sequências (exemplo)

Page 35: Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas não são mais do que simulações de problemas a resolver

Objectos Introdução (c)AB,2000 35

Bibliografia

The Unified Modeling Language Reference Manual,James Rumbaugh, Ivar Jacobson, Grady Booch,Addison-Wesley

The Unified Software Development Process,Hans-Erik Eriksson, Magnus Penker,Addison-Wesley

Documentação Digital, Prof. Doutor José Delgado, IST