Skip Navigation

The Computer Journal 1985 28(5):487-495; doi:10.1093/comjnl/28.5.487
© 1985 by British Computer Society
This Article
Right arrow Full Text (PDF)
Right arrow Alert me when this article is cited
Right arrow Alert me if a correction is posted
Services
Right arrow Email this article to a friend
Right arrow Similar articles in this journal
Right arrow Similar articles in ISI Web of Science
Right arrow Alert me to new issues of the journal
Right arrow Add to My Personal Archive
Right arrow Download to citation manager
Right arrow Search for citing articles in:
ISI Web of Science (6)
Right arrowRequest Permissions
Google Scholar
Right arrow Articles by Markusz, Z.
Right arrow Articles by Kaposi, A. A.
Right arrow Search for Related Content
Social Bookmarking
 Add to CiteULike   Add to Connotea   Add to Del.icio.us  
What's this?

Complexity Control in Logic-based Programming

Z. Markusz1 * and A. A. Kaposi2 §

1 The University of Calgary, Department of Computer Science, Calgary, Alberta, Canada, T2N 1N4, 2 Polytechnic of the South Bank, Department of Electrical and Electronic Engineering, Borough Road, London, UK, SE1 0AA

There is growing awareness of the high risk and excessive cost of poor-quality software design. The problem is especially critical in complex programs where design errors are most frequently committed, and latent errors are particularly difficult to diagnose and correct.21 The origin of this ‘software crisis’ lies in the late realisation that there is much more to good software design than knowledge of a programming language. Structured programming and the various software design methodologies seek to control software quality by imposing a discipline on the designer which controls the complexity of design tasks and supplements the rules of the programming language.

This paper outlines the process of evolving a complexity-controlling software design methodology, based on the general principles of sound engineering design, but devised particularly for logic-based programming. It reports on experience with the use of the methodology16, 27, 30, 5, 31 and compares the complexity properties of programs designed using different methods.

An example is given to show how complexity control may also be achieved retrospectively, or in the course of software maintenance. The procedure is to measure the complexity parameters of a finished program, identifying its most complex parts; these are then reconstructed as hierarchical structures of simple autonomous components, while maintaining functional equivalence.

Based on experience, the paper proposes further refinements of the well-tried complexity measures, suggesting the next stage of evolution of the complexity-controlling methodology for logic-based programming.

Finally, the paper proposes areas for further research into complexity control and its applications to logic-based programming.



* The University of Calgary, Department of Computer Science, Calgary, Alberta, Canada, T2N 1N4.

§ Polytechnic of the South Bank, Department of Electrical and Electronic Engineering, Borough Road, London, England SE1 0AA.


Add to CiteULike CiteULike   Add to Connotea Connotea   Add to Del.icio.us Del.icio.us    What's this?




Disclaimer: Please note that abstracts for content published before 1996 were created through digital scanning and may therefore not exactly replicate the text of the original print issues. All efforts have been made to ensure accuracy, but the Publisher will not be held responsible for any remaining inaccuracies. If you require any further clarification, please contact our Customer Services Department.