Distributed software engineering

The term "distributed software engineering" is ambiguous. It includes both the engineering of distributed software and the process of distributed development of software, such as cooperative work. This paper concentrates on the former, giving an indication of the special needs and rewards in distributed computing. In essence, we argue that the structure of these systems as interacting components is a blessing which forces software engineers towards compositional techniques which offer the best hope for constructing scalable and evolvable systems in an incremental manner. We offer some guidance and recommendations as to the approaches which seem most appropriate, particularly in languages for distributed programming, specification and analysis techniques for modeling and distributed paradigms for guiding design.<<ETX>>

[1]  Amir Pnueli,et al.  Applications of Temporal Logic to the Specification and Verification of Reactive Systems: A Survey of Current Trends , 1986, Current Trends in Concurrency.

[2]  Michel Raynal,et al.  Distributed algorithms and protocols , 1988 .

[3]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[4]  Sol M. Shatz,et al.  Tutorial: Distributed-Software Engineering , 1989 .

[5]  Morris Sloman,et al.  Distributed systems and computer networks , 1987, Prentice Hall International series in computer science.

[6]  Edmund M. Clarke Automatic verification of finite-state concurrent systems , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[7]  Hassan Gomaa Software design methods for concurrent and real-time systems , 1993, SEI series in software engineering.

[8]  Stanislaw Budkowski,et al.  An Introduction to Estelle: A Specification Language for Distributed Systems , 1987, Comput. Networks.

[9]  Dov M. Gabbay,et al.  Inconsistency Handling in Multi-Perspective Specifications , 1993, ESEC.

[10]  Michael Jackson,et al.  Conjunction as composition , 1993, TSEM.

[11]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[12]  Michael B. Jones,et al.  Matchmaker: an interface specification language for distributed processing , 1985, POPL.

[13]  Gérard Roucairol,et al.  On the distribution of an assertion , 1982, PODC '82.

[14]  Richard F. Rashid From RIG to Accent to Mach: An Evolution of a Network Operating System , 1986, FJCC.

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

[16]  Richard D. Schlichting,et al.  Facilitating Mixed Language Programming in Distrbuted Systems , 1987, IEEE Transactions on Software Engineering.

[17]  Morris Sloman,et al.  Configuring object-based distributed programs in REX , 1992, Softw. Eng. J..

[18]  Mahadev Satyanarayanan,et al.  Andrew: a distributed personal computing environment , 1986, CACM.

[19]  Fred B. Schneider What good are models and what models are good , 1993 .

[20]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[21]  Jayadev Misra Loosely-Coupled Processes , 1991, PARLE.

[22]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[23]  Daniel E. Geer,et al.  Project Athena as a distributed computer system , 1990, Computer.

[24]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[25]  Fred B. Schneider,et al.  Byzantine generals in action: implementing fail-stop processors , 1984, TOCS.

[26]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[27]  José Legatheaux Martins,et al.  The CHORUS Distributed Operating System: Some Design Issues , 1987 .

[28]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[29]  Kenneth P. Birman,et al.  The process group approach to reliable distributed computing , 1992, CACM.

[30]  R. C. B. Cooper,et al.  Preserving Abstraction in Concurrent Programming , 1988, IEEE Trans. Software Eng..

[31]  Robin Milner,et al.  The Polyadic π-Calculus: a Tutorial , 1993 .

[32]  Dov M. Gabbay,et al.  The Declarative Past and Imperative Future: Executable Temporal Logic for Interactive Systems , 1987, Temporal Logic in Specification.

[33]  Anthony Finkelstein,et al.  A Configurable Framework for Method and Tool Integration , 1991, Software Development Environments and CASE Technology.

[34]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[35]  William E. Weihl,et al.  Specifications of concurrent and distributed systems , 1993 .

[36]  Dov M. Gabbay,et al.  Inconsistency Handling in Multperspective Specifications , 1994, IEEE Trans. Software Eng..

[37]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[38]  Peter Van Eijk Software Tools for the Specification Language LOTOS , 1988 .

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

[40]  Shing-Chi Cheung,et al.  An integrated method for effective behaviour analysis of distributed systems , 1994, Proceedings of 16th International Conference on Software Engineering.

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

[42]  Jeff Magee,et al.  Dynamic Configuration for Distributed Systems , 1985, IEEE Transactions on Software Engineering.

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

[44]  Kevin Hughes,et al.  Entering the world-wide web: a guide to cyberspace , 1994, LINK.

[45]  Morris Sloman,et al.  Constructing Distributed Systems in Conic , 1989, IEEE Trans. Software Eng..

[46]  LamportLeslie Time, clocks, and the ordering of events in a distributed system , 1978 .

[47]  Morris Sloman,et al.  The System Architect's Assistant for design and construction of distributed systems , 1993, 1993 4th Workshop on Future Trends of Distributed Computing Systems.

[48]  Shing-chi Cheung,et al.  Tractable and Compositional Techniques for Behaviour Analysis of Concurrent Systems , 1994 .

[49]  Jeff Kramer Configuration programming-a framework for the development of distributable systems , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[50]  Anthony Finkelstein,et al.  ViewPoint Oriented Software Development , 1990 .

[51]  Gregory R. Andrews,et al.  An overview of the SR language and implementation , 1988, TOPL.

[52]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

[53]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[54]  Mario Barbacci,et al.  Durra: a structure description language for developing distributed applications , 1993, Softw. Eng. J..

[55]  Sol M. Shatz,et al.  Distributed-Software Engineering , 1989 .