Software design methods for distributed computing systems

Abstract Due to the rapid development of computer, communication and microelectronics technologies, the trend of distributed computing systems is to become more distributed. Because the characteristics of distributed computing systems are significantly different from those of traditional computing systems, different approaches are needed to effectively address the design issues related to the characteristics of software for distributed computing systems. In this paper, the methods currently used to develop the software for distributed computing systems are classified into three approaches: dataflow-oriented; communication-oriented; and object-oriented. Their applicabilities to various applications for distributed computing systems are discussed, and object-oriented approach is identified as a more promising approach to developing distributed software. The future trends and research directions of software development techniques for distributed computing systems are discussed.

[1]  Wesley W. Chu,et al.  Task Allocation and Precedence Relations for Distributed Real-Time Systems , 1987, IEEE Transactions on Computers.

[2]  Ivar Jacobson,et al.  Object Oriented Development in an Industrial Environment , 1987, OOPSLA.

[3]  Richard F. Rashid,et al.  Network Operating Systems , 1983, Advanced Course: Local Area Networks.

[4]  Stephen S. Yau,et al.  Distributed Software System Design Representation Using Modified Petri Nets , 1983, IEEE Transactions on Software Engineering.

[5]  Stephen S. Yau,et al.  An Approach to Distributed Computing System Software Design , 1981, IEEE Transactions on Software Engineering.

[6]  Stephen S. Yau,et al.  An approach to module distribution for the design of embedded distributed software systems , 1991, Inf. Sci..

[7]  Virginia Mary Lo,et al.  Heuristic Algorithms for Task Assignment in Distributed Systems , 1988, IEEE Trans. Computers.

[8]  Akinori Yonezawa,et al.  Inheritance and Synchronization in Concurrent OOP , 1987, ECOOP.

[9]  Edward Yourdon,et al.  Modern structured analysis , 1989 .

[10]  Willy Zwaenepoel,et al.  Distributed process groups in the V Kernel , 1985, TOCS.

[11]  Giorgio Bruno,et al.  Operational Specification of Process Control Systems: Execution of PROT Nets using OPS5 , 1986, IFIP Congress.

[12]  Stephen S. Yau,et al.  A formal methodology using attributed grammars for multiprocessing-system software development I - Design representation , 1983, Inf. Sci..

[13]  Stephen S. Yau,et al.  PROOF: A Parallel Object-Oriented Functional Computation Model , 1991, J. Parallel Distributed Comput..

[14]  Stephen S. Yau,et al.  A formal methodology using attributed grammars for multiprocessing-system software development II - Validation , 1983, Inf. Sci..

[15]  Stephen S. Yau,et al.  An approach to software requirement specification , 1988, Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference.

[16]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[17]  D. Decouchant,et al.  A synchronization mechanism for typed objects in a distributed system , 1988, OOPSLA/ECOOP '88.

[18]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

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

[20]  Stephen S. Yau,et al.  An object-oriented approach to software development for parallel processing systems , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[21]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[22]  Narain H. Gehani,et al.  The concurrent C programming language , 1989 .

[23]  Stephen S. Yau,et al.  An approach to verification of communication in distributed computing system software , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[24]  Edward Yourdon,et al.  Structured design , 1975 .

[25]  Giorgio Bruno,et al.  Process-translatable Petri nets for the rapid prototyping of process control systems , 1986, IEEE Transactions on Software Engineering.

[26]  Pierre America,et al.  Inheritance and Subtyping in a Parallel Object-Oriented Language , 1987, ECOOP.

[27]  Stephen S. Yau,et al.  On Communication in the Design of Software Components of Distributed Computer Systems , 1982, ICDCS.

[28]  Joseph Sifakis,et al.  Use of Petri nets for performance evaluation , 1977, Acta Cybern..

[29]  Dennis G. Kafura,et al.  Inheritance in Actor Based Concurrent Object-Oriented Languages , 1989, Comput. J..

[30]  Mack W. Alford SREM at the Age of Eight; The Distributed Computing Design System , 1985, Computer.

[31]  James P. Huang Modeling of Software Partition for Distributed Real-Time Applications , 1985, IEEE Transactions on Software Engineering.

[32]  Stephen S. Yau,et al.  A partitioning algorithm for distributed software systems design , 1986, Inf. Sci..

[33]  S.S. Yau,et al.  Control flow analysis of distributed computing system software using structured Petri net model , 1988, [1988] Proceedings. Workshop on the Future Trends of Distributed Computing Systems in the 1990s.

[34]  Stephen S. Yau,et al.  Verification of Concurrent Control Flow in Distributed Computer Systems , 1988, IEEE Trans. Software Eng..

[35]  Ira R. Forman,et al.  Using Raddle to design distributed systems , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[36]  Douglas T. Ross,et al.  Applications and Extensions of SADT , 1985, Computer.

[37]  Gerald J. Popek,et al.  Transactions and synchronization in a distributed operating system , 1985, SOSP '85.

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