Você está na página 1de 36

03/09/2008

Introdução a orientação a Objetos

Parte 1

A estratégia de O-O para modelagem de sistemas baseia-se


na identificação dos objetos (que desempenham ou sofrem
ações no domínio do problema) e dos padrões de
cooperação e interação entre estes objetos.

1
03/09/2008

Objeto

• Definição:
– Um conceito, uma abstração com significado específico em um
contexto

• Propósito:
– representar uma entidade do mundo real

• Objetos possuem:
– Identidade
– Conjunto de características que determinam seu estado
– Comportamento específico definido por um conjunto de ações

Exemplo de Objetos
Identidade: „Beija-flor Biju‟
Identidade: „Pessoa Mário’
Características:
Características:
penas azuis
olhos pretos
bico fino
nasceu em 16/02/70
vôo rápido
pesa 70kg
mede 1,70m

Comportamento:
voar
Comportamento:
piar
andar
falar
comer
rir

2
03/09/2008

Identidade: „Telefone da minha casa‟

Características:
azul
número 576-0989
Características:
tone
cor amarela
placa LXY 7684
30 assentos
Comportamento: a diesel
tocar
discar
Comportamento:
frear
andar
correr
buzinar
acelerar

Objeto

Representação
Identidade

Características Funcionário_Mário
(estado)
Nome = Mário Sá
Nasc = 16/02/70
Salário = 3.000

InformarSalário
CalcularIdade

Mário

3
03/09/2008

Diferença entre Classe e Objeto

Classe Pessoa

Objeto Ana
Objeto
João

Classe Funcionário

Nome
Nasc Classe
Salário

InformarSalário
CalcularIdade

Funcionário_Helena Instâncias Funcionário_Mário

Nome=Helena Reis (objetos) Nome=Mário Sá


Nasc=28/01/1965 Nasc=16/02/1970
Salário = 4.000 Salário = 3.000

InformarSalário InformarSalário
CalcularIdade CalcularIdade

4
03/09/2008

Classe

• Definiçã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”

• Objetos de uma classe são denominados “instâncias”


– Todos os objetos são instâncias de alguma classe
– Todos os objetos de uma classe são idênticos no que diz respeito a sua
interface e implementação

Atributos
Funcionário

• Descrevem as características das Nome


instâncias de uma classe Nasc
Salário
• Seus valores definem o estado do
objeto InformarSalário
CalcularIdade
• O estado de um objeto pode mudar
ao longo de sua existência
Funcionário_Helena
• A identidade de um objeto,
contudo, nunca muda Nome=Helena Reis
Nasc=28/01/1965
Salário = 4.000
Funcionário_Mário
InformarSalário
CalcularIdade Nome=Mário Sá
Nasc=16/02/1970
Salário = 3.000

InformarSalário
CalcularIdade

10

5
03/09/2008

Serviços/Métodos

• Representam o comportamento das instâncias de uma classe


• Correspondem às ações das instâncias de uma classe

Funcionário_Helena
4000
Funcionário Nome=Helena Reis
Nasc=28/01/1965
Nome Salário = 4.000
Nasc
Salário InformarSalário Funcionário_Mário
CalcularIdade
InformarSalário Nome=Mário Sá
CalcularIdade 3000 Nasc=16/02/1970
Salário = 3.000
Informar
Salário? InformarSalário
CalcularIdade

11

Mensagens

• Objetos são entidades independentes que necessitam se comunicar

– Para obter informações ou ativar o comportamento de objetos, é


preciso enviar-lhes mensagens
– Ao receber uma mensagem, o objeto busca em seu protocolo um
método que irá responder a tal mensagem

• Objetos só reagem a mensagens que fazem parte das ações do


protocolo de sua classe

 Troca de mensagens: Paradigma de comunicação entre objetos

12

6
03/09/2008

Serviços/Métodos

• Um método é a implementação de uma operação


– possuem argumentos, variáveis locais , valor de retorno, etc

13

