Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta...

Post on 22-Apr-2015

105 views 0 download

Transcript of Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta...

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