Académique Documents
Professionnel Documents
Culture Documents
sistemas com
orientação a objetos
Notas de aula
Elaboração:
Prof.: José Luiz Rodrigues Junior
jluizrj@aol.com
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Novembro de 11
2
Índice
1 – ORIENTAÇÃO A OBJETOS....................................................................................................3
1.1 – Alavancas da orientação a objetos.....................................................................3
1.2 – Benefícios da OO...............................................................................................3
2 – DEFINIÇÕES ....................................................................................................................5
2.1 - Objeto.................................................................................................................5
ESTADO.................................................................................................................6
COMPORTAMENTO.........................................................................................6
2.2 - Mensagem..........................................................................................................6
2.3 - Operações .........................................................................................................8
2.4 – Método ..............................................................................................................8
2.5 - Herança ............................................................................................................8
2.6 – Polimorfismo.....................................................................................................9
3 – MODELO DE OBJETOS......................................................................................................10
3.1 - Abstração.........................................................................................................10
3.2 - Encapsulamento............................................................................................10
.................................................................................................................................11
3.3 – Modularidade...................................................................................................11
3.4 – Hierarquia.......................................................................................................12
3.5 - Benefícios do modelo de objetos......................................................................12
4 – CLASSES.......................................................................................................................14
4.1 – Definição ........................................................................................................14
4.2 – Exemplos de classe:..........................................................................................14
.................................................................................................................................15
.................................................................................................................................15
................................................................................................................................15
4.3 – Classes e visões...............................................................................................15
.................................................................................................................................16
4.4 - Classes – Classificação e instanciação.............................................................17
4.5 – Classes – Generalização / Especialização........................................................17
..............................................................................................................................17
4.5.1 – Considerações............................................................................................18
4.6 - Herança.............................................................................................................18
4.7 – Composição por agregação..............................................................................19
4.8 – Composição......................................................................................................19
4.9 – Classes abstratas.............................................................................................20
4.10 – Relacionamentos ............................................................................................21
4.11 – Polimorfismo..................................................................................................21
5 – MÉTODOS PARA ANÁLISE COM ORIENTAÇÃO A OBJETOS.........................................................23
5.1 – O método BOOCH............................................................................................23
5.2 – O método OMT (Object Modeling Techinique)................................................24
5.3 – O método OOSE (Object-Oriented Software Engeneering)..............................24
6 – UML – UNIFIED MODELING LANGUAGE..........................................................................25
7 – VISÕES EM UML..........................................................................................................25
8 – DIAGRAMAS DA UML....................................................................................................27
8.1 – Diagrama de casos de uso ...............................................................................28
8.1.1 – Simbologia para diagramas de casos de uso...............................................29
..............................................................................................................................29
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
2
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
1 – Orientação a objetos
1.2 – Benefícios da OO
Reaproveitamento
Estabilidade
3
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Desenvolvimento Acelerado
Integridade
Programação Facilitada
Manutenção Facilitada
Ciclo de Vida Dinâmico
Refinamento Durante a Construção
Modelagem Mais Realista
Melhor Comunicação entre Profissionais de Sistema e
Clientes
Interoperabilidade
Processamento Cliente-Servidor
Processamento Distribuído e em Paralelo
Bibliotecas de Classes Industrializadas e Corporativas
4
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
2 – Definições
2.1 - Objeto
5
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
COMPORTAMENTO
As operações, existentes nos métodos, definem o
comportamento do objeto, que é a forma como um
objeto age e reage em termos de mudanças de
estado e respostas às operações que sabe executar.
Pode-se definir um objeto como abaixo:
IDENTIDADE
Identidade é a propriedade de um objeto que o
distingue de todos os demais objetos. Um
identificador é anexado ao objeto no momento da
sua criação e permanece com ele por toda sua
existência, sendo que nenhum outro objeto poderá
possuir identidade semelhante.
2.2 - Mensagem
Identificador
Nome do objeto que será alvo da mensagem.
6
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Método
Nome do método que se deseja executar no objeto
alvo.
Argumentos
Informações suplementares para que o método
possa ser excutado.
7
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
2.3 - Operações
Construtoras
Geração de um novo Objeto da Classe (instanciação)
Seletoras
Recuperação do conteúdo dos atributos de um Objeto, sem
alterá-los
Modificadoras
Alteração do valor dos atributos ou estado de um Objeto
Destrutoras
Eliminação de um objeto existente
2.4 – Método
2.5 - Herança
8
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
2.6 – Polimorfismo
9
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
3 – Modelo de objetos
Diferentes metodologias permitem diferentes abordagens para a
resolução de um problema. Em orientação a objetos, existe o conceito
de “modelo de objetos” que é composto de 4 elementos básicos:
3.1 - Abstração
Denota as características essenciais de um objeto que o
distinguem de todos os outros tipos de objetos e portanto
definem nitidamente os limites conceituais relativos à
perspectiva do observador. Descreve as características
visíveis do objeto. Tem seu foco no comportamento
observável do objeto. Não descreve, entretanto:
A sua implementação
O seu funcionamento
3.2 - Encapsulamento
É o processo de identificação dos elementos de uma
abstração que constituem sua estrutura e comportamento.
Constitui em esconder todos os detalhes de um objeto que
não contribuem para suas características essenciais.
É uma técnica utilizada para proteger informações onde o
acesso aos dados do objeto é feito através da chamada a
uma operação da sua interface.
Benefícios:
Segurança
Protege os atributos dos objetos de terem
seus valores corrompidos por outros objetos.
Independência
“Escondendo” seus atributos, um objeto
protege outros objetos de complicações de
dependência de sua estrutura interna.
10
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
3.3 – Modularidade
11
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
3.4 – Hierarquia
Um grupo de abstrações frequentemente forma uma
hierarquia e com a identificação dessas hierarquias no
projeto, pode-se simplificar o entendimento do problema.
Pode-se definir hierarquia como segue:
12
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
13
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
4 – Classes
4.1 – Definição
14
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
CONTA
CONTA Classe
Titular
Titular
Número
Número
Saldo Atributos
Saldo
Depósito( )
Saque( ) Métodos
Transferância( )
15
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
16
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Classificação
É a operação que divide em uma ou mais categorias
(classes) indivíduos dentro de um domínio;
Instanciação
É a operação que evidencia um indivíduo (Objeto)
que pertence a uma categoria.
São operações opostas. Quando se une vários
indivíduos em uma categoria, é uma classificação,
mas quando se pega um único indivíduo da
categoria, é uma instanciação.
Especialização
Ato de definir-se uma Classe que além de herdar as
características e o comportamento do Supertipo
ainda possui outras características que são sua
especialidade (somente ela tem) e, portanto, os
demais subtipos não possuem
17
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
E
G s
e p
n e
e c
r i
a a
l l
i i
z z
a a
ç ç
ã ã
o o
4.5.1 – Considerações
Uma Classe derivada herda a estrutura de dados e
métodos de sua classe “base”, mas pode
seletivamente:
- adicionar novos métodos;
- estender a estrutura de dados;
- redefinir a implementação de métodos
já existentes.
Uma Classe “base” propicia a funcionalidade que é
comum a todas as suas classes derivadas, enquanto
que uma classe derivada proporciona a
funcionalidade adicional que especializa seu
comportamento.
A Generalização é uma noção conceitual. Herança é
a implementação de uma generalização.
4.6 - Herança
Herança é o compartilhamento de atributos e operações
entre classes com base em um relacionamento
hierárquico. Cada subclasse herda todas as propriedades
da superclasse e acrescenta suas próprias e exclusivas
características, permitindo assim, a reutilização de
especificações comuns.
18
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
PEDIDO
PRODUTO CLIENTE
4.8 – Composição
Propriedade de uma Classe formar suas instâncias a partir
da reunião das características e do comportamento de
outras instâncias da mesma Classe ou de Classes
diferentes, sendo que os componentes não têm existência
indepedente em relação ao composto, ou seja, a
eliminação do composto afeta a existência dos elementos
que o criaram.
19
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
LÂMPADA
CLASSE
ALUNO ABSTRATA
CLASSES
GRADUAÇÃO CONCRETAS PÓS
20
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
4.10 – Relacionamentos
1
CLIENTE FAZ * PEDIDO
Relacionamentos possíveis:
1 PARTICIPA 1
GERENTE PROJETO EXATAMENTE 1
1 PARTICIPA 0...1
EMPREGADO PROJETO OPCIONAL 0 OU 1
1
CLIENTE FAZ * PEDIDO
MAIOR OU IGUAL A
ZERO
4.11 – Polimorfismo
Pode-se declarar funções e procedimentos com os mesmos
nomes, enquanto suas chamadas possam a ser distintas
pelos seus parâmetros de retorno, consistindo do número
dos seus argumentos e dos seus tipos de valores de
retorno.
No contexto OO, Polimorfismo significa que diferentes tipos
de Objetos podem responder a uma mesma mensagem de
maneiras diferentes.
21
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Aplicação financeira
CalcularSaldo(...)
CalcularSaldo(...) CalcularSaldo(...)
22
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
23
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
24
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
7 – Visões em UML
25
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
26
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
8 – Diagramas da UML
27
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
SISTEMA DE VENDAS
28
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Caso de uso
ATOR
COMUNICAÇÃO
Rótulo
Interação bidirecional
Rótulo
Interação Unirecional
RELAÇÕES
<< USES >>
Uses - Passos comuns
<< EXTENDS >> Extends - Passos
Extends adicionais
- Passos adicionais
Generalização / Especialização
29
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
30
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
8.2.1 – Simbologia
31
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
CLASSE
NOME
ATRIBUTOS
MÉTODOS
Verbo
ASSOCIAÇÃO
GENERALIZAÇÃO / ESPECIALIZAÇÃO
COMPOSIÇÃO
Relacionamento
Prédio Apartamento
1 possui
*
32
Cardinalidade
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
33
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
N Exatamente N
0...1 0 ou 1
N...M Entre N e M (Incluindo os extremos)
* Zero ou Muitos
1... 1 ou muitos
*
PAÍS CIDADE
Tem capital
É capital de
34
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
ALUNO DISCIPLINA
35
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
UM OBJETO:
OBJETO
XXXXXXXX
COMUNICAÇÃO
ESTEREÓTIPO
LINHA DE
VIDA
Notação:
36
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
37
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
definir_Itinerário(i)
estabelecer_rota( )
rota
notificar( )
38
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
39
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
8.5.1 - Simbologia
INÍCIO DO DIAGRAMA
FIM DO DIAGRAMA
ATIVIDADE
DECISÃO
CONECTOR (MESMA
PÁGINA)
Selecionar local
Contratar arquiteto
Desenvolver plano
Orçar plano
Rejeitado
Aceito
Construir edifício
40
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Exemplo:
41
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
INÍCIO DO DIAGRAMA
FIM DO DIAGRAMA
ESTADO
DECISÃO
CONECTOR (MESMA
PÁGINA)
CONECTOR (PÁGINA
ANTERIOR/PRÓXIMA)
8.6.2 - Evento
42
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
43
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
8.6.3 – Transição
Uma transição é representada por uma seta sólida
de um estado para outro, rotulada por uma cadeia de
transição.
Cancelando Pedido
pedido enviado alteração de pedido solicitada
pedido requisitado
pedido para análise
requisitado
para análise
pedido será cancelado
Analisando Pedido
pedido para aprovação
pedido já pode ser
atendido Aprovando Pedido
pedido atendido
Colocando pedido em pendência Atendendo pedido
44
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
45
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
Exemplos:
Modelagem de uma aplicação:
<<Database>>
escola.db
<<Table>> <<Table>>
curso aluno
46
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
<<console>>
terminal
<<Ethernet>>
<<server>>
servidor
<<console>>
terminal
<<Conexão serial>>
<<console>>
Os servidores nacionais podem
terminal <<console>> ser alcançados um pelo outro
terminal por meio da rede privada da
empresa.
<<console>>
terminal
<<server>>
servidor
internet nacional
<<server>>
servidor
regional
47 servidor
de login
<<server>>
<<server>>
servidor
servidor
regional
regional
Ciência da computação – Análise e projeto de sistemas com orientação a objetos
9 – Bibliografia
48