Object-oriented programming in control system design: a survey

Abstract The object-oriented paradigm shows great potential as a means for revolutionizing software development. In the last decade, much research has been directed towards the development of design methods, languages, environments, reusable libraries of software components and database systems to support this paradigm. The first part of the paper presents the terminology of the object-oriented paradigm, reviews the state-of-the-art in object-oriented programming and discusses class libraries and object-oriented design. The second part of the paper discusses its application in the area of computer-aided control system design. It is argued that the adoption of these ideas will increase greatly the productivity of software developers in this field and improve the facilities that will be offered to users.

[1]  John D. McGregor,et al.  Applying the object-oriented paradigm to discrete event simulations using the C++ language , 1990, Simul..

[2]  Peter Wegner,et al.  Concepts and paradigms of object-oriented programming , 1990, OOPS.

[3]  E. F. Codd,et al.  A relational model of data for large shared data banks , 1970, CACM.

[4]  Peter J. Fleming,et al.  Object-Oriented Database Support for Computer-Aided Control System Design , 1991 .

[5]  Michael Jackson,et al.  Principles of program design , 1975 .

[6]  Hilding Elmqvist,et al.  DYMOLA - A Structured Model Language for Large Continuous Systems , 1978 .

[7]  Tim O'Shea,et al.  The Learnability of Object-Oriented Programming Systems - Panel , 1986, OOPSLA.

[8]  Min Chen,et al.  The Making of Exces - A Software Engineering Perspective , 1991 .

[9]  Larry Wall,et al.  Programming Perl , 1991 .

[10]  M. Chen,et al.  A Development Environment for Constructing Graph‐Based Editing Tools , 1992, Comput. Graph. Forum.

[11]  J.H. Taylor,et al.  An expert system architecture for computer-aided control engineering , 1984, Proceedings of the IEEE.

[12]  Douglas A. Young X window systems - programming and applications with Xt , 1989 .

[13]  Jack J. Dongarra,et al.  A set of level 3 basic linear algebra subprograms , 1990, TOMS.

[14]  B. S. Garbow,et al.  Matrix Eigensystem Routines — EISPACK Guide , 1974, Lecture Notes in Computer Science.

[15]  John G. Cleary,et al.  The JADE approach to distributed software development , 1985 .

[16]  G. Grübel,et al.  Automatic Evolution of a Decision-Supporting Design Project Database in Concurrent Control Engineering , 1991 .

[17]  Jan M. Maciejowski,et al.  Data structures and software tools for the computer aided design of control systems: a survey. , 1988 .

[18]  Min Chen,et al.  A man-machine interface for computer-aided design and simulation of control systems , 1989, Autom..

[19]  H. H. Richardson,et al.  Introduction to system dynamics , 1967 .

[20]  Mats Andersson,et al.  Omola : An Object-Oriented Language for Model Representation , 1990 .

[21]  Brian Henderson-Sellers,et al.  The object-oriented systems life cycle , 1990, CACM.

[22]  Jan M. Maciejowski,et al.  A core data model for computer-aided control engineering , 1985 .

[23]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

[24]  Roger King,et al.  A Database Management System Based on an Object-Oriented Model , 1984, Expert Database Workshop.

[25]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

[26]  V. Klema LINPACK user's guide , 1980 .

[27]  Charles Wiecha,et al.  ITS: a tool for rapidly developing interactive applications , 1990, TOIS.

[28]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[29]  John D. McGregor,et al.  Understanding object-oriented: a unifying paradigm , 1990, CACM.

[30]  David A. Wilson,et al.  C++ Programming With Macapp , 1990 .

[31]  J.M. Maciejowski,et al.  Multivariable toolbox for use with MATLAB , 1989, IEEE Control Systems Magazine.

[32]  Steven Tang,et al.  A unidraw-based user interface builder , 1991, UIST '91.

[33]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[34]  Bertrand Meyer,et al.  Reusability: The Case for Object-Oriented Design , 1987, IEEE Software.

[35]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[36]  Pierre-Jacques Courtois,et al.  On time and space decomposition of complex structures , 1985, CACM.

[37]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[38]  Eric Harslem,et al.  Designing the STAR User Interface , 1987, ECICS.

[39]  J. N. Little,et al.  CTRL-C and matrix environments for the computer-aided design of control systems , 1984 .

[40]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974 .

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

[42]  Brad J. Cox Message/Object Programming: An Evolutionary Change in Programming Technology , 1984, IEEE Software.

[43]  L. J. Pinson,et al.  An Introduction to Object-Oriented Programming and Smalltalk , 1988 .

[44]  Corporate Open Look: graphical user interface application style guidelines , 1990 .

