Fr. 165.60

A Knowledge-Based Approach to Program Understanding

English · Hardback

Shipping usually within 3 to 5 weeks (title will be specially ordered)

Description

Read more

Program understanding plays an important role in nearly all software related tasks. It is vital to the development, maintenance and reuse activities. Program understanding is indispensable for improving the quality of software development. Several development activities such as code reviews, debugging and some testing approaches require programmers to read and understand programs. Maintenance activities cannot be performed without a deep and correct understanding of the component to be maintained. Program understanding is vital to the reuse of code components because they cannot be utilized without a clear understanding of what they do. If a candidate reusable component needs to be modified, an understanding how it is designed is also required. of This monograph presents a· knowledge-based approach to the automation of program understanding. This approach generates rigorous program documentation mechanically by combining and building on strengths of a practical program decomposition method, the axiomatic correctness notation, and the knowledge based analysis approaches. More specifically, this approach documents programs by generating first order predicate logic annotations of their loops. In this approach, loops are classified according to their complexity levels. Based on this taxonomy, variations on the basic analysis approach that best fit each of the different classes are described. In general, mechanical annotation of loops is performed by first decomposing them using data flow analysis. This decomposition encapsulates interdependent statements in events, which can be analyzed individually.

List of contents

1 Introduction.- 1.1 Research Goals.- 1.2 Research Approach.- 1.3 Outline.- 2 Background.- 2.1 Loop Analysis.- 2.2 Program Analysis and Understanding.- 3 Overview and Basic Definitions.- 3.1 Definitions.- 3.2 A Loop Taxonomy.- 4 Analysis of Flat Loops.- 4.1 Normalization of the Loop Representation.- 4.2 Decomposition of the Loop Body.- 4.3 Formation of the Loop Events.- 4.4 A Knowledge Base of Plans.- 4.5 Analysis of the Events.- 5 Analysis of Nested Loops.- 5.1 Definitions.- 5.2 Analysis of Inner Loops.- 5.3 Representation of Inner Loops Analysis Results.- 5.4 Analysis of Outer Loops.- 5.5 Adaptation of Inner Loops Specifications.- 6 Discussion of the Analysis Approach.- 7 Case Study.- 7.1 Objectives.- 7.2 Method.- 7.3 Results and Analysis.- 8 Prototype Implementation.- 8.1 Design.- 8.2 Operation.- 9 Applications.- 9.1 Assisting Maintenance and Reuse.- 9.2 Assisting Formal Development.- 10 Conclusions.- 10.1 Summary of Approach.- 10.2 Observations.- 10.3 Future Work.- References.

Summary

Program understanding plays an important role in nearly all software related tasks. This approach generates rigorous program documentation mechanically by combining and building on strengths of a practical program decomposition method, the axiomatic correctness notation, and the knowledge based analysis approaches.

Product details

Authors Salwa Abd-El-Hafiz, Salwa K Abd-El-Hafiz, Salwa K. Abd-El-Hafiz, Victor R Basili, Victor R. Basili
Publisher Springer, Berlin
 
Languages English
Product format Hardback
Released 24.02.2011
 
EAN 9780792396055
ISBN 978-0-7923-9605-5
No. of pages 119
Dimensions 156 mm x 234 mm x 9 mm
Weight 422 g
Illustrations XVII, 119 p.
Series The Springer International Series in Engineering and Computer Science
Evaluation in Education and Hu
The Springer International Series in Engineering and Computer Science
Evaluation in Education and Hu
The Springer International Eng
Subject Natural sciences, medicine, IT, technology > IT, data processing > IT

Customer reviews

No reviews have been written for this item yet. Write the first review and be helpful to other users when they decide on a purchase.

Write a review

Thumbs up or thumbs down? Write your own review.

For messages to CeDe.ch please use the contact form.

The input fields marked * are obligatory

By submitting this form you agree to our data privacy statement.