Panorama - A Tool to Help with Code Maintenance
Speaker:Simanta Mitra
Abstract:
Researchers have shown that over 80% of software development costs are spent on maintenance. It has also been shown that over 50% of the effort spent in code maintenance is dedicated to code comprehension. As modern software systems grow larger and larger, this problem continues to grow. Nowadays, systems span several software platforms and languages. For example, consider a system with Android, iOS, and web (javascript) frontends with PHP, Ruby, Java, C#, Go, and Node.js as backends. For most projects, documentation focuses on Java-doc like comments for classes and their methods and does not shed light on the parts needed to implement specific use-cases. In particular, these documents do not capture how the implementation spans these platforms and languages.
To address this problem, we present Panorama, an Eclipse plugin, a semi-automated tool, designed to detect and to document with an orthogonal (to java-docs) focus on the parts of code needed to implement specific use-cases. We show results of an experimental evaluation to show the effectiveness of this tool in helping developers perform code maintenance. We also present preliminary results of a tool designed to extract or copy the identified parts of code for use-cases to help in code reuse of open source software.
Bio:
Simanta Mitra received his Ph.D. degree in Computer Science at Iowa State University in 1997. He then worked for a couple of years at a startup company, NewMonics Inc, and was the principal developer of their real-time garbage collector. He then went on to lead their work on a real-time API before joining the Department of Computer Science as an adjunct assistant professor in 1999. He has been a senior lecturer since 2005. His current research interests are in the areas of software engineering (software maintenance and comprehension tools) and parallel computing.
He is the recipient of IEEE’s Golden Core Award and the ACM-ICPC World Finals Coach Award. He has been involved with COMPSAC (The IEEE Signature conference on Computer Software and Applications) since 2006. Since 2014, he has been the Symposium Chair for the newly formed CELT (Computer Education and Learning Technologies) symposium. He is currently an invited member of the Advisory Board for COMPSAC. He is also an associate editor for the Computer Science section on the open learning platform MERLOT, a curated collection of free and open online services.
Dr. Mitra has been teaching at ISU for the last 17 years and has taught many different types of courses in the department. He has advised 16 graduate students in that time. He also has an extensive background in working with undergraduate students in various capacities (for example, as an adviser for student organizations). Since 2008, he has been the Coach of Iowa State University’s teams that participate in the yearly ACM-ICPC programming contest, which have qualified for World Finals eight of the past ten years.