[45]  S. Hara,et al.  A distributed computing environment for control system analysis and design , 1992, IEEE Symposium on Computer-Aided Control System Design.

[46]  Michael Ackroyd,et al.  Graphical notation for object-oriented design and programming , 1991 .

[47]  Paul R. Calder,et al.  Glyphs: flyweight objects for user interfaces , 1990, UIST '90.

[48]  Alain Colmerauer,et al.  An introduction to Prolog III , 1989, CACM.

[49]  Wolfgang Kreutzer,et al.  System simulation programming styles and languages , 1986 .

[50]  Bjarne Stroustrup What Is Object-Oriented Programming? , 1988, IEEE Softw..

[51]  James H. Taylor,et al.  A Data-Base Management Scheme for Computer-Aided Control Engineering , 1988, 1988 American Control Conference.

[52]  Edsger W. Dijkstra,et al.  Programming considered as a human activity , 1979 .

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

[54]  David Maier,et al.  Making Database Systems Fast Enough for CAD Applications , 1989, Object-Oriented Concepts, Databases, and Applications.

[55]  Alan Snyder,et al.  The essence of objects: concepts and terms , 1993, IEEE Software.

[56]  Bjarne Stroustrup,et al.  Parameterized Types for C++ , 1989, C++ Conference.

[57]  M. Rimvall,et al.  Interactive Environments for CACSD Software , 1988 .

[58]  B. Nilsson Object-oriented chemical process modeling in Omola , 1992, IEEE Symposium on Computer-Aided Control System Design.

[59]  G. Grübel,et al.  Control Engineering Data Structures for Concurrent Engineering , 1991 .

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

[61]  Alan W. Brown Object-oriented databases: Applications in Software Engineering , 1991 .

[62]  Min Chen,et al.  Algorithms for Transformations Between Block Diagrams and Signal Flow Graphs , 1988 .

[63]  Perry S. Plexico,et al.  Data abstraction and object-oriented programming in C++ , 1990 .

[64]  Craig Harris,et al.  Combining language and database advances in an object-oriented development environment , 1987, OOPSLA 1987.

[65]  Daniel G. Bobrow,et al.  Common lisp object system specification , 1988, SIGP.

[66]  Neil Munro ECSTASY-a control system CAD environment , 1988 .

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

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

[69]  Craig W. Thompson,et al.  Object-oriented databases: design and implementation , 1991, Proc. IEEE.

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

[71]  P. Townsend,et al.  Open architecture for computer-aided control engineering , 1993, IEEE Control Systems.

[72]  H. A. Barker Graphical Environments for Computer Aided Control System Design , 1988 .

[73]  M. Andersson An object-oriented language for model representation , 1989, IEEE Control Systems Society Workshop on Computer-Aided Control System Design.

[74]  Keith E. Gorlen An object‐oriented class library for C++ programs , 1987, Softw. Pract. Exp..

[75]  Kurt J. Schmucker Object-oriented Programming for the Macintosh , 1986 .

[76]  Min Chen,et al.  Modern environments for dynamic system modelling , 1993 .

[77]  Min Chen,et al.  CES - A Workstation Environment for Computer-aided Design in Control Systems , 1988 .

[78]  Shinji Hara,et al.  Computer Aided Control System Analysis and Design Based on the Concept of Object-Orientation , 1988 .

[79]  Jürgen Ackermann,et al.  Future design environments for control engineering , 1989, Autom..

[80]  Peter Wegner Capital-Intensive Software Technology , 1984, IEEE Software.

[81]  Mats Andersson,et al.  On the Architecture of CACE Environments , 1991 .

[82]  S. E. Mattsson,et al.  Modelling of power systems in Omola for transient stability studies , 1992, IEEE Symposium on Computer-Aided Control System Design.

[83]  Sven Erik Mattsson On Model Structuring Concepts , 1988 .

[84]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[85]  M. Andersson Discrete event modelling and simulation in Omola , 1992, IEEE Symposium on Computer-Aided Control System Design.

[86]  Melvin A. Breuer,et al.  An Object-Oriented VLSI CAD Framework: A Case Study in Rapid Prototyping , 1989, Computer.

[87]  H H Rosenbrock The Use of Computers for Designing Control Systems , 1972 .

[88]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[89]  Christer Hulten,et al.  Version Control in an Object-Oriented Architecture , 1989, Object-Oriented Concepts, Databases, and Applications.

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

[91]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[92]  John David Miller An OPEN LOOK at UNIX: A Developer's Guide to X , 1990 .

[93]  Jim Diederich,et al.  Experimental Prototyping in Smalltalk , 1987, IEEE Software.

