The Specification of Dynamic Distributed Component Systems

Modern computing systems are terribly complicated - so complex that most system designers and developers can only hope to understand their small piece of the larger project. The primary technologies that help system builders manage this complexity are object-oriented and/or component-centric, and the primary tools are those that assist in system modeling and specification. It is my belief that the next stage in managing system complexity comes in the form of system specification through formal methods. Only with precise, complete, and consistent descriptions of our systems and their components can we hope to understand the hyper-complex engineering that has become prevalent in computing today. But, only through the introduction of some middle-ground, semi-formal technique can modeling and specification break through into the mainstream. Such a specification methodology can''t be too hard to use, but need to be formal enough that it will help system designers and tools check the consistency and completeness of the system and its components. This thesis is the first step on the road toward formal specification of dynamic, emergent, distributed component systems, and addresses all of the requirements mentioned above. I introduce DESML: a set of new modeling constructs which can be used as a thin layer on top of most modeling languages. DESML is a variant of the Unified Modeling Language (UML), not an extension. I have redefined the the core metamodel, thus the new language is no longer compatible at the meta-level with UML. Note that such a modification is not necessary it is only a convenience in the definition of our new language. The reader should be familiar with the Unified Modeling Language and at least one formal specification language. Suggested references include [42] and [50, Chapter 2] for UML, and [20, Chapter 6] for a specification language (in this case, Z [152]).

[1]  Stephen J. Garland,et al.  A Guide to LP, The Larch Prover , 1991 .

[2]  Liwu Li,et al.  The Java Language , 1998 .

[3]  Andrew T. F. Hutt Object analysis and design: description of methods , 1994 .

[4]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[5]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[6]  Markus Kaltenbach,et al.  Model Checking for UNITY , 1994 .

[7]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[8]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[9]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[10]  J. Girard,et al.  Proofs and types , 1989 .

[11]  Guido Rossum,et al.  Internet Programming With Python , 1996 .

[12]  Balachander Krishnamurthy,et al.  Yeast: A General Purpose Event-Action System , 1995, IEEE Trans. Software Eng..

[13]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[14]  K. Mani Chandy,et al.  Systematic composition of objects in distributed Internet applications: processes and sessions , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[15]  Pierre Cointe,et al.  Meta-Level Architectures and Reflection , 1999 .

[16]  S. Kauffman At Home in the Universe: The Search for the Laws of Self-Organization and Complexity , 1995 .

[17]  Niklaus Wirth,et al.  Project Oberon - the design of an operating system and compiler , 1992 .

[18]  Stephen J. Mellor,et al.  Object Oriented Systems Analysis: Modeling the World in Data , 1988 .

[19]  Paul Butcher A behavioural semantics for Linda-2 , 1991, Softw. Eng. J..

[20]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[21]  Bruce S. Davie,et al.  Computer Networks: A Systems Approach , 1996 .

[22]  Stuart A. Kauffman,et al.  The origins of order , 1993 .

[23]  John N. Warfield,et al.  World dynamics , 1973 .

[24]  John Daniels,et al.  Designing object systems: object-oriented modelling with Syntropy , 1995 .

[25]  James Martin,et al.  Object-oriented methods : a foundation , 1995 .

[26]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[27]  J. Forrester Industrial Dynamics , 1997 .

[28]  Lewis J. Pinson,et al.  Objective-C - object-oriented programming techniques , 1991 .

[29]  Vinny Cahill,et al.  An Event Based Object Model for Distributed Programming , 1995, OOIS.

[30]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[31]  K. Mani Chandy,et al.  Using announce-listen with global events to develop distributed control systems , 1998, Concurr. Pract. Exp..

[32]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[33]  Daniel G. Bobrow,et al.  CLOS: integrating object-oriented and functional programming , 1991, CACM.

[34]  J. H. Wright A reference model for object oriented distributed systems , 1988 .

[35]  K. Mani Chandy,et al.  A Framework for Structured Distributed Object Computing , 1998, Parallel Comput..

[36]  P. Andrews,et al.  A transfinite type theory with type variables , 1965 .

[37]  Ken Arnold,et al.  The Java Programming Language, Second Edition , 1999 .

[38]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[39]  K. Mani Chandy,et al.  A General Resource Reservation Framework for Scientific Computing , 1997, ISCOPE.

[40]  Chris Dollin,et al.  Object-oriented development: the fusion method , 1994 .

[41]  W. Richard Stevens Tcp/ip illustrated- volume 1 , 1994 .

[42]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[43]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[44]  Martin Goldstern,et al.  The Incompleteness Phenomenon: A New Course in Mathematical Logic , 1995 .

[45]  Peter Wegner,et al.  Interactive , 2021, Encyclopedia of the UN Sustainable Development Goals.

[46]  Lawrence Charles Paulson,et al.  Isabelle: A Generic Theorem Prover , 1994 .

