Introdução sobre
Orientação a
Objetos
Formado por vários tipos de objetos (“coisas”)
Mundo Natural
Os objetos (“coisas”) podem ser agrupados em
função de características semelhantes
Conjuntos de Objetos
Orientação a Objetos
Conceito:
No mundo real, tudo é objeto!
Os objetos se relacionam entre si de diversas maneiras
O mundo é “Orientado a Objetos"
Definição: É um paradigma para o
desenvolvi-mento de aplicações, ou seja, é uma estratégia
de desenvolvimento de software que organiza o
software como uma coleção de objetos do
mundo real que contém tanto a estrutura dos
dados como o comportamento
Características:
Forma natural de enxergar a realidade Forma natural de modelar
Forma natural de codificar
Orientação a Objetos
Propostas da técnica de Orientação a Objetos:
Reusabilidadede código
de objetos encapsulados componentes
Manutenibilidade
mudanças bem localizadas, não acarretando propagações
descontroladas Confiabilidade
devido ao encapsulamento, que torna as estruturas de dados
privado aos objetos. Extensibilidade
aumento da produtividade com a agregação de funções
Análise Orientada a Objetos: O objetivo do
paradigma de orientação a objeto é representar,
em software, objetos supostamente existentes
no mundo real, utilizando, para isso a
incorpo-ração de “ações” (comportamento) e “dados”
(características)
Técnicas de Análise: Apresenta um conjunto de
regras e modelos que auxiliam o Engenheiro de
Software levantar e modelar os requisitos dos
usuários que o sistema deve atender
Orientação a Objetos
Definição: Qualquer coisa existente no mundo
real, em formato concreto ou abstrato, ou seja,
que exista fisicamente ou apenas
conceitual-mente
Características Principais:
Identidade Estado ComportamentoObjetos
Coisas Concretas (Exemplo: Muro) Coisas Abstratas (Exemplo: Curso)Concretos (pessoa, lápis, carro, relógio, etc...) Abstratos (hora, idéia, organização, projeto, etc...)
Papel (médico, paciente, professor, aluno, etc...) Relacional (casamento, parceira, propriedade,
etc...)
Evento (venda, admissão, pane_no_sistema, etc...)
Elementos de Interface (janela, ícone, string de
caracteres, etc...)
Etc...
Tipos de Objeto
Exemplo de Objeto: Lâmpada Incandescente
Orientação a Objetos
Todo (lâmpada)
formado pela
composição de
outras Partes
(elementos)
Exemplo de Objeto:
Um computador é formado por vários
componentes: CPU, placa-mãe, memórias, etc...
Cada componente é bastante sofisticado, mas o usuário não precisa saber como funciona internamente
Cada componente é independente dos demais
Para quem está montando, interessa apenas como os componentes interagem entre si:
A placa de vídeo encaixa no slot?
O monitor funciona com essa placa? A CPU é compatível com a placa-mãe?
Representação de Objetos
Atributos
(Privado)
Operações
(Público)
Atributos: Cor,Potência, Tensão, Tipo
Operações: Liga(),
Desliga(), Aumenta_Brilho(), Diminui_Brilho()
Representação de Objetos
Exemplo de Objeto: LâmpadaIncandescente
Atributo: É uma característica ou propriedade particular
possuída por todos os Objetos de uma Classe e assume valores específicos para cada Objeto
Métodos ou Operações: São as atividades que os
Objetos sabem realizar, sendo que elas modificam os
seus estados e/ou prestam serviços a outros objetos
Mensagem: Mecanismo de invocação (solicitar ou
executar um serviço) de uma Operação
Abstração: Ato de definir um objeto conceitual a partir de
Objetos do mundo real que possuam as mesmas
carac-terísticas e comportamento, podendo ser classificados como pertencentes a um mesmo tipo
Conceitos da OO
Classe: Abstração de um conjunto de Objetos do mundo
real que possuem tipos de características e de compor-tamento em comum (“fábrica de objetos”)
Classe: Especifica a estrutura de um objeto sem informar seu quais serão seus valores
Objeto: Corresponde à ocorrência (instância) de uma classe num determinado momento
Instância: Representa cada ocorrência de um Objeto
formado a partir de uma Classe
Parâmetro: Representa um ou mais Atributos
carrega-dos dentro de uma Operação ou Mensagem
Exemplo: Inclui.Aluno (Matrícula)
Conceitos da OO
Uma classe determina um conjunto de objetos com:
propriedades semelhantescomportamentos semelhantes
relacionamentos comuns com outros objetos
Exemplo:
Classe:
Identificação: Lâmpada
Atributos: Cor, Potência, Tensão, Tipo Métodos: Liga(), Desliga()
Objetos:
Instâncias: Lâmpada Incandescente, Lâmpada Fluorescente,
Lâmpada de Descarga Gasosa, etc...
Conceitos da OO
Exemplo de Instâncias de Classe: Lâmpada
Estado: Condição ou situação na vida de um objeto
durante a qual ele satisfaz a algum estado, realiza alguma atividade ou aguarda algum evento
Transição de Estados: Relacionamento entre dois
estados, indicando que um objeto no primeiro estado realizará certas ações e entrará no segundo estado quando um evento especificado ocorrer e as condições especificadas estão satisfeitas
Encapsulamento: Ato de reunir as características e o
comportamento dos Objetos de uma Classe, minimizan-do as interdependências entre elas
Conceitos da OO
Estado: Fechado Estado: Aberto Método: Abrir.Livro()Conceitos da OO
Abstração
Estado
A interface (normalmente pública) de um objeto declara
todas as operações permitidas (métodos)
Todo o acesso aos dados é feito através da chamada de
um método definido pelo objeto
As mudanças na implementação interna do objeto (que
preservem a sua interface externa) não afetam o resto do sistema
O encapsulamento protege os objetos de terem seus
atributos alterados ou corrompidos por outros objetos e facilita a criação de interações entre as classes
Para invocar um método, deve-se enviar uma
mensa-gem para o objeto desejado e:
identificar o objeto que receberá a mensagem identificar o método que o objeto deverá executar passar os argumentos requeridos pelo método
Características da OO
Objetos interagem e se comunicam através de mensagens... Emissor (Cliente) Receptor (Servidor) MensagemMensagens
...as mensagens identificam os métodos a serem executados no objeto receptor. Emissor (Cliente) Receptor (Servidor) MensagemMétodos
O que é um programa em uma linguagem
Orientada a Objetos?
Conjunto de objetos que se comunicam entre si
(indicação das operações e envio / recepção dos dados) através de mensagens
Cada um dos objetos possui uma tarefa a cumprir Cada um dos objetos oferece um serviço ou realiza
uma ação que é usada por outros membros
Noções sobre a
UML
Definição: A UML (Unified Modeling Language –
Linguagem de Modelagem Unificada) é uma
linguagem gráfica para visualização,
especifica-ção, construção e documentação de sistemas
complexos de software, que permite representar
os seus conceitos através do paradigma da
orientação a objeto
Exemplo:
Classe “Aluno”:Atributos: Matrícula, Nome, Data de Nascimento, Data de
Matrícula (date), Valor da Mensalidade
Métodos: Matricular Aluno, Reajustar Mensalidade, Trancar
Matrícula, Emitir Boleto de Pagamento
Noções sobre a UML
Professor: Sergio Akio Tanaka Slide:28/51
Representação da Classe “Aluno” em UML:
Noções sobre a UML
Herança:
Representa a propriedade pela qual uma classe pode
herdar características e comportamento de uma outra classe
A classe filha herda a interface da classe pai Normalmente identifica-se a possibilidade de herança
através da expressão: é um tipo de
Composição:
Uma classe pode auxiliar na formação de uma outra
classe (conjunto de classes)
Normalmente identifica-se a possibilidade de
composição através de expressões: composto por,
formado por, possui e contém
Noções sobre a UML
Pessoas Nome Endereço Telefone Cria() Elimina() Recupera() Atualiza() Fornecedor CNPJ Cria() Elimina() Recupera() Atualiza() Cliente CPF Cria() Elimina() Recupera() Atualiza()
Herança Simples
Professor: Sergio Akio Tanaka Slide:31/51
Veículo Veículo terrestre Veículo aquático Veículo anfíbio
Herança Múltipla
Carro Roda Motor Lataria 4 1 1
Composição
Diagrama de Classes Visão estática do sistemaExibe um conjunto de classes, interfaces e seus relacionamentos
Diagrama de Interação
Ilustra a implementação dinâmica do sistema
Mostra uma interação, envolvendo troca de mensagens entre objetos (classes)
Diagrama de Seqüência
Diagrama de interação que enfatiza o ordenamento das mensagens
Diagrama de Atividades
Semelhantes aos antigos fluxogramas
Muito usados para modelar atividades concorrentes
Outros Diagramas: Estado, Componentes, Implantação,
Casos de Uso, Colaboração, etc...