Automating Object-Oriented Design Heuristics for .NET Programs
Degree GrantorUniversity of Canterbury
Software size and complexity are major factors that contribute to the difficulty of software development. These factors, along with the intangible nature of software, make it challenging for developers to analyse the quality of their systems. Object Oriented design heuristics have been recognised as an informal, yet effective method for establishing whether or not a particular design feels right. In our research, we investigate the ability to automate the analysis of software with respect to these heuristics, in an effort to support design decisions, and reduce the cognitive overhead involved in understanding large complex systems. The implemented architecture incorporates a .NET Semantic Model that was developed in earlier research. This application captures and formalises a model based on the Microsoft Intermediate Language (MSIL). By taking advantage of this model in our research, we are able to automate and visualise heuristics for multiple programming languages and provide an environment for cross-language comparisons, without the loss of rigour.