[47]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[48]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[49]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[50]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[51]  G. vanRossum Python reference manual , 1995 .

[52]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[53]  Kenneth J. Turner,et al.  Using Formal Description Techniques: An Introduction to Estelle, Lotos, and SDL , 1993 .

[54]  Luca Cardelli,et al.  Obliq, a language with distributed scope , 1996 .

[55]  Andrew T. F. Hutt Object analysis and design: comparison of methods , 1994 .

[56]  Doug Lea Design for Open Systems in Java , 1997, COORDINATION.

[57]  David Harel,et al.  Executable object modeling with statecharts , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[58]  Thomas S. Ray,et al.  An Evolutionary Approach to Synthetic Biology: Zen and the Art of Creating Life , 1993, Artificial Life.

[59]  P. Senge,et al.  The Fifth Discipline Fieldbook , 1994 .

[60]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[61]  Svend Frølund Coordinating distributed objects - an actor-based approach to synchronization , 1996 .

[62]  Gert Florijn Object Protocols as Functional Parsers , 1995, ECOOP.

[63]  Andreas Paepcke Object-oriented programming: the CLOS perspective , 1993 .

[64]  John Maloney,et al.  Back to the Future The Story of Squeak, A Practical Smalltalk Written in Itself , 1997 .

[65]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[66]  K. Mani Chandy,et al.  A world-wide distributed system using Java and the Internet , 1996, Proceedings of 5th IEEE International Symposium on High Performance Distributed Computing.

[67]  Ivar Jacobson,et al.  The object advantage - business process reengineering with object technology , 1994 .

[68]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[69]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[70]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[71]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[72]  Edsger W. Dijkstra,et al.  Predicate Calculus and Program Semantics , 1989, Texts and Monographs in Computer Science.

[73]  D. Ince,et al.  An introduction to discrete mathematics, formal system specification, and Z , 1993 .

[74]  James Martin,et al.  Object-Oriented Methods: Pragmatic Considerations , 1996 .

[75]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[76]  NeXT Computer,et al.  Nextstep object‐oriented programming and the objective C language : 日本語版 , 1993 .

[77]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[78]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[79]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[80]  Roger Duke,et al.  Object-Z: a specification language advocated for the description of standards , 1995 .

[81]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[82]  Jean Bacon,et al.  Using events to build large scale distributed applications , 1996, EW 7.

[83]  Edmund Kazmierczak,et al.  Cogito: a Methodology and System for Formal Software Development , 1995, Int. J. Softw. Eng. Knowl. Eng..

[84]  ReadeChris ML for the Working Programmer (2nd edition) by L. C. Paulson, Cambridge University Press, 1996. , 1997 .

[85]  Jayadev Misra A discipline of multiprogramming , 1996, CSUR.

[86]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[87]  Craig Chambers,et al.  Organizing programs without classes , 1991, LISP Symb. Comput..

[88]  Steven J. DeRose,et al.  Xml pointer language (xpointer) , 1998 .

[89]  Thomas Streicher,et al.  Semantics of type theory - correctness, completeness and independence results , 1991, Progress in theoretical computer science.

[90]  Niklaus Wirth,et al.  Programming in Oberon - steps beyond Pascal and Modula , 1992 .

[91]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[92]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[93]  Peter A. Lindsay,et al.  Proof in VDM: A Practitioner's Guide , 1993, Proof in VDM.

[94]  J. van Katwijk,et al.  VDM++, a formal specification language for object-oriented designs , 1992, CompEuro 1992 Proceedings Computer Systems and Software Engineering.

[95]  O. J. Dahl,et al.  Simula Begin , 1979 .

[96]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[97]  Yang Meng Tan,et al.  LCLint: a tool for using specifications to check code , 1994, SIGSOFT '94.

[98]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[99]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[100]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[101]  Simon Thompson,et al.  Type theory and functional programming , 1991, International computer science series.

[102]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[103]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[104]  Gianluigi Zavattaro,et al.  An Algebra of Actors , 1997, FMOODS.

[105]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[106]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[107]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[108]  D. Gabbay,et al.  Temporal Logic Mathematical Foundations and Computational Aspects , 1994 .

[109]  Gustavo Stubrich The Fifth Discipline: The Art and Practice of the Learning Organization , 1993 .

[110]  Peter Buneman,et al.  Theoretical Aspects of Object-Oriented Programming , 1994 .

[111]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[112]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[113]  Oliver Sims Business Objects: Delivering Cooperative Objects for Client-Server , 1994 .

[114]  Grady Booch,et al.  Object Solutions: Managing the Object-Oriented Project , 1995 .

[115]  C. Xiao Eecient Implementation of Adaptive Software , 1994 .

[116]  John R. Koza,et al.  Hidden Order: How Adaptation Builds Complexity. , 1995, Artificial Life.