análise orientada a objetos profa. marcia a. s. bissaco - marciab@umc.brmarciab@umc.br prof. wolley...

Post on 22-Apr-2015

106 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Análise Orientada a Objetos

Profa. Marcia A. S. Bissaco - marciab@umc.br

Prof. Wolley W. Silva - wolley@umc.br

Profa. Viviane Guimarães Aula-01

Ementa da disciplinaProcesso de desenvolvimento de sistemas

com orientação a objetos. Especificação de requisitos. Modelagem de sistemas orientados a objetos utilizando UML.

Objetivos da disciplinaConhecer as técnicas e saber realizar o

levantamento de requisitos de sistemas;Identificar os envolvidos e os problemas a

resolver em um determinado domínio;Definir o escopo do projeto;Saber modelar os sistemas com diagramas

UML (de Atividades, Caso de Uso e Classes de Objetos).

Objetivos da disciplinaParadigma Orientado a objetosModelagem de sistemas de softwareLinguagem de modelagem unificada (UML)O processo de desenvolvimento de softwareAtividades típicas d um processo de

desenvolvimento Participantes do processoModelos de ciclo de vidaRUPLevantamento de requisitosEspecificação de regras de negócioDocumentação de requisitosDiagramas de casos de USO

Objetivos da disciplinaIdentificação dos elementos do MCUDocumentação suplementar ao MCUDiagrama de atividadesModelagem dos processos de negócioModelagem da lógica de um caso de uso

Bibliografia

Bibliografia

Bibliografia PAULA FILHO, W. P. Engenharia de Software: Fundamentos,

métodos e padrões. 2 ed. Rio de Janeiro/LCT, 2001. PRESSMAN, R. S. Software engineering: a practitioner’s

approach. 1 ed. São Paulo/Pearson Makron, 2005. SOMMERVILLE, I. Engenharia de Software. 9 ed. São Paulo/

Pearson Prentice Hall, 2011. BEZERRA, E. Princípios de análise e projeto de sistemas

com UML. 1 ed. Rio de Janeiro/Campus, 2003. LARMAN, C. Utilizando UML e Padrões - Uma Introdução à

Análise e ao Projeto Orientados a Objetos e Desenvolvimento, 2011. Minha Biblioteca. Web. 03 June 2013 (Biblioteca virtual)

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML - Guia do usuário. 1 ed. Rio de Janeiro/Campus, 2000.

Bibliografia MARTINS, J. C. C. Gerenciando Projetos de

Desenvolvimento de Software com PMI, RUP e UML. 1 ed. Rio de Janeiro/Brasport, 2004.

JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The unified software development process. 1 ed. Massachusetts/Addison-Wesley, 1999.

KRUCHTEN, P. The rational unified process – An introduction. 1 ed. Massachusetts/Addison-Wesley, 2000.

SBROCCO, J. H. T. de C. UML 2.3: teoria e prática. São Paulo: Érica, 2011. 270 p. ISBN 9788536503233. Número de Chamada: 005.1 S276u.

Bibliografia MACHADO, F. Análise e Gestão de Requisitos de

Software 1ª SP/Erika 2011. FOWLER, M. UML essencial: um breve guia para a

linguagem-padrão de modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2006. 160 p. Número de Chamada: 005.1 F787u 3. ed. (Biblioteca virtual)

GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2008 336 p. ISBN 9788575221495 Número de Chamada: 005.1 G924u 3. ed.

COAD, P.; YOURDON, E. Análise baseada em objetos. Editora Campus – 1992.

COAD, P.; YOURDON, E. Projeto baseado em objetos. Editora Campus 1993

Metodologia

Apresentação dos conceitos através de aulas expositivas e interrogativas e fixação através de exercícios e desenvolvimento de um projeto que abrange uma situação real.

Critérios de avaliação

2 Avaliações individuais, escritas e sem consulta (P1, P2)

1 Projeto realizado em sala e em casa (P3)Prova interdisciplinar (PI) agendada pela gestão do curso

Exercícios e atividades pontuadas realizadas em sala ou em casa (AP)

Critérios de avaliação

M1 = P1 * 0,7 + AP * 0,3ND = P2 * 0,5 + AP * 0,2 + P3 * 0,3M2 = ND * 0,7 + PI * 0,3MS = (M1 + 2 * M2)/3