Mensagens
Funcionário_Helena
4000 Informar
Nome=Helena Reis Salário?
Nasc=28/01/1965
Salário = 4.000

Funcionário InformarSalário
CalcularIdade
Nome
Nasc
Salário

InformarSalário
CalcularIdade
Funcionário_Helena ?
Nome=Helena Reis
Calcular
Nasc=28/01/1965 Desconto
Salário = 4.000
?
InformarSalário ERRO!
CalcularIdade

14

7
03/09/2008

Herança

• Conceito que expressa similaridades entre classes

• Estabelecem relacionamentos de generalização-especialização (“é-um”)


entre classes

• Permitem estabelecer hierarquias de classificação

15

Funcionário_Hele
Funcionário
na
Nome
Nome=Helena Reis
Nasc
Nasc=28/01/1965
Salário
Salário = 4.000
InformarSalário
InformarSalário
CalcularIdade
CalcularIdade

Gerente_Mário
Gerente
Nome=Mário Sá
Nome Nasc=16/02/1970
Nasc Salário = 3.000
Salário
Projeto Projeto = SAP

InformarProjeto InformaProjeto
InformarSalário
InformarSalário CalcularIdade
CalcularIdade

16

8
03/09/2008

Funcionário Funcionário_Helen
a
Superclasse Nome
(características comuns) Nasc Nome=Helena Reis
Salário Nasc=28/01/1965
Salário = 4.000
InformarSalário
CalcularIdade InformarSalário
CalcularIdade

Subclasse
(características Gerente_Mário
específicas)
Nome=Mário Sá
Nasc=16/02/1970
Gerente Salário = 3.000
Projeto = SAP
Projeto
InformarSalário
InformarProjeto CalcularIdade
InformarProjeto

Todo objeto Gerente “é um” objeto Funcionário 17 17

UML

Parte 2

18

9
03/09/2008

• UML é uma linguagem para:

– Especificar
– Visualizar
– Construir
.... artefatos de sistemas de software

• Oferece uma notação para a modelagem de sistemas seguindo


os conceitos da orientação a objetos.

A UML é uma linguagem para modelagem; ela não guia o desenvolvedor


em como fazer a análise e projeto orientado a objetos, ou qual processo
de desenvolvimento deve ser seguido

19

Histórico

• A UML tem sido encarada como um padrão

• Inicialmente, um esforço de integração dos principais autores de


métodos OO:
– Ivar Jacobson, Grady Booch e Jim Rumbaugh

• A partir de 1997, foi submetida como candidata a padrão à OMG


(Object Management Group)

20

10
03/09/2008

Propósitos

• Prover uma linguagem de modelagem visual potente e


significativa, que represente os conceitos básicos de modelagem
aceitos por vários métodos e ferramentas

• Prover mecanismos de extensão e especialização que permitam a


ampliação dos conceitos básicos

• Ser independente de linguagem de programação e de processo de


desenvolvimento

21

Visões Diagramas

• Diferentes aspectos do • Gráficos que descrevem o


sistema a ser modelado conteúdo de uma visão
• Modelo completo só através • Uma visão pode ser
de várias visões
composta por vários
• Metodologias diferentes diagramas
usam os diagramas para
compor diferentes visões

22

11
03/09/2008

Visões e Diagramas da UML

• Visão Externa
• Visão de Interação
– Diagrama de Casos de Uso
– Diagrama de Sequência
– Diagrama de Colaboração
• Visão Estrutural (Estática)
– Diagrama de Classes
• Visão da Arquitetura
– Diagrama de Objetos (Implementação)
– Diagrama de
• Visão Comportamental Componentes
(Dinâmica) – Diagrama de Implantação
– Diagrama de Estado – Diagrama de Pacotes
– Diagrama de Atividade

23

UML – Caso de Uso

24

12
03/09/2008

Casos de Uso - Sistema de Negócio

Simboliza um negócio, onde são definidas as responsabilidades do


sistema e as do ambiente.

Ambiente Fronteira Sistema de Negócio

25

