Xref: utzoo comp.object:418 comp.software-eng:2398 Path: utzoo!yunexus!ists!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!pyrdc!gmu90x!gmuvax2!bsanden From: bsanden@gmuvax2.gmu.edu (Bo Sanden) Newsgroups: comp.object,comp.software-eng Subject: Re: programming design methodologies for object-oriented programming Summary: Time-dependent entities ala JSD and time independent objects are both necessary Message-ID: <580@gmuvax2.gmu.edu> Date: 17 Nov 89 02:14:31 GMT Article-I.D.: gmuvax2.580 References: <910@gorath.cs.utexas.edu> <135300011@p.cs.uiuc.edu> <617@ajpo.sei.cmu.edu> Followup-To: comp.software-eng Organization: George Mason University, Fairfax Va. Lines: 54 Paul S.R. Chisholm (psrc@pegasus.ATT.COM) started this discussion of Jackson System Development (JSD) and OOD. Matt Atterbury (matt@bacchus.esa.oz) pointed out that JSD entities are time-ordered, while actions on objects should have no time constraints. (Bertrand Meyer sees the operations on a data structure as a "shopping list of available actions without any prescribed order"). Ed Berard (eberard@ajpo.sei.cmu.edu) elaborated on this difference and noted that concurrency is the norm in JSD. I have applied a JSD-like approach to real-time problems with concurrent tasks for a number of years. I refer to it by the more generic name "entity-life modeling". (Refs 1 and 2.) I also use an object-based approach. Some people see a conflict between the time-independent objects ala Booch and Meyer and the time-dependent JSD entities, and feel that we must go for one or the other. I think this is unfortunate. Depending on the problem at hand you need either one, or both. In an interactive application you can get away with mostly time indpendent objects of the shopping list variety, if a human operator defines the overall sequencing and timing by means of commands. In a realtime application without operator, the timing must be built into the software itself usually by means of tasking. As Berard points out, the principles of JSD lead exactly to this, i.e., the time-dependent entities of JSD map naturally onto tasks. On the other hand, even in a real-time application there will be objects without important "time dimensions", which can be operated on in arbitrary order. Applying the JSD apparatus to such objects isn't productive; they don't have any meaningful life histories. I find it very useful to see concurrent programs as networks of tasks operating on objects. In the spirit of JSD, the tasks are based on the behaviors or life histories of some entities. I don't apply JSD to other entities in the problem environment, which do not exhibit a strong time dependency. Bo Sanden, ISSE George Mason University Fairfax, VA 22030-4444 (703) 764-6291 Refs: 1. Bo Sanden, An entity-life modeling approach to the design of concurrent software, CACM 32:3 (March 1989) 330-343 2. -"- Entity-life modeling and structured analysis - comparison of approaches to real-time software design, CACM 32:12 (Dec. 1989)