MLSmellHound: A Context-Aware Code Analysis Tool
Meeting the rise of industry demand to incorporate machine learning (ML)
components into software systems requires interdisciplinary teams contributing
to a shared code base. To maintain consistency, reduce defects and ensure
maintainability, developers use code analysis tools to aid them in identifying
defects and maintaining standards. With the inclusion of machine learning,
tools must account for the cultural differences within the teams which
manifests as multiple programming languages, and conflicting definitions and
objectives. Existing tools fail to identify these cultural differences and are
geared towards software engineering which reduces their adoption in ML
projects. In our approach we attempt to resolve this problem by exploring the
use of context which includes i) purpose of the source code, ii) technical
domain, iii) problem domain, iv) team norms, v) operational environment, and
vi) development lifecycle stage to provide contextualised error reporting for
code analysis. To demonstrate our approach, we adapt Pylint as an example and
apply a set of contextual transformations to the linting results based on the
domain of individual project files under analysis. This allows for
contextualised and meaningful error reporting for the end-user.