Identifying and Checking Component Structures in Object-Oriented Programs
Software components are an often-postulated concept to cope with the complexity and costs of large software. Components allow modularisation of software, foster reuse of functionality and in turn reduce costs of software development. By using components, one can achieve a more abstract and clearer model of software. We conceive that small or medium-size programs can also benefit from the advantages inherent to components. However, Java as a prominent object-oriented programming language provides little support to cater for software components. This thesis demonstrates how one can identify components in Java programs as types and objects with state. Analysing the interconnection of components facilitates a component-oriented view on programs by concentrating on the components as the principle program elements. We provide mechanisms to employ and validate components in Java programs in form of analysis and monitoring tools for the presented concepts. We evaluate our component constructs on the Java library and on the open-source tool Sat4J, showing the benefits of identifying components in object-oriented programs.