Previous [1] [2] [3] [4] [5] [6] [7] [8]

Journal of Inforamtion Science and Engineering, Vol. 16, No. 4, pp. 619-647 (July 2000)

Flow Analysis of Class Relationships for
Object-Oriented Programs

Jiun-Liang Chen and Feng-Jian Wang
Department of Computer Science and Information Engineering
National Chiao Tung University
Hsinchu, Taiwan 300, R.O.C.

Program analysis techniques have been widely applied in various fields of software engineering, such as debugging, testing, and proof of simple correctness properties. In object-oriented (OO) programs, inheritance, association, and aggregation relationships may introduce complicated dependencies concealed within classes that might obstruct program analysis. This paper proposes a class relationship flow models to provide analysis for inheritance, association, and aggregation of class relationships. The flow model consists of three flows, inheritance, association, and aggregation flows, corresponding to these relationships. A sequence of class relationships is represented as a flow path from one class to another. Along a flow path, each member within a class is associated with an operation, define or use, to represent whether its status is changed or referenced. Thereby, the concealed dependencies introduced by class relationships can be analyzed according to the flow operations. The analysis might be used as a technique for program understanding, anomaly detection, and program testing.

Keywords: program analysis, class relationship, object-oriented, software engineering, program dependence graph

Full Text () Retrieve PDF document (200007_06.pdf)

Received December 17, 1997; revised April 13, 1998; accepted August 20, 1998.
Communicated by Y. S. Kuo.