Title

Performance modeling and analysis of object oriented software systems

Date of Completion

January 2005

Keywords

Computer Science

Degree

Ph.D.

Abstract

Object Oriented systems bring new issues in software engineering, including the support for distributed information systems. Pairing distributed systems with object paradigms results in a distributed object paradigm. Choosing the most efficient distributed object design is a multi-criteria decision problem. Performance is a key criterion that allows software developers to be able to select the object-oriented design that best fits their requirements and hardware limitations. However, investigating and evaluating the performance of Distributed Object Oriented (DOO) systems is a challenge due to the complexity of interactions among objects. Classical techniques and methodologies of performance analysis are either unsuitable or unnatural to capture the performance behavior of object-oriented systems while preserving object-oriented characteristics. ^ In this thesis, we investigate this problem and develop analytical models to study the performance of OO software that runs on single-node, distributed systems or pipeline architecture. We also develop a methodology to analyze and evaluate each model. The methodologies include: software computation, communication activities among objects, and object updating in case of the distributed environment. ^ The developed performance models can be integrated with the design phase to enable the software engineer to explore software restructuring, allocation alternatives partitioning or scheduling methodologies. ^ In many cases, the initial OO software does not have the best class distribution and may require restructuring. In this research, we utilize the performance-based model and the evaluation methodology to develop two new restructuring techniques; one for distributed object oriented systems and the other for software that runs on a pipelined architecture. The new techniques will efficiently restructure the OO software, fully exploit the system resources, and hence obtain better performance. ^