A major goal of software engineering research is to develop techniques, methods and tools that may improve software quality. This thesis contributes to that goal.It is possible to assume two different views on quality as it relates to software products. In the external view, quality is determined based on how well a product performs in practise, i.e., maintainability and usability. In the internal view, quality is derived from attributes inherent in the software product, e.g., structural properties such as coupling, cohesion and size.Much research related to software quality models has focused on establishing relationships between structural properties and external quality attributes. The ultimate goal of this research is to develop quality prediction models, which may aid in making informed decisions concerning, for example, refactoring or program design.Regardless of the structural properties considered, most quality prediction models have so far been based on static analysis of source code or designs. Such models have proven to be fairly accurate on some occasions. However, in the context of object-oriented systems, static coupling measures may not always be accurate, thus resulting in unreliable prediction models. Due to polymorphism and dynamic binding, static coupling measures do not always reflect the actual coupling taking place between classes, as this can only be determined at run-time. In addition, static measurements of coupling may be inaccurate when obtained from systems containing "dead" code.In an attempt to overcome these problems, twelve dynamic coupling measures have been proposed. They differ from static coupling measures in that they are based on analysis of the actual messages exchanged between objects at run-time. The twelve measures are therefore referred to as "dynamic coupling measures". To collect the dynamic coupling measures, a tool called Jdissect was developed. Jdissect collects data from running Java programs to calculate dynamic coupling.There are three objectives for the investigation of the proposed coupling measures. The measures need to be theoretically validated, that is, one needs to assess their theoretical properties and validity as coupling measures. Furthermore, it is important to determine whether they provide data over and above what can be collected through static measures such as size and static coupling. Finally, to demonstrate practical usefulness of the dynamic coupling measures, they must be evaluated as predictors of external quality.In the case study presented in this thesis, the external quality attribute considered for the evaluation is change proneness, which is an indirect measure of software maintainability. taught me a lot. Furthermore, the opportunity to take part and assist in his research inspired me to no end.I also wish to thank Lionel Briand for his help and for some very interesting discussions during the course of this project.Additionally, there are a number of people who have provided assistance by taking the time to read and debate my thesis. I...