Análise Orientada a Objetos
Profa. Marcia A. S. Bissaco - [email protected]
Prof. Wolley W. Silva - [email protected]
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.