Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anlise ou especificao
Requisitos, conceito do domnio
Projeto
Soluo lgica, representao da anlise
ttulo
Livro
Testes
Orientao a objetos
Crise do software e necessidade de mudar Surgiu a idia da orientao a objetos que representa melhor o mundo real, uma vez que a percepo e o raciocnio do ser humano esto relacionados diretamente com o conceito de objetos. Objetivo principal da utilizao do paradigma da Orientao a Objetos, na construo de software : Rpido
no perder muito tempo no desenvolvimento
Barato
linhas de montagem e reutilizao de cdigo
Flexvel
fcil modificar ou extender
Estruturada x OO
Com a orientao a objetos procura-se eliminar as diferenas entre as etapas de anlise, projeto e implementao, reabilitando a difamada tarefa de implementao
O segredo fazer com que os conceitos de programao, e as notaes para programao, sejam suficientemente de altonvel para que possam servir apropriadamente como ferramentas de modelagem.
Estruturada x OO
Catlogo
Bibliotecrio Biblioteca
Registrar emprstimos
Adicionar recursos
Livro
Relatar multas
Orientao a Objetos
Mecanismos Bsicos
Objetos
Atributos
Mtodos ou Servios Mensagens
Relacionamentos
Herana
Conceitos Chaves
Abstrao Encapsulamento Polimorfismo Persistncia
Mecanismos bsicos
7/105
Objetos
Trata-se de uma abstrao de algo no domnio do problema. Reflete a capacidade do sistema de guardar informaes sobre o elemento abstrado, interagir com este, ou ambos. Nele esto contidos os dados (atributos) e os procedimentos (servios) exclusivos ao objeto -> Encapsulamento.
Objetos - Exemplo
Na informatizao do cadastramento de pessoas de uma loja comercial, sero encontrados diversos objetos pertencentes ao domnio do problema. Um objeto abstrado poderia ser o Silvio, um funcionrio da loja. Este objeto possui suas particularidade : Abravanel dos Santos (Nome) , rua de Baixo, 13 (Endereo), 1 (Faltas) , 1000.00 (Salrio Base). H tambm os eventos que podem ocorrer sobre os atributos anteriores, como : o clculo salarial, alterao do endereo, etc; Um objeto refere-se a uma OCORRNCIA NICA.
Classes
Uma classe uma coleo de objetos com um estrutura, comportamento, relaes e semntica comuns Classes so descobertas pelo exame dos objetos nos diagramas de Sequncia e Colaborao;
Nas classes esto descritas as caractersticas dos Atributos e Mtodos, que representaro as particularidades dos vrios objetos.
10/105
Classe - Exemplo
No exemplo da loja comercial, existe um objeto que se chama Silvio, alm deste existe tambm o Joo, Jos, Manuel, etc. Cada um deles representando uma ocorrncia nica, com seus nomes, endereos, faltas e salrios. Funcionrio poderia ser o nome da classe a qual pertence Silvio. Assim como este funcionrio, os outros tero as mesmas caractersticas (mesmo tipo de atributo e sero aplicados os mesmos eventos).
"Automvel".
Atributos
Um atributo qualquer propriedade, qualidade ou caracterstica que pode ser atribuda a uma pessoa ou objeto (Webster). Armazena uma informao de estado, para o qual cada objeto em uma classe tem seu prprio valor; Os atributos devem ser manipulados exclusivamente por servios, portanto so privativos da classe, no devendo ter seus valores alterados por nenhuma outra parte que no pertena a prpria classe.
Atributos
A estrutura de uma classe representada pelos seus atributos Atributos podem ser encontrados pelo exame das definies de classes, requisitos de problemas, e pela aplicao do conhecimento do domnio
14/105
Atributos - exemplo
Outros Exemplos :
classe Automvel - atributos : Modelo, Marca, Ano, Cor,
Nmero do Chassi.
Disco - atributos Ttulo, Cdigo, Gnero
Mtodos ou Servios
So as operaes efetuadas pelos objetos; O comportamento de uma classe representado pelas suas operaes; um comportamento especfico, residente no objeto, que define como este deve agir quando exigido, atravs do recebimento de uma mensagem So eles que iro alterar os valores dos atributos de um determinado objeto.
Do ponto de vista da programao, em um Programa
No sistema da loja comercial, alguns dos servios so as operaes de Clculo do salrio, Alterao do Endereo. Que podem ser efetuadas sobre os atributos de um funcionrio. no caso do Clculo do salrio, algum enviar uma mensagem para que o objeto calcule o salrio, e o objeto (que j possui conhecimento dos dados necessrios para o clculo), far o processamento e retornar para o algum o valor do salrio lquido.
Servios - Tipos
Clculos
Tratam-se de servios que calculam o resultado a partir
Servios de Ocorrncia
Referem-se aos "Servios Implcitos" (ex. Criar, Conectar,
devem ter.
No so mostrados nos Diagramas da AOO.
Servios - Tipos
Monitorao
Tratam-se de servios que para serem utilizados precisam
de entradas e/ou sadas externas ao objeto ou os servios que controlam a aquisio de dados de dispositivos.
Estes servios podem precisar de alguns servios
Nome da Classe
Atributo 1 Atributo 2
...
...
Servio n
Funcionrio
Nome Residncia Salrio Bruto Faltas
Clculo Salarial Imprimir Dados
AlterarEndereo RetirarFuncionrio CriarNovo
Slvio
Abravanel Santos Rua de Baixo, 13
1000.00 1
Nome da Classe
- Atributo 1 - Atributo 2: tipo
...
# Atributo n: tipo=valor
...
Funcionrio
Nome:texto Residncia:texto Salrio Bruto:real Faltas:inteiro Clculo Salarial():real Imprimir Dados() SetResidencia(R:Residencia) GetFaltas():faltas ApagarFuncionrio() CriarNovo()
nomenclatura devem ser estabelecidos Ex: Todos os nomes de classes so substantivos no singular, iniciando com letra maiscula
Veiculo
placa: string cor:integer chassis:string consumoCombustvel()
24/105
Mensagens
uma forma de relacionamento entre objetos; atravs delas que os objetos interagem (se comunicam) em um programa. Tratam-se de pedidos enviados a um objeto, a fim de que este modifique seu estado ou retorne algum valor. Em um programa orientado a objeto, nenhuma outra parte do programa pode acessar diretamente os dados de um objeto. Toda a comunicao entre os objetos ocorre nica e exclusivamente atravs de mensagens.
Mensagens
Uma mensagem uma solicitao feita por um objeto A a um objeto B; Como resultado desta solicitao, o objeto B ir modificar seu estado ou ir retornar algum valor; O conceito de mensagem est diretamente associado ao conceito de operao; A interao entre os objetos feita atravs da troca de mensagens; So representados na UML atravs dos diagramas de iterao e de colaborao.
26/105
Mensagens
Na loja comercial pode-se ter um objeto responsvel pela Administrao. No final do ms a Administrao ter como atribuio, saber os valores a serem pagos aos funcionrios para que posso efetivar o pagamento e debitar o total do Caixa da Empresa. Para isto ela ter que enviar mensagens para os funcionrios (cada um dos objetos que os representam) e aguardar a resposta referente ao valor do salrio, conta bancria, nome, etc. Assim, poder continuar seu processamento de atualizao do caixa.
Relacionamentos
28/105
Relacionamentos
Associao:
uma conexo bi-direcional entre classes
classes relacionadas
Agregao:
um tipo mais forte de conexo, especializao
de uma associao, aonde a relao entre o todo e suas partes (relacionamento parte-de ou conteno) mostrada como uma linha conectando as classes relacionadas com um losango perto da classes que representa o todo
29/105
Herana:
um dos princpios da OO, permite a reutilizao,
Dependncia:
uma forma mais fraca de relao, mostrando uma
relao entre um cliente e um fornecedor, aonde o cliente no tem conhecimento semntico do fornecedor
mostrada como uma linha pontilhada entre o
cliente e o fornecedor
30/105
Associaes
Uma associao uma conexo entre classes Associaes so representadas em um diagrama de classe atravs de uma linha conectando as classes associadas. Os dados podem fluir em uma ou em ambas as direes atravs do link.
Professor Aluno
31/105
Aluno
32/105
Pessoa Professor
Turma
33/105
Navegao
Apesar de associaes e agregaes serem bi-direcionais por definio, frequentemente desejvel restringir a navegao em uma nica direo
Caso a navegao seja restringida, uma seta
34/105
Tipos de Navegao
Classe A
ou
Classe B
unidirecional
Classe A
Classe B
bidirecional
Classe A
Classe B
bidirecional ou no determinada
35/105
Navegao
associado Dado uma instncia de Aluno, h um objeto Professor associado Professor Aluno
36/105
Mltiplas Associaes
Mais que uma associao podem existir entre duas classes Se h mais que uma associao entre duas classes, ento elas precisam ser nomeadas
Professor
Aluno
37/105
muitos (zero ou mais) Alunos Para cada instncia de Aluno, pode ocorrer exatamente um Professor (pensando em um curso isolado)
38/105
Indicadores de Multiplicidade
Muitos
Exatamente um Zero ou mais Um ou mais Zero ou um Faixa especificada Pessoa Professor
1 1..*
*
1
0..
* *
1..
0..1 2..4
Turma
39/105
Associaes - Exemplo
possui
*
veiculo chapa:char[8] cor:integer chassis:char[30]
40/105
Herana
um mecanismo de hierarquia entre classes, onde uma classe mais especializada (filho) herda as propriedades da classe mais geral (pai). Este recurso no est disponvel em sistemas procedurais, caracterizando-se em uma das principais diferenas entre a Anlise Orientada a Objetos e a Anlise Estruturada.
A classe mais geral denominada superclasse e a classe mais especializada chamada subclasse.
Herana
Herana uma relao entre uma superclasse e suas subclasses; A subclasse est subordinada a superclasse na hierarquia de classes. H duas formas de se descobrir heranas:
Generalizao Especializao
Herana sempre ocorrem de classe para classe; Herana representa um relacionamento " um tipo de". Assim, a partir da estrutura de Especializao, diz-se que esta " um tipo da" estrutura de Generalizao.
Herana
Atributos comuns, operaes, relaes e/ou, so mostradas no nvel aplicvel mais alto da hierarquia Ao se definir a hierarquia, deve-se ter em mente a premissa bsica de que as categorias inferiores sempre satisfazem todos os atributos e servios das categorias s quais elas representam especializaes.
Uma classe filha deve ter, no mnimo, uma propriedade de distino em relao classe pai.
Herana - Exemplo
Olhando o caso da loja comercial, onde tinhamos somente a classe Funcionrio. Se houver a necessidade de se guardar dados de Clientes que fizeram compras. Precisamos criar um classe Clientes, cujos dados necessrios seriam : nome, endereo, valor da compra, tem comprado, etc. E partir desta classe criariamos objetos como o, cliente_0001, que poderia ter os valores : Joo das Couves (nome), Rua das Verduras, s/n, R$ 0.10, chiclete.
Cliente
Nome Endereo Compra TipoPagamento GerarRecibo() Mostrar()
Funcionrio
Salrio Faltas
CalcularSalario() Mostrar()
Cliente
Compra TipoPagamento GerarRecibo() Mostrar()
Herana
veiculo
chapa:char[8] cor:integer chassis:char[30]
carga
peso_max:integer alt_max:integer comp_max:integer
passageiros
pass_max:integer
47/105
Conceitos chaves
Abstrao
50/105
Abstrao
Nesta fase tenta-se retirar elementos e requisitos que iro ajudar na resoluo de um problema; o processo de retirar do domnio do problema os detalhes relevantes e representlos no mais em uma linguagem do domnio e sim na linguagem da soluo.
O sucesso de um Programa Orientado a Objeto est condicionado a uma boa abstrao do problema.
Abstrao
No paradigma da Programao Estruturada identifica-se as funes como sendo "operaes abstratas que resolvem um problema de programao", ou seja, ocorre a abstrao de procedimentos. No paradigma da Orientao a Objetos, temse a Abstrao de Dados, onde uma estrutura de dados deve incluir as operaes que ocorrem com ela.
Abstrao
Este conceito est relacionado s atividades de Modelagem de Negcio, Requisitos, Analise e Projeto nas fases de Concepo e Elaborao de um ciclo de vida iterativo;
Construo
Transio
Iteraes
Abstrao
Em conjunto com a abstrao temos o conceito, a prototipagem, isto , faz-se uma primeira anlise, abstraindo-se ao mximo que se puder.
Parte-se para a parte de programao, no sentido de se construir um prottipo do sistema. Com o prottipo em mos volta-se a fase da abstrao. E fica-se interagindo entre prottipoabstrao at que a Anlise esteja completa.
Encapsulamento
Trata-se de uma das principais vantagens da Programao Orientada a Objetos sobre a Programao Estruturada, principalmente na
reutilizao de cdigos.
Encapsulamento
Pode-se entender intuitivamente o significado de encapsulamento quando se observa o mundo real. Nos objetos do mundo real, atributos e aes so inerentes ao prprio objeto.
Exemplo :
A um automvel esto associados tanto atributos
(modelo, kilometragem, cilindradas, capacidade do tanque de combustvel, etc), quanto suas potencialidades (velocidade mdia, consumo de combustvel, etc).
Polimorfismo
O significado da palavra, originada do grego, o de "possuir vrias formas". Na A.O.O. usado para indicar a propriedade de se utilizar o mesmo nome para mtodos diferentes. Uma vantagem do polimorfismo a relativa facilidade de manuteno e extenso dos programas. A idia de polimorfismo est ligada com a indicao de que os atributos s devem ter seus valores alterados por mtodos da classe.
Polimorfismo
Uma das estratgias adotadas na Programao Orientada a Objeto a de implementar os mtodos o mais alto possvel na hierarquia de classes. As variaes necessrias nos mtodos so feitas a medida em que se desa a rvore hierrquica. Podemos entender como um exemplo um objeto chamado Automvel, que tem dois descendentes: Carro e Moto. O Objeto Automvel tem um mtodo chamado ligar, que todo automvel possui. Os objetos Carro e Moto tambm tm o mtodo ligar, porm com implementaes diferentes entre si.
Polimorfismo
ClasseBase Mostrar() ClasseD1 Mostrar() ClasseD2 Mostrar() ClasseD3 objGeral.mostrar();
62/105
Mostrar()
Polimorfismo
ClasseBase Mostrar() ClasseD1 Mostrar() ClasseD2 Mostrar() ClasseD3 objGeral.mostrar();
63/105
Mostrar()
Polimorfismo
ClasseBase Mostrar() ClasseD1 Mostrar() ClasseD2 Mostrar() ClasseD3 objGeral.mostrar();
64/105
Mostrar()
Polimorfismo
ClasseBase Mostrar() ClasseD1 Mostrar() ClasseD2 Mostrar() ClasseD3 objGeral.mostrar();
65/105
Mostrar()
Polimorfismo
ClasseBase Mostrar() ClasseD1 Mostrar() ClasseD2 Mostrar() ClasseD3 objGeral.mostrar();
66/105
Mostrar()
Persistncia
O termo persistncia est relacionado ao total de tempo que um objeto permanece na memria. De modo geral, as instncias das classes so criadas durante a execuo do programa e assim que o objeto no mais necessrio, ocorre uma destruio do mesmo, ou seja, o espao de memria reservado para ele liberado.
Persistncia
Um objeto em um Programa Orientado a Objetos surge das seguintes formas : a) O objeto criado esttica ou dinamicamente pelo programa. b) O objeto recuperado de um arquivo ou de uma base de dados relacional e levado forma de objeto. c) O objeto recuperado de uma base de dados orientada a objeto e lido diretamente para utilizao.
Exerccio 1 :
A empresa de aviao VAF resolveu criar um Sistema de Transporte Areo em Tempo Real para automatizar o planejamento de vos e transporte de passageiros. As nicas informaes relevantes para a construo de um prottipo so as seguintes :
Exerccio 1 :
1) Os itens a serem transportados, o qual esto includos os passageiros (nome, poltrona, nmero, origem, destino) e os itens de carga (peso, dimenses, descrio, nmero, origem, destino). 2) Avio, ao qual esto associados : cdigo de identificao, modelo, capacidade de carga , autonomia de vo. Como estas informaes poderiam ser representadas com Estruturada e com Orientao a Objetos?
Exerccio 2 :
O curso de especializao AFaz de Conta ir implementar um sistema de cadastro de informaes. Os dados de interesse para os alunos so nome, endereo, matricula e disciplina matriculadas. Os dados referentes aos professores so nome, endereo, data de admisso, turno, disciplinas lecionadas. As disciplinas devem ter informaes sobre nome, cdigo, horrio, sala e crditos.
Exerccio 2
Todo professor deve receber uma remunerao e os dados referentes a ela so salrio bruto, gratificao, descontos. Os alunos precisam pagar uma mensalidade de acordo com o numero de crditos cursados.
Como estas informaes poderiam ser representadas com Estruturada e com Orientao a Objetos?