Caso de Uso - Definição

Um caso de uso é uma seqüência de ações que um ator

executa em um sistema com um propósito específico.

26

13
03/09/2008

Caso de Uso - Ator

• Externo ao sistema - Ambiente


• Papel de alguém - ou de alguma
coisa
• Abstração de alguma pessoa ou
coisa que utiliza o sistema,
inclusive outro sistema
• Tudo aquilo que interage com o
sistema e que interessa ser
modelado

27

Caso de Uso - Diagrama

Expressa o que acontece quando uma instância do caso é executada. O


nome deve ser ativo - verbo no infinitivo + substantivo.

Registrar Contrato

Vendedor Cadastrar Cliente

Adquirir
Suprimentos
Gerente
28

14
03/09/2008

Caso de Uso - Descrição

A UML não especifica um formato rígido para a modelagem da

descrição de casos de uso, somente para sua diagramação. Ela

pode ser alterada para atender a necessidades específicas,

aumentar a clareza da documentação ou melhorar a

comunicação. Normalmente as descrições são construídas

como um texto explicativo ou passos de um procedimento, em

português.

29

Caso de Uso – Descrição não expandida

Caso de Uso: Fechamento de Conta

Atores: Caixa

Descrição: A partir da solicitação de fechamento de conta pelo

cliente, garçom informa ao sistema a mesa de

fechamento. Ao final, o sistema apresentará a relação

de produtos consumidos e seus valores, garçom que

realizou o atendimento e o tempo de permanência.

30

15
03/09/2008

Caso de Uso – Descrição expandida

Caso de Uso: Comprar Itens


Atores: Caixa
Descrição: Um cliente chega ao checkout com itens para
comprar. O caixa registra os itens e recebe o
pagamento. Ao final, o cliente sai com os itens
comprados.
Curso Normal
1- caixa passa na leitora de código de barras cada ítem e informa sua
quantidade
2- o sistema verifica que o ítem é válido e apresenta seu valor
3- caixa informa fim dos ítens e solicita fechamento da conta
4- o sistema calcula e apresenta o total
5- caixa recebe o pagamento
5- o sistema emite a nota fiscal

31

Caso de Uso – Relacionamentos

• Generalização

• Inclusão

• Extensão

32

16
03/09/2008

Caso de Uso – Relacionamento de Extensão

Registrar Contrato

<<extend>>
Vendedor

Cadastrar Cliente

33

Caso de Uso – Relacionamento de Inclusão

<<include>>

Realizar Saque com Cheque


Caixa

<<include>>

Efetivar Saque

Cliente Realizar Saque com Cartão

34

17
03/09/2008

Caso de Uso – Relacionamento de Generalização

Matricular Aluno

Atendente

Matricular Aluno Es trangeiro

35

Caso de Uso –Generalização de atores

Vender
Equipamento

Vendedor

O Gerente também pode efetuar vendas

Autorizar
Crédito

Gerente
36

18
03/09/2008

UML – Diagrama de Classe

37

Diagrama de Classe

• Descreve relações estáticas, basicamente:


– Classes e sub-classes
– Associações

• Diagrama mais importante

38

19
03/09/2008

Diagrama de Classe - notação

• Classes

• Atributos

• Operações

• Relacionamento

39

Diagrama de Classe – notação de classe

Aluno

Aluno nome: Char


idade: Int
telefone: Char
endereço: Char
informar_nome()
informar_idade()
informar_telefone()
alterar_endereço(…
)

40

20
03/09/2008

Diagrama de Classe – relacionamentos

• Associação
• Generalização
• Agregação
• Composição
• Papéis (Necessário para ligação de uma classe com ela mesma)
• Multiplicidade
• Navegabilidade (Uni-direcional x Bi-direcional)
• Restrições

41

Diagrama de Classe – relacionamento de generalização

MeioTransporte

...
Carro Navio

42

21
03/09/2008

Diagrama de Classe – relacionamento de agregação

0..1 Compõem 11..22


Time Jogador

43

