Declarative specification of the architecture of a software development environment

There is an increasing interest in the study of software architectures; however, it still unclear which kind of formalisms and techniques should be used in their design. We study the suitability of a rule‐based, parallel logic language in the specification of the architecture of a complex software system, i.e. a software development environment. We have used as a case study SMILE, an environment for programming‐in‐the‐large. Because of the declarative, concurrent and object‐oriented features of parallel logic programming, we have been able to design a software architecture that emphasizes the dynamics of co‐ordination inside the software development environment. The result of this experience shows the usefulness and some weaknesses of logic languages for specifying and prototyping the software architecture of a distributed interactive system.

[1]  Naftaly H. Minsky,et al.  Configuration management by consensus: an application of law-governed systems , 1990, SDE.

[2]  Akikazu Takeuchi,et al.  MANDELA: A LogicBased Knowledge Programming System , 1984, FGCS.

[3]  Anthony J. Kusalik,et al.  Secondary storage in a concurrent logic programming environment , 1990, J. Syst. Softw..

[4]  Wilhelm Schäfer,et al.  A Knowledge-Based Software Development Environment Supporting Cooperative Work , 1992, Int. J. Softw. Eng. Knowl. Eng..

[5]  Ehud Shapiro,et al.  The Logix system user manual version 1.21 , 1988 .

[6]  Martin S. Feather Constructing Specifications by Combining Parallel Elaborations , 1989, IEEE Trans. Software Eng..

[7]  Paolo Ciancarini,et al.  Towards innovative software engineering environments , 1991, J. Syst. Softw..

[8]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[9]  David Garlan,et al.  Formalizing Design Spaces: Implicit Invocation Mechanisms , 1991, VDM Europe.

[10]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

[11]  Narain H. Gehani,et al.  Specifications: Formal and informal—a case study , 1982, Softw. Pract. Exp..

[12]  Daniel G. Bobrow,et al.  Objects in concurrent logic programming languages , 1986, OOPSLA 1986.

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

[14]  Uwe Glässer,et al.  A Distributed Implementation of Flat Concurrent Prolog on Multi-Transputer Environments , 1991, ACPC.

[15]  Susan Stepney,et al.  Formal specification of an access control system , 1987, Softw. Pract. Exp..

[16]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[17]  Daniel G. Bobrow,et al.  Objects in Concurrent Logic Programming Languages , 1986, OOPSLA.

[18]  Benjamin Arazi,et al.  Using Flat Concurrent Prolog in System Modeling , 1991, IEEE Trans. Software Eng..

[19]  ZavePamela The operational versus the conventional approach to software development , 1984 .

[20]  Pamela Zave,et al.  The operational versus the conventional approach to software development , 1984, CACM.

[21]  Carroll Morgan,et al.  Specification of the UNIX Filing System , 1984, IEEE Transactions on Software Engineering.

[22]  Iain D. Craig Formal specification of advanced AI architectures , 1991, Ellis Horwood series in artificial intelligence.

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

[24]  Ian T. Foster Implementation of a declarative state‐transition system , 1989, Softw. Pract. Exp..

[25]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[26]  E. Shapiro,et al.  An architecture of a distributed window system and its FCP implementation , 1988 .

[27]  Ehud Shapiro,et al.  Concurrent PROLOG: Collected Papers , 1987 .

[28]  R.M. Baizer Living in the Next-Generation Operating System , 1987, IEEE Software.

[29]  Giorgio Levi,et al.  What is Logic Programming good for in Software Engineering? , 1993, Advances in Software Engineering and Knowledge Engineering.

[30]  Gail E. Kaiser,et al.  Models of software development environments , 1988, ICSE '88.

[31]  Roberto Bisiani,et al.  A tool to coordinate tools , 1988, IEEE Software.

[32]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[33]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[34]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.