modelagem orientada a objeto - uml. a análise e projeto orientados a objetos têm como meta...
TRANSCRIPT
Modelagem Orientada a Modelagem Orientada a Objeto - UMLObjeto - UML
A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software.
O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.
ObjetivoObjetivo
Estruturada x Essencial x Orientada a Estruturada x Essencial x Orientada a Objeto Objeto
Nos métodos de análise estruturada e essencial, o comportamento do sistema e seus dados são considerados separadamente.
Na orientação a objetos, comportamento e dados são integrados, encapsulando detalhes internos de um objeto.
Estruturada x Essencial x Orientada Estruturada x Essencial x Orientada a Objeto a Objeto
Análise Orientada a Análise Orientada a ObjetosObjetosEnxerga o mundo como objetos
com estrutura de dados e comportamentos;
O objetivo é desenvolver uma série de modelos de análise, satisfazendo um conjunto de requisitos definidos pelo cliente.
Análise Orientada a Análise Orientada a ObjetosObjetosA abordagem OO se preocupa:
◦ Identificar os objetos a partir do domínio da aplicação;
◦ Encaixar os funções “ao redor” destes objetos, comportamentos;
conceitos de OO podem ser aplicados em todo o ciclo de vida do desenvolvimento do sistema.
IntroduçãoIntroduçãoProgramação Orientada a Objetos:
◦Criado por Alan Kay, autor da linguagem de programação Smalltalk;
◦Em 1967, conceitos de OO já eram aplicado através da linguagem Simula.
Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida.
IntroduçãoIntrodução
O mundo real é composto por objetos. Cada objeto tem propriedades e comportamentos.
Segundo Yourdon, “Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.”
IntroduçãoIntrodução
Objetos como entidades do mundo real;
Dificuldades em fazer alterações nas estruturas de dados nas abordagens tradicionais. “Se eu alterar a definição desse dado, quais programas serão afetados?”
Trabalha com conceitos já conhecidos - Modularidade, Abstração, Encapsulamento, etc.
IntroduçãoIntroduçãoUm programa é uma coleção de objetos
dizendo uns aos outros o que fazer.
Para fazer uma requisição a um objeto você “manda uma mensagem” para este objeto.
Mensagem = Procedimento = Função (pertencente a um objeto em particular)
IntroduçãoIntrodução Um objeto pode ser composto por vários
outros objetos;
Você pode criar um novo tipo de objeto empacotando objetos existentes;
Todo objeto tem um tipo.
Cada objeto é uma instância de uma classe, onde classe é um sinônimo de tipo.
Conceitos fundamentaisConceitos fundamentaisAbstraçãoClasse Objetos AtributoHerança EncapsulamentoPolimorfismo
AbstraçãoAbstração Uma abstração é qualquer modelo que inclui
os aspectos relevantes de alguma coisa, ao mesmo tempo em que ignora os menos importantes.
Ex:
Entidade Pessoa - Sistema Folha de Pagamento
Atributo: Cor dos olhos e nome(toda pessoa tem) Porém, cor dos olhos não é relevante para o sistema.
AbstraçãoAbstração
Abstração: exemploAbstração: exemploTelefone
Identidade:: número 2576-0989
Características:azul2.4 GHztone
Comportamento:tocardiscar
Abstração: exemploAbstração: exemploÔnibus
Identidade: placa LXY 7684
Características:cor amarela30 assentos
a diesel
Comportamento:frearandarcorrerbuzinaracelerar
Encapsulamento: Processo de ocultamento de partes
internas da implementação de um objeto e permissão de acesso ao estado do objeto somente através de uma interface bem definida.
proíbe-nos de mexer diretamente nos dados internos de um objeto. Assim, todas as comunicações com os objetos são feitas através do envio de mensagens.
Conceitos fundamentaisConceitos fundamentais
Conceitos fundamentaisConceitos fundamentais
Encapsulamento Vantagem:
◦toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados;
◦protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados.
EncapsulamentoEncapsulamento Uma interface pode
ter várias formas de implementação.
Princípio: a implementação de um serviço no objeto servidor não importa para o objeto cliente. (O cliente confia em interfaces e não em implementações)
ClasseClasseDefinição:
◦Abstrações utilizadas para representar um conjunto de objetos com características e comportamento idênticos
Uma classe pode ser vista como uma “fábrica de objetos”
Classe: exemploClasse: exemplo
Características:cor das penas: azuisformato do bico: finovelocidade de vôo: rápida
Comportamento:voarpiar
Identidade::o beija-flor que vem ao meu jardim
classe
instância da classe (objeto)
ClasseClasse
Subclasse é uma nova classe que herda características de sua(s) classe(s) pai
ClassesClasses
Classe
Instâncias(objetos)
Objeto: “instâncias” em tempo de execução de uma classe. Um objeto pode ser real ou abstrato;
Todos os objetos de uma classe são idênticos no que diz respeito a sua interface e implementação (o que difere um objeto de outro é seu estado e sua identidade).
ObjetoObjeto
ObjetoObjetoUm objeto é capaz de
armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.
ObjetoObjetoRepresentação
Mário
Características(estado)
Comportamento
Identidade
Serviços ou Interface
ExercícioExercício
Identifique as classes e objetos:
Na escola Fucapi é realizado processo de matrícula de alunos. Um aluno se desloca a secretaria da instituição. O aluno solicita a realização da matrícula à secretária. O aluno informa o curso(nome) e disciplinas(nome, carga horária, professor).
AtributosAtributos Descrevem as características das instâncias de uma
classe Seus valores definem o estado do objeto O estado de um objeto pode mudar ao longo de sua
existência A identidade de um objeto, contudo, nunca mudaFuncionário_Helena
Nome=Helena ReisNasc=28/01/1965Salário = 4.000
InformarSalárioCalcularIdade
Funcionário_Helena
Nome=Helena ReisNasc=28/01/1965Salário = 4.000
InformarSalárioCalcularIdade
Funcionário_Mário
Nome=Mário SáNasc=16/02/1970Salário = 3.000
InformarSalárioCalcularIdade
Funcionário_Mário
Nome=Mário SáNasc=16/02/1970Salário = 3.000
InformarSalárioCalcularIdade
Serviços/Operações/Serviços/Operações/MétodosMétodos Representam o comportamento das instâncias de
uma classe Correspondem as ações das instâncias de uma classe
Funcionário_Helena
Nome=Helena ReisNasc=28/01/1965Salário = 4.000
InformarSalárioCalcularIdade
Funcionário_Helena
Nome=Helena ReisNasc=28/01/1965Salário = 4.000
InformarSalárioCalcularIdade
Funcionário_Mário
Nome=Mário SáNasc=16/02/1970Salário = 3.000
InformarSalárioCalcularIdade
Funcionário_Mário
Nome=Mário SáNasc=16/02/1970Salário = 3.000
InformarSalárioCalcularIdade
4000
3000
Informar Salário?
Bidu é uma instância da classe Cachorro: latir, implementada através do método latir();
Um método em uma classe é apenas uma definição;
A ação só ocorre quando o método é invocado através do objeto, no caso Bidu;
Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular. Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido.
MétodoMétodo
Modos de Modos de Visibilidade/AcessoVisibilidade/AcessoPode-se controlar a manipulação de
atributos e operações (membros);
Modificadores:
Modificador Modificador privateprivate
Um membro qualificado como private somente é acessível a partir de métodos da própria classe à qual pertence o membro.
Modificador Modificador publicpublic
Um membro qualificado como public é acessível a partir de qualquer operação de qualquer classe, independentemente de subclasse e de pacote.
Modificador Modificador protectedprotected
Um membro qualificado como protected é acessível a partir de qualquer operação de qualquer classe, exceto se a classe de acesso estiver em pacote distinto e não for subclasse da classe à qual pertence o membro.
Subclasse herda a estrutura e/ou comportamento de uma ou mais superclasses;
Relação entre Classes de Objetos, e não uma relação entre instância das Classes.Ex.
HerançaHerança
HerançaHerançaPara que serve a herança?
Considere a criação de uma classe ClasseB;
Que métodos estão disponíveis através de uma referência para a ClasseB (isto é, um objeto)?
HerançaHerançaSuponha agora que a
classe ClasseB herda de ClasseA;
Que métodos estão agora disponíveis para uma referência da ClasseB (um objeto) ?
HerançaHerança Poderoso mecanismo para o
reaproveitamento de código;
O objeto objB tem agora disponíveis os métodos da ClasseA sem ser necessário reescrevê-los na ClasseB
Um objeto da ClasseB também é um objeto da ClasseA.
Facilita a manutenção do código: Os métodos não são replicados. Se for necessário alterar o código do método m3, basta alterá-lo em ClasseA.
ClasseB pode "recusar" parte da herança reimplementando os métodos herdados
HerançaHerança
Tipos de HerançaHerança simples é quando uma
subclasse herda estrutura e/ou comportamento de uma única superclasse.
Herança múltipla é quando uma
subclasse herda estrutura e/ou comportamento de mais de uma superclasse.
HerançaHerançaRefatoração
Superclasse(características comuns)
Subclasses(características específicas)
HerançaHerança
Uma subclasse herda: Atributos, Operações, Relacionamentos.
Uma subclasse pode: ◦Adicionar novos atributos, operações
e relacionamentos.◦Redefinir operações herdadas.
Classes ancestrais: classes das quais as outras dependem.
Classes descendentes: as classes originadas a partir de outra.
HerançaHerança
Classes Abstratas(pura): classes cujos objetos nunca são instanciados diretamente, mas sempre por uma classe descendente dela. Não possuem um comportamento.
Classes AbstratasClasses Abstratas
Classes AbstratasClasses Abstratas
GeneralizaçãoGeneralização
Capacidade de se criar superclasses que encapsulam estrutura e/ou comportamento comuns a várias subclasses.
GeneralizaçãoGeneralizaçãoRelacionamento entre uma classe e
uma ou mais versões refinadas ou especializadas da classe.
Especialização: relacionamento inverso;
Superclasse: versão mais abstrata de outra classe, a subclasse;
Subclasse: versão mais refinada de outra classe, a superclasse.
Automóvel
Automóvelesportivo
Porsche
Generalização
Especificação
Conceitos fundamentaisConceitos fundamentais
Polimorfismo: princípio relacionado com as diferentes formas de um objeto. Onde se pode instanciar o objeto de várias formas:
Conceitos fundamentaisConceitos fundamentais
PolimorfismoPolimorfismoAssume muitas formas;
A subclasse redefine a implementação de uma operação herdada da superclasse;
Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe.
PolimorfismoPolimorfismoTrata objetos na mesma hierarquia
de classes como se todos fossem objetos da superclasse;
Tornam o programa extensível:◦ Facilidade para adicionar novas classes
Invoca os métodos das subclasses usando referências para a superclasse.
PolimorfismoPolimorfismoConceito Chave
Objetos das subclasses podem ser tratados como objetos da superclasse ::Project2
A
m1(...)m2(...)
B
m1(...)m3(...)
A classe B É UMA classe A Um objeto da classe B pode ser usado em qualquer lugar onde um objeto A é esperado.
B A
Geralmente identificado por um substantivo;
Contém estrutura e comportamento;
Dois objetos são distintos, mesmo que eles apresentem as mesmas características.
Ex: 1 dezena de automóveis Astra Cada automóvel é um objeto! Todos tem a mesma característica!
Classes são fábricas de objetos.
Identificando ObjetosIdentificando Objetos
UML: definiçãoUML: definição
UML◦ Linguagem visual para especificação (modelagem) de sistemas orientados a objetos.
Fornece representação gráfica para os elementos essenciais do paradigma orientado a objetos;
Usada para visualizar, especificar, documentar e construir os artefatos de um sistema.
UMLUML
O que é UML ?O que é UML ?
Metodologia :
. LINGUAGEM . LINGUAGEM GRÁFICAGRÁFICA. MÉTODO. MÉTODO++ UMLUML
UML diz o que pode ser feito mas não diz como deve ser feito.
É independente de processo.
UML diz o que pode ser feito mas não diz como deve ser feito.
É independente de processo.
Não está presa a uma etapa do desenvolvimento de software:
◦Análise
◦Projeto
◦Implementação
◦Testes
UMLUML
Não está presa a um Processo de Desenvolvimento de Software
◦Ciclo de Vida em Cascata◦Incremental◦Processo Unificado
UMLUML
Privilegia a descrição de um sistema segundo três perspectivas: ◦Dados (estrutural)
Diagrama de Classes
◦Operações (funcional) Diagrama de Caso de Uso
◦Eventos (temporal) Diagrama de Seqüência, Atividades, de
Transição, de Estados.
UMLUML
Notação da UMLNotação da UML
Diagramas:◦gráficos que descrevem o conteúdo em uma visão.
UML - DiagramasUML - Diagramas
Modelagem de estruturas estáticas:◦Diagrama de Casos de Uso;◦Diagrama de Classes;◦Diagrama de Objetos;◦Diagrama de Componente;◦Diagrama de Implantação
UML - DiagramasUML - Diagramas
Modelagem de estruturas Dinâmicas:◦Diagramas de Interação Diagrama de Seqüência. Diagrama de Colaboração.
◦Diagramas de Estado.◦Diagramas de Atividade.
UML: ferramentas CASEUML: ferramentas CASE
Ferramentas Licensa
1 Rational Rose proprietária
2 TogetherSoft ControlCenter proprietária
3 Argo UML livre
4 Poseidon livre
5 Jude Proprietária/livre
6 Outras