Diagrama de Classe – relacionamento de agregação por composição

Carro

1 1
1

1 4 1

Motor Rodas Chassi

44

22
03/09/2008

Diagrama de Classe – classe associativa e papel no relacionamento

1..* Alocação *
Divisão Funcionário chefe
alocador alocado
1
subordinado *
Alocação

data

45

46

23
03/09/2008

UML – Diagrama de Estado

47

Diagrama de Estado - Introdução

• Usado para modelar o comportamento de um objeto do sistema, que


possua comportamento dinâmico

• Importante para entendermos e validarmos o comportamento dos objetos


durante a suas vidas

• Normalmente utilizado para representar o comportamento de objetos de


classes

• Não é necessário construir DE para todas as classes

48

24
03/09/2008

Diagrama de Estado - Notação

<nome do estado A > < nome do estado B>


<evento >[ < condição > ] / < ação >
do/ <atividade> do/ < Atividade B >

49

DE - Elementos

• Estado
• Evento
• Transição
• Ação
• Condição
• Atividade

50

25
03/09/2008

51

52

26
03/09/2008

53

DE - Avançado

• Um estado pode conter outros estados, concorrentes ou independentes –


Estado Composto

• Transição de e para Estados Compostos

• Transições de e para Estados Concorrentes

54

27
03/09/2008

UML – Diagrama de Atividades

55

Diagrama de Atividades

• Descreve uma sequência de atividades, com suporte para comportamento


condicional e paralelo

• As transições são disparadas pelo término da atividade

• Serve para modelar um caso de uso com muitos fluxos alternativos


significativos

• Serve para modelar processos de negócio

56

28
03/09/2008

Diagrama de Atividades - condições

[valor < R$ 50,00]


Obter valor cheque Emitir fatura

[valor > R$ 50,00]

[cheque aceito]

Consultar telecheque [cheque recusado]

57

Diagrama de Atividades - bifurcações

Vender Café

Preparar café

[ficha válida]
Receber ficha Servir café

[ficha inválida] Colocar copo

Devolver ficha

58

29
03/09/2008

Workflow de Pagamentos
Recepção de Controlador de Preparador de Gerente de
Departamento Contabilidade
Compras Empenhos Pagamento Tesouraria
1

A
Compras
Solicitar
Pagamento de [NF Compra
Nota Fiscal Direta] Classificar
(Compra Direta) Empenhar
despesa Preparar Aprovar
pagamento pagamento
2 [NF de Pedido]
[NF de Pedido
Receber 100% antecipado]
Compras Nota Fiscal
Arquivar
Documento
Encaminhar
Nota Fiscal
de Pedido

Analista de Superinten-
Externo Contínuo Tesoureiro
RP dente de RH
Encaminhar
pagamento

Gerar RP

[Contra-retirada]
Pagamento
[Depósitos em cheque]
transmitido

Comprar Realizar D+1


Analisar RP Aprovar RP material depósitos
Banco
confirma
pagamento
C B
A
B C

Quitar
pagamento

[Pagamento
Antecipado]

Compras 3
59

UML – Diagrama de Sequencia

60

30
03/09/2008

Diagrama de sequencia - introdução

• Diagramas de Sequência apresentam a interação entre um grupo de


objetos (ou classes) de um sistema, através de mensagens, em um
determinado Cenário.

• Diagramas de Sequência são primariamente utilizados para a atribuição de


responsabilidades a cada um dos objetos do sistema – operações

• Completa o tripé da análise:


– Casos de Uso - comportamento externo (funcional)
– Diagramas de Classes - visão estática
– Diagramas de Sequência - visão dinâmica

• deve ser desenvolvido um Diagrama de Sequência para cada cada cenário


de um Caso de Uso

61

Diagrama de sequencia – relacionamento com outros


diagramas

Diagrama de Classes Operações Caso de Uso


* oãçacolA *..1
efehc oiránoicnuF odacola rodacola oãsiviD Nome: Reservando Passagem
1
* odanidrobus Atores: Agente
oãçacolA
atad
Curso de Eventos
1- Ujfsaj jfklsdj jfdkkj fl als ;a f a;
2- jfaskdjf lj kl;k kdfjasdkl lkssss
MeioTransporte
3- jsdkfklk lkkkk lopjfa[ pokfsao opw
4- skdjfI)kkk;’PIO lkkfapp kjadfp
5- lkLKO oeppae fokkzp;xp pokf ;lp[
...
Alternativas
Carro Navio 1- Ijfksa kJFKJ a;lkj ;kjfklasojk;a

Diagrama de Colaboração
Diagrama de Atividade Janela de
Entrada de
Pedido
um Pedido
uma linha
de
Pedido
um item
em Estoque

criar()

Diagrama de Sequência
* criar()

verifica ()
Janela de uma linha
um item
Entrada de um Pedido de [verfifica = true]
em Estoque
Pedido Pedido retirar_item()
refabricar_item()
criar()

* criar()
[refabricar_item = true]
verifica ()
Janela de uma linha new
um item um Item de
Entrada de um Pedido de [verfifica = true]
em Estoque Refabricação
Pedido Pedido retirar_item()
[verfifica = true]
refabricar_item()
criar()
new um Item de
* criar() Entrega

verifica () [refabricar_item = true]


new
[verfifica = true] um Item de
Refabricação

Objetos Cenário
retirar_item()
refabricar_item()
[verfifica = true]
new um Item de
Entrega
[refabricar_item = true]
new
um Item de
Refabricação
[verfifica = true]
new um Item de
Entrega

Interação
62

31
03/09/2008

Diagrama de sequencia - notação

• Linha da Vida

• Mensagens

• Informações de Controle

• Auto-delegação
• Condição
• Iteração

63

Janela de
Entrada de :Item_Estoque
Atendente Pedido
Informa dados criar() :Pedido

* criar()
:linha_Pedido

Iteração verifica () Condição

[verifica = true]
retirar_item() Auto-delegação
refabricar_item()

[refabricar_item = true]
criar
:Item_Refabricação

Retorno
[verfifica = true]
criar
data_entrega :Item_Entrega

64
64

32
03/09/2008

UML – Diagrama de Colaboração

65

Diagrama de Colaboração – introdução

• Diagramas de Colaboração ilustra as interações entre objetos no formato


de grafo.

• Da mesma forma que os Diagramas de Sequência são utilizados para a


atribuição de responsabilidades a cada um dos objetos do sistema -
operações

• Possui uma maior economia de espaço em relação ao diagrama de


sequencia

66

33
03/09/2008

• Diagrama de colaboração - notação

mensagem

1. :tot:= total():Integer
: Loja : Venda

Instância de linha de
Classe ligação

67

Diagrama de componentes

• Mostra a estrutura de componentes


• Representa dependências estáticas
• Compilação entre programas

index.html
cliente.html cliente.exe

68

34
03/09/2008

Diagrama de Implantação

entrada de pedido

PC
Fax

Servidor de
aplicação

compra

Impressora
PC

69

Elementos Genéricos

• Nota: é um comentário inserido no diagrama

• Constraint (restrições): é uma relação semântica entre elementos do


modelo. Especifica condições ou proposições que devem ser mantidas
verdadeiras. Uma restrição é mostrada como uma cadeia entre chaves {}.
(OCL – Object Constraint Language)

35
03/09/2008

Elementos Genéricos - Pacotes

•Packages agrupam elementos de modelagem.

•Packages podem conter classes, relacionamentos, classes abstratas,


Packages, tipos, etc...

Elementos Genéricos - Estereótipo

• Mecanismo de extensão introduzido pela UML, que permite


estender o meta-modelo para suprir necessidades que não
encontram-se entre os meta-elementos disponíveis, desde
que a definição semântica da própria linguagem não seja
ferida.

• Um estereótipo pode ser aplicado a classes, relacionamentos


de dependência, atributos, operações, etc.

36

Você também pode gostar