comp.lang.ada
 help / color / mirror / Atom feed
From: sdd.hp.com!cs.utexas.edu!ut-emx!hasan@hplabs.hpl.hp.com  (David A. Hasan)
Subject: Re: Using Global Variables
Date: 25 Sep 92 16:30:12 GMT	[thread overview]
Message-ID: <80453@ut-emx.uucp> (raw)

Comparing an "unencapsulated global" package:

>   package Contains_Global is
>      Global_Variable : Integer;
>   end Contains_Global;


to an "encapsulated global" package:

>   package Convert_Global is
>      procedure Put (Value : in     Integer);
>      procedure Get (Value :    out Integer);
>   end Convert_Global;
>
>   package body Convert_Global is
>      Is_This_A_Global_Variable : Integer; ----------- What do you say?
>
>      procedure Put (Value : in     Integer) is ...;
          [sets Is_This_A_Global_Variable]
>      procedure Get (Value :    out Integer) is ...;
          [returns Is_This_A_Global_Variable]
>   end Convert_Global;


Doug Smith mentions that


>In an attempt to limit the potential explosion of discussion about
>why one is better than the other--let's try to define the term `Global'
>first!  What is the Integer declared inside the package body?

The problem with the term "global" is that is just describes 
to topological- (visibility-) related aspects of the coupling.
However, in the sense of Constantine & Yourdon, there is much
more to coupling that just "who sees what"; the meaning of   
coupling includes "who knows what".

Applying this to the example above, even though the visibility
is essentially the same, the fact remains that
the latter ("encapsulated global") approach permits the
implementor to CHANGE the actual definition of the variable
WITHOUT affecting how clients read and write to it.  Thus
the nature of the client's knowledge about the "global"
is different, and therefore so is the coupling.

Although both approaches can usefully be called "global",
the former ("UNencapsulated global") approach introduces
MORE COUPLING between the package and its clients.  The
term "global" alonge does not distinguish between these.

PS. This is not necessarily a pedantic distinction.  If
    (at some later stage in the evolution of the package)
    the implementor decided that the value of the "global"
    quantity should be CALCULATED based on some other
    information, the latter ("encapsulated global")
    approach would allow the change to be made only in 
    the package of the body, requiring NO changes or
    recompilations of the client's code.  (E.g., polar
    or rectangular representation of complex numbers.)
-- 
 |   David A. Hasan
 |   hasan@emx.utexas.edu 

             reply	other threads:[~1992-09-25 16:30 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-09-25 16:30 David A. Hasan [this message]
  -- strict thread matches above, loose matches on Subject: below --
1992-09-29 15:05 Using Global Variables Charles H. Sampson
1992-09-28 20:56 crispen
1992-09-28 15:53 Victor Giddings
1992-09-28 14:51 Jeffrey Stewart
1992-09-28 12:52 crispen
1992-09-25 22:58 netcomsv!iscnvx!news
1992-09-25 21:16 Charles H. Sampson
1992-09-25 17:50 Charles H. Sampson
1992-09-25 17:36 Charles H. Sampson
1992-09-25 14:01 crispen
1992-09-24 20:02 netcomsv!iscnvx!news
1992-09-24 18:10 crispen
1992-09-24  6:51 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!rpi!utcsri!geac!torsqnt!uuno
1992-09-24  3:52 Michael Feldman
1992-09-23 21:13 haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!cis.ohio-state.ed
1992-09-23 19:11 Charles H. Sampson
1992-09-23 15:01 crispen
1992-09-23 14:26 munnari.oz.au!ariel!ucsvc.ucs.unimelb.edu.au!phillip.edu.au!x01233
1992-09-23 14:19 crispen
1992-09-23 13:24 wupost!spool.mu.edu!olivea!bu.edu!inmet!inmet!shafer
1992-09-23  2:44 Holmes S. Liao
1992-09-22 20:14 LEE MARDEN
1992-09-22 17:08 dog.ee.lbl.gov!hellgate.utah.edu!cs.utexas.edu!csc.ti.com!tilde.csc.ti.co
1992-09-22 14:54 van-bc!ubc-cs!destroyer!caen!spool.mu.edu!umn.edu!The-Star.honeywell.com!
1992-09-22 12:19 Robert Firth
1992-09-21 21:30 fred j mccall 575-3539
1992-09-21 20:58 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!spool.mu.edu
1992-09-21 20:37 Michael Feldman
1992-09-21 20:36 Michael Feldman
1992-09-21 20:31 Michael Feldman
1992-09-21 19:23 Robert Firth
1992-09-21 18:32 agate!linus!linus.mitre.org!mwvm.mitre.org!M19481
1992-09-21 16:51 Doug Smith
1992-09-21 14:43 haven.umd.edu!darwin.sura.net!spool.mu.edu!umn.edu!The-Star.honeywell.com
1992-09-21 11:49 cis.ohio-state.edu!news.sei.cmu.edu!ajpo.sei.cmu.edu!wellerd
1992-09-21  8:10 paul goffin
1992-09-21  4:08 cis.ohio-state.edu!news.sei.cmu.edu!lph
1992-09-19  2:28 Michael Feldman
1992-09-18 23:52 Charles H. Sampson
1992-09-18 22:50 Robert I. Eachus
1992-09-18 13:12 crispen
1992-09-17 18:34 Charles H. Sampson
1992-09-17 14:24 kronos.arc.nasa.gov!iscnvx!news
1992-09-16 17:47 agate!linus!linus.mitre.org!mwvm.mitre.org!M19481
1992-09-16 15:26 Charles H. Sampson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox