Coda

A Change Impact Analysis Tool for Scala

More Info
expand_more

Abstract

KeyLocker, a start-up developing cryptographic products that put the control of encryption keys into the hands of the end-users, has requested a review of their own software development process. During their first year of existence, the company experienced problems in following software development methodologies, sharing knowledge effectively between employees, and with testing the software being developed. Being a start-up where its employees are always busy, the company requested outside assistance in analyzing their own processes. Consequently, two students, who previously worked part-time at the company, were tasked with researching the development practices at KeyLocker, identifying problem areas. Subsequently, the students were charged with developing a software application that could assist in the development process, remedying some of the highlighted problems. Two problem areas of knowledge sharing and test maintenance were selected and research was conducted in the field of Change Impact Analysis - the identification of potential consequences of a change to components in software. A tool was designed that could perform an analysis of the source code projects at the company. As Scala was the chief programming language used at the company, the application needed to be able to parse Scala source code and interpret changes to this source code. Then, the application needed to be able to analyze the code for potential consequences of those changes. Needless to say, developing such an application required an in depth knowledge of the Scala programming language. The three main goals of designing such an application were utility, usability, and maintainability. In short, the software needed to solve the problems experienced at KeyLocker effectively, in a user-friendly manner, and be easy to maintain in the future. Over the course of sixteen weeks, the application has been developed with exactly these three goals in mind. During the completion phase of the project the application has been tested by the development team at KeyLocker, receiving a positive response. Nevertheless, there is room for improvement and some recommendations are provided for future work.