Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AULA N 1
Objetivos Gerais:
Proporcionar capacidades e habilidades para que o aluno compreenda os fundamentos da Tecnologia de Orientao Objetos e seja capaz de modelar sistemas computacionais utilizando tcnicas de anlise e projeto orientados objetos.
Ementa:
Propsito e evoluo da OO; Benefcios da OO; Classes; Instncias; Atributos e Mtodos; Herana; Encapsulamento e Polimorfismo; Modelagem OO; UML Unified Modeling Language; Diagrama Use Case; Diagrama de Classes; Diagrama de Objetos; Diagrama de Interao Seqncia e Colaborao; Diagrama de Transio de Estados; Diagrama de Componentes; Diagrama de Implantao.
Bibliogrfica Bsica:
RUMBAUGH, J.; BIAHA, M.; PREMERLANI, W.; EDDY, F.; LORENSEN, W. Modelagem e projetos baseados em objetos. Rio de Janeiro: Campus, 1994. 652 p.
Metodologia:
Aulas expositivas tericas e prticas; Trabalhos prticos de pesquisa; Exerccios de fixao.
Avaliao:
Provas regimentais; Apresentao de Trabalhos Prticos.
ESPAO DE SOLUES
Gap Semntico
Diferena entre Espao de Problemas e Solues Todo software representa um Modelo de um problema do mundo real (Espao de Solues) A construo de um software envolve um processo de mapeamento de objetos pertencentes ao espao de problemas para o espao de solues, de tal maneira que operaes sobre essas representaes abstratas correspondam a operaes do mundo real Projetista cria algoritmos que quando executados no computador produziro resultados, que podem ser mapeados fisicamente para alguma ao do mundo real ou examinados/interpretados por pessoas
Gap Semntico
EVIDENTE:quanto mais prximo (conceitualmente) estiver o espao de solues do espao de problemas, mais fcil ser:
confiabilidade
ESPAO DE SOLUES
Processo de Identificao de Abstraes Se essas abstraes no tiverem uma expresso direta (ou prxima) do mundo computacional, a complexidade da soluo ser aumentada
Modelagem Conceitual
Tarefa mais importante de um processo de desenvolvimento de software
realiza-se a anlise do domnio da aplicao e a modelagem das entidades e fenmenos desse domnio que o projetista considera importante, independentemente da implementao
A tarefa de modelagem conceitual envolve dois mecanismos:
Abstrao Representao
Modelagem Conceitual
Operao mental para observar um domnio e capturar sua estrutura Refere-se s convenes de representao
REPRESENTAO
Abstrao
Mecanismo utilizado na anlise de um domnio Atravs dela, o indivduo observa a realidade e dela abstrai entidades, aes, etc. consideradas essenciais para uma aplicao, excluindo todos os aspectos julgados irrelevantes Exemplo:
Fotografia por satlite (imagem da realidade), despida de alguns aspectos (por exemplo, cor, movimento) Da foto, pode-se abstrair um mapa, que elimina diversas propriedades da foto (detalhes particulares de um edifcio ou praa) O mapa pode ser a base para abstrair um grafo
Abstrao
a beleza est nos olhos de quem a v
O resultado de uma operao mental de abstrao depende no tanto do fenmeno observado, mas do interesse do observador
Abstrao
a beleza est nos olhos de quem a v
Diferentes abstraes a partir de um mesmo objeto do mundo real
I, II,
Maa
Peso cor da casca format
Cardinalidade do conjunto
Receita
3
ATRIBUTO
CATEGORIA
AO
categorizao dos objetos em grupos e/ou classes (categoria), com base em algum conjunto de propriedades comuns Generalizao (Especializao) a partir de duas categorias abstrai-se uma categoria mais genrica sub-categorias satisfazem todas as propriedades das categorias de que elas constituem especializaes deve existir pelo menos uma propriedade que distingue duas categorias especializadas
Classificao/Instanciao
CATEGORIA
INDIVDUO (Objeto)
Generalizao/Especializao
CATEGORIA
Atributos sangue quente vertebrado vivparo
Mamfero
Baleia
CATEGORIA
Histrico
A OO surgiu no final da dcada de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language) 1967 - Linguagem de Programao Simula-67- conceitos de classe e herana O termo Programao Orientada a Objeto (POO) introduzido com a linguagem Smalltalk (1983) FINS DOS ANOS 80 Paradigma de Orientao a Objetos abordagem poderosa e prtica para o desenvolvimento de software
Histrico
Linguagens hbridas: C++ (1986), Object-Pascal (1986) Mtodos de Anlise e Projeto OO CRC (Class Responsability Collaborator, Beecke e Cunningham, 1989) OOA (Object Oriented Analysis, Coad e Yourdon, 1990) Booch (1991) OMT (Object Modeling Technique, Rumbaugh, 1991) Objectory (Jacobson, 1992) Fusion (1994) Unified Modeling Language (UML, 1997)
Conceitos de OO
Modelo de Objetos
Objeto
Tudo em Orientao a Objeto OBJETO Objeto, no mundo fsico, tipicamente um produtor e consumidor de itens de informao
Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e mtodos que os manipulam Martin, Odell (1995) Abstrao de uma entidade do mundo real de modo que essa entidade possue vrias caractersticas Exemplo: objetos cachorro e casa.
CACHORRO
CASA
OBJETO: Entidade independente, composta por um conjunto de elementos que a caracterizam (domnio) e as aes que agem sobre esse domnio (operaes) OBJETO
Viso implementacional (Takahashi, 1990) entidade composta por: ESTADO INTERNO: onde os valores podem ser armazenados e modificados ao longo da vida do objeto, caracterizando seu domnio COMPORTAMENTO: o conjunto de aes pr-definidas (denominadas mtodos) atravs das quais o objeto responder a demanda de processamento por parte de outros objetos
Objeto algo DINMICO: criado por algum, tem uma vida, e morre ou morto por algum
Pode ter vida temporria (como a execuo de um programa) ou persistente (persistir at que seu desaparecimento seja explicitamente ordenado).
ABSTRAO
<Nome do Objeto>
<Atributos> <Mtodos>
Objeto
Resumindo: Pacote de informaes (atributos) e a descrio de suas operaes (mtodos), de modo que elas so intrnsecas ao seu domnio e este formado pelos elementos que o caracterizam Exemplo:
Objeto: Pessoa Atributos: Nome, Data de Nascimento, Cor Mtodos: Acordar, Comer, Beber Dormir
Objeto: Pessoa Nome Data Nasc. Nasc. Cor Acordar Comer Beber Dormir
Objeto =
Exemplos de Objeto
Uma fatura Uma organizao Uma tela com a qual o usurio interage Um desenho de engenheiro Um avio Um vo de avio Uma reserva num avio Um processo de atendimento de pedidos Um computador Um ser humano neurtico pode ser estereotipado como um objeto: possui memria em que valores podem ser armazenados e que condicionaro seu comportamento
Atributos
Representam um conjunto de informaes, ou seja, elementos de dados que caracterizam um objeto Descrevem as informaes que ficam escondidas em um objeto para serem exclusivamente manipulado pelas operaes daquele objeto So variveis que definem o estado de um objeto, ou seja, so entidades que caracterizam os objetos Cada objeto possue seu prprio conjunto de atributos Exemplos:
Objeto Pessoa Atributos: Nome, Cor, Data de Nascimento Objeto Empregado Atributos: No do empregado, nome, nome do departamento, salrio, endereo, dependentes
Dicionrio
Atributo
Um valor armazenado pelos objetos da classe PESSOA: nome, idade, peso, cor CARRO: cor, peso, ano, modelo Cada atributo possui um valor para cada instncia Joo tem 24 anos e Maria tem 40
Classificao
Categorizao em Classes Quando estamos modelando um domnio, observamos que h vrias entidades similares que podem ser abstradas em um conceito nico que engloba esta similaridade Operao de abstrao das Similaridades O POO incorporou esta operao atravs da abstrao dos atributos e dos mtodos que caracterizam objetos semelhantes, especificando-os na CLASSE
Exemplo:
Classe
Objeto: abstrao de uma entidade do mundo real, atravs dos atributos e operaes Classe: abstrao de um conjunto de objetos similares do mundo real Agrupamento de objetos similares. Descreve a
Classe
Conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS), o mesmo comportamento (MTODOS), os mesmos relacionamentos com outros objetos e a mesma semntica PESSOA, CARRO, CASA, VECULO EMPRESA, PAS, SERES HUMANOS, HOMENS, MULHERES, MEIO DE TRANSPORTE
Classe
Similar a um TAD (Tipo-Abstrato-de-Dados): pode ser usado como base para a criao de objetos que sejam entidades executveis com atributos e operaes (mtodos) da classe. Sua especificao uma especificao da interface na qual as partes visveis da entidade so expostas. Os objetos criados podem ter outros atributos e procedimentos privativos no aparecem na especificao
Livro
Bblia
Relatrio
Dicionrio
Generalizao
(Superclasse) CASA
PRAIA (Subclasse)
FAVELA
MANSO
Limpar Piscina Contratar Criadagem Piscina Quadras
Especializao
Animal
superclasse
Domstico
subclasse
Gato
Co
De Raa
Objeto Rex instncia da classe Vira-Lata
Vira-Lata Rex
Homens Certif_Reservista
Mulher Data_ltimo_Parto
Veculo
Veculo de Rodas
Veculo Motor
Veculo Areo
Bicicleta
Caminho
Vapor
Avio
Planador
Caminho VW
Caminho Ford
Caminho GM
Herana
Mecanismo que permite definir uma nova classe (subclasse) a partir de uma classe j existente (super-classe)
Ao se estabelecer uma Especializao (subclasse) de uma classe, a subclasse herda as caractersticas comuns da super-classe, isto , a especificao dos atributos e dos mtodos da super-classe passam a fazer parte da especificao dos atributos e dos mtodos da subclasse A subclasse pode adicionar novos mtodos, como tambm reescrever mtodos herdados
Habilidade de um objeto derivar seus atributos (dados) e mtodos (funcionalidade) automaticamente de outro objeto
Herana
Classes podem ser construdas a partir de outras j existentes; facilita extensibilidade Quando uma mensagem enviada para um objeto
A procura do mtodo correspondente comea pela classe do objeto Se o mtodo no for encontrado, a procura continua na superclasse
A Herana pode ser de dois tipos:
Herana Simples: quando uma classe subclasse de somente uma superclasse Herana Mltipla: quando uma classe subclasse de vrias superclasses e conseqentemente herda as caractersticas de cada uma delas
Mensagem
o mecanismo atravs do qual os objetos se comunicam, invocando as operaes desejadas Especificao de uma operao do objeto composta por Seletor: nome simblico que descreve o tipo da operao descreve O QUE o objeto que envia quer que seja invocado, no como deveria ser invocado o objeto recebedor da mensagem contm a descrio de COMO a operao deveria ser executada Parmetros: argumentos que uma mensagem pode conter que faz parte da operao e requer uma ordem nica.
Pessoa
Animal
Comer
Objeto: Animal Objeto que recebe Mensagem: COMA ISTO LOGO RECEPTOR Objeto que envia Seletor: COMA EMISSOR Parmetros: LOGO Determina como Determina o que deve ser manipulado e manipular aguarda o retorno do objeto que foi ativado
Mensagem
Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executar o servio Mtodos so invocados por Mensagens Exemplo A chamada de um procedimento/funo em LP uma aproximao inicial de uma mensagem, como em P(10,20), onde P o seletor e os valores 10 e 20 so os parmetros Diferena: a ao da mensagem a ser ativada depende essencialmente do objeto que receber a mensagem
Mtodo
Origem: LP Smalltalk Quando um objeto mapeado dentro do domnio do software, os processos que podem mudar a sua estrutura de dados so denominados Operaes ou Mtodos Mtodos so invocados por Mensagens Cada objeto possui seu prprio conjunto de mtodos Definies: So procedimentos definidos e declarados que atuam sobre um objeto ou sobre uma classe de objetos Descrio de uma sequncia de aes a serem executadas por um objeto Atravs dos mtodos que especifica-se a um objeto COMO FAZER alguma coisa So intrnsecos aos objetos e no podem ser separados.
Interface (Protocolo)
Objetos se comunicam atravs de Mensagens, que invocam os Mtodos desejados Parte Privada do Objeto (Viso Interna) Mtodos Atributos Parte Compartilhada do Objeto ou Interface corresponde parte externa do objeto, isto , quela que vista por outros objetos com a finalidade de invocar os mtodos que o objeto realiza agrupa um conjunto de mensagens que o objeto pode responder as mensagens especificam quais operaes sobre o objeto podem ser realizadas, mas no como a operao ser executada.
Interface
<Mtodos> <Atributos> <Mtodos>
Parte Privada
Ocultamento de Informao
(Information Hiding)
Caracterstica que visa esconder detalhes de implementao alcanado em OO, visto que o objeto, quando implementado, possui uma parte privada (atributos e mtodos) e uma parte compartilhada (interface) Detalhes de implementao ficam escondidos na parte privada Programadores podem introduzir mudanas na implementao de um mtodo sem afetar o comportamento externo desse mtodo.
Encapsulamento de Dados
Objetos encapsulam suas estruturas de dados (atributos) Os atributos de um objeto s podem ser manipulados pelos prprios mtodos do objeto Restringe a visibilidade do objeto mas facilita o reuso Os DADOS e os MTODOS so empacotados sob um nome e podem ser reusados como uma especificao ou componente de programa.
Polimorfismo
Ao receber uma mensagem para efetuar uma Operao, o objeto quem determina como a operao deve ser efetuada, pois ele tem o comportamento prprio Como a responsabilidade do Receptor e no do Emissor, pode acontecer que uma mesma mensagem ative mtodos diferentes, dependendo da classe de objeto para onde enviada a mensagem Permite a criao de vrias classes com interfaces idnticas, porm objetos e implementaes diferentes Capacidade de uma mensagem ser executada de acordo com as caractersticas do objeto que est recebendo o pedido de execuo do servio.
Caractersticas
Exemplo de objeto do mundo real
a coisa em que voc est sentado agora
Cadeira
Mobilirio
Classe Mobilirio
herda
Atributos (Propriedades)
Cadeira
Classe Mobilirio
Atributos (Propriedades)
Cadeira
O Objeto Cadeira um membro (INSTNCIA) de uma CLASSE maior de objetos MOBILIRIO CLASSE de objetos descreve um conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS) mesmo comportamento (MTODOS) mesmos relacionamentos com outros objetos mesma semntica\ Atributos GENRICOS da classe MOBILIRIO custo, dimenses, peso, localizao, cor Atributos se aplicam a todos os objetos da classe MOBILIRIO: mesa, cadeira, sof, armrio.
Uma vez que o objeto CADEIRA um membro da classe MOBILIRIO, HERDA todos os atributos definidos para a classe Todo objeto da classe MOBILIRIO pode ser manipulado de diversas maneiras (OPERAES) comprado vendido, pesado modificado (pintar de roxo, serrar uma perna) Cada uma dessas operaes (SERVIOS ou MTODOS) modificar um ou mais atributos do objeto
Classe: Mobilirio Custo Dimenses Peso Cor Localizao Comprar Vender Pesar Modificar
Classe: Cadeira Classe: mesa Custo Dimenses Peso Cor Localizao Comprar Vender Pesar Modificar Custo Dimenses Peso Cor Localizao Comprar Vender Pesar Modificar
Exerccio
Observe o exemplo: Classe Calados: { atributos: tamanho(); cor(); mtodos: proteger(); Objetos: sapato:calados; tnis:calados; chinelo:calados; Instancia: sapato.tamanho=40; tnis.proteger=sim; chinelo.cor=azul; }
Seguindo o exemplo ao lado, d Os atributos; Os mtodos; Os Objetos e A instanciao. das seguintes Classes: Pessoa; Veculos; Alimentao; Informtica; Comunicao e Animais.