modelagem orientada a objeto - uml. a análise e projeto orientados a objetos têm como meta...

62
Modelagem Orientada a Modelagem Orientada a Objeto - UML Objeto - UML

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Modelagem Orientada a Modelagem Orientada a Objeto - UMLObjeto - UML

Page 2: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 3: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 4: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Estruturada x Essencial x Orientada Estruturada x Essencial x Orientada a Objeto a Objeto

Page 5: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 6: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 7: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 8: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 9: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 10: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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)

Page 11: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 12: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Conceitos fundamentaisConceitos fundamentaisAbstraçãoClasse Objetos AtributoHerança EncapsulamentoPolimorfismo

Page 13: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 14: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 15: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Abstração: exemploAbstração: exemploTelefone

Identidade:: número 2576-0989

Características:azul2.4 GHztone

Comportamento:tocardiscar

Page 16: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Abstração: exemploAbstração: exemploÔnibus

Identidade: placa LXY 7684

Características:cor amarela30 assentos

a diesel

Comportamento:frearandarcorrerbuzinaracelerar

Page 17: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 18: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 19: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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)

Page 20: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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”

Page 21: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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)

Page 22: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

ClasseClasse

Subclasse é uma nova classe que herda características de sua(s) classe(s) pai

Page 23: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

ClassesClasses

Classe

Instâncias(objetos)

Page 24: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 25: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 26: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

ObjetoObjetoRepresentação

Mário

Características(estado)

Comportamento

Identidade

Serviços ou Interface

Page 27: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 28: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 29: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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?

Page 30: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 31: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Modos de Modos de Visibilidade/AcessoVisibilidade/AcessoPode-se controlar a manipulação de

atributos e operações (membros);

Modificadores:

Page 32: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Modificador Modificador privateprivate

Um membro qualificado como private somente é acessível a partir de métodos da própria classe à qual pertence o membro.

Page 33: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 34: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 35: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 36: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 37: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 38: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 39: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 40: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

HerançaHerançaRefatoração

Superclasse(características comuns)

Subclasses(características específicas)

Page 41: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

HerançaHerança

Uma subclasse herda: Atributos, Operações, Relacionamentos.

Uma subclasse pode: ◦Adicionar novos atributos, operações

e relacionamentos.◦Redefinir operações herdadas.

Page 42: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Classes ancestrais: classes das quais as outras dependem.

Classes descendentes: as classes originadas a partir de outra.

HerançaHerança

Page 43: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 44: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Classes AbstratasClasses Abstratas

Page 45: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

GeneralizaçãoGeneralização

Capacidade de se criar superclasses que encapsulam estrutura e/ou comportamento comuns a várias subclasses.

Page 46: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 47: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Automóvel

Automóvelesportivo

Porsche

Generalização

Especificação

Conceitos fundamentaisConceitos fundamentais

Page 48: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Polimorfismo: princípio relacionado com as diferentes formas de um objeto. Onde se pode instanciar o objeto de várias formas:

Conceitos fundamentaisConceitos fundamentais

Page 49: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 50: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 51: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 52: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 53: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

UML: definiçãoUML: definição

UML◦ Linguagem visual para especificação (modelagem) de sistemas orientados a objetos.

Page 54: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 55: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 56: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Não está presa a uma etapa do desenvolvimento de software:

◦Análise

◦Projeto

◦Implementação

◦Testes

UMLUML

Page 57: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Não está presa a um Processo de Desenvolvimento de Software

◦Ciclo de Vida em Cascata◦Incremental◦Processo Unificado

UMLUML

Page 58: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 59: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

Notação da UMLNotação da UML

Diagramas:◦gráficos que descrevem o conteúdo em uma visão.

Page 60: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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

Page 61: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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.

Page 62: Modelagem Orientada a Objeto - UML. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um

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