A Logic-Based Framework for Reasoning Support in Software Evolution

Software development has been acknowledged as a complicated problem-solving activity done in a complex, multi-dimensional space. People actively involved in software development need support in understanding and documenting not only the description of the software developed, but also the problem domain and the reasons behind decisions taken during evolution. Development methods do not provide such support, and researchers begin to explore the recording of reasoning in specific phases of software evolution. Several data models have been presented, aiming to support developers by maintaining a repository of deliberation elements of decisions taken during development; these models are usually supported by a special CASE tool that can be classified as a Software decision management system. Using experience gained in the development of large-scale applications in an industrial environment, and experimenting with prototype software design decision management systems, we introduce PROFILE, a conceptual logic-based meta-model that integrates software evolution process modelling with deliberation representation and decision factors. PROFILE enhances existing models by providing support throughout the whole software evolution, by capturing assumptions as real-world reasoning elements, and by maintaining a Knowledge Base of decision-making factors. A prototype Software Evolution Decision Support System based on an instance of PROFILE is also presented in this paper.

[1]  Meir M. Lehman,et al.  Software engineering, the software process and their support , 1991, Softw. Eng. J..

[2]  John J. Leggett,et al.  Using an Issue-Based Hypertext System to Capture the Software Life-Cycle Process , 1990, Hypermedia.

[3]  Jawed I. A. Siddiqi,et al.  Use of a Blackboard Framework to Model Software Design , 1990 .

[4]  Kurt Maly,et al.  A SOFTWARE DEVELOPMENT AND EVOLUTION MODEL BASED ON DECISION-MAKING , 1991 .

[5]  Michael L. Begeman,et al.  gIBIS: a hypertext tool for exploratory policy discussion , 1988, CSCW '88.

[6]  Pranas Zunde,et al.  Empirical Foundations of Information and Software Science III , 1987, Springer US.

[7]  Yishai A. Feldman,et al.  Seven Layers of Knowledge Representation and Reasoning in Support of Software Development , 1992, IEEE Trans. Software Eng..

[8]  Gerhard Fischer,et al.  Supporting Software Designers with Integrated Domain-Oriented Design Environments , 1992, IEEE Trans. Software Eng..

[9]  M.M. Lehman,et al.  Programs, life cycles, and laws of software evolution , 1980, Proceedings of the IEEE.

[10]  Vasant Dhar,et al.  Supporting Systems Development by Capturing Deliberations During Requirements Engineering , 1992, IEEE Trans. Software Eng..

[11]  Guillermo Arango,et al.  A process for consolidating and reusing design knowledge , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[12]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[13]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[14]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[15]  Matthias Jarke,et al.  A decision based configuration process environment , 1991, Softw. Eng. J..

[16]  Patrick Henry Winston,et al.  Artificial intelligence at MIT: expanding frontiers , 1991 .

[17]  Jintae Lee,et al.  Extending the Potts and Bruns model for recording design rationale , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[18]  Colin Potts,et al.  Recording the reasons for design decisions , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.