Hostname: page-component-78c5997874-j824f Total loading time: 0 Render date: 2024-11-05T10:59:46.178Z Has data issue: false hasContentIssue false

An overview of declarative process modelling using logic programming

Published online by Cambridge University Press:  07 July 2009

Paolo Ciancarini
Affiliation:
Dip. di Scienze dell'Informazione, University of Bologna, Italy. Email: [email protected]

Abstract

Software process modelling is the activity of formalising the production lifecycle of large software systems. Its aim is to formally describe a software development process, which is then effectively used and possibly enacted by an environment able to support the geographically distributed and coordinated activities involved in the process itself. I show that rule-based languages, especially logic programming languages, are an important technology for the specification, modelling, enactment and coordination of software processes. This is because most routine activities in any development process can be defined by rules. Some initial proposals aimed at simply simulating the software process by a Prolog-like program embedding some development rules. A further step toward the integration of rule-based languages in the software process has been taken 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-centred development environments. I show how some rule-based coordination language have been used to build an environment of this kind.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1996

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Ambriola, V, Ciancarini, P and Corradini, A, 1995. “Declarative specifications of the architecture of a software development environmentSoftware: Practice and Experience 25(2) 143174.Google Scholar
Ambriola, V, Ciancarini, P and Montangero, C, 1990. “Enacting software processes in OikosProceedings ACM SIGSOFT Conference on Software Development Environments. (ACM SIGSOFT Software Engineering Notes, 15(6) 1223.)Google Scholar
Ambriola, V and Montangero, C, 1992a. “Modeling the software development process”, In: Ambriola, V and Tortora, G (eds.), Advances in Software Engineering and Knowledge Engineering, 4172, World Scientific.Google Scholar
Ambriola, V and Montangero, C, 1992b. “Oikos at the age of three”, In: Derniame, J. (ed.), Proceedings 2nd European Workshop on the Software Process Technology: Lecture Notes in Computer Science 635, 8493. Trondheim, Norway. Springer-Verlag.CrossRefGoogle Scholar
Armenise, P, Bandinelli, S, Ghezzi, C and Morzenti, A, 1993. “A survey on assessment of software process representation formalismsInternational Journal on Software Engineering and Knowledge Engineering 3(3) 401426.CrossRefGoogle Scholar
Bandinelli, S, Fuggetta, A and Ghezzi, C, 1993. “Software process model evolution in the SPADE environmentIEEE Transactions on Software Engineering 19(12) 11281144.CrossRefGoogle Scholar
Barghouti, N, 1992. “Supporting cooperation in the Marvel process centered SDEProceedings 5th ACM SIGSOFT Conference on Software Development Environments. (ACM SIGSOFT Software Engineering Notes 17(5) 2131.)CrossRefGoogle Scholar
Barghouti, N and Kaiser, G, 1990. “Modeling concurrency in rule-based development environmentsIEEE Expert 5(6) 1527.CrossRefGoogle Scholar
Barghouti, N and Kaiser, G, 1992. “Scaling up rule-based software development environmentsInternational Journal on Software Engineering and Knowledge Engineering 2(1) 5978.CrossRefGoogle Scholar
Ben-Shaul, I, Kaiser, G and Heineman, G, 1992. “An architecture for multi-user software development environmentsProceedings 5th ACM SIGSOFT Conference on Software Development Environments. (ACM SIGSOFT Software Engineering Notes 17(5) 149158.)CrossRefGoogle Scholar
Castellani, S, Ciancarini, P and Rossi, D, 1996. “The ShaPE of ShaDE: a coordination system” Technical Report UBLCS 96−5, Dipartimento di Scienze dell'Informazione, Università di Bologna, Italy.Google Scholar
Chen, X and Montangero, C, 1995. “Compositional refinements in multiple blackboard systemsActa Informatica 32(5) 415458.CrossRefGoogle Scholar
Christie, A, 1995. Software Process Automation, Springer-Verlag.CrossRefGoogle Scholar
Ciancarini, P, 1993. “Coordinating rule-based software processes with ESPACM Transactions on Software Engineering and Methodology 2(3) 203227.CrossRefGoogle Scholar
Ciancarini, P and Levi, G, 1992. “What is logic programming good for in software engineering?” In: Ambriola, V and Tortora, G (eds.), Advances in Software Engineering and Knowledge Engineering 109134. World Scientific.Google Scholar
Conradi, R, Jaccheri, M, Mazzi, C, Aarsten, A and Nguyen, N, 1992. “Design, use and implementation of SPELL, a language for software process modeling and evolution” Proceedings European Workshop on the Software Process: Lecture Notes in Computer Science 635, 167177. Trondheim, Norway. Springer-Verlag.Google Scholar
Cugola, G, Nitto, ED, Ghezzi, C and Mantione, M, 1995. “How to deal with deviations during process model enactment” Proceedings 17th International Conference on Software Engineering (ICSE 17) Seattle, WA.Google Scholar
Curtis, B, Kellner, M and Over, J, 1992. “Process modelingCommunications of the ACM 35(9) 7590.CrossRefGoogle Scholar
Garg, P, Pham, T, Beach, B, Deshpande, A, Ishizaki, A, Wentzel, K and Fong, W, 1994. “Matisse: a knowledge-based team programming environmentInternational Journal on Software Engineering and Knowledge Engineering 4(1) 1759.CrossRefGoogle Scholar
Heimbigner, D, 1989. “P4: a logic language for process programming” Proceedings 5th International Software Process Workshop Kennebunkport, Maine.Google Scholar
Huff, K and Lesser, V, 1988. “A plan-based intelligent assistant that supports the software development processProceedings 3rd ACM SIGSOFT Symposium on Software Development Environments (ACM SIGSOFT Software Engineering Notes 13(5) 97106.)CrossRefGoogle Scholar
Jaccheri, M and Conradi, R, 1993. “Techniques for process model evolution in EPOSIEEE Transactions on Software Engineering 19(12) 11451156.CrossRefGoogle Scholar
Kaiser, G, Popovich, S, and Ben-Shaul, I, 1993. “A bi-level language for software process modeling” Proceedings 15th International Conference on Software Engineering 132143, Baltimore, MD.Google Scholar
Katayama, T, 1989. “A hierarchical and functional software process description and its enaction” Proceedings 11th IEEE International Conference on Software Engineering 343–252, Pittsburgh, PA.CrossRefGoogle Scholar
Kellner, M, Feiler, P, Finkelstein, A, Katayama, T, Osterweil, L, Penedo, M and Rombach, D, 1991. “ISPW-6 software process example” In: Dowson, M, (ed.), Proceedings 1st International Conference on the Software Process 176186, Redondo Beach, CA.CrossRefGoogle Scholar
Kishida, K et al. , 1988. “A novel approach to software environment design and construction” Proceedings 10th International Conference on Software Engineering 6979, Singapore.Google Scholar
Kraut, R and Streeter, L, 1995. “Coordination in software developmentCommunications of the ACM 38(3) 6981.CrossRefGoogle Scholar
Liu, L and Horowitz, E, 1989. “A formal model for software project managementIEEE Transactions on Software Engineering 15(10) 12801293.Google Scholar
Mi, P and Scacchi, W, 1990. “A knowledge-based environment for modeling and simulating software engineering processesIEEE Transactions on Knowledge and Data Engineering 2(3) 283294.CrossRefGoogle Scholar
Minsky, N and Rozenshtein, D, 1990. “Configuration management by consensus: an application of law-governed systems” In: Taylor, R, (ed.), Proceedings 4th ACM SIGSOFT Symposium on Software Development Environments. (ACM SIGSOFT Software Engineering Notes 15(6) 4455.)CrossRefGoogle Scholar
Montangero, C and Scarselli, F, 1994. “Software process monitoring mechanisms in OikosInternational Journal on Software Engineering and Knowledge Engineering 4(4) 481499.CrossRefGoogle Scholar
Nguyen, M and Conradi, R, 1994. “Spell: a logic programming language for process modelling” In: Ciancarini, P and Sterling, L, (eds.), Proceedings ICLP Workshop on Logic Programming and Software Engineering S. Margherita Ligure, Italy.Google Scholar
Nii, H, 1986. “Blackboard systems: the blackboard model of problem solving and the evolution of blackboard architecture” The Al Magazine 38106, Summer.Google Scholar
Ohki, A and Ochimizu, K. 1989. “Process programming with PrologProceedings ACM Software Process Workshop. (ACM SIGSOFT Software Engineering Notes 14(4) 118121.)Google Scholar
Osterweil, L, 1987. “Software processes are software too” Proceedings 9th IEEE International Conference on Software Engineering 213.CrossRefGoogle Scholar
Peuschel, B, Schaefer, W and Wolf, S, 1992. “A knowledge-based software development environment supporting cooperative workInternational Journal on Software Engineering and Knowledge Engineering 2(1) 79106.CrossRefGoogle Scholar
Song, X and Osterweil, L, 1994. “Experience with an approach to comparing software design methodologiesIEEE Transactions on Software Engineering 20(5) 364384.CrossRefGoogle Scholar
Sutton, S, Ziv, H, Heimbigner, D, Yessayan, H, Maybee, M, Osterweil, L and Song, X, 1991. “Programming a software requirements specification process” Proceedings 1st International Conference on the Software Process, Redondo Beach, CA.Google Scholar
Welzel, D, 1993. “A rule-based process representation technique for software process evaluationInformation and Software Technology 35(10) 603610.CrossRefGoogle Scholar