[94]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[95]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[96]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[97]  Karen E. Smith,et al.  Intermedia: A case study of the differences between relational and object-oriented database systems , 1987, OOPSLA 1987.

[98]  Alan M. Davis A taxonomy for the early stages of the software development life cycle , 1988, J. Syst. Softw..

[99]  David Beech,et al.  Groundwork for an Object Database Model , 1987, Research Directions in Object-Oriented Programming.

[100]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[101]  Edward Yourdon,et al.  Object-oriented analysis , 2012 .

[102]  R Moore,et al.  Process Control Using a Real Time Expert System , 1990 .

[103]  Daniel G. Bobrow,et al.  Definition Groups: Making Sources into First-Class Objects , 1987, Research Directions in Object-Oriented Programming.

[104]  John R. Cameron,et al.  An overview of JSD , 1986, IEEE Transactions on Software Engineering.

[105]  David Maier,et al.  Development of an object-oriented DBMS , 1986, OOPSLA 1986.

[106]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[107]  Jack J. Dongarra,et al.  Matrix Eigensystem Routines — EISPACK Guide Extension , 1977, Lecture Notes in Computer Science.

[108]  Jan M. Maciejowski,et al.  DB-Prolog: a database programming environment for CACSD , 1989, IEEE Control Systems Society Workshop on Computer-Aided Control System Design.

[109]  James H. Taylor,et al.  The GE MEAD computer-aided control engineering environment , 1989, IEEE Control Systems Society Workshop on Computer-Aided Control System Design.

[110]  Richard Fikes,et al.  The role of frame-based representation in reasoning , 1985, CACM.

[111]  Ivan E. Sutherland,et al.  Sketchpad a Man-Machine Graphical Communication System , 1899, Outstanding Dissertations in the Computer Sciences.

[112]  Mitchell Kapor,et al.  Agenda: a personal information manager , 1990, CACM.

[113]  Ivar Jacobson,et al.  Is object technology software's industrial platform? , 1993, IEEE Software.

[114]  S.E. Mattsson,et al.  Simulator for dynamical systems using graphics and equations for modeling , 1989, IEEE Control Systems Magazine.

[115]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[116]  H.A. Spang The federated computer-aided control design system , 1984, Proceedings of the IEEE.

[117]  William Kent,et al.  Limitations of record-based information models , 1979, TODS.

[118]  C. P. Jobling,et al.  Some Control Engineering Applications of Prolog , 1990, ALPUK.

[119]  Daniel G. Bobrow,et al.  Object-Oriented Programming: Themes and Variations , 1989, AI Mag..

[120]  Michael F. Kilian Trellis: turning designs into programs , 1990, CACM.

[121]  Michael Stonebraker,et al.  Introduction to the Special Issue on Database Prototype Systems , 1990, IEEE Transactions on Knowledge and Data Engineering.

[122]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[123]  Paul R. Calder,et al.  Composing user interfaces with InterViews , 1989, Computer.

[124]  Oscar Nierstrasz,et al.  Class management for software communities , 1990, CACM.

[125]  James Gettys,et al.  The X window system , 1986, TOGS.

[126]  Stanley B. Zdonik,et al.  Type Evolution in an Object-Oriented Database , 1987, Research Foundations in Object-Oriented and Semantic Database Systems.

[127]  Alan Kay,et al.  Microelectronics and the Personal Computer , 1977 .

[128]  M. Rimvall CACSD software and man-machine interfaces of modern control environments , 1987 .

[129]  Elisa Bertino,et al.  Composite objects revisited , 1989, SIGMOD '89.

[130]  Jeff A. Johnson,et al.  The Xerox Star: a retrospective , 1989, Computer.

[131]  Linda G. DeMichiel,et al.  The Common Lisp Object System: An Overview , 1987, ECOOP.

[132]  Bertrand Meyer,et al.  Lessons from the design of the Eiffel libraries , 1990, CACM.

[133]  Peter Wegner,et al.  Learning the language , 1989 .

[134]  Ian Thomas,et al.  PCTE interfaces: supporting tools in software-engineering environments , 1989, IEEE Software.

[135]  Ralph E. Johnson,et al.  Surveying current research in object-oriented design , 1990, CACM.

[136]  James H. Taylor,et al.  GE's MEAD user interface-a flexible menu- and forms-driven interface for engineering applications , 1989, IEEE Control Systems Society Workshop on Computer-Aided Control System Design.

[137]  Mark A. Linton,et al.  Unidraw: a framework for building domain-specific graphical editors , 1990, TOIS.

[138]  David A. Moon Object-oriented programming with flavors , 1986, OOPSLA 1986.