A Logic Programming Framework for Component-Based Software Prototyping

The paper presents CaseLP, a logic-based prototyping environment for specifying and verifying complex distributed applications. CaseLP provides a set of languages for modeling intelligent and interacting components (agents) at different levels of abstraction. It also furnishes tools for integrating legacy software into a prototype. The possibility of integrating, into the same executable prototype, agents which are only specified as well as already developed components can prove extremely useful in the engineering process of complex applications. In fact, the reusability of existing components can be verified before the application has been implemented and the developer can be more confident on the correctness of the new components specification, if it has been executed and tested by means of an interaction with the existing components. Besides the aspects of integration and reuse, CaseLP also faces another fundamental issue of nowadays applications, namely distribution. The components which constitute the prototype are logically distributed. The features of the network (latency and reliability of the communication channels between agents) can be set by the prototype developer, thus allowing a realistic simulation of a physically distributed application. 1 Software Development Challenges Despite thirty years of research and experience and many successful results, software systems are still difficult to engineer to guarantee correctness and reliability. This is particularly true for distributed systems, where a set of entities have to cooperate and coordinate for exchanging information coming from diverse existing sources. Hence, integration and reusing of different kinds of information and software tools is an urgent necessity that new software products have to face. The agent-oriented paradigm [?, ?] is an emerging technology which allows a high level model of applications in which many autonomous, intelligent and interacting entities (a Multi-Agent System or MAS) cooperate to achieve a common goal or compete to satisfy personal needs. We assume a loose “declarative” definition that an agent is an autonomous, social, reactive and proactive piece of software that provides some services and is able to communicate with other agents using a common agent communication language. Our interest in intelligent agents is driven by the firm belief that they can be profitably adopted in building prototypes where existing components coexist with components which are only specified. A prototype of this kind should prove extremely useful for two reasons. • The problem of testing the behavior of already developed software when used for a purpose different from its original one, is fundamental in order to decide if the software can be easily reused or not. If a prototype for a new application is developed and the existing software is

[1]  Viviana Mascardi,et al.  Applying Logic Programming to the Specification of Complex Applications , 1997, APPIA-GULP-PRODE.

[2]  Dale Miller,et al.  Forum: A Multiple-Conclusion Specification Logic , 1996, Theor. Comput. Sci..

[3]  Jeff Kramer,et al.  Distributed software engineering , 1994, Proceedings of 16th International Conference on Software Engineering.

[4]  Viviana Mascardi,et al.  1 Logic Programming & Multi-Agent Systems : a Synergic Combination for Applications and Semantics , 2012 .

[5]  Nicholas R. Jennings,et al.  Intelligent agents: theory and practice , 1995, The Knowledge Engineering Review.

[6]  Viviana Mascardi,et al.  Combining logical agents with rapid prototyping for engineering distributed applications , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

[7]  Michael R. Genesereth,et al.  Software agents , 1994, CACM.

[8]  Anil Nerode,et al.  Hybrid Knowledge Bases , 1996, IEEE Trans. Knowl. Data Eng..

[9]  Viviana Mascardi,et al.  Multi-agent Systems Development as a Software Engineering Enterprise , 1999, PADL.

[10]  Timothy W. Finin,et al.  Evaluation of KQML as an Agent Communication Language , 1995, ATAL.

[11]  Balakrishnan Chandrasekaran,et al.  What are ontologies, and why do we need them? , 1999, IEEE Intell. Syst..

[12]  Viviana Mascardi,et al.  Agent-Oriented and Constraint Technologies for Distributed Transaction Management , 1999, IIA/SOCO.

[13]  Leon Sterling,et al.  On the Animation of "not Executable" Specifications by Prolog , 1996, Int. J. Softw. Eng. Knowl. Eng..

[14]  Hyacinth S. Nwana,et al.  Research and Development Challenges for Agent-Based Systems , 1996 .

[15]  Robert A. Kowalski,et al.  Towards a Unified Agent Architecture that Combines Rationality with Reactivity , 1996, Logic in Databases.

[16]  Viviana Mascardi,et al.  An Agent-Based Prototype for Freight Trains Traffic Management , 2012 .

[17]  Leon Sterling,et al.  Designing Ontologies for Agents , 1999, APPIA-GULP-PRODE.

[18]  Amy L. Lansky,et al.  Reactive Reasoning and Planning , 1987, AAAI.

[19]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[20]  Viviana Mascardi,et al.  Specification and Simulation of Multi-Agent Systems in CaseLP , 1999, APPIA-GULP-PRODE.

[21]  Viviana Mascardi,et al.  Logic Programming and Multi-Agent Systems: A Synergic Combination for Applications and Semantics , 1999, The Logic Programming Paradigm.

[22]  Victor W. Marek,et al.  The Logic Programming Paradigm: A 25-Year Perspective , 2011 .