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
Objectos Introdução (c)AB,2000
1
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
Objectos Introdução (c)AB,2000
2
Sistemas Orientados por Objectos
Os sistemas orientados por objectos envolvem
alguns conceitos fundamentais:
Objecto
Abstracção
Classe
Encapsulamento
Hierarquia de classes
Polimorfismo
Objectos Introdução (c)AB,2000
3
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 detalhes
de forma a ser possível colocar a concentração
nas características principais do problema
Objectos Introdução (c)AB,2000
4
UML
Unified Modeling Language
3 Métodos OO
OMT ( J. Rumbaugh)
Booch 93 ( G. Booch )
OOSE ( Jacobson )
Recursos Rose UML: www.rational.com
Outros: Poseidon www.gentleware.com
Objectos Introdução (c)AB,2000
ArgoUML
UML
5
UML
Unified Modeling Language
Linguagem para especificar e documentar sistemas
Estrutura do sistema
Comportamento do sistema
Relações estáticas
entre objectos
Funcionamento
dinâmico
Objectos Introdução (c)AB,2000
6
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
Objectos Introdução (c)AB,2000
7
Objecto (cont.)
Os objectos interagem por mensagens
Que farei?
Posso:
• desligar o telefone
• pedir desculpa e sair
• dizer que me esqueci
• marcar outra data
Ainda aí está?
O encontro
era às 9.00!!
mensagem
métodos
Objectos Introdução (c)AB,2000
8
UML
Unified Modeling Language
Diagramas
Classes
Utilizações
Estados
Actividades
Sequências
Objectos Introdução (c)AB,2000
9
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
Objectos Introdução (c)AB,2000
10
Encapsulamento
Encapsulamento é o processo de esconder dados ou
procedimentos de forma a garantir ou ajudar a manter
um 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 mundo
exterior e os dados de um determinado objecto só
devem ser acedidos pelas suas próprias operações
Objectos Introdução (c)AB,2000
11
UML
Diagrama de Classes
Notação que exprime classes e relações entre elas
A identificação das classes e
suas relações no enunciado
do problema deve ser feita
previamente...
Objectos Introdução (c)AB,2000
12
Efectuar primeiras abstracções
…identificar classes e respectivas relações a partir do enunciado
Lista de substantivos
(eliminar substantivos redundantes)
Verbos
Classes
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...
Objectos Introdução (c)AB,2000
13
UML
Representação das Classes
Diagrama
de Classes
• Sem detalhes
Nome da classe
Janela
• Com detalhes
Janela
posicao : Rect
visivel : Booleano
move (novaPos : Rect)
mostrar ()
esconder ()
estaVisivel () : Booleano
Objectos Introdução (c)AB,2000
Atributos
Métodos
14
Diagrama
de Classes
UML
Associações
Cidade
tem capital
País
“tem capital” pode estar associado à ligação
para explicitar melhor a abstracção e
facilitar o sentido de leitura
( “Tem/Usa”
Clientela )
Objectos Introdução (c)AB,2000
15
UML
Classes de Associação
Empresa
trabalha para
Diagrama
de Classes
Pessoa
Emprego
salario
aturaChefe ()
pedeAumento ()
A associação da classe Emprego explicita melhor a associação Pessoa-Empresa
Objectos Introdução (c)AB,2000
16
UML
Multiplicidade
Empresa
trabalha para
*
1..*
empregador
empregado
Emprego
Diagrama
de Classes
Pessoa
chefe
salario
0..1
aturaChefe ()
comanda
pedeAumento ()
trabalhador *
( * indica que não existe limite superior )
Existem “papeis” na associação
Objectos Introdução (c)AB,2000
17
Diagrama
de Classes
UML
Agregação
Directório
1 contém
*
Ficheiro
Esta forma de agregação (por referência) traduz-se na
implementação por apontadores para os elementos
(ou seja, o agregado não inclui os elementos em si)
Objectos Introdução (c)AB,2000
18
Diagrama
de Classes
UML
Composição
1 contém 4..5
Carro
1
1
contém
1
Roda
contém
2..5
Chassis
Porta
O agregado inclui mesmo os elementos
(e não meros apontadores)
Objectos Introdução (c)AB,2000
19
Diagrama
de Classes
UML
Herança
Animal
Notação
(alternativa)
Leão
Zebra
Cobra
Animal
Leão
Zebra
Cobra
“É/É um caso particular de…”
(Herança)
Objectos Introdução (c)AB,2000
20
Hierarquia de Classes
Uma das grandes vantagens das metodologias orientadas
por objectos é permitirem a elaboração de hierarquias
de classes
É possível derivar uma classe a partir de outra, isto permite
aplicar mecanismos de herança entre classes
A herança permite extensão e especialização ao mesmo
tempo
Objectos Introdução (c)AB,2000
21
Hierarquia de Classes (cont.)
A classe de origem é normalmente designada por classe base
As classes que compartilham características de uma classe
base e têm outras características adicionais, chamam-se
classes derivadas
Uma classe que é derivada pode, por sua vez, ser a classe
base de outra classe
Objectos Introdução (c)AB,2000
22
Hierarquia de Classes (cont.)
O uso de classes derivadas aumenta a eficiência do
desenvolvimento de software uma vez que se evita
a duplicação de código
A facilidade com que classes existentes podem ser
reutilizadas sem serem alteradas é um dos maiores
benefícios oferecidos por metodologias orientadas
por objectos
Objectos Introdução (c)AB,2000
23
Diagrama
de Classes
UML
Classes parametrizadas
Classes parametrizadas
recebem o tipo dos
elementos com que lidam
como parâmetro de
compile-time e não
duplicam o código
compilado
Elemento
Lista
Lista<Inteiro>
Lista<Ponto>
Para se poderem usar
têm que ser concretizadas. Cada concretização constitui uma
classe diferente
(uma das formas de polimorfismo: paramétrico)
Objectos Introdução (c)AB,2000
24
Polimorfismo
Polimorfismo, os valores, variáveis e funções podem
ter mais de um tipo
polimorfismo paramétrico ( generecidade )
Existem
várias
formas
de
polimorfismo
polimorfismo de inclusão ( herança )
polimorfismo através de sobrecarga
( overloading de operadores ou métodos )
polimorfismo por coerção (moldes / casts )
Objectos Introdução (c)AB,2000
25
Diagrama
de Classes
UML
Diagrama de Classes (exemplo)
Controlador
1
1
Conversor A/D
obtem dados de envia dados para
1
0 .. *
1
*
Actuador
Sensor
Sensor de
temperatura
Sensor de
pressão
Ventoinha
Aquecedor
Moto
r
Objectos Introdução (c)AB,2000
26
UML
Diagramas de Utilizações
Indicam os casos de utilização do sistema pelos
agentes externos ao sistema (designados actores)
Cada utilização irá corresponder a um conjunto de
acções, envolvendo uma sequência de mensagens
entre objectos
Objectos Introdução (c)AB,2000
27
UML
Diagramas de Utilizações (exemplo)
Objectos Introdução (c)AB,2000
28
UML
Diagramas de Estados
Estes diagramas permitem modelar os sistemas
e descrever o seu comportamento por meio
de 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 ou
apenas a uma função
Cada estado pode ter subestados (caso do estado Active)
Objectos Introdução (c)AB,2000
29
UML
Diagramas de Estados (exemplo)
Objectos Introdução (c)AB,2000
30
UML
Diagramas de Actividades
Usam-se normalmente para descrever o comportamento
interno de classes ou funções explicitando as dependências
entre acções (isto é, uma acção só pode ser executada
quando todas as acções de que ela depende já foram
executadas).
Particularmente útil quando se pretende
- usar concorrência
- gerir alocação de recursos
Objectos Introdução (c)AB,2000
31
UML
Diagramas de Actividades (exemplo)
Objectos Introdução (c)AB,2000
32
UML
Diagramas de sequências
Interacções dos objectos ao longo do tempo
No eixo horizontal representam-se os diferentes objectos
envolvidos
No eixo vertical representa-se o tempo
Os objectos (instâncias) representam-se tal como as
classes mas o nome aparece sublinhado.
Objectos Introdução (c)AB,2000
33
UML
Diagramas de sequências (exemplo)
Objectos Introdução (c)AB,2000
34
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
Objectos Introdução (c)AB,2000
35
Download

Objecto