Disclaimer. CSUSB and the CS Dept have no responsibility for the content of this page.
Copyright. Richard J. Botting ( Tue May 12 11:06:30 PDT 2009 ). Permission is granted to quote and use this document as long as the source is acknowledged.
EMail: rbotting@csusb.edu
URL: http://cse.csusb.edu/dick/papers/rjb9Xx.TEMPO.html
Note the figures were orignially in PostScript generated on a Macintosh from MacDraw: http://cse.csusb.edu/dick/papers/rjb9Xx.TEMPO.figs.ps (Best viewed on Linux using Evince or Ghostscript). I have taken screen shots and placed them as GIFs in this (May 2009) update to the original paper.
Diagrams used in 20th century CASE systems are informal. They require the manual positioning of icons. Layout is a matter of taste not of semantics. So time is spent on meaningless aesthetics. A better representation would be formal and save time.
Sequential structures have a natural two dimensional layout. This was first proposed by Witty in the 1970s. Structured programs, regular expressions, and context free grammars, Jackson data structure diagrams and structure text, natural deduction proofs, Trace tables[Zelkowitz90], And/Or tables[Levesonetal95] and data dictionaries all fit this model. So a set of N concurrent structures require a 2N dimensional space to represent them. Concurrency is important for simplifying the representation of concurrent systems. If each of the N concurrent parts have only p possible states, an equivalent sequential picture can require p^N states.
Automatic circuit layout problems are NP-complete[ShahookarMazumber91]. The problem of laying out diagrams of highly constrained and/or concurrent structures (such as Data Flow Diagrams(DFDs) and Entity_Relation_Diagrams(ERDs)) seems equally intractable. A tree structure is easy to draw once the root has been found and the levels identified[Moen90]. Directed Acyclic Graphs(DAGs) - typically ERDs - are harder to produce automatically [DingMateti90, p281 in Berztiss89] but Martin and McClure have published a simple levelling heuristic[ MartinMcClure85]. Yet some ERDs will defeat all attempts at tidying. They can form non-planar forms like a Kurotaski 3><3 graph - see Figure 1.1 below.
An alternate heuristic is useful for diagrams which have large numbers of constraints between parts like a DFD. Here the parts are placed on a diagonal line. and interactions and couplings are put in off diagonal positions chosen to give a clock wise flow of influence[Lano77] - See Figure 1. 1. This N^2 layout wastes space but exposes structure (cf SADT layout and the LDST technique in SSADM[Cutts88]). See Figure 1.1.
TEMPO diagrams fit into most methods. They include simplified DFDs and ERDs of structured analysis and design. They are more intuitive than Jackson's notations and could be used in JSP/JSD[Cameron89] and SSADM[Cutts88]. They are more structured than diagrams proposed for objects[Olenfeldt85, Hareletal90, ShlaerMellor92]. They can be used at the highest and lowest views of a system.
These benefits do not come without costs. First, TEMPO is a formal notation with simple yet sophisticated semantics and so it takes time to learn. Second, it is not suitable for a manual updating. Third, its value increases with scale of the problem, and so it is hard to demonstrate its worth in a class or research paper. Fourth, it needs computerized tools. I am working on a formal specification of the system with a matching executable prototype.
. . . . . . . . . ( end of section Introduction) <<Contents | End>>
It is also possible to (1) show that many objects have similar behavior -- belong in the same class, (2) show correspondences between parts of parallel processes that should be synchonized, and (3) show many-to-many relationships. See Figure 2.5b.
Named structures can be recursive. So a named framework with named components gives a set of simultaneous equations. The standard fixed point approximation semantics or Arbib's Partially Additive semantics can be used to solve them. See Figure 2.7
The standard semantics of constrained frameworks hasn't been fixed yet. When the parts are in a "blob" marked with an operator then that operator is applied(see section 2.2 above). Data flows have a simple asynchronous message passing semantics which works well for everyday problems but avoids tackling problems of hazards, dead lock, and live lock[Jackson76, Jackson78, & Jackson80]. Lamport's approach to concurrency, Hoare's CSP or Robin Milner's work are candidates for a semantics that handles scheduling problems[Lamport86a, Lamport86b, Hoare85, Milner80].
Given this algorithm then it becomes easier to show some structures that are unusually complex when written using the three structures.... and yet a general framework is clearly equivalent to a structured design. More importantly it is easy to see all the possible paths from top to bottom. This is a promising basis for a graphic CASE system. It appears that this may be a better way to interface with the engineer than using a textual code - because the diagrams are simpler. See Figure 2.8.
. . . . . . . . . ( end of section Description of TEMPO) <<Contents | End>>
. . . . . . . . . ( end of section Lessons Learned so far from TEMPO) <<Contents | End>>
(AmblerBurnett89): A L Ambler & M M Burnett, Influence of Visual Technology on the Evolution of Language Environments, IEEE Computer v22 n10 (Oct 89)pp9-22
(Aoyamaetal89): M Aoyama & K Miyamoto & N Murakama & H Nagano & Y Oki, Design Specification in Japan: Tree Structured Charts, IEEE Software v6n2(Mar 89)pp31-37
(Berztiss89): Alfs Berztiss, Formal Specification Methods and Visualizations, in Chang 89 pp231-290
(Botting85): R J Botting,An Eclectic Approach to Software Engineering, pp25-29 Proc Third Int'l Workshop on Software Specification & Design Aug 1985
(Botting87): R J Botting, A Critique of Pure Functionalism, pp148-153 Proc. Fourth Int'l Workshop on Software Specification & Design April 1987
(Botting89): R J Botting, Abstract of Research, Proc ACM CSC Conf 1989
(Cameron89): John R Cameron, JSP and JSD: The Jackson Approach to Software development(2nd Edn), IEEE Comp Society Press CA 1989
(Chang89): Shi-Kuo Chang(ed), Principles of Visual Programming Languages, Prentice Hall Int. Englewood Cliffs NY 1989
(ColemanHayesBear92): Derek Coleman & Fiona Hayes & Stephen Bear, Introducing ObjectCharts or How to Use Statecharts in Object-Oriented Design, IEEE Trans SE-18n1(Jan 92)pp9-18, CR9301-0026
(Cutts88): Geof Cutts, Structured Systems Analysis and Design Methodology, Van Nostrand Reinhold NY NY 1988
(DingMateti90): Chen Ding & Prabhaker Mateti, A Framework for the Automated Drawing of Data Structure Diagrams, IEEE Trans SE16 n5 pp543-557(May 90)): CR9207-0512
(Graf89): Mike Graf, Building a Visual Designers Environment, pp291-325 of Chang 89
(Harel86): David Harel, Statecharts: A Visual Approach to Complex Systems(revised), Report CS86-02 Dept App Maths Weizman Inst Science Rehovot Israel March 1986
(HarelKahanna92): David Harel & Chaim-Arie Kahanna, On Statecharts and Overlapping, ACM TOSEM V1n4(Oct 92) pp399-422
(Hareletal90): D Harel & H Lachover & A Naamad &A Pnueli & M Politi & R Sherman & A Ahtull-Trauring & M Trakhtenbrot, STATEMATE: A Working Environment for the Development of Complex Reactive Systems, IEEE SE-16n4pp403-414
(Harel 88): David Harel, On Visual Formalisms, Commun ACM v31n5(May 88)pp514-530
(Herbertetal90): Andrew Herbert & William Lively & Sallie Sheppard, A Graphical Specification System for User-Interface Design, IEEE Software V7n4 (Jul 90) p12-20
(Hoare85): C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall 1985
(Jackson76): M A Jackson, Constructive Methods of Program Design, Lect Notes in C Sci vol 44 pp236-262 Springer Verlag Berlin 1976
(Jackson78): M A Jackson, Information Systems: Modelling Sequencing and Transformation, pp72-81 in Proc. 3rd Interntl Conf on Software Engineering IEEE 1978
(Jackson80): M A Jackson, Conventional Programming Language, pp321-342 Human Interaction with Computers Acad Press London UK
(Lamport86b): Leslie Lamport, A Simple Approach To Specifying Concurrent Systems, Report 15 Systems Research Center Digital Equipment Corpn Dec 25th 1986
(Lamport86a): Leslie Lamport, Control Predicates are Better than Dummy Variables for Reasoning About Program Control, Report 11 Systems Research Center Digital Equipment Corpn May 5th 1986
(Lano77): R J Lano, The N^2 Chart, TRW report(Software Series) TRW-SS-77-04(Nov 77) TRW Redondo Beach CA 90278 1977, Extract published as pp244-271 of Richard H Thayer & Merlin Dorfman(eds), System and Software Requirements Engineering, IEEE CS Press Tutorial Cat No.EH0304-6
(LiuHorowitz89): l.-C Liu & E. Horowitz, A Formal Model for Software Project Management, IEEE Trans Soft Eng vSE-15 n10(Oct 89)pp1280-1293
(MartinMcClure85): James Martin & carma McClure, Diagrammatic Techniques for Analysts & Programmers, Prentice Hall Intl NJ 1985
(Milietal89): A Mili & N Boudriga & F Mili, Towards Structured Specifying: Theory Practice Application, Ellis Horwood Chichester UK 1989(USA Distribution John Wiley & Sons NY NY)
(Milner80): Robin Milner, A Calculus of Communicating Systems, Springer Verlag 1980
(Moen90): Sven Moen, Drawing Dynamic Trees, IEEE Software V7n4 (Jul 90) p21-28
(Olenfeldt85): Lars Olenfeldt, Object/Event Analysis, ACM SIGSOFT Software Engineering Notes v10n1 (Jan 85) p52-57
(Pagan83): Frank G Pagan, A Diagrammatic Notation for Abstract Syntax and Abstract Structured Objects, IEEE Trans SE-9n3pp280-289
(Rumbaughetal90): James E. Rumbaugh & Michael R. Blaha & William J Premeriani & Frederick Eddy & William Lorenson, Object-Oriented Modelling and Design,Prentice Hall Englewood Cliffs NJ 1990
(Scanlan89): David Scanlan, Structure Flowcharts Outperform Pseudocode: An Experimental Comparison, IEEE Software V6n4(Sep 89)pp28-29 also letters V7n1(Mar 90)pp4&6&10&117 V7n3(May 90)p99
(ShahookarMazumber91): K Shahookar & P Mazumber, VLSI Call Placement Techniques, ACM Comp Surveys, V2n2(Jun91)pp143-220
(ShlaerMellor92): Sally Shlaer & Stephen J Mellor, Object Lifecycles: Modeling the World in States, Yourdon Press series Prentice Hall NJ 1992
(Upson90): Graig Upson, Tools for Creating Visions, UNIX Review V8n8(Aug 90)pp39-47
(Wassermanetal90): AI Wasserman & PA Pircher & R J Muller, The Object-Oriented Structured Design Notation for Software Design Representation, IEEE Computer v23n3(Mar 90)p50-62.
(Wassermanetal90): AI Wasserman & PA Pircher & R J Muller, The Object-Oriented Structured Design Notation for Software Design Representation, IEEE Computer v23n3(Mar 90)p50-62.
(Witty77): Rob Witty, Dimensional Flowcharting, Software-Practice & Experience v7 pp553-584
(Witty76): Rob Witty, Dimensional Flowcharting, Report RL-76-132/A Rutherford Lab. Chilton England 1976
(Zelkowitz90): Marvin V Zelkowitz, A Functional Correctness Model of Program Verification, IEEE Computer magazine, V23n11(Nov 90)pp30-39
. . . . . . . . . ( end of section Bibliography) <<Contents | End>>
. . . . . . . . . ( end of section Figures) <<Contents | End>>