Modeling the software process using coordination rules

Software Process Modeling is the activity of formalizing the production lifecycle of software systems. The aim is to formally describe a software development process, that then is effectively used and possibly enacted by an environment. We show that rule-based languages, especially logic programming languages, are an important technology for software process specification, modeling, enactment, and coordination. Because several process activities can be defined by rules. Some initial proposals aimed at animating a software process by a rule-based program embedding some development rules. A further step toward the integration of rule-based languages in the software process has be done using a dynamic knowledge base as project database, and a number of special primitives have been introduced to support process programs. Currently there is a trend toward more complex programming environments, called process-centered development environments. We show how some rule-based coordination languages are being used to build this kind of environment.

[1]  Takuya Katayama,et al.  A hierarchical and functional software process description and its enaction , 1989, ICSE '89.

[2]  H. Penny Nii,et al.  Blackboard systems: the blackboard model of problem solving and the evolution of blackboard architectures , 1995 .

[3]  Victor R. Lesser,et al.  A plan-based intelligent assistant that supports the software development , 1989, SDE 3.

[4]  Leon J. Osterweil,et al.  ISPW-6 Software Process Example , 1991, Proceedings. First International Conference on the Software Process,.

[5]  Paolo Ciancarini,et al.  Declarative specification of the architecture of a software development environment , 1995, Softw. Pract. Exp..

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

[7]  Reidar Conradi,et al.  Techniques for Process Model Evolution in EPOS , 1993, IEEE Trans. Software Eng..

[8]  V. Stenning,et al.  On the role of an environment , 1987, ICSE '87.

[9]  Carlo Ghezzi,et al.  Solfware process model evolution in the SPADE environment : The evolution of software processes , 1993 .

[10]  Reidar Conradi,et al.  Design, Use and Implementation of SPELL, a language for Software Process Modelling and Evolution , 1992, EWSPT.

[11]  Gail E. Kaiser,et al.  Modeling concurrency in rule-based development environments , 1990, IEEE Expert.

[12]  Paolo Ciancarini,et al.  Coordinating rule-based software processes with ESP , 1993, TSEM.

[13]  Axel van Lamsweerde,et al.  Generic Lifecycle Support in the ALMA Environment , 1988, IEEE Trans. Software Eng..

[14]  Alan M. Christie Process-Centered Development Environments: An Exploration of Issues , 1993 .

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

[16]  Leon J. Osterweil,et al.  Software processes are software too , 1987, ISPW.

[17]  Dennis Heimbigner P/sup 4/: A Logic Language For Process Programming , 1989, [1989] Proceedings of the 5th International Software Process Workshop.

[18]  Vincenzo Ambriola,et al.  OIKOS at the Age of Three , 1992, EWSPT.

[19]  Carlo Ghezzi,et al.  A Survey and Assessment of Software Process Representation Formalisms , 1993, Int. J. Softw. Eng. Knowl. Eng..

[20]  Penny Nii The blackboard model of problem solving , 1986 .

[21]  Guy Juanole,et al.  Specification and verification of distributed systems using prolog interpreted petri nets. , 1984, ICSE '84.

[22]  Gail E. Kaiser,et al.  Scaling up Rule-Based Software Development Environments , 1992, Int. J. Softw. Eng. Knowl. Eng..

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

[24]  Gail E. Kaiser,et al.  Intelligent assistance for software development and maintenance , 1988, IEEE Software.

[25]  Koji Torii,et al.  SDA: a novel approach to software environment design and construction , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[26]  Dieter Welzel,et al.  A rule-based process representation technique for software process evaluation , 1993, Inf. Softw. Technol..

[27]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[28]  Ellis Horowitz,et al.  A Formal Model for Software Project Management , 1989, IEEE Transactions on Software Engineering.

[29]  H. Penny Nii,et al.  Blackboard Systems, Part One: The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures , 1986, AI Mag..

[30]  Bill Curtis,et al.  Process modeling , 1992, CACM.

[31]  Vincenzo Ambriola,et al.  Modeling the Software Development Process , 1993, Advances in Software Engineering and Knowledge Engineering.

[32]  Dennis Heimbigner,et al.  Programming a Software Requirements-Specification Process , 1991, Proceedings. First International Conference on the Software Process,.

[33]  Walt Scacchi,et al.  A Knowledge-Based Environment for Modeling and Simulating Software Engineering Processes , 1990, IEEE Trans. Knowl. Data Eng..

[34]  Koichiro Ochimizu,et al.  Process programming with Prolog , 1988, ISPW '88.

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

[36]  Paolo Ciancarini,et al.  Software process enactment in Oikos , 1990, SDE.