Datas importantes

Avaliação 1 ( 02/10)Prova integrada (18/11) Avaliação 2 (04/12)Projeto (11/12)Recuperaçao (17/12)

Agenda

Introdução ao Paradigma Orientado a Objetos

ParadigmaObjetos e ClassesEncapsulamentoHerançaPolimorfismo

Conceito: “Paradigma é um conjunto de regras que estabelecem fronteiras e descreve como resolver os problemas dentro destas fronteiras.”

Os paradigmas influenciam nossa percepção; ajudam nos a organizar e a coordenar a maneira como olhamos para o mundo...

Paradigma

Análise Estruturada

X Orientada a

Objetos

Análise Estruturada (AE)É centrada na identificação de procedimentos

Dados representados como variáveis globais.Programa: agrupamento de procedimentos.

Análise Orientada a Objetos (AOO)É centrada na identificação de objetos

Dados e operações unidos.Programa: conjunto de objetos.

AE x AOO

Foco no Sistema Foco na Classe

A mudança do enfoque

Prog. Estruturada Orientação a Objetos

Variável Objeto

Tipo de dado Classe

Chamada de Procedimento ou função

Mensagem

Procedimento ou Função Método

Sistema de uma biblioteca

O sistema deve disponibilizar a consulta, atualização e cadastro de um novo livro.

Por exemplo:

Paradigma Estruturado

DBLivros

Realizar cadastro

Realizar consulta

Realizar atualização

•Titulo•Autor•ISBNC

adast

rar

Consultar

Atualizar

Livrotituloautorisbncadastrarconsultaratualizar

Paradigma Orientado a Objeto

O que é Orientação a Objetos?

“Um paradigma de análise, projeto e programação de sistemas de software que propõe a composição e interação entre diversas unidades de software chamadas de objetos”.

O que é Orientação a Objetos?

Paradigma: Forma de abordar um problema

Análise: Investigação do problema, em vez da solução.

Análise OO: Investigação dos objetos do domínio.

Kay, um dos pais do paradigma OO, formulou a chamada analogia biológica, onde imaginou o sistema de software ideal que funcionaria como um organismo vivo.

Neste sistema cada célula deveria interagir com outras células através do envio de mensagens para realizar um objetivo comum e cada célula se comportaria como uma unidade autônoma.

Além disso, as células poderiam também reagrupar-se para resolver outros problemas.

“Analogia biológica de Alan Kay”

Kay pensou em como construir um sistema de software a partir de agentes autônomos que interagem entre si. Estabeleceu os seguintes princípios da orientação a objetos:

1. Qualquer coisa é um objeto;2. Objetos realizam tarefas por meio da requisição de

serviços a outros objetos;3. Cada objeto pertence a uma determinada classe. Uma

classe agrupa objetossimilares;4. A classe é um repositório para comportamento

associado ao objeto;5. Classes são organizadas em hierarquias.

Objetivo atingido através da colaboração de diversos agentes denominados Objetos.

Objetos: João, José, Maria e Zuca.

Cada um faz uma atividade especifica e juntos realizam o objetivo.

Zuca se comporta exatamente como qualquer outro entregador. Portanto, Zuca é um objeto da classe entregador.

Conceito: O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos;

O que é Orientação a Objetos?

Conceitos da Orientada a Objetos.

ENCAPSULAMENTO

HERANÇAPOLIMORFIS

MO

ABSTRAÇÃO

OBJETO CLASSE

Abstração

O processo de retirar do domínio do problema detalhes relevantes e representá-los na linguagem da solução.

A criação de modelos que serão utilizados para a resolução do problema.

Abstração

O que são Objetos?

Coisas tangíveis

Eventos

Transações

Objetos reúnem características (dados) e comportamento

(procedimentos)

Dados•Marca•Modelo•Cor•Itens de série •Ano de fabricação

Procedimentos•Acender farol •Acelerar•Frear•Controle de Temperatura

Quais são as características e comportamentos deste objeto?

Características (dados): elasticidade, pressão, resistência, x, y, z, rotacao, velocidade, aceleracao, ...

• Comportamento (procedimentos):mover, encher, esvaziar, ...

Objeto ( outro conceito )

Objetos são pacotes de software compostos de dados e procedimentos;

Os procedimentos atuam sobre os dados;

Os dados determinam o estado do objeto.

Todo objeto é uma instância de uma Classe.

O que são Classes?

A abstração das características e

comportamentos de um grupo de objetos

Qual a classe destes Animais???

Características•Vertebrados•Endotérmicos•Cérebro•Audição•Visão

Comportamento•Comer•Dormer•Locomover

Um “molde” a partir do qual objetos são construídos.

(como, por exemplo, o tipo inteiro contém o molde para as variáveis declaradas como inteiros).

Classe Carro•Marca•Modelo•Cor

Um “molde” a partir do qual objetos são construídos.

Classificação é o meio pelo qual ordenamos o conhecimento

Classe

Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos.

De forma geral uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.

É um tipo definido que contém o molde, a especificação para os objetos. A classe associa funções (comportamentos/métodos) e dados, (atributos) controlando o acesso a estes.

CarroanoFabricacaomarcamodelo

darPartidaacelerar

Classes e ObjetosComo você classifica estes objetos?

Conceito: Encapsulamento é definido como uma técnica para minimizar as interdependências entre “módulos'‘.

Benefícios:Segurança: protege os atributos dos objetos de

serem corrompidos por outros objetos;

Independência: “escondendo'' seus atributos e métodos.

Encapsulamento

Encapsulamento

Esconder a estrutura interna de um objeto.

EncapsulamentoEsconder a estrutura interna (implementação)

de um objeto.

saldoDaConta

realiarDepositore

alia

rSaq

ue

exibirSaldoRealizar

Saque

saldo_da_conta

RealizarDeposito

ExibirSaldo

Objeto conta contêm todas as informações e comportamentos

EncapsulamentoPermite Classes coesas e desacopladas.

Herança

HerançaÉ o compartilhamento de características

entre classes com base em um relacionamento hierárquico. Possibilita a derivação de tipos mais

específicos a partir de um tipo mais genéricoUma classe pode ser definida de forma

abrangente e depois ser refinada em sucessivas subclasses.

Subclasses herdam os atributos e os métodos da super-classe, permitindo ainda modificações nos mesmo.

Herança

PolimorfismoReduz o esforço

necessário para ampliar as funcionalidade de um sistema OO.

Polimorfismo Cada variação do método gerar(), é isolado um classe de objeto

com um comportamento especifico; Cada subclasse reescreve o método gerar() de acordo com sua

necessidade Apenas uma chamada, relatorio.gerar() , pode disparar o

método de qualquer subclasse.

PolimorfismoPara inclusão de um novo formato, cria-se uma nova

classe, sem a necessidade de modificar a camada ao método.

Exercício1. Defina e relacione os termos objeto e

classe. Dê exemplos de cada um desses conceitos.

2. Descreva os seguintes conceitos da Orientação a Objetos

1. Herança2. Encapsulamento3. Polimorfismo

Exercício (10 minutos)Liste 3 métodos e 3 atributos para os

seguintes objetos:

Carro;Conta bancária;Pedido de um cliente;

Use a notação seguinte:

Procedimentos

Dados

Exemplo de objeto

Um carro: parar

trocar a marcha

acelerar

buzinarvirar

modelo

marca

ano

Exemplo de objetoEmitir extrato

Solicitar saldo

depositar

sacar

cliente

número

saldo

limite

transferências

• Um conta bancária:

Troca de mensagens Objetos interagem e comunicam se através de mensagens...

Emissor Receptor

Mensagens e métodos As mensagens identificam os métodos a serem executados no objeto receptor.

Para invocar um método de um objeto, deve-se enviar uma mensagem.

Para enviar uma mensagem é necessário: identificar o objeto que receberá a mensagem;identificar o método que o objeto deve executar;passar os argumentos requeridos pelo método.

Exemplo de troca de mensagens

PedidoProdutoCalcular

Total

Obter preço

preço

Métodos ou operações

Conceito: É a implementação de um serviço prestado pelo objeto para a comunidade de objetos ou a si mesmo.

Tipos de Métodos:métodos de acesso;métodos gerais.

Métodos - Exemplos

Objeto: Fita de vídeo.

Métodos de acesso situação da fita, nome do filme, preço de

aluguel.

Métodos gerais cadastramento, empréstimo, exclusão.

top related