Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas...
Transcript of Objectos Introdução (c)AB,20001 Sistemas Orientados por Objectos Nos sistemas O.O. os programas...
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
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
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
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
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
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
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
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
Objectos Introdução (c)AB,2000 9
UML
Unified Modeling Language
Diagramas
ClassesUtilizaçõesEstadosActividadesSequências
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
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
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...
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...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Objectos Introdução (c)AB,2000 28
UMLDiagramas de Utilizações (exemplo)
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)
Objectos Introdução (c)AB,2000 30
UMLDiagramas de Estados (exemplo)
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
Objectos Introdução (c)AB,2000 32
UMLDiagramas de Actividades (exemplo)
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.
Objectos Introdução (c)AB,2000 34
UMLDiagramas de sequências (exemplo)
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