• Nenhum resultado encontrado

Publicações do PESC TABA-OBJ: Um Ambiente de Desenvolvimento de Software com Orientação a Objetos

N/A
N/A
Protected

Academic year: 2021

Share "Publicações do PESC TABA-OBJ: Um Ambiente de Desenvolvimento de Software com Orientação a Objetos"

Copied!
159
0
0

Texto

(1)

RR COM

OBIRNTAC#O A URJETQS

Adriana

Lima

de Queir6s Mwttoso

TESE SUBMETIDA AO CORPO DOCENTE DA CQORDENACBO DOS PBOGRAMAS DE PdS-GBADUACAO

EM

ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I O DE JANEIRO COMO PARTE DOS REQUISITOS NECESSAHIOÇ PARA A OHIENTACAO DO GRAU DE MESTRE EM CIBNCIAS EM ENCENHABIA

DE

SISTEMAS E COMPUTACAO.

Aprovada por: J na Regina C. da Rocha, D.

Sc.

.( P r e s i d e n t e ) Profa. Çon'ia S. S e t t e , D. 1n.q. h - - - Souza,

PhD.

(2)

MATTOSO, ADBIANA L I M A DE QUEIB6S

TABA-QBJ:

U m Ambiente de Desenvolvimento d e

Saf

twaro com O r i e n t a c 3 o a Objetos [Rio d e J a n e i r o 1 1 9 9 0

X I , 1 4 8 a. 29,7cm ( COPPE/UFRJ,

M. Sc.

, Engenharia d e S i s t e m a s e Comnutac%o, 1990)

Tese

-

U n i v e r s i d a d e F e d e r a l do

Rio d e

J a n e i r o , COPPE 1. Ambientes de Desenvolvimento de S o f t w a r e

(3)
(4)

Ao L u i z C a r l o s p e l a s u a d e d i c a d o s a p o i o c o n s t a n t e s . A L u c i a p e l o seu c a r i n h o .

A o s meus p a i s pela motivac3o e a p o i o .

A rninha i r m â Marta p e l a s u a a j u d a sempre que n e c e s s k i a . A minha i r m â L e c Z l i a p e l o seu a p o i o .

A P r o f e s s o r a Ana Regina C a v a L c a n t i da Rocha ela o p o r t u n i d a d e d e s t a tema de tese e p a l a d e d i c a c 2 0 e o r i e n t a c 3 o d e s t e t r a b a l h o .

Aos p r o f e s s o r e s S o n i a Schechtman S e t t e e J a n o M u r e i r a d e S f x z a p o r darem a honra da p a r t i c i p a r e m da minha banca de

t e s e .

Ao Guilherme H o r t a Travasses pelo a p o i o sempre que n e c e s s á r i o .

Ao coleqa G e r a l d o Xexso n o r m e a j u d a r a a v a l i a r o m6todo. A c o l e ~ a Maria C r i s t i n a P a s s o s .

Aos p r o f e s s o r e s e f u n c i o n a r i o s d a COPPE/Çistemas. B CAPEG p e l o a p o i o f i n a n c e i r o .

(5)

Resumo da Tese a p r e s e n t a d a à COPPE/UFRJ como

arte

dos r e a u i s i t o s n e c e s s á r i o s s a r a o b t e n c a u do wrau d e Mestre e m L i 5 n c i a s (

M.

§c. )

.

TABA-OBJ: IJm Ambiente d e Desenvolvimento d e So£tware com O r i e n t a c 3 0 a Q b J e t o s

A d r i a n a Lima da Q u e i r i s M a t t o ~ o

O r i e n t a d o r : Ana Regina C a v a l c a n t i da Rocha,

I?.

Se. Programa: E n g e n h a r i a d e S i ç t e m a ç e Comsutac3o

E s t e t r a b a l h o a n r e s e n t a o TABA-OBJ, um a m b i e n t e da d e s e n v o l v i m e n t o d e s o £ t w a r e com o r i e n t a c h o a o b j e t o s , n a r a a E s t a d o TABA. Este a m b i e n t e visa a p o i a r o p r o c e s s o de d e s e n v a l v i m s n t o d e sof tware baseado no paradi,qma d e obAatos, o f e r e c e n d o u m rngtodo, um modelo d e c i c l n d e v i d a e i n s t r u m e n t o s a u e a u x i l i a m d u r a n t e as etapas do d e s e n v o l - vimento. F i n a l m e n t e 6 a p r e s e n t a d o o E d i t o r d e Diagrama d e C l a s s e s , uma f e r r a m e n t a . q r á f i c a d e m a i o & f a s e d e A n 6 l i s e do rn6todo ~ r o p o s t o no

TABA-OBJ.

(6)

A b s t r a c t of T h e s i s m e s e n t e d t o

CÕPPE/UFKJ

as p a r t i a 1 f u l f i l l m e n t of t h e r e q u i r e m e n t s f o r t h e d e q r e e o£ M a s t e r of S c i e n c e (

M.

Sc. 1 .

TABA-QBJ:

An Q b j e c t - O r i e n t e d S o f t w a r e Devdonment Environment d d r i a n a Lima d e Q u e i r e s Mattuso

Thesic; G u ~ e r v i s s r : Ana Regina C a v a l c a n t i da Rocha,

D.

Sc. Dspartrnent: C o m ~ u t e r S ~ s t e m ~ Enclineerincy

This

work p r e s e n t s TABA-QBJ, a n O b j s c t - O r i e n t e d Sof t- ware Devslopment Environment, f o r t h e TABA Work Ç t a t i o n . T h i ç environrnent supnorts t h e develooment R r o c e s s b a s s d nn t h e ubject p a r a d i ~ m , providin.q a method, a l i f e - c y c l e m o d d and i n s t r u r n e n t s t h a t a i d s t h e d e v s l o a m e n t s h a s e s . F i n a l l y , t h e L f a s s Diagram E d i t o r i s n r e s e n t e d , a s u p n o r t i n . q . q r a p h i c t o 0 1 f o r t h e a n a l y s i s ahase o f t h e TABA-UBJ methad.

(7)

HHHHHHHHHHHH

HHHHH

HHHHHHHHHHHH

WHHHH "CSYC"

n

cD. w if O

a

O iJl ri- Iii

a

UJ

O

i+ m 3 d m Y 9

Y

I-I O d I-"

m

3 ri- m

*

13 rr O Y

HHHH 'ri-

.

P

(8)

b.3 M X 6 m Y P- EJ m 3 d- o U! Y (D m I-' P- N Pi IL O U! 3 a, Y m r=- C m I-' t-L

7

O 6 O 10 d- Pi P.

r

r- o I-'- m C-' a O rt O

a

o P. m U1 O t-h

2-

Pi Y m n O 3 O N P* Li,

%

Pi €2 w 0 Pi O r?' LI- m Ir o Ln 'd Y O a O 10 d- Pi

a

m

2

3 01 d- o fL O

tl?

a

8 111 ni 3 4 O I-' C r- H H H W r P O

n

r- n I-' O P &i C P-

a

Pi 0. O ;b 3

z

m 3 d- m c3

*

td

*

I O td

+

m Ca H H H

?"

E"L O =r O

a

[D r O

rn

a

(D

n

r- O C-' O

a

m G r- p. m

a

Pi Y a, 3 Y r- (D 3 rf a, 0 w O H H H F' 03

F

iB m P C o I-' d r-

Q

5

o H

rn

Y m 3 ai P d- 01 I-' m a H H H H H H W W iri iP

Y

O

O IL d- n: 0 t-' d- O r- d d lu i2 10 0 iD 3 a,

a

YO mt d (D r- J

a

P, C ni !L Y [D 10 rn 02 n (D m 10 Y rt 02

2'

$

0

m

C-' 10

.

IB ' r* ' C ' lu 10

.

..

m (Ti W G.9 4 r-'.

t

tc L+ o

a

[o m O li-a ri-

;

Y ai fi O 3 O Y r. (D 3 d- a, Ç) PK O Pi O

rr

ct- ID d- o !J' a c0

(9)

. . .

111

.

5 . 1 . 1 DefiniçAo do Sistema 8 1 111

.

5 . 1 . 1 . 1 R o t e i r o s ~ r o ~ o ç t o s na l i t e r a t u r a

. . .

H 1 I11

.

5 . 1 . 1 . 2 R o t e i r o s para a Fase d e D e f i n i ç b o do

Ambiente

TABA-OBJ

. . .

89 111

.

5 . 1 . 2 E s n e c i f i c a c 3 o de H e a u i s i t o s de S o f t w a r a

. . .

92 I11

.

5 . 1 .

S

.

I R o t e i r o s ~ r o ~ s s t o s na l i t e r a t u r a

. . .

9 2 I11

.

5 . 1 . 2

.

2 R o t e i r o oara a E s ~ e c i f i c a c h o d e

He-

a u i s i t o s d e S o f t w a r e d o Ambiente TABA-OBJ

. . . .

96 111

.

5.1. 3 E s p s c i f i c a c B o d e P r o j e t o

. . .

98

I V

. I. O ~ r o t c i t i - o o do E d i t o r d e Dlaclrarna d a C l a s s e s

( E D C )

. . .

1 Q S

. . .

I V

.

1.1 D e f i n i c â o do Sistema 1 0 3

I V

.

1

.

2 ESpecificaç3.o de R e u u i s i t o s

. . .

1 0 6

S V

.

1

.

3 E s ~ e c i £ i c a ç C . o de P r o j e t o

. . .

1 1 9 I Y . 2 P r o u o s t a s d e ferramentas para o TABA-OBJ

. . .

140

(10)

f

flDf

CE

DE

FIGURAR

U m a

r e ~ r e s e n t a c 8 o

~ r ã f i c z w

do

sI:~.ieto

ianela.

. . . .

6

Classe

J a r r e l a

. . .

7

...

Envio

de

mensanetis e n t r e

o h i e t ù s . 8

. . . .

H i e r a r a u i a d e Generali~acBo/Es3~!e1:iali~zc;Wc~.

10

. . .

Heratic

: ;k H r i i l t i r ~ ~ l a

10

. . .

J a n e l a s S o b r e r ~ ù s t w s .

l i

Lista

de Janelas

. . .

i 1 r)

. . .

D i a m a m a de

Booch

t9

. . .

Carmda de Assunto

35

. . .

Camada de üb3eto 3 6

. . .

Carnadâ de E s t r u t u r a .

38

. . .

Cor1exrZ;es

d e

Irist&r~cs;ias.

3 9

Camada

da

A t r i b u t o s

. . .

4 0

. . .

Camada de S e r v i c o s

42

. . .

8

modelo

d e

Ã~rusamenLos

5 8

(11)

ÍNDZCE

DE

TABELAS

1. Quadro Cornwarativo d e Lincfuaclens d e Pro.qra-

(12)

C A P I T U L O I

-

I N T R O D U G Ã O

E s t e c a p i t u l o d e s c r e v e o s f a t c r s s que mntivaram o d e s e n v o l v i m e n t o d e s t a t e s e ( s e ç % o

I

1 , d e f i n e s e u s o b j e t i v o ç ( s e ç % o I . 2) e a p r e s e n t a s u a or.qanizaç3.0 ( sec2io

Durant.e o s a n o s 8 0 , o paradi'qma d e o b S e t o s ocupou posiciio d e d e s t a u u e e m d i v e r s a s á r e a s d e p e s a u i s a d a i n f o r m á t i c a . Tendo s u a origem n a s 1in.quagens d e i7ro.qramaçiio como SIMULA e S m a l l t a l k C I I , a o r i e n t a c 3 . o a o b j e t o s provocou i n t e r e s s e em p e s a u i s a d o r e s d e á r e a s como Banco d e Dados, I n t e r f a c e com o U s u á r i o , I n t e l i g ê n c i a A r t i f i c i a l e E n g e n h a r i a de S o f t w a r e . Segundo MONTE C2

I ,

a p o ~ u l a r i c a ç 8 o do termo o r i e n t a c 3 0 a o b j e t o s se deve a o s u c e s s o d e a l g u n s s i s t e m a s uue humanizaram o uso e a programac3o de comrtutadores. E s s e s s i s t e m a s , crue f o r a m a u t o d e f i n i d o s como " o r i e n t a d o s a o b j e t o s "

,

s % o b a s e a d o s e m n o ç 8 e s , c o n s i d e r a d a s i n t u i t i v a s a o ser humano, t a i s como o b j e t o s , c l a s s e s , e s t a d o , a s 3 0 e r e a c a o .

A p a r t i r do S m a l l t a l k , uue f o i a p r i m e i r a l i n q u a g e m de programaç30 a t r a b a l h a r com e s s a s n o c 6 e s , sur.qiram i n ú m e r a s 1in.qua.qens e e x t e n s õ e s d e 1ingua.qens d e wro.qramac30 t r a d i - c i o n a i s Rara s u p o r t a r o s e l e m e n t o s da o r i e n t a c 3 . 0 a o b j e t o s .

Com a d i f u s a o d a programac%o o r i e n t a d a a o b j e t o s , s e n t i u - s e a n e c e s s i d a d e de s e u t i l i z a r a f i l o s o f i a d a o r i e n t a ç â o a o b j e t o s e m t o d o o p r o c e s s o d e d e s e n v o l v i m e n t o , d e s d e a e s ~ e c i f i c a ç - 3 0 a t é a imwlementaç3.o e n%o somente na

fase d e imrtlementac-30. 0 s métodos d e d e s e n v o l v i m e n t o d e s o f t w a r e t r a d i c i o n a i s , e n t r e t a n t o , organizam o p r o j e t o e m t o r n o d e s u a s f u n c 8 e s ou em t o r n o de s e u s d a d o s , d i f e r e n t e m e n t e d a arogramac-30 o r i e n t a d a a o b j e t o s o n d s os

(13)

dados e t o d a s as operações que manipulam e s s e s d a d o s , e s t % o agrupados

e m

uma 6 n i c a e s t r u t u r a que s â o o s o b j e t o s .

Caso desde o i n í c i o do desenvolvimento se u t i l i z a s s e a o r i e n t a ç 8 0 a o b j e t o s , o desenvolvimento d e s o f t w a r e s e r i a mais f á c i l , p o i s se t r a b a l h a r i a sempre com o mesmo elemento d e a b s t r a ç d o , o s obdetos. Apesar de e x i s t i r e m d i v e r s a s p r o p o s t a s p a r a desenvolvimento d e s o f t w a r e com o r f e n t a ç i i o a o b 3 e t o s C3 1 ,

C4

1, C5

1,

C6

3

e C7 1, não

hd

a i n d a um método sedimentado que cubra t o d o o p r o c e s s o d e desenvolvimento.

Houve, e n t a o , uma grande motivaçlio d e se e s t u d a r o paradigrna da o r i e n t a ç s o a o b j e t o s e

sua

a p l i c a ç 3 o na Engenharia d e Software. Todavia, como n%o encontrou-se nenhum e s t u d o propondo

um

ambiente d e desenvolvimento de s o f t w a r e , com um método, um modelo d e c i c l o de v i d a e i n s - trumentos e f e r r a m e n t a s que dessem s u p o r t e a o desenvol- vimento d e s o f tware com o r i e n t a ç â o a o b j e t o s , s e n t i u - s e mstivac$Xo p a r a r e a l i z a r e s t u d o s d e maneira

a

propor

um

ambiente da desenvolvimento d e s o f t w a r e o r i e n t a d o a o b jekos.

Por o u t r o l a d o , e s t á e m andamento na

COPPE/UFRJ o

P r o j e t o

TABA

C83, que

v i s a

a

c o n s t r u ç 3 0 d e uma e s t a ç ã o

d e

t r a b a l h o , c o n f i g u r á v e l p a r a desenvolvimento de s o f t w a r e que s u p o r t a desde a criaç%o d e ambientes de desenvolvimento de s o f t w a r e que consideram a s c a r a c t e r í s t i c a s dos

sistemas

a serem d e s e n v o l v i d o s até a p r ó p r i a execuçâo d e s t e s s i s t e m a s .

Deste modo, s e n t i u - s e a motivaçQo d e propor um ambiente d e desenvolvimenta d e s o f t w a r e o r i e n t a d o

a

o b j e t o s q u e possa f a z e r p a r t e da Estaç%o

TABA,

o ambiente

TABA-OBJ.

I.

2

-

Objetivos

da tese

O o b j e t i v o p r i n c i p a l d e s t a

tese

é a d e f i n i ç g o d e um ambiente d e desenvolvimenta de s o f t w a r e o r i e n t a d o a o b 3 a t o s p a r a

a

e s t a ç a o

TABA.

o ambiente

TABA-OBJ.

(14)

Para a t i n g i r e s s e o b j e t i v o , f o i f e i t a i n i c i a l m e n t e , uma r e v i s â o b i b l i o g r á f i c a , d e f i n i n d o o s c o n c e i t o s b á s i c o s da o r i e n t a ç & o a o b S e t o s , descrevendo algumas l i n g u a g e n s d e programaçtío o r i e n t a d a s

a

o b j e t o s e a p r e s e n t a n d o o s métodos de desenvolvimento d e s o f t w a r e com o r i e n t a ç a o a o b 3 e t o s e x i s t e n t e s na

L i

t e r a t u r a . P o s t e r i o r m e n t e , f o i p r o p o s t o

um

método d e desenvol- vimento d e s o f t w a r e , c o b r i n d o t o d o o p r o c e s s o de desenvol- vimento.

A

e l a b o r ç h o d e s t e método f o i f e i t a

e m

três

e t a p a s .

1

n i c i a l m e n t e , f o i p r o p o s t o um método

C9

I

que t e v e como o b S e t i v o

ser

mais a b r a n g e n t e , a o c o n t r á r i a dos m6todos e n c o n t r a d o s na l i t e r a t u r a que cobriam somente a f a s e d e p r o j e t o ou d e a n á l i s e .

Após

t e r - s e u t i l i z a d o

o

método

e m

d o i s p r o S e t o s , a p r o p o s t a f o i a v a l i a d a

e

s o f r e u algumas modificaç4es.

A

p a r t i r d e s t a e x p e r i ê n c i a , o método f o i r e f e i t o

e

a p r e s e n t a d o e m

CIO].

P a r a a e l a b o r a ç % o f i n a l do m6tod0, f o i f e i t o um e s t u d o c r í t i c o dos modelos d e c i c l o d e v i d a e r o t e i r o s d e documentaç%o pesquisados. Finalmente, f o i implementada uma d a s f e r r a m e n t a s p r o p o s t a s p a r a o

TABA-OBJ,

u t i l i z a n d o - s e o ambiente d e programaç&o Actor

C 1

1

1.

I.

3

-

Qrganiaaçlío

da

tese

Esta

t e s e e s t á o r g a n i z a d a em c i n c o capitu1"as. O c a p í t u l o

I

contém a introduç2io e a p r e s e n t a

o s

f a t o r e s

que

motivaram

s u a

e l a b o r a & í o , d e f i n e

a s

o b j e t i v o s d a t e s e e s u a organizaçgo.

O

c a p i t u l o

I1

faz

uma

r e v i s a 0 b i b l i o g r á f i c a d a o r i e n t a ç ã o a o b j e t o s , d e f i n i n d o s e u s c o n c e i t o s b á s i c o s , apresen%andõ l i n g u a g e n s d e programaç&o e m6todoa p a r a o desenvolvimento de s o f t w a r e com o r i e n t a ç h o a obSetos.

O c a p í t u l o

I11

t r a t a d e ambientes d e desenvolvimento de s o f t w a r a o r i e n t a d o a o b j e t o s . J u s t i f i c a - s e a d e f i n i c h o do ambiente

TABA-OBJ

e a p r e s e n t a - s e a d e f i n i c a o d e termos

(15)

de ambientes d e desenvolvimento d e s o f t w a r e u t i l i z a d a n e s t a t e s e . Ainda

neste

capítulo,

sâo

feitos

estudos s o b r e modelos d e c i c l o de v i d a e ro-beiros d e documentaçbo. Finalmente é a p r e s e n t a d o o mGtodo p r o p o s t o , as c r í t i c a s f e i t a s a p a r t i r de

s u a

u t i l i z a ç % o e a nova v e r s a o do mhtodo.

No c a p í t u l o

I V

a p r e s e n t a - s e a e s p e c i £ i e a ç & o e p r o j e t o da f e r r a m e n t a , bem como

uma

d e s c x i ç % o de s u a implementaçâo.

No c a p í t u l o V s&o e x p o s t a s as c o n c l u s ã e s da tese e o c a p í t u l o

V I

contém

as

r e f e r 8 n c i . a ~ b i b l i o g r á f i c a s .

(16)

E s t e c a p í t u l o a a r e s e n t a uma v i s 2 0 g e r a l d a f i l o s o f i a e d o s c o n c e i t o s bAsicos d a orientaç3.0 a o b j e t o s e d e s c r e v e m6todos de d e s e n v o l v i m e n t o de s o f t w a r e e l i n g u a g e n s d e srogramaç3.o a u e usam o paradi.qma de o b j e t o s .

Na s e ç h 11.1 s e r 3 0 a p r e s e n t a d o s o s c o n c e i t o s b & s i c o s e c a r a c t e r i s t i c a s da o r i e n t a c 3 . o a o b j e t o s , na s e d o 11. 2 r e r h o m o s t r a d a s al.qumas 1in.qua.qenç d e pro.qramac20 com a r i e n t a c h o a o b j e t o s . F i n a l m e n t e , a s e c 2 0 1 1 . 5 a p r e s e n t a r á a l g u n s m6todos d e d e s e n v o l v i m e n t o de s o f t w a r e o r i e n t a d o a o b j e t o s .

A £ i l o s o £ i a d a o r i e n t a d o a o b j e t o s se b a s e i a na noc%o i n t u i t i v a s u e a5 p e s s o a s tt3ri-1 d e

obdeto.

i. e.

.

uue

s

rnuncia

B povoado p o r

o b i e t o s

uue interanen~ ent,re

si.

A

i d g i a , p o r t a n t o , é p e n s a r e m d e s e n v o l v i m e n t o d e s o f t w a r e compasto Dor

o b j e t o s

e

n&o

~tl)r d c f d ~ s . P P - o c e d f a e n t c t s e ccrniirole C C ~ T ~ e l e m e n t o s i s o l a d a m e n t e .

Nos m6todos d e d n r e n v o l v i m e n t o da sctftware t r a d i c i o n a i s

h2

uma d i s t S n c i a muito g r a n d e e n t r a o p r ~ b l e m a no mundo r e a l E] 4~1a a b s t r a ç 8 o no p r o d u t o f i n a l ( " . q a p s e m â n t i c o " ) . A i d é i a d a o r i e n t a c 8 0 a o b 3 e t o s é d e se t r a b a l h a r com noçcies i n t u i t i v a s ( o b j e t o s e a c b e s i d u r a n t e t o d o o c i c l o de d e s e n v o l v i m e n t o , a t r a s a n d o - s e a o m5ximo a i n t r o d u ç 5 0 de c o n c e i t o s d e p r o c e s s a m e n t o d e d a d o s , diminuindo p o r t a n t o e s s a d i s t â n c i a . O paradiqma de o r i e n t a ç ã o a ~ b j e t o s t e v e origem n a s l i n g u a g e n s d e p r o g r a m a ~ & o como SIMULA ( 1 9 0 7 )

,

LISP a Ç m a l l t a l k ( 19681 . Porem, S m a l l t a l k £ o i a p r i m e i r a linguagem

sue t r a n s f o r m o u s paradi.qma de o b j e t u s num modelo c o n c r e t a .

AaOs

i n h m e r a s ~ e s a u i s a s no l a b o r a t h r i o

PAHC

d a Xerox, prosse.quindo o ~ r o j e t o d e Alan Kay, GOLDBERG C1 1 consecruiu,

(17)

com a c o n s t r u ç & o do S m a l l t a l k , d e f i n i r c l a r a m e n t e o s c o n c e i t o s b á s i c o s

da

o r i e n t a ç â o a obJetos. AprssenBarernos, a s e g u i r , a s d e f i n i ç B e s d e s s e s c o n c e i t o s . J a n e l a t i

I

I

-

I

I

AbxeJanela

t

I

I

-

I

I C r i a J a n e l a l

I

v

I

I 1

I

.

I

1

IMoveJanela

I

I

I

F i g u r a

1

-

Uma

r e p r e s e n t a ç â o g r á f i c a do ob3eto J a n e l a E n t i d a d e que c o n s i s t e d e dados e t o d a s a s o p e r a ç h s que podem manipular e s s e s dados. O único a c e s s o a o s dados d e s s e o b j e t o é a t r a v é s d e s u a s operaçoes. Cada o b j e t o

reside

na sua p r á p r i a máquina a b s t r a t a e o b j e t o s se comunicam e n t r e s i a t r a v é s de mensagens

C121.

Por exemplo,

num

s i s t e m a c u j a i n t e r f a c e s e j a baseada em j a n e l a s e c a r d á p i o s , um o b j e t o t í p i c o s e r i a o o b j e t o

Janela.

Este

obdeto a g r u p a r i a t o d a s a s c a r a c t e r í s t i c a s comuns As j a n e l a s do s i s t e m a e também s u a s o p e r a ç b e s , que poderiam

ser:

AbreJanela, C r i a J a n e l a , F e c h a J a n e l a , MoveJanela ( F i g u r a

i).

Deste modo, t o d a s a s informaçoes p e r t i n e n t e s

a um

o b j e t o

(

seus

a t r i b u t o s e o p e r a ç b s ) e s t a r i a m c o n c e n t r a d a s

(18)

Cf

asse

Conjunto d e o b j e t o s com c a r a c t e r l s t i c a s semelhantes e que respondem às mensagens da mesma maneira.

Um

o b j e t o

d

d i t o ser uma i n s l â n c i a d e c l a s s e . No c a ç o do exemplo a n t e r i o r , poderíamos p e n s a r que o s i s t e m a p o d e r i a implementar v á r i a s S a n e l a s , t o d a s possuindo um c o n j u n t o d e c a r a c t e r í s t i c a s e operaqbes

e m

comum ( F i g u r a

2).

Poderíamos p e n s a r e m r e u n i r t o d a s e s s a s c a r a c t e r í s t i c a s em comum

e m

uma Única c l a s s e

Janela.

w

que

t o d a s

a s

i a n e l a s

pertenceriam. C l a s s e J a n e l a

I

J a n e l a 1

-

I

IconS. de I I J a n e l a 2

I

o p e r a c õ e s

I

I

le a t r i b u t o s

l

I

-

I

JanelaY

I

I

JanelaX I

I

F i g u r a

2

-

C l a s s e J a n e l a

Mensagem

S a l i c i t a ç i í o d e um o b j e t o p a r a que o u t r o ob3eto e f e t u e uma d e s u a s operaç6es.

O

o b j e t o r e c e p t o r pode e n v i a r uma mensagem d e v o l t a com o v a l o r deseJado e também pode e n v i a r mensagens p a r a o u t r o s o b j e t o s e assim por d i a n t e L131.

Qualquer objeto do

sistema

que q u i s e s s e c r i a r

uma

j a n e l a , por exemplo, e n v i a r i a uma mensagem de C r i a J a n e l a p a r a o o b j e t o J a n e l a . E s t e o b j e t o v e r i f i c a r i a se e l e s a b e t r a t a r essa mensagem.i.e., se e l e p o s s u i a o p e r a ç h s o l i c i t a d a e , c a s o p o s i t i v o , e l e e f e t u a r i a e s t a operaçao. A operaçgo d e C r i a J a n e l a , p o d e r i a n e c e s s i t a r d e uma

funç8o

do t i p o DesenhaCardápio, provocando o e n v i o d e uma o u t r a

(19)

mensagem a o o b j e t o Cardápio e a s s i m por d i a n t e , como na F i g u r a 3. J a n e l a

-

-

Cardápio

1

I

CP ia- ,-I

I

Desenha-

pL--?

I

I

I

>

[Cria

I

I

>.IDesenhaI I

I

I

Janela

I C a r d B ~ i o

I

.

I

I

I

I

I

i

I

- -

I

1

I

I

-

I

F i g u r a 3

-

Envio d e mensagens e n t r e o b j e t o s

Encapsulamento de Dados

T6cnica d e esconder a e s t r u t u r a

de

um o b j e t o

a t r a s

d e um c o n j u n t o de tsperaçoes s o b r e e l e , sendo a c e s s í v e l somente a t r a v é s d e s t a s operaçbes.

Seguindo o exemplo a n t e r i o r , a Gnica maneira d e se comunicar com

o

obdeto J a n e l a 6 enviando-lhe uma mensagem. Caso se q u e i r a c r i a r uma j a n e l a , n%o se

t e m

a c e s s o a o código i n t e r n o da ogeraç%o

CriaJanela, isto

é , só se comunica com um o b j e t a a t r a v e s d e s u a i n t e r f a c e , sendo s u a p a r t e i n t e r n a i n a c e s s í v e l .

Abstraçk

de Dados

U t i l i z a ç B o dos dados

s e m

se

preocupar com

a

s u a e s t r u t u r a ç S o i n t e r n a .

12 o nome dado As operaçbes de um o b j e t o . Ao e n v i a r

uma

mensagem p a r a um o b j e t o , o o u t r o

objeto

( e m i s s o r d a mensagem), e s t á s o l i c i t a n d o que o o b j e t o r e c e p t o r

execute

o r e s p e c t i v o método. Outros o b j e t o s

nClo

t ê m a c e s s o a o código i n t e r n o

dos

mittodos de um o b j e t o . Diversos o b j e t o s podem t e r métodos d i f e r e n t e s , porém com o mesmo nome.

(20)

Usando O exemplo a n t e r i o r , C r i a J a n e l a e

Desenhacardápio

seriam

métodos de J a n e l a

e

Cardápio respectivamente.

Criaçtio d e s u b c l a s s e s , a p a r t i r d e uma c l a s s e

m a i s

g e n g r i c a ( s u p e r c l a s s e )

,

herdando t o d a s a s c a r a c t e r í s t i c a s

d e s s a c l a s s e .

No c a s o d o exemplo a n t e r i o r , poderíamos pensar que a c l a s s e J a n e l a é uma e s g e c i a l i z a ç % a d e uma c l a s s e mais g e n b r i c a , como

a

c l a s s e Retângulo, que c r i a , desenha e move r e t â n g u l o s na t e l a . Como

a s

j a n e l a s e m g e r a l s â o r e t a n g u l o s e a s s u a s operações b á s i c a s silo as mesmas, poderíamos c r i a r a c l a s s e J a n e l a a p a r t i r da c l a s s e Retângulo.

Com

o

mecanismo d e h e r a n ç a , a o se

c r i a r

uma c l a s s e a p a r t i r d e o u t r a c l a s s e , a nova c l a s s e ( s u b c l a s s e da classe o r i g i n a l ) h e r d a t o d a s a s s u a s c a r a c t e r í s t i c a s . I s t o s i g n i f i c a que ao s e d e f i n i r uma s u b c l a s s e , esta automaticamente ganha ( herda) t o d o s o s a t r i b u t o s e operações da(

s)

c l a s s e (

s)

mâe(

s)

( s u p e r c l a s s e s )

.

Neste

c a s o , J a n e l a é s u b c l a s s e d e Retângula.

Do

mesmo modo HeLângulo é s u p e r c l a s s e d e J a n e l a .

Esse mecanismo d e herança é conhecido como

generalizaç%io/ee;pecializa~8o.

I s t o é, a p a r t i r de uma

classe

mais g e n é r i c a ( g e n e r a l i z a ç â o ) como a c l a s s e Retângulo, que p o s s u i c a r a c t e r í s t i c a s e o p e r a ç 6 e s comuns a o desenho e movimentaçao de r e t s n g u l o s na t e l a , pode-se c r i a r a s u b c l a s s e J a n e l a . E s t a s u b c l a s s e ,

a l B m

d e h e r d a r

as

c a r a c t e r í s t i c a s g e n é r i c a s de Retângulo p o d e r i a

ter

o u t r a s c a r a c t e r í s t i c a s mais e s p e c i f i c a s { e s p e c i a l i z a ç S o )

ds

j a n e l a s ( F i g u r a

4).

(21)

s u p e r c l a s s e : c l a s s e : Retângulo

i

1 I J a n e l a I I

I

s u b c l a s s e : JanelaDeTexto JanelaDeGr&fico F i g u r a 4

-

H i e r a r q u i a d e

g e n e r a l i z a ~ % o / e s g e c i a l i z a ç t i o

Herança

Mtiltipla

C r i a ç h d e uma s u b c l a s s e , a p a r t i r de mais d e uma classe d i f e r e n t e herdando a s c a r a c t e r í s t i c a s d e t o d a s elas.

Quando uma c l a s s e

t e m

mais d e uma s u p e r c l a s s e ,

6

d i t o haver herança m ú l t i p l a . Seguindo o mesmo exemplo, p o d e r i a s e c r i a r

uma

classe

JanelaBeTexto que p o d e r i a

ser

s u b c l a s s e d e J a n e l a

e,

a o mesmo tempo, por manipular c a d e i a s d e t e x t o , também

ser

s u b c l a s s e da classe CadeiaDeTexto ( F i g u r a

5).

J a n e l a CadeiaDeTexto

I

I I 1 8

1

JanelaDeTexto F i g u r a

5

-

Herança M ú l t i p l a

Acoplamento

Dinâmico

Acoplamento dinâmico s i g n i f i c a que o acoplamento d e uma mensagem com s e u método c o r r e s p o n d e n t e

B

f e i t o

e m

tempo d e execuçtio. Com i s s o , uma mesma mensagem pode

ser

t r a t a d a d i f e r e n t e m e n t e d e acordo

com

o o b j e t o que f o r r e c e b ê - l a , Um ob,jeto pode e n v i a r mensagens p a r a o b j e t o s a

serem

c r i a d o s posteriormente, Por exemplo, no c a s o d e gerenciamento d e j a n e l a s s o b r e p o s t a s ( F i g u r a 6 ) .

(22)

F i g u r a 6

-

J a n e l a s S o b r e p o s t a s

Em

sistemas cu3a i n t e r f a c e é baseada

e m

j a n e l a s , o u s u á r i o poda a b r i r d i v e r s a s i a n e l a s a o mesmo tempo e move-

l a s

na t e l a , i n c l u s i v e sobrepondo-as. Nesses s i s t e m a s é n e c e s s á r i o que h a j a um mecanismo p a r a g e r e n c i a r e s s a s j a n e l a s .

U m a maneira

4

de se e n c a d e a r a s j a n e l a s que forem sendo a b e r t a s na t e l a , e m uma l i s t a encabeçada p e l a j a n e l a da f r e n t e . Frequentemente, porém, a s j a n e l a s a b e r t a s possuem informaçbes d i s t i n t a s , ou s e j a , cada j a n e l a pode ser d e uma c l a s s e d i f e r e n t e : contendo apenas t e x t o , contendo o b j e t o s g r & f i c o s , e t c .

A s

Janelas

abertas

v&o

sendo

o r g a n i z a d a s

e m

uma

l i s t a .

como na f i g u r a 7. J a n e l aDaFrente i I J a n e l a 1 J a n e l a 2 J a n e l a 3 J a n e l a 4

-

7 I , i

-

I I r $ ! I r 3 1

I

rl.1 1 I l l l 1 1 1 1 1 1 I I 1 1 1 1 i 1 l l l I I I I I 1 1 1 1 1 1

I

I

I-'

1

-

-

I-'

I

-

IA

t

I 7

I& F i g u r a 7

-

Lista

d e J a n e l a s

Caso

a

j a n e l a da f r e n t e seja f e c h a d a , a s demais s e r â o r e d e s c o b e r t a s e p r e c i s a r % o

ser

redesenhadas. Como

a s

(23)

S a n e l a s s a o d e t i p o s d i f e r e n t e s , cada uma tem um modo d e se r e d e s e n h a r ( t e x t o . g r á f i c o , etc.1.

Em

uma linguagem . t r a d i c i o n a l , em que o s t i p o s d e t o d a s as v a r i A v e i s sso

d e f i n i d o s em tempo d e compilaç%o, t e r i a m o s que d e f i n i r uma v a r i á v e l p a r a cada t i p o d e j a n e l a ( JanelaDeTexto

,

JanelaDeGráfico, e t c . ) .

Na

o r i e n t a g g o a o b j e t o s nao há o c o n c e i t o d e t i p o s , i. e.

,

uma mesma variavel, pode c o n t e r um i n t e i r o . uma c a d e i a de t e x t o ( s t r i n g ) , uma J a n e l a , etc. ., d u r a n t e a e x e c u ç b de um programa. Deste modo, u t i l i z a n d o - se uma LPOO, pode-se t e r a

m e s m a

v a r i á v e l apontando p a r a t o d o s o s t i p o s d e j a n e l a .

A

s e g u i r , apresentaremos d o i s a l g o r i t m o s p a r a r e s o l v e r esse problema. O p r i m e i r o , no c a s o d e s e u s a r uma linguagem

1

t r a d i c i o n a l e o segundo usando-se 'uma LPOO. No p r i m e i r o c a s o , uma d a s maneiras mais o t i m i z a d a s s e i a um Único procedimento p a r a r e d e s e n h a r J a n e l a que, d e acordo com o s e u t i p o , e x e c u t a r i a o t r e c h o correspondente.

Redesenha:

Case

J a n e l a , tipo

faz

t e x t o :

---

g r á f i c o s :

---

d e f a u l t :

---

Fim-case

No segundo c a s o , p o d e r i a - s e u t i l i z a r uma ú n i c a v a r i á v e l

e

em

tempo de execuç%o a mesma mensagem d e Redesenhar,

i r i a

p a r a o o b j e t o que a ' v a r i á v e l e s t i v e s s e

(24)

J:

=

J a n e l a D a P r e n t e i

enauants

J 4 2 n u l o

faz

Hedesenha ( J) i

J :

=

P r o x ( J) i

f

im-enauanto

3

G ~ m o n8.o h á c o n c e i t o de t i a o s , uma bica v a r i á v e l t o

p o n t e i r o

J)

pode a p o n t a r D a r a ti1305 d i £ e r e n t e s como

J a n e l a D e T e x t o , J a n e l a D e G r 5 f i c 0 , etc.

i)

No c a s o d e l i n g u a g e n s t r a d i c i o n a i s , t o d o s o s g r o c e d i m e n t o s d e t o d a s as j a n e l a s ( c o n t i d o s no

''case" f i c a m na memúria. Nas L P Q O s , o método

( p r o c e d i m e n t o ) do o b j e t o r e q u i s i t a d o será c a r r e g a d o .

ii)

Caso se d e s e j e c r i a r u m novo tipo d e - j a n e l a , usando

C

a s 1in.quagens t r a d i c i o n a i s , d e v e - s e c r i a r m a i s uma opcbo d e n t r o do " c a s e " , para t r a t a r e s t e novo t i a o d e S a n e l a , além d e t e r a u e s e d e f i n i r m a i s um t i p o d e v a r i & v e l para a nova j a n e l a e c o m p i l a r t u d o d e novo.

J&

e m uma

LPOO.

cria-se uma nova classe d e j a n e l a , com seu método e s p e c í f i c o D a r a r e d e s e n h a r , sem a l t e r a r

nenhuma

o u t r a

arte

e

t.udo c ~ n t ~ i n u n

a

f u n c i o n a r , n o i s a m e s m a v a r i g v e l ~ o d e r á a ~ o n t a r R a r a

a nova j a n e l a e a mesma mensagem ser5 e n v i a d a para e s t a j a n e l a também, aue e x e c u t a r á o s e u método c o r r e s p o n d e n t e .

(25)

Permite que a e s t r u t u r a i n t e r n a ( e s t r u t u r a d e dados, a l g o r i t m o s ,

etc.

d e um ob.jeto s e d a i n a c e s s í v e l ( o c u l t a d a )

s 6 sendo a l c a n ç a d a a t r a v é s d e s u a s operações,

11.2.

Prógramaçêlo

Orientada

a Ob3stos

6

Em

1982,

RENTSCW

C151

fez

uma p r e v i s h o d e que a. Programac$ío O r i e n t a d a a Objetos (POO) s e r i a

nos

anos

80

o

que a programaçho e s t r u t u r a d a f o i nos anos 70. Realmente, d e l á p a r a cá, d e acordo com

STEPIK &

BOBROW

C161, o número de p e s q u i s a s e l i n g u a g e n s que s u r g i r a m i n t r o d u z i n d o e s s a s c o n c e i t o s f o i muito g r a n d e , comprovando o s u c e s s o d e s s a t é c n i c a .

Ainda h o j e , há uma grande polêmica s o b r e q u a i s o s c o n c e i t o s fundamentais p a r a o e s t i l o d e POO. Uma linguagem que s u p o r t a o r i e n t a ç % o a o b j e t o s , d e acordo com PASCOE

C17

3 .

tem

que

t e r

q u a t r o elementos: o c u l t a ç à o d e informaçtio, a b s t r a ç 8 o d e dados, acoplamento dinâmico e herança.

J B

HALBERT

&

O'BRIEN

C18

3 ,

a c r e d i t a m que e s s e n c i a i s s3.o o s c o n c e i t o s d e herança e t i p o s h i e r á r q u i c o s . Apesar d a s d i v e r g h c i a s , observambs que

a

linguagem

SMALLTALK

é c o n s i d e r a d a uma d a s mais i m p o r t a n t e s e que melhor t e m a t e n d i d o a e s s a e s t i l o de p r ~ g r a m a ç t t o

C19

3.

Porém, independentemente d o s c o n c e i t o s

a

serem

s e g u i d o s , o o b j e t i v o maior é ' o b t e r as v a n t a g e n s da Programaçao O r i e n t a d a a Objetos

t a i s

como:

-

manutenibilidade

->

uma

vez

que

h&

um

baixo a c o ~ l a m e n t o e n t r e o s o b 3 e t o s .

a s

a l t e r a ç õ e s s % o £ e i t a s e m um único l u g a r . Deste modo, f i c a mais

fgcil

a manutenç%o d e um s i s t e m a ;

(26)

-

reusabilidade

- 5 com ú e n c a ~ e u l a m ~ n t o , dados

e

t o d a s

a s

o p e r a ç b e s a s s o c i a d a s a e s t e s dados,

ficam

e m um Único ob3eto. Sendo a s s i m , é mais f á c i l se

r e a p r o v e i k a r s o f t w a r e , p o i s no c a s o de se c r i a r um s i s t e m a baseado em j a n e l a s , conforme o s exemplos a n t e r i o r e s , pode-se r e u s a r

a

classe j a n e l a .

Nesta

c l a s s e 36

e s t a r h

t o d a s

as

operaçoes b á s i c a s p a r a

se

manipular uma j a n e l a i

-

axtensibilidade

-

devido

Bs

caracteristicas

citadas

nos d o i s i t e n s a n t e r i o r e s , f a c i l m e n t e pode-se e s t e n d e r o s i s t e m a , c r i a n d o novas

classes

sem

que se t e n h a que

alterar

a s

o u t r a s p a r t e s do

sistema que

e s t â o funcionando.

Atualmente e x i s t e m inUmerãs l i n g u a g e n s e ambientes d e programaç%o que suportam, ou kentarn s u p o r t a r , o s c o n c e i t o s d a o r i e n t a ç h o

a

o b j e t o s . Algumas d e s s a s l i n g u a g e n s e ambientes

s%o:

S m a l l t a l k , A c t o r , E i f f e l , Objective-C,

++,

ADA,

F l a v o r s , Loaps, Obdect-Pascal, Neon, Modula-2, Mesa, Cedar, TRELLIS/OWL, ABCL, e t c .

A

s e g u i r , descrevemos brevemente algumas d e s s a s l i n g u a g e n s e ambientes de programaçho, dando uma P n f a s e maior ao ambiente d e programaç&o S m a l l t a l k , por

ser

o p i o n e i r o , e a o ambiente Actor, onde s e r á implementado o ambiente

TABA-OBJ.

11.2.1

-

Algumas

Linguagens Orientadas

a

Objetos

ADA

E

uma d a s l i n g u a g e n s mais poli3micas da o r i e n t a & o a o b j e t o s , d e acordo com

TOUATI

C201.

F o i

baseada n e l a

que

(27)

uma d a s p r o p o s t a s p a r a mdtodos d e desenvolvimento d e s o f t w a r e o r i e n t a d o a o b j e t o s

mais

c i t a d o s ,

a

p r o p o s t a d e BOOCH C3

I ,

f o i f e i t a .

P a r a TAKAHASHI

C14

1, "Ada t e m duas c o n s t r u ç b e s

package e t a s k ,

que

garantem

ó encapsulawento da

dados

e que poderiam r e p r e s e n t a r c l a s s e s . Todavia, o mecanismo d e

packages

embora

p e r m i t a

w

irnplementa&o d e

um

t i p o a b s t r a t o

d e d a d o s , n%o c a r a c t e r i z a um t i p o por s i , enquanto o i d e a l s e r i a que houvesse uma i d e n t i f i c a ç 3 0 p l e n a e n t r e o c o n c e i t o s i n t á t i c o de

mdduh

e

o c o n c e i t o

ssmbnixLccs

d e

classe,

Par

o u t r o l a d o , o mecanismo d e

t a s k

reune

d i v e r s a s p r o p r i e d a d e s i d e a i s d e obdetos:

t a s k s

podam

ser c r i a d a s

dinamicamente, p a s s a d a s como p a r â m e t r o s ,

e

f a z e r p a r t e de e s t r u t u r a s mais complexas envolvendo m a t r i z e s ( " a r r a u s " )

e

p o n t e i r o s ( " p o i n t e r s "

.

H á

r e s t r i ç b e s s e r i a s : nâo s e pode f a z e r a t r i b u i ç t i o d e

tasks,

nem

L e s t e s

essenciais

a

o b j e k o s

t a i s como comparaç$o, e n t r e v a r i á v e i s do t i p o

task,

I$Wo

hB

s u p o r t e a herança em Ada. Finalmente, nho há acoplamento dinâmico "

.

Desenvolvido por COX, C21 I , C221,

C231,

E241 e

C25

1 , Objective-C é

um

precompilador d e C que provê f a c i l i d a d e s da o r i e n t a ç t i o a o b j e t o s . Possui acoplamento dinâmico e h e r a n ç a , sendo p o s s í v e l implementar herança m ú l t i p l a e " g a r b a g e c o l l e c t i o n " .

Em

Objective-C a s mensagens s % o e s c r i t a s d e n t r o d e um programa comum em

C , ,

que e n v o l v i d a s por c o l c h e t e s .

J u n t o com O b j e ~ t i v e - C . vem uma b i b l i o t e c a d e c l a s s e s r e u s á v e i s

,

a " Sof tware-ICs" ( C i r c u i t o s I n t e g r a d o s d e

S o f t w a r e ) , que p e r m i t e a aproveitamento d e grande p a r t e do código dos programas a serem gerados. P a r a COX C241,

assim

como o s chiPs d e s i l i c a n e

ajudam o s e n g e n h e i r o s

de

harwar'e

a r e u s a r o t r a b a l h o d o s p r o j e t i s t a s d e c h i p s ,

a

programaç2io

o r i e n t a d a

a

o b 3 e t o s deve a j u d a r o s programadores

a

r e u s a r o código já e x i s t e n t e .

(28)

Desenvolvida nos L a b o r a t ó r i o s B e l l s (

AT&T)

por STROUSTRUF

C26

I

e C27 1, c o n s i s t e d e um p r e p r o c e s s a d o r da linguagem C que p e r m i t e a c r i a ç a o d e c l a s s e s a t r a v h s d e

um

t i p o novo

class

C28

3.

A t r a v é s do t i p o

class,

sgo

d e f i n i d a s

suas

operações.

f

p e r m i t i d o f a z e r sobreposiç2io d e o p e r a d o r e s ,

I.

e. , r e d e f i n i r

um

operador e x i s t e n t e d e n t r o d e uma c l a s s e que f u n c i o n e d e maneira d i f e r e n t e ( e x . na c l a s s e

matriz,

d e f i n i r um operador

"+"

que f a ç a soma d e m a t r i z e s ) .

O compilador d e C++ f o i .desenvolvido por d i v e r s o s f a b r i c a n t e s . A v e r s h o 2 . 0 da

AT&Y

s u p o r t a herança mtiltpla e acoplamento dinâmico, porém todo o gerenciamento d e memória e " g a r b a g e c o l l e c t i o n " tem que

ser

f e i t o p e l o programador C29 1. Outro f a b r i c a n t e ( Zortech Inc. ) o f e r e c e além do compilador

C++,

uma

b i b l i o t e c a d e c l a s s e s que efetuam d i v e r s a s t a r e £ a s ( e d i ç l o de t e x t o s , gerenciamento d e j a n e l a s ,

busca

b i n á r i a , e t c . ) .

A linguagem E i f f e l f a z p a r t e d e um ambiente desenvolvido por

MEYER

C301, C31

I ,

C321

e C331 no I n t e r a c t i v e Sof tware E n g i n e e r i n g , que p o s s u i tamb6m um metodo p a r a p r o j e t o , uma b i b l i o t e c a

e

um c o n j u n t o d e f e r r a m e n t a s . A b i b l i o t e c a

Eiffel

p o s s u i um c o n j u n t o d e

classes

que implementam

as

e s t r u t u r a s d e dados mais i m p o r t a n t e s com s u a s r e s p e c t i v a s o p e r a ç & e s , p e r m i t i n d o r e u s a b i l i d a d e e e x t e n s i b i l i d a d e .

E i f f e l p o s s u i herança m ú l t i p l a

e

generalizaçClo. 1'5 uma linguagem t i p a d a

e m

que t o d a a checagem de tipos pode ser f e i t a e s t a t i c a m e n t e . Dentre

a s

f e r r a m e n t a s do ambiente E i f f e l , há

um

g e r e n c i a d o r de memória a u t o m á t i c o , depurador s i m b ó l i c o , " t r a c i n g " de axecuç%o,

etc.

(29)

Trellis

O Ambiente d e Programaçâo T r e l l i s 134

1,

f o i d e s e n v o l v i d o p e l a D i g i t a l Equipment Corporation. T r e l l i s s u p o r t a a programaçClo e m T r e l l i s / O w l ,

urna

l i s u a s m Baseada e m o b j e t o s , que p e r m i t e herança m ú l t i p l a e v e r i f i c a ç S o de t i p o s e m tempo de compilaçSo ( acoplamento e s t á t i c o ) .

O

ambienta é composto d e uma s é r i e de f e r r a m e n t a s i n t e g r a d a s que permitem e d i t a r , c o n s u l t a r , f a z e r compilaç6es i n c r e m e n t a i s e d e p u r a r código. A s f e r r a m e n t a s possuem uma i n t e r £ a c e c o n s i s t e n t e e compartilham uma base d e dados comum a o ambiente.

A

base d e dados do T r e l l i s armaeena

informac8as

sobre

o e s t a d o de comgilaç%o d o s programas, t a i s como c ó d i g o s f o n t e

e

ob,jeto, r e f e r ê n c i a s c r u z a d a s , e t c .

O

compilador i n c r e m e n t a l a t u a l i z a a base d e dados

e

com i s s o ,

Trellis

pode o f e r e c e r f e r r a m e n t a s que armazenam e informam t o d o s o s e r r o s e i n c o n s i s t ê n c i a s dos programas. Porém,

a t é

o mómento nâo

h&

a i n d a uma b i b l i o t e c a d e c l a s s e s p r o n t a p a r a s e r r e u t i l i z a d a .

11.2.2

-

A

linguagem

SMALLTALK-80

t l

I

e,

C19

I

A programaç80

e m

SMALLTALK-80

c o n s i s t e

e m

se

i d e n t i f i c a r ú b J e t o s , c l a s s i f i c á - 1 0 s de acordo com semelhanças

e

d i f e r e n ç a s

e

p r o j e t a r a linguagem d e i n t e r â ç b e n t r e

o s

o b j e t o s . A s e g u i r abordamos ragidamente a l g u n s d e s e u s c o n c e i t o s básicos.

Os

p r i n c i p a i s elementos da linguagem &o: o b j e t o , c l a s s e , i n s t a n c i a , mensagem e metodo. Seus c o n c e i t o s s & o o s mesmos d a s d e f i n i ç 8 e s da s e ç ã o

11.1.1.

Uh

objeto

4 d i t o

ser

uma

instancia

de

uma

classe e

um

m6todù

d e s c r e v e

como

ú

objeto

deva

responder

&

men3agem.

U m a c l a s s e é composta de: nome, s u p e r c l a s s e , nomes d e v a r i a v e i s d e i n s t â n c i a e m&todo.

(30)

O

SMALLTALK-80

irnplementa o c o n c e i t o d e h e r a n ç a , i s t o é, pode-se c r i a r uma s u b c l a s s e a p a r t i r d e uma c l a s s e , herdando a s informações c o n t i d a s na c l a s s e , podendo-se i n c l u i r novos métodos ou m o d i f i c a r métodos 3á e x i s t e n t e s .

Ao r e c e b e r uma mensagem, o ob3eto v e r i f i c a se p o s s u i o método ( a funçBo) s o l i c i t a d o p e l a mensagem ( d e a c o r d o com s e u padrBo) e , c a s o p o s i t i v o , executa-a.

11.

2 . 2 . 1

-

O

Ambiente SMALLTALK-80

O s i s t e m a

SMALLTALK-80

c o n s i s t e de uma linguagem d e Programaç80 O r i e n t a d a a O b j e t o s e d e um c o n j u n t o d e f e r r a m e n t a s i n t e g r a d a s p a r a i n t e r a g f r com o s componentes da linguagem

L35

3

e

C361.

Todas

as

informações do

sistema

s % o r e p r e s e n t a d a s por o b j e t o s .

A

i n t e r f a c e d e s s e

sistema

é b a s t a n t e amigável

e

t o d a baseada e m j a n e l a s e c a r d á p i o s , t e n d o o "mouse" g r a n d e u t i l i z a ç & o .

Ferramentas

O Sistema SMALLTALK-80 p o s s u i um c o n j u n t o de f e r r a m e n t a s que f a c i l i t a m

a

t a r e f a d e programaçtio. Algumas d e l a s stio:

P e r m i t e que se g e r e n c i e v á r i a s t a r e f a s d e p r o g r a m a ç h (em v á r i o s g r o 3 e t o s ) a o mesmo tempo, manipulando um

Projeto

d e cada vez. Ao se mudar de um

Pro3eto

para

o u t r a . as

informações aparecem como tinham s i d o d e i x a d a s na ú l t i m a vez e m que esse p r o j e t o f o i acessado.

Qualquer c l a s s e c r i a d a num

P r ó h t o

é

imediatamente

d i s p o n i v e l p a r a 'codos o s p r o j e t o s

do

sistema. Dentro d e um

ProJeto

pode-se

abrir

i a n e l a s ccm

Areas

de

Trabalho,

m r a

a u x i l i a r na manipulaçlo dos dados, a v a l i a ~ a o d e e x p r e s s õ e s , e t c . A

Area

de

Trabalho

prúv&

v h r i a s rn8scaras para

(31)

f a c i l i t a r a d e c l a r a ç % o d a s e x p r e s s õ e s c r i a d a s p e l o u s u á r i o , além d e máscaras p a r a v a r i á v e i s g l o b a i s .

.

Browser

Ferramenta poderosa que p e r m i t e t e r informaçbes s o b r e a i n t e r f a c e d e um o b j e t o . D á a c e s s o a t o d a s

as

d e s c r i ç õ e s d e c l a s s e s d i s p o n í v e i s no

sistema,

i n c l u i n d o c o m e n t á r i o s s o b r e c l a s s e s a métodos, além d e exemplos d e como u s a r v k i a s c l a s s e s .

B d i v i d i d o

e m

c a t e g o r i a s que organizam

a s

c l a s s e s d e n t r o do s i s t e m a e n a s que organizam mensagens d e cada c l a s s e . Com o

B m w s e r

pode-se

o b t e r informasõea corrio:

-

comentário s o b r e o papel d e cada c l a s s e .

-

deçcriç2io da p a r t e da h i e r a r q u i a d e c l a s s e s do s i s t e m a e m que a c l a s s e

se

e n c o n t r a *

-

d e s c r i ç g o d a s v a r i á v e i s d a classei

-

d e s c r i ç % o d a s mensagens

e

métodos da c l a s s e ( i n c l u i n d o comentários) i

-

c l a s s i f i c a ç â o d a c l a s s e , e m relaçiio a o u t r a s c l a s s e s r

-

c l a s s i £ i c a ç % o d a s mensagens d a

classel

-

a c e s s o a t o d o s o s metodos que enviaram uma mensagem;

-

a c e s s o a t o d a s

as

mensagens.enviadas por um método. A l é m d i s s o , o

B r o w s s r

tambem f o r n e c e uma mhscara

para

a u x i l i a r a d e f i n i ç g o d e novas c l a s s e s

e

mensagens.

Existem v á r i o s

B r o w s e r s

d e c l a s s e s de acorda com

o

subconjunto de c l a s s e s a c e s s í v e i s . O comando

Spawn

~ e r m i t k

que se c r i e um

B r o w s e r

em

que

somente

a s

inforrnacões da s u b p a r t e do s i s t e m a s e l e c i o n a d a é a c e s s a d a ( e x . Browser de C a t e g o r i a s d e Classes. do S i s t e m a . Browser d e C l a s s e s ,

(32)

B r o w s e r d e C a t e g o r i a s d e Mensagens, Browser d e Mensagens, Browser d e H i e r a r q u i a d e Classes).

.

E d i t o r

de

Iformas/Bits

Provê s u p o r t e p a r a c r i a ç s o d e imagens g r á f i c a s t a n t o por desenho

a

m8o l i v r e , com u s o do " mouse" (

Editor

de

Borrnas)

.

como

através

de

rn9todos

em

que

o b j e t o s

gr89icús

recebem mensagens p a r a c o n s t r u i r uma imagem. Imagens s i m p l e s podem

ser

r e p r e s e n t a d a s como i n s t â n c i a s d e Forma, que

tem

a l t u r a

e

l a r g u r a e um b i t map i n d i c a n d o as regit5es p r e t a s e b r a n c a s (

Editor da b i t s )

,

Imagens complexas podem ser r e p r e s e n t a d a s d e d o i s modos: p o r uma forma muito g r a n d e ou p o r uma e s t r u t u r a que i n c l u a v á r i a s f o r m a s e r e g r a s p a r a combinar e r e p e t i - l a s d e modo

a

p r o d u z i r

a

imagem d e s e j a d a .

O e d i t o r d e

B i t s

e n f o c a a c r i a ç % a / a l t e r a ç % o d e f o r m a s a t r a v & s d e se e s p e c i f i c a r cada p o n t o ( b i t ) como b r a n c o ou p r e t o .

.

Depurador

Pode a p r e s e n t a r algumas ou t o d a s

as

s e q u ê n c i a s d a s mensagens e n v i a d a s a n t e s da i n t e r r u p ç 8 0 , conforme o s e l e c i o n a d o . P e r m i t e s e l e c i o n a r c a d a uma p a r a v e r o método e em que ponto do método o c o r r e u a i n t e r r u p ç l l o . Pode-se e s c o l h e r q u a l q u e r mensagem na p i l h a e c o n t i n u a r a execuç20 a p a r t i r d e s s e ponto ou p u l a r algumas mensagens, c h e c a r

a

v a l o r

das

v a r i á v e i s p a r a t e n t a r d e t e c t a r o e r r o .

Pode-se

também a l t e r a r

o

v a l o r d a s v a r i á v e i s

e

p r o s s e g u i r

e

a i n d a e d i t a r e r e c o m p i l a r um método d e n t r o do

Depurador.

.

Inspetor

P e r m i t e o b t e r - s e i n f o r m a ç b e s s o b r e o e s t a d o i n t e r n o d e um o b j e t o . Em uma j a n e l a mostra a l i s t a d a s v a r i á v e i s d a i n s t â n c i a a ser " i n s p e c i o n a d a " e n a o u t r a e x i b e o v a l o r d a v a r i d v e l s e l e c i o n a d a . O u t r a u t i l i d a d e d e s s a f e r r a m e n t a 6 a d e testar o e n v i o da uma mensagem p a r a o o b j e t o

(33)

i n s p e c i o n a d o ou p a r a t e s t a r a mensagem que a v a l i a expressões.

A l e m

d e s s a s f e r r a m e n t a s , o Ambiente SMALLTALK-80 provê f a c i l i d a d e s como um e d i t o r d e t e x t o poderoso e com i n t e r f a c e amigável, comandos de

ComntBrios

( d e s c r e v e o

o b j e t i v o da c l a s s e ou do m6todo) e

Exvlicações

i

descriçWo

sumária do papel de q u a l q u e r t o k e n que t e n h a s i d o s e l e c i o n a d o ) .

P o s s u i a i n d a um mecanismo p a r a c o r r e ç a o o r t o g r á f i c a e

um

dicioni5ri.o compartilhado ( " p o o l e d d i c t i o n a r y " ) p a r a

as

classes, contendo as v a r i á v e i s que s â o a c e s s í v e i s p e l o s m6todos da c l a s s e e por s u a s s u b c l a s s e s .

A s mensagens, além d e serem e n v i a d a s p a r a o s o ~ S ~ ~ O S , podem, também,

ser

e n v i a d a s p a r a c l a s s e s .

Nesse

c a s o &o

mensagens p a r a c r i a ç ã o d e i n s t â n c i a s , comentários s o b r e documentaç30, mensagens p a r a c r i a r v a r i á v e i s de

classe,

c r i a r c o n s t a n t e s e mensagens para c o n s u l t a s .

Actor

6

uma

linguagem d e prúgramaçWo n r i e n % a d a

a

o b j e t o s , cu3a f i l o s o f i a é b a s t a n t e semelhante a o

Smalltalk.

A

programaç8o é t o d a f e i t a

e m

termos

de

o b 3 e t o s

e

d a s mensagens que e s t e s o b j e t o s enviam e recebem.

Tudo

e m

Actor 8

um

O b 3 3 t a

[li

I.

Nfirneros, c a P a c t a r e s ,

v e t a r e s

( a r r a u s ) ,

c a d e i a s d e c a r a c t e r e s , a p l i c a ç õ e s , j a n e l a s , métodos, etc.

,

s b o t o d o s o b j e t o s .

Toda

aç&o que o c o r r e e m Actor

(com

exceçeiú

das

chamadas ao MS-Windows ou MS-DOS) é o r e s u l t a d o do e n v i o de uma mensagem a

um

o b j e t o , que responde executando o método s o l i c i t a d o .

Por s e g u i r e s s a s r e g r a s d e modo r í g i d o ,

Actor

6

d i % ó s e r uma linguagem puramente

orientada a

~ b i e t o s ,

d i f e r i n d o

das

l i n g u a g e n s h í b r i d a s que nao seguem e s s a r e g r a .

(34)

Em

Actor.

o acoplamento B d i n & ~ i i c o .

o

mecaniemo d e herança B d e herança s i m p l e s e

um esquema p a r a " g a r b a g e c o l l e c t i o n "

.

11.

2 . 3 . 1 O

Ambiente Actor

Actor,

além

d e

uma linguagem d e programacWo o r i e n t a d a a o b j e t o s , p o s s u i algumas f e r r a m e n t a s , c o n s t i t u i n d o , a s s i m , um ambiente d e programaçtio. O Ambiente Actar

r i m

toda

a

e s t r u t u r a do produto Microsoft Windows ( MS-Windows)

.

Inspetor

O

Imspetor

permite

que

um o b j e t o

s e j a

examinado

em

d e t a l h e s

,

podendo-se i n c l u s i v e e n v i a r mensagens p a r a o o b j e t o inspecionado.

A

j a n e l a do

Inspetor

p o s s u i

tr3s

j a n e l a s menores. A p r i m e i r a j a n e l a contem o s nomes d a s v a r i á v e i s d e i n s t â n c i a do o b j e t o inspecionado. A segunda contAm i n d i c e s

ou

c h a v e s , no c a s o da c l a s s e i n s p e c i o n a d a

ser

uma coleçao.

Ao

s e l e c i o n a r - s e q u a l q u e r d e s s e s i t q n s ,

a

t e r c e i r a j a n e l a e x i b e o s e u v a l o r correspondente.

E s t a

ú l t i m a J a n e l a é a j a n e l a d e ediçtio do

Inspetor.

Com o

Inspetor

pode-se c o n s u l t a r

o s

v a l o r e s de q u a i s q u e r v a r i á v e i s ou elementos

da

um o b j e t o , a s s i m como i d e n t i f i c a r s u a c l a s s e . Pode-se i n s p e c i o n a r q u a l q u e r t i p o d e o b j e t o , i n c l u s i v e c l a s s e s .

O

Browser

4

uma

ferramerita muito Qtil. Com

e l a

~ o d e - s e v e r o código f o n t e dos metodos que

vem com o s i s t e m a , pode-se s a b e r inúmeras informações

sobre

q u a l q u e r

classe

do s i s t e m a . t a i s como q u a i s v a r i á v e i s de i n s t â n c i a o s o b j e t o s d e uma determinada classe t e r % o .

A t r a v é s do

Browser

8

~ o s s í v e l :

-

c r i a r novos métodos

e m

uma c l a s s e ,

Referências

Documentos relacionados

A esse respeito, busquei informações sobre a formação sindical desenvolvida no período da resistência (1964 - 1978) e nos anos oitenta; procurei conhecer um

It reveals that (1) power is fluid in a software ecosystem formed by SMEs; (2) pool of customers and skill/knowledge are the most frequent power sources; (3)

Temos, no texto I, apenas elementos imagéticos (uma mulher com uma cesta ou bacia na cabeça, um galo, um igreja, cactos, entre outros elementos). No texto II,.. predominantemente

Discutindo o papel do ambiente no desenvolvimento infantil, a literatura na área das relações pessoa-ambiente esclarece que a qualidade de vida (presente e futura) da

Delimitação das possíveis fontes de rocha, enquanto matéria-prima para construção, através de raios concêntricos de 5 e 10 km, que tem como pontos centrais o Forte de

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Mensurar a geração de metano do Aterro Sanitário do município de Francisco Beltrão – PR através das metodologias sugeridas pelo Painel Intergovernamental