Sei sulla pagina 1di 31

ANLISE ORIENTADA OBJETO

Conceitos do Paradigma de Orientao a Objetos


FMR Faculdade Marechal Rondon
Gesto de Sistemas de Informao Prof. Ms. Elvio Gilberto da Silva
http://www.elvio.pro.br elvio@fmr.edu.br

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.

Paradigma de Orientao a Objetos


A OO Surgiu na tentativa de solucionar problemas Complexos existentes no desenvolvimento de Software e resolv-los de maneira com baixo custo de desenvolvimento e manuteno Mundo Real formado por objetos que se interagem Representar esses objetos em um software mais natural e permanente do que representar a sua funcionalidade (decomposio funcional), pois essa mutvel

Mundo Computacional Mundo Real

ESPAO DE PROBLEMAS Gap Semntico

ESPAO DE SOLUES

Aspectos mais importantes do mundo real para fins de representao no computador

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:

o desenvolvimento da aplicao assegurar a compreenso, manuteno da aplicao

confiabilidade

Objetivo do Paradigma de Orientao a Objetos

DIMINUIR O GAP SEMNTICO

Mundo Computacional Mundo Real

ESPAO DE PROBLEMAS Mapeamento

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 Entidade Observada Entidade Representada


Notao grfica, linguagem de programao
Avio

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

Operaes de Abstrao relevantes


para a modelagem conceitual
Classificao (Instanciao)

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

Operaes de Abstrao relevantes


para a modelagem conceitual Agregao (Decomposio) composio de uma nova categoria como um agregado de categorias pr-existentes instncias de uma categoria (Estudante) so compostas por instncias de outras categorias (Nome, Endereo)

Classificao/Instanciao
CATEGORIA

Estudante de Graduao CLASSIFICAO INSTANCIAO Jos Maria

INDIVDUO (Objeto)

Generalizao/Especializao
CATEGORIA
Atributos sangue quente vertebrado vivparo

Mamfero

GENERALIZAO ESPECIALIZAO (herana)

Atributos Habitat: mar Tempo mdio de vida: 200 anos

Baleia

CATEGORIA

Paradigma de Orientao a Objetos


O desenvolvimento orientado a objetos evoluiu no sentido PROGRAMAO ANLISE Conceitos desse paradigma foram introduzidos com o surgimento da linguagem Smalltalk Em seguida, surgiram mtodos de projeto para dar suporte implementao de sistemas orientados a objetos Recentemente, propostas de mtodos para anlise e projeto vm emergindo

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 Mensagem Mtodo


Classe Atributo Protocolo Classificao Herana Encapsulamento / Ocultamento de Informao Polimorfismo

Objeto
Tudo em Orientao a Objeto OBJETO Objeto, no mundo fsico, tipicamente um produtor e consumidor de itens de informao

mquina, comandos, arquivos, pessoas, sinais


Definio (mundo do sofware)

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.

Raa cor pedigree

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).

Mapeamento Abstrao Implementao


DOMNIO + OPERAES

ABSTRAO

ATRIBUTOS (Dados) + IMPLEMENTAO MTODOS (Procedimentos)

<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 =

Atributos (Dados) + Mtodos (Funcionalidade) + Encapsulamento

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

Objeto do mundo Real


Objeto: Dicionrio Estrutura de Dados

Adicionar Palavra Eliminar Palavra Encontrar Palavra Imprimir definio

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

No se deve explicitar identificadores (caractersticas de programao no tm significado real)

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:

Classificao de espcies em Zoologia

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

estrutura de dados, e o comportamento de objetos similares


Todo objeto uma instncia de uma Classe Todas as instncias de uma classe tm valores prprios para os atributos especificados na classe Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos Sistema puramente OO, Classe tambm um Objeto

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

Reformar Limpar Pintar Mobiliar

Portas Salas Cozinha

Quartos Localizao Telhado

(Superclasse) CASA

PRAIA (Subclasse)

FAVELA

MANSO
Limpar Piscina Contratar Criadagem Piscina Quadras

Especializao

Animal

superclasse

Selvagem Hierarquia de Classes

Domstico

subclasse

Gato

Co

De Raa
Objeto Rex instncia da classe Vira-Lata

Vira-Lata Rex

Seres Humanos Nome Data_Nascimento RG

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

Coma isto logo!

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.

Estrutura de um Objeto (classe)


<Nome do Objeto>

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.

Analogia dos conceitos principais no POO e no paradigma tradicional de programao

OO Classes Objetos Mtodos

Convencional Tipo de Dados Abstratos Variveis Procedures, Funes

Mensagens Chamadas de Funes

Caractersticas
Exemplo de objeto do mundo real
a coisa em que voc est sentado agora

membro - (instncia) de uma classe maior de objetos

Cadeira

Mobilirio

Cor Peso Dimenses Localizao Custo

Classe Mobilirio

herda

Atributos (Propriedades)

Cadeira

Cor Peso Dimenses Localizao Custo

Classe Mobilirio

Comprado Vendido Modificado

herda Operaes (Servios e Mtodos)

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

O objeto herda todos os atributos e as operaes da classe

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.

Potrebbero piacerti anche