Академический Документы
Профессиональный Документы
Культура Документы
UML-1550
:I
<i.
o
:I~>«
~
(J
:::>
:I~z
u.
~
=-~ o
o
c(
1 - Orientação a Objetos
>
:I
:I
::I
:I
=
:
:I
:I
fi
I
!li
'.
:::>
Q
w
tuz
u,
~
a:
Você aprenderá:
o
e,
in
oQ • Modelagem de Sistemas
I
:;:a:
w
ffl • Orientação a Objetos I
a:
o
'<l:
lfl
tn
gw
a:
I
Õ
l/l
o
l/l
oQ !
~
li
14
:!
INSTITUTO INFNET - 14
UML-1550
.1,1;
z
~
~
5::l
-e
1.1 - Modelagem de Sistemas
:s , '"~~ Bloco de Construção do Aprendizado
o
«
'"
'o"
== >
E
:z:
a:
'O"
~ '"O
Q
O
>
=
~
=
=:íI
:51
:li
=
~
~
:11
INSTITUTO INFNET - 15
ai
\- i
V'
UI. _ - ::5õiI
I
I
i
~
~
o
.c(
~
o
::>
1.1 - Modelagem de Sistemas I
'.
o
w
tü • Desenvolvimento de Sistemas
I
zu,
:l:
IX:
oQ. • Papel da Modelagem I
CIl
oo
~
IX:
·w
ID
IX:
• O Que é um Modelo?
• Orientação a Objetos •
•
o
,c(
CIl
CIl
o
!:
w
IX:
15
CIl
o
CIl
o
o
I
~
I
16
I
I
I
I
I
I
I
,I
INSTITUTO INFNET - 16
:I
UML-1550
:2
oi
~.
C
I-
-'
o
>«
o-
Desenvolvimento de Sistemas
«
o
::l
! C
W
I
W
Z
• Objetivos do Desenvolvimento de Software:
U.
zao - Produtos de Qualidade;
J o
e,
co
oc - Atender as necessidades do cliente;
-c
>
ao - Preços competitivos.
:i w
co
w
ao
o
-e
• Foco nos Clientes:
co
:I co
o
l
m
ao
- Centro da atenção no desenvolvimento;
i3
co
- Atender aos requisitos do usuário.
-
o
~ '"
o • Viabilidade do Projeto:
c
o
I
•-
17
~ Uma empresa de software deve fornecer produtos de qualidade que sejam capazes de
I atender às necessidades dos usuários e praticar preços compatíveis com o produto que está
~~
sendo oferecido.
Os JJ:~S, ou ,Çlien.w..s., devem ser o centro das atenções durante a atividade de
desenvolvimento de sistemas. É necessário saber o que usuário deseja que seja cumprido e
codificado, atendendo aos seus requisitos.
I Ao mesmo tempo em que existe a preocupação com os requisitos dos usuários, deve
•
~
também haver preocupação com o tempo e recursos materiais (como em toda atividade
~
mercantil), tomando o desenvolvimento de sistemas previsível e viável.
~l
INSTITUTO INFNET - 17
\
'-=
oi
C
Papel da Modelagem
I
--J
o
-00:
o
00:
o
=>
c
w
tu • Existem dois tipo~ de m09el9s: ,I,' ( / ' ) fldií::' t;:'
z
u. _ Estrutural; {) ~ J2 C ,i~.,y1~-'~!'i./ 1,' 'l;~",
~
a::
oo. - Comportamental;
Ul
o
c
~
• Os modelos traduzem COMO as coisas serão
a::
W·
Ul
w
construídas:
a::
o
'00:
- Relações entre as partes;
til
til
o
l::
- Funcionamento;
w
a:: - Disposição.
ti:
til
o
til
o • Os modelos traduzem o tamanho e a I
C
~ complexidade do sistema. I
e:
:I
:I
""-
::
~
o
<
o que é um Modelo?
S:;
c • Simplificação da realidade.
:I
'"
:Li
...
z
i!: • Modelos são esquemas gráficos que
=
::;
e
:: representam o sistema.
Q
;;:
>
z:: • Os modelos traduzem:
:I
u
'"
~
o
- ESTRUTURA:
-o:
=
::
• Organização de módulos;
...iJÕ
'" • Relacionamentos;
C
::
- CONIPORTAMENTO:
: o
::
oo
::: • Dinâmica;
• Inter-relacionamento;
:I
• Funcionalidade.
19
:I
"Um Modelo é uma Simplificação da Realidade"
:I
:I Os modelos são esquemas gráficos que representam algum aspecto do sistema, da mesma
forma que uma maquete em gesso ou madeira dá uma idéia da aparência de um prédio ou um
carro.
:I Os modelos traduzem duas características dos sistemas: a sua estrutura e o seu
comportamento.
:I Os modelos estruturais apresentam a organização do sistema, ou seja, que módulos estão
presentes, como estes são constituídos e como estão relacionados.
::I O comportamento do sistema é apresentado por modelos que descrevem a sua dinâmica,
inter-relacionamento e a sua funcionalidade.
:I
:J
=t
:9
-----------
_ ---"'--- ------- - - - - - - ------ -----
/
fi
U
UM L -1:55:
1
<i
c
!::i
O
.«
Modelagem de Sistemas
o.
«
1
O
=>
C
UJ
lü
z
u,
~(~iE~
~
ti:
1
,
O Analista de
O-
til Requisitos
O
C
«
>
ti:
UJ '-._-,'"
.fi] , ...-"./-FIoo....,Gorm
ti: Proposta
Técnica
O .-~~----- ----('~)
.« Cie'u "<,-c. R_Qorm
til
<>:
Documento
1
til
O de Visão
!::
UJ
ti:
Õ
til
O
til
O
c
1
12
L
)''''~''''O
ii~:::';'L_
f------+------!Ql=f...4~~~_,----++---'--+--~~-+---!--J<---------i------1
i
'-_ i~
20
I•
A figura acima mostra os.!!.ês principais envolvidos no processo de modelagem de sistemas:
an~ista de requisitos, @31~emas e ;rquitetll-de--sof~il~\ Eles geram e utilizam diversos I
docliiiie"ntos, modelos e diagramas q-iie'Servem de base para a construção do sistema.
O analista de requisitos comunica-se com os usuários para descobrir quais são os requisitos I
do sistema. Verifica se os requisitos estão completos e bem definidos e resolve os problemas desta
natureza. Documenta os requisitos para que sejam utilizados pelosoutros membros da equipe.
O analista de sistemas elabora, a partir dos requisitos funcionais, a solução do sistema,
I
desenvolvendo os diagramas necessários.
O arquiteto de software trata dos requisitos funcionais e não funcionais, identificando
questões de desempenho, persistência, segurança, confiabilidade, escalabilidade, entre outros.
INSTITUTO INFNET· 20
..g
.;( - Delimitar o escopo de um problema;
:11I :ti:
- Comunicação entre equipe;
~
s - Ajudar a planejar as soluções;
:li ~
- Guiar o desenvolvimento do sistema,
:11I
=
21
:li
"Modelos são construídos para que se possa entender e visualizar um sistema - para
:11I Através dos modelos pode-se delimitar claramente o escopo de um problema e planejar a
solução. O modelo ajuda no entendimento do sistema. Para projetar é preciso conhecer muito
bem o que se pretende com o sistema.
:11I Os modelos servem também para a comunicação. A equipe de desenvolvimento irá se
comunicar através dos modelos.
:11I
:11I
:11I
:11
:li
~
= INSTITUTO INFNET - 21
U"'L-r~
<i.
Cl
!:i
o
'<t
o
<t
<.l
o que é um Modelo?
::l
o
w
...w
Z
• Tipos de modelos diferentes apresentast'-,
U
;!;
a: perspectivas diferentes da mesma situação;
oe,
(fJ
o
c
<t
• Modelos devem expressar de forma precisa
>
a:;
w
(fJ
w
a realidade;
a:;
o
'<t
(fJ
(fJ
• Nenhum modelo consegue mostrar todas as
o
!::
w
a:
características de um sistema.
15
(fJ
o
(fJ
o
Cl
g
22
INSTITUTO INFNET • 22
','
:11
UML-1550
11
r \
,\ /\ 1\ 1 I,
~ '?r" r " I
-
:<
:::>
Modelagem Orientada a Objetos '.---'
~ã
11
Li:
...
• Tradicional:
-
z
.;!; - Foco do desenvolvimento nos processos;
:;
i:
!!! • Orientada a Objetos:
<
>
.....
li: - Foco do desenvolvimento nas entidades que participam
11
.ll.
li:
dos processos .
..
.';<
• Entidades do mundo real:
:11I
~
ii
- Pessoas - Funcionário, Vendedor, Aluno.
a
~
~
-
-
Lugares - Sala, Estoque, Estante, Prateleira.
11
23
11
,.
A visão tradicional de desenvolvimento de sistemas adota a abordagem por processos:
fluxos de trabalho são o elemento principal deste tipo de modelagem.
A modelagem orientada a objetos se preocupa com a interação das entidades do mundo
11
real, procura representá-lo como é percebido - pessoas, lugares, fatos e coisas existentes que se
comportam como objetos, possuindo características próprias de apresentação e funcionamento.
:li Entidades representáveis em um modelo orientado a objetos podem ser pessoas, lugares,
fatos ou coisas. Tudo o que for relevante para o sistema deve ser identificado e modelado.
=
11
11
li
li
11
11
INSTITUTO INFNET • 23
li
- - -...._...- - - - - - - - = : - - - -
UML -15õ.:
~
~
o
.«
o
Modelagem Orientada a' Objetos
«
Q
:J
Q
w
I
W
Z
u.
:;;: Real
a:
o
a.
~
c
«
> .Carro
a: Casa
w·
ffla:
o
.«
Ul
g
w
a:
Õ
~
Ul
oQ
g
24
A figura acima mostra que podemos representar "abstrações" de elementos do mundo real
no ambiente orientado a objetos. Ou seja, são representadas apenas as partes relevantes para o
problema. Essas representações têm relacionamentos entre si, da mesma forma que no mundo
real. O modelo acima identifica apenas nomes e relacionamentos mas não se preocupa com
detalhes corno cor, tamanho, tipo.
O foco do estudo e levantamento não é mais o processo, corno por exemplo dirigir ou
morar. O cerne do estudo é na entidade que participa do processo, quais as informações
'c
relevantes do Motorista (nome, CPF), do Veículo (placa, cor, marca, ano) e quais as ações
(métodos) que serão executadas (dirigir, morar). -
E
INSTITUTO INFNET - 24
-'-,-"---"--"-- - - - - - , - - - _. - - - - - , - . --,--"- _. -
,.,
::I
UML-1550
:I
<i
c
:I -
~
0
Modelagem Orientada a Objetos
-=:
g
:I i:
i::
z
• Benefícios Técnicos:
....
~
:z:: - Reusabilidade;
:I ce,
.c
- Extensibilidade e manutenção;
c
-=:
>
:z::
:J l.:J
""
.LI
:E:
- Aumento da qualidade;
C
• Benefícios Econômicos:
::I ..
""
."
c
E
:m: - Apoio ao planejamento;
:5
.-
D
- Reaproveitamento de esforços.
:I '"
D
.:::l
2
:J
25
:I
:I
Os benefícios técnicos da modelagem orientada a objetos incluem:
Reusabilidade: A orientação a objetos permite a reutilização de código produzido através
=t de mecanismos como herança, polimorfismo, encapsulamento, modularização e coesão (esses
termos serão cobertos adiante).
Extensibilidade e Manutenção: As partes do sistema (classes) possuem tanto dados como
:I
funcionalidades. Em um projeto bem desenhado, se for necessário acrescentar novos recursos
ao sistema, basta introduzir as modificações necessárias em partes bem específicas.
:s
I
, Aumento da Qualidade: Sistemas de qualidade são os que foram desenvolvidos no' prazo e
no-orçamento 'previstos e que atendem às ecessidades do'usuários~A melhoria da qualidade é
(/
:s
PõssívefjJê"la m_pãfticipação do usuário na elaboração do ístema.
Além dos benefícios técnicos é possível compreender que existem benefícios econômicos,
principalmente pelo fato de conseguirmos planejar melhor o desenvolvimento e reaproveitar
:I
esforços.
:3
:t
==
:I
INSTITUTO INFNET - 25
:!li
, I
J .-/i
UUL - ,.=5:
..."",""
-",
orientado a objetos. ~
\I----',----"=--~-----~-~=_~-___,<:...=.~~'---__'T---~--+_J
"'~ /
v 26 __
',.__/-" '- /
/'-"', "
" .•_ j
/ . .......
/' ~
\\
,
\ J'''''~'~
.~
i
f 'o.
<:.
.""
'\
v• \
\/
A Orientação a Objet~\;Jé baseada rlJo mundo ~~al
Esta nova tecnologia tem foco nos objetos que fazem parte de um sistema, ou seja, o
levantamento é feito pelo mundo real dentro de um determinado escopo.
Substantivos
Os substantivos da especificação darão origem aos objetos, o alvo da Orientação a Objetos.
INSTITUTO INFNET - 26
:=li UML-1550
::I
~
1.2 - Orientação a Objetos
I
• Analogia com o Mundo Real
• Classe
fi
• Objeto
• Propriedade
• Método
• Herança
• Polimorfismo
29
FJI
=
;11
;11
:li
INSTITUTO INFNET - 29
•,"
UML -15õo8
<i
'..
.
Cl
õiii
~
o
.« Analogia com o Mundo Real
~
(J
:::>
Cl
W
f
W
Z
• o entendimento de orientação a objetos é ..
•
•
lL
~
o:
o
fundamental para o desenvolvimento de
D..
Ul
o
Cl
software.
«
>
o:
w
·ffJ
• Para iniciar o estudo de 00 será usada uma
o:
o
,« analogia com o mundo real:
Ul
tn
g
W
o:
- Imagine que você recebeu como herança, um '.
15
Ul
o
grande terreno. c
Ul
o
•;;;
Cl
~
- Esse terreno é identificado por um número.
-
c:
•...
-'.
30
"
f
A orientação ao objeto visa representar o mundo real no computador. Essa representação é
dependente de conceitos que serão apresentados nessa seção. '.
Para facilitar o entendimento, vamos partir de uma situação que pode ocorrer com várias
pessoas:
"Imagine que você recebeu como herança, de um parente' distante, um grande terreno em
um condomínio fechado. Na frente do terreno passa uma rua e esse terreno é identificado por
um número. Existe alguma casa no terreno? Não, suponha que ele esteja vazio."
,i
·
•
i
i
·
I
•
INSTITUTO INFNET - 30
;11 UML-1550
:11 V
=-
~
-
.:;(
:.>
Analogia com o Mundo. Real
"'~"
:JI E
.ti.
Z
• Você contrata um arquiteto a fim de projetar
.I
~
uma casa.
=- ~
'"
;;:
;;(
>
• O arquiteto faz várias perguntas sobre a
'"
.ti.
:E::
~
,.'" • O arquiteto trabalha algum tempo no
c
i1
:E::
projeto da casa e entrega as plantas para que
s,.
,.c você possa construir.
:11 ;;:
5
31
:11I "Após se refazer da surpresa e depois de pensar bastante, você contrata um arquiteto a fim
de projetar uma bela casa, que ocupará o terreno que você ganhou."
"O arquiteto faz várias perguntas sobre como você deseja a casa, a sua forma, estilo e
:li funcionalidade.' ,
"O arquiteto trabalha algum tempo no projeto da casa. Findo esse tempo, ele entrega as
iI plantas da casa para que você possa construí-la. Existe alguma casa no terreno? Não, ele
continua vazio."
11
:11I
:li
11
li
11
11
INSTITUTO INFNET - 31
11
I
v
~
~
o
.«
'-"
Analogia com o Mundo Real
«
g
ow
I
w
• Você contrata uma construtora para erguer a
Z
u,
~
a:: casa.
oD..
UI
a
«
• A construtora leva algum tempo e termina o
>
a::
w
UI
w
serviço.
a::
O
.<{
UI
UI
• Existe alguma casa no terreno? Sim, a casa
8
iii
l;!;
ocupa espaço no terreno.
a
UI
O
UI
O
a
8
f-------------------------
32
1•
"Depois de consultar algumas empresas, você contrata uma construtora para erguer a sua
casa. A construtora leva algum tempo e termina o serviço. Existe alguma casa no terreno? Sim.
a casa ocupa espaço no terreno."
Essa estória é muito importante. Nela aparecem vários conceitos de orientação a objetos.
conforme veremos a seguir.
INSTITUTO INFNET• 32
:2
UML-1550
:2
oi
~
1:1
:i
O
c:e
o
Objeto e Memória
«
:.J
5
:3
;'"
z
• A memória é dividida em partes
~ '"
~
'"
o
o
«
• Existem partes da memória que estão
>
:I
'"'"'"'"'" ocupadas e outras livres.
o
= ao endereço.
=
33
:11I
:11
:11
:ti
=
INSTITUTO INFNET - 33
UNL - ,15:54
:1
<i.
<1
~
o Classe I
'-.:
~
o
::>
<1
w
tu • Conceito de Classe: I
z
LL
:i!:
IX:
- As plantas da casa representam a classe.
oC.
CIl
o
- É a definição da forma e funcionalidade.
<1
-.:
:>
Ir
w
- A partir da classe se constrói um objeto na memória.
ffl
IX:
o • Responsabilidade da Classe:
'õli
CIl
o
!::
- É o que a classe "sabe" e o que ela "faz".
w
IX:
Õ
CIl
- O que ela "sabe" são as suas propriedades ou
o
(J)
o
atributos.
<1
~ - O que a classe "faz" são os seus métodos ou funções.
'I
34
arquiteto, representam a idéia de classe. É a partir das plantas que se constrói a casa. É a partir
da classe que se constrói um objeto na memória.
A classe é o gabarito, a definição da forma e da funcionalidade. A forma é representada
pelas propriedades e a funcionalidade pelos métodos.
Quando uma classe é modelada, existe a preocupação de documentar as suas
responsabilidades: o que a classe "sabe" (propriedades ou atributos) e o que a classe "faz"
(métodos ou funções).
As casas criadas têm propriedades parecidas (quantidade de cômodos, andares) mas cada
uma tem características próprias, o endereço, por exemplo será diferente para cada uma. A
fachada de uma é azul e outra colocou pastilhas verdes. As características em comum são da
estrutura, fazendo a analogia com sistemas, a classe forma objetos com a mesma estrutura, mas
cada objeto terá valores próprias para suas características.
INSTITUTO INFNET - 34
:!
UML-1550
:I
oi
:I
!:>
::;
o
«o- Exemplo: Alu110 _
«
o
::l
:I o
.!.J
!.J
• Vamos imaginar que em um sistema exista a
~
~
classe Aluno.
:- x
o
~
on'"
• O que o Aluno sabe?
- Seu nome,
=-:11
«
>
x
.!!JJ
- Seu endereço,
'"
:l!ú
X
o
« - Seu número de matrícula etc.
'"'"o
; • O que o Aluno faz?
W
li:
Õ - Se matricula em um Curso,
'"o
~ '"oo - Tranca a matricula,
o
I - Tem Avaliações etc.
~
35
~ No exemplo, o objeto da classe aluno deverá ter informações como seu nome, endereço e
número de matrícula.
= Este mesmo objeto poderá se relacionar com curso (utilizando o método matricular em
curso), trancar a matrícula, fazer provas e receber avaliações.
=:11I
Essas definições das informações e ações são da classe e cada objeto terá valores próprios
para cada definição da classe.
--I) -.-.
:11
:11I
=:ti
:ri
:jI.
INSTITUTO INFNET - 35
:11
IJII_- .SJ:
I
'i
<i.
c
~
o
.« Objeto li
~
(J
::::>
a
LLl
lii
z
• Um objeto pode ser alocado na memória a
u.
~ partir da definição de uma classe.
IX
c, i
00
O
c
«
• Um objeto não interfere em outro, cada um
>
IX
LLl
'00
LLl
tem seu próprio espaço.
IX
O
.«
00
00
• Instância é sinônimo de objeto.
g
Õ
LLl
IX • Instanciar significa criar um objeto a partir
00
O
O
00 de uma classe. I
C
g
I
I 36
I
Uma casa criada a partir das plantas é um objeto, terá endereço, fachada e acabamentc I
próprios.
Quando um espaço na memória é alocado e o construtor de uma classe é usado, um objete
é criado. Se existirem dois ou mais objetos criados na memória, eles serão independentes. É
c
possível alterar as propriedades de um objeto sem interferir nas propriedades do outro.
É possível encontrar textos que utilizam o termo instância como sinônimo de objeto e o
verbo instanciar que significa criar um objeto a partir de uma classe.
INSTITUTO INFNET - 36
I
- - _ .. _--~----_ ..
::I UML-1550
1/
::I
<i
::I "
I
..J
o
-o: Representação Gráfica
o
~
o
:::>
:I a
""
~i- • Notação UML
'"
Z
"- Classe '\..
:!:
::I
';
'"
O
" ContaCorrente ...--- Nomeda Classe ~ con'tal: ccncacoc cence ....
'O" -enúmero "I...,,;n;eco
-titulaI:
">o::
~
-x c u Lar
í
<se Ide
+--AtribUtbs
-ee Lco +- Atributos
:2 -eenbe
-cs enhe
w
Ol -eeecec (l
w -seecec ()
o::
Q
+de.positeu: ()
-sccneut t ar se Idc n
...--- Serviços -sdepoe ãuac ()
+consul tarSaldo (l
+-- Serrviços
-o:
:r-
Ol
Ol
Q
....
~
OI:
a • Notação Alternativa:
'"
o
:I o'"
Q
a
....
:I
37
:J
:I Notação UML:
A figura da esquerda representa uma classe, enquanto a figura da direita mostra a
::a representação de um objeto. Note que o objeto traz o nome da classe ao qual ele pertence.
O nome do objeto, como visto no exemplo (contal : ContaCorrente), segue o padrão
NomedoObjeto:NomedaClasse, mas poderia aparecer sozinho NomedoObjeto ou apenas
::I :nomedaClasse - note os dois pontos antes do nome da classe.
:I
=
=:I
INSTITUTO INFNET • 37
::21
iJof_ :551
i
-
I
<i
Cl
!:i
o
.« Propriedades
~
o
::>
Cl
«>
a:
w
• É o que a classe "sabe".
·rn
w
a:
o
.«
• Exemplos:
rn
rn
o
!=
w
- O relógio digital tem as propriedades "hora" e :1
a:
Õ
"minuto".
rn
o
rn
o - Uma agenda tem a propriedade "lista de
Cl
...
o contatos"
38
,
,.
Siii
INSTITUTO INFNET - 38
= L1ML - 1550 i
:a
:= ~
-C
<::;> Métodos
Ê
::11 ii
i1 • o termo método representa as
...z
~
funcionalidades inerentes à classe.
:li ~
::
~
,
• E o que a classe "faz".
:<
>
:11
..
:li:
.u.
.u.
:li:
• Para alterar o mostrador do relógio digital
.. ~
não podemos simplesmente exibir um
=:a
~
:u:
~
!5
~
número qualquer.
• Existe um "método" para fazer isso.
25
::11
39
::I
=
=
=::I
:I
INSTITUTO INFNET - 39
~
UML-I550
<i.
a
~
O
.« Construtor e Destrutor
:io
=>
a
w
I
W
Z
• A função do método construtor é inicializar
u,
;;;
a:
O
um objeto na memória.
o
rn
O
a
- Através dele é possível que o objeto na
~
a:
w
.rn
memória tenha valores iniciais.
w
a:
O
.« - Esse método é usado, por exemplo, para
rn
tn
O
I
construir a tela da aplicação e abrir a conexão
iii
a:
E com o banco de dados.
rn
O
tn
O
a • O método destrutor permite "fechar" o ciclo
f=?
de vida do objeto, dando condições de
finalização ao programador.
42
INSTITUTO INFNET • 42
--
:a
UML-1550
:8
<i.
= ;:
--'
o
<o-
-c
Assinatura de Métodos
=-
OJ
5 /
.L.:!.
.u
Z
• E a chamada de um método. Identifica um
1
.;!;
método pelo nome, a quantidade e tipos dos
:3 ~
=
o
c
argumentos passados por parâmetros.
=-:11
c(
..
>
::
.LI
J..l
• Um método é reconhecido pelo seu nome e
%:
o
"">: seus parâmetros:
~
;:: alterarPagamento(codAssinante)
E
li!:
i3
alterarPagamento(codAssinante, novaDataPagamento)
=- ""
,o
."
::J
'"
O
~
43
:I
=:li Nas linguagens tradicionais, anteriores à orientação à objetos, não era possível nomear dois
ou mais métodos com o mesmo nome.
Com a orientação à objetos isto é possível pois a assinatura do método é utilizada pra a sua
identificação.
= A assinatura é composta pelo nome do método e pelos seus parâmetros, portanto podemos
ter dois métodos com o mesmo nome e a mesma quantidade de argumentos na mesma classe
desde que seus tipos sejam de tipos diferentes.
= /
:li I~:~ C
:J
:íI
:li
:11
:w
INSTITUTO INFNET • 43
;!I
J
Ut.l.L-~
'I
I
.;,
o
~
o
'<C
Sobrecarga de Métodos
~
o
=>
o
W
ti; • Métodos Sobrecarregados- são os métodos
I
Z
!L
i!:
a: homônimos dentro de uma mesma classe.
oa.
Ul
I
oo ~~----------
F1Dlcionario
<C Retangulo
>
a:
'W
Ul
W
u:
+desenhar(largura, altura)
-nome
-car:-go
I
o -dataAdroissao
'<c
Ul
Ul
o
to
W
a:
-dataDemissao
-salaria 'I
Õ Métodos na mesma classe com +demitir ()
+demitir (data)
Ul
o assinatura diferente- Sobrecarga +calcular5alario()
Ul
oo
o
I
I
44
1
Métodos Sobrecarregados (overload) - são os métodos homônimos dentro de uma mesma I
classe. A distinção é feita em função dos parâmetros que são passados para o método. Podemos
entender como sendo várias versões do mesmo método. Métodos na mesma classe com
assinaturas diferentes.
INSTITUTO INFNET • 44
---
::I
UML-1550
::!
<C
c
::! f
...J
o
>«
o
Herança
<C
u
:::>
~
c
w
f-
w
Z
• Relacionamento de generalização e
u,
~
o: especialização entre classes.
:I o11.
rtl
o
C
<C
• Permite ao programador criar uma nova
>
:I
o:
W
rtl
W
classe "estendendo" uma classe anterior.
o:
o
>«
UI • A herança define uma hierarquia onde o
::I
rtl
O
!:::
w
o: conceito mais genérico fica sobre o conceito
Õ
rtl
O mais específico.
:I rtl
O
C
O
f
:I
45
:I
:I
A herança constitui o mecanismo pelo qual se pode compartilhar automaticamente métodos
e dados entre classes diferentes, que tenham um relacionamento de generalização e
especialização.
:3
A herança permite ao programador criar uma nova classe "estendendo" uma classe anterior
e implementando as propriedades e métodos específicas.
:!
Em um banco, por exemplo, podemos ter Conta Especial como uma especialização de
Conta-Corrente. A Conta Especial tem o atributo "limite" que estende o conceito de uma conta
:! comum.
Um outro exemplo é o Vendedor que estende o conceito de Funcionário. Sabemos que todo
Vendedor é um Funcionário, mas nem todo Funcionário é Vendedor.
:f
A herança define uma hierarquia onde o conceito mais genérico fica sobre o conceito mais
:r
específico e o item mais específica "aproveita" as definições do item mais genérico.
-----
5"
:J
='
INSTITUTO INFNET - 45
!2
UML-I55Q
~
~
o
'<l;
o
Exemplo de Herança
<l;
(J
::l Atributosc
C
w
- cor
Iü
z
u,
~
a:
o
o.
[ Mobília
I
I "peso
- pernas
" localização
CIl
o
c
;;
a:
[ Mesa] [ Cadeira]
w
CIl
w.
a: Atributos: Atributos:
o
.<l; - dimensão do tampo " tipo do assento
CIl
CIl
o
t:
w
a:
Exemplo de Objeto Mesa Cadeira
Õ Instância das classes com Marrom Preta
CIl
o cada atributo inicíalizado 17kg 5kg
CIl
o correspondendo ao seu 4 4
c
o estado Sala Copa
I
1 x 1,5 m Ondulado
46
Note no exemplo que as definições de mobília foram feitas uma única vez e "aproveitadas" I:
nas subclasses.
A leitura deste desenho é feita desta forma: a mesa é uma mobília. I:
Todos os atributos e métodos definidos para a superclasse mobília poderão ser utilizados
pelas subclasses. Então a mesa terá 5 atributos, como no exemplo: a mesa tem cor marrom,
peso=17kg, pemas=4, localizada na sala e a dimensão do tampo de I x 1,5m.
z:
INSTITUTO INFNET - 46
:3
UML-1550
:I
..:::l
~ -'
o Exemplo de Herança.
""«o
o
::l
:li ::l
1.l
'""Z
~
:I '"o
:.
,''o"
FwuJionario
-matricula
'"
« -nome
:J ..
:>
'"cu -cargo Vendedor
~
-dataAdmissao
~I---------i-comissao
E
O
-dataDemissao
""rr -salario -totalVendas
:J O
li
:l!: +demitir ()
.,O
ã -t-dem t í.r (data)
í
.,
:I O
.o
O
+calcularSalario()
....
:i
47
:I
A figura mostra uma herança em um sistema de folha de pagamento. Funcionários comuns
:3
tem determinados dados como matrícula, nome, salário base, etc. Possui também métodos para
demissão e cálculo do salário.
::I
Para acrescentar outro tipo de funcionário à empresa basta criar uma subclasse, ou seja fazer
uma classe que herde as características da classe Funcionário e adicione as suas próprias. No caso,
a classe Vendedor foi incluída no diagrama herdando as características de Funcionário e
::J
acrescentando suas próprias: comissão de venda e total de vendas realizadas no mês.
:I
:I
::I
:!
~
::i
~
~
-
~
INSTITUTO INFNET - 47
J
oi
o
~
o
'<l
Encapsulamento
~
o
::l
o
W • A Classe é um "pacote", contendo dados (propriedades) e
li:;
Z
u, operações (métodos);
~
a:
oa. • O objeto é referenciado como um módulo único.
'"oo
~
a:
w
ffia:
o
'<l
'"'"o
15a:
õ
o'"
'"oo
~
48
INSTITUTO INFNET - 48
:11
UML -1550
~
:%
=- 5o
00:
c
«
;::
•
Ocultamento
É a proteção dos dados internos da classe;
:I :E
J:,;!
'z"
u,
• Os dados só podem ser acessados sob determinadas condições.
~
• É implementado através da "Visibilidade" mais restrita.
~ ~ • Um sistema não deve depender da implementação interna e
5
.::l
«
>
sim da interface com o mundo exterior.
:::
::I cu
..."":::
o
• A interface de uma classe é a forma pela qual ela será acionada
e se relacionará com as outras partes do sistema.
""'" Cliente
:2 '"
E
:L
'"
:E
."
o
:2 '"
oc
c
::J
49
:I.
:I A idéia por trás do Ocultamento é a que a utilização de um sistema não deve depender da
sua implementação interna e sim de sua interface com o mundo exterior. Uma classe vai
funcionar como uma caixa preta, somente conheceremos os métodos, mas seus atributos são
:I mantidos sem contato de métodos de outras classes.
A interface de uma classe é a forma pela qual ela será acionada e se relacionará com as
::I outras partes do sistema.
Imagine que um telefone é composto por diversos circuitos, molas e mecanismos internos.
:J A sua interface é composta pelas teclas numéricas e pelo fone. É através das teclas que
podemos acionar os mecanismos internos do telefone.
:J Um bom modelo deve ter uma boa interface, pois essa é a parte do sistema que deve se
manter mais estável.
Pense bastante antes de criar a interface de uma classe.
:J
:J
::I
:73
='
-
::~
INSTITUTO INFNET • 49
~
!::i
o
'et
!;f
Polimorfismo
o
::>
Cl
w
li; • Vários comportamentos que uma mesma
~
~
o:
operação pode assumir.
o
e,
lJl
o
Cl • Polimorfismo (muitas formas) é a
~
o:
w
lJl
w
capacidade de um programa orientado a
o:
o
'et
lJl
objetos distinguir, dentre métodos
lJl
o
liio: homônimos, qual deverá ser executado.
Õ
lJl
o
lJl
o
Cl
~
50
INSTITUTO INFNET - 50
::iI UML-1550
=
::li
oi
o
I
..J
o Polimorfismo
o«
o
-c
o
:>
:JI o
lU
I
ur
Z
• Métodos Sobrescritos- são métodos
"
~
o:: homônimos em uma relação de herança.
~ O
a,
:D
O
O
Funcionario
-c
> -matricula
~ '"
...'"
:D
Il:
-nome
-cargo,
Vendedor
O
-c -dataAdroissao
f - - - - - - - - J -comi8sao
'" -dataDemissao
:li '"
O
....
a -salaria
-totalVendas
+calcularSalario()
'"
õ +dernitir ()
'"
o +dernitir (data)
::11I '"
o
!:J
,O
+calcularSalario()
e
:JI
:li Métodos Sobrescritos (override) - são métodos homônimos em uma relação de herança. A
super-classe tem um método que é herdado pela sub-classe. Na sub-classe existe um método
homônimo com a mesma chamada do outro. Não podemos modificar a assinatura do método,
:JI tendo que manter a quantidade e os tipos dos parâmetros como também o tipo de retomo do
método. Métodos com a mesma assinatura em uma herança - Sobrescrita
:li
:3
:iI
:iI
=
~
::íI
::íI
= INSTITUTO INFNET - 51
:I
UML-1550
:I
~
:s
< o-
Modularidade
Ê
:- :5
.c
:üi
z
....
• E"' a separação dos serviços em um conjunto
~
de módulos que guardam independência de
:I r..
:I:
c
.::::l
compilação e execução.
<
:I .
>
>:
.c'
.w
• A modularidade leva a uma separação entre
:I:
:I
:I É a separação dos serviços em um conjunto de módulos que guardam independência de
compilação e execução.
A modularidade leva também a uma separação entre a interface do sistema e o código que
:I vai executar os serviços.
O benefício de modularizar corretamente um sistema é obtido pela otimização do processo
:I de manutenção de código.
Propriedade de um sistema que foi decomposto em um conjunto de partes coesas e
:I fracamente acopladas.
Um módulo coeso executa uma única tarefa bem definida. Um módulo fracamente
:I
acoplado garante a independência do módulo.
:I
:
:
:I
:
INSTITUTO INFNET - 53
:I
UML-'i,õQ:
<i
o
':J
o
--o:
o
Persistência
-o:
o
~
o
w
tu
z
• É o tempo total que um objeto permanece
LL
~
a:
oa,
na memória (auxiliar ou principal).
Ul
o
o
-c
• Os objetos de negócio devem ser
>
a:
.W
Ul
w
persistentes.
a:
Ul
o
liig; para tomar os objetos persistentes.
o
Ul
o
Ul
o
• Existem frameworks específicos para o
o
o
I
tratamento de persistência.
54
INSTITUTO INFNET • 54
•
UML-1550
li
<
o
....
..J
o Abstração
""oo
<C
:. :::>
w
o
w
....
Z
u,
• Abstrair significa separar de uma entidade
~
complexa, apenas os elementos relevantes
:- a:
oa,
'"oo • O objetivo é diminuir a complexidade,
«
>
a:
~. w focando um problema por vez.
'"
w
a:
o
""o'" • Classe Abstrata:
~ '"
....
ii1
a: - E uma classe que define o comportamento e
Õ
:I '"
o
o
o - Não é instanciada diretamente.
....
~
55
:
~
Abstração
É o princípio de ignorar os aspectos de um assunto não relevante para o propósito em
questão, tornando possível uma concentração maior nos assuntos principais [Cood, 1991].
~ Consiste na seleção que o analista faz de alguns aspectos, ignorando outros, com o objetivo
de diminuir a complexidade.
~
I
Classe Abstrata
~
\
A classe abstrata serve apenas para definir a estrutura e comportamentos que serão
I
utilizados pelas subclasses em um relacionamento de herança (veremos mais na frente).
~
~
,
"
~
~.
- ~r
; INSTITUTO INFNET - 55
-
~
UML-1550
~
<.
~
:::l
f
-'
o
<:
Conclusão da DA 1
o
<O:
~
ãz.;;;
:=J
'"
Z
.L
~
s""
'"o
::I '"gc
::J
157
::i
=:I Os conceitos que Coad, Yourdon, Pressman, Rumbaugh, Booch e tantos outros abordaram,
discutiram e definiram em suas publicações foram que:
A orientação a objetos é uma tecnologia para a produção de modelos que especifiquem o
::i domínio do problema de um sistema.
Quando construídos corretamente, sistemas orientados a objetos são flexíveis a mudanças,
::I possuem estruturas bem conhecidas e provêm a oportunidade de criar e implementar
componentes totalmente reutilizáveis.
:I Modelos orientado a objetos são implementados convenientemente utilizando uma
linguagem de programação orientada a objetos. A engenharia de software orientada a objetos é
:I muito mais que utilizar mecanismos de sua linguagem de programação, é saber utilizar da
melhor forma possível todas as técnicas da modelagem orientada a objetos.
A orientação a objetos não é só teoria, mas uma tecnologia de eficiência e qualidade
:I comprovadas usada em inúmeros projetos e para construção de diferentes tipo de sistemas.
:3.
~
~
INSTITUTO INFNET - 57
21