Improving enterprise software maintenance efficiency through mining software repositories in an industry context

There is an increasing trend to outsource maintenance of large applications and application portfolios of a business to third parties, specializing in application maintenance, who are incented to deliver the best possible maintenance at the lowest cost. In a typical industry setting any maintenance project spans three different phases; Transition, Steady-State and Preventive Maintenance. Each phase has different goals and drivers, but underlying software repositories or artifacts remain the same. To improve the overall efficiency of the process and people involved in these different phases, we require appropriate insights to be derived from the available software repositories. In the past decade considerable research has been done in mining software repositories and deriving insights, particularly focussed on open source softwares. However, focussed studies on enterprise software maintenance in an industrial setting is severely lacking. In this thesis work, we intend to understand the industry needs on desired insights and limitations on available software artifacts across these different phases. Based on this understanding we intend to propose and develop novel methods and approaches for deriving desirable insights from software repositories. We also intend to leverage empirical techniques to validate our approaches both qualitatively and quantitatively.

[1]  Raúl A. Santelices,et al.  Lightweight fault-localization using multiple coverage types , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[2]  Gail C. Murphy,et al.  Who should fix this bug? , 2006, ICSE.

[3]  Bikram Sengupta,et al.  SmartDispatch: enabling efficient ticket dispatch in an IT service environment , 2012, KDD.

[4]  Michael Gertz,et al.  Expertise identification and visualization from CVS , 2008, MSR '08.

[5]  Paul P. Maglio,et al.  Expertise identification using email communications , 2003, CIKM '03.

[6]  Z. M. Kasirun,et al.  Automatic Bug Assignment Using Information Extraction Methods , 2012, 2012 International Conference on Advanced Computer Science Applications and Technologies (ACSAT).

[7]  Robert L. Nord,et al.  Managing technical debt in software-reliant systems , 2010, FoSER '10.

[8]  André van der Hoek,et al.  PorchLight: A tag-based approach to bug triaging , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[9]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[10]  Richard W. Vuduc,et al.  Falcon: fault localization in concurrent programs , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[11]  Siau-Cheng Khoo,et al.  Towards more accurate retrieval of duplicate bug reports , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[12]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[13]  A. J. Ko Mining whining in support forums with frictionary , 2012, CHI EA '12.

[14]  Per Runeson,et al.  Detection of Duplicate Defect Reports Using Natural Language Processing , 2007, 29th International Conference on Software Engineering (ICSE'07).

[15]  Jane Cleland-Huang,et al.  Automated support for managing feature requests in open forums , 2009, CACM.

[16]  Pradip Peter Dey,et al.  Software complexity measurement using multiple criteria , 2013 .

[17]  Iulian Neamtiu,et al.  Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging , 2010, 2010 IEEE International Conference on Software Maintenance.

[18]  Mira Mezini,et al.  Semi-automatically extracting FAQs to improve accessibility of software development knowledge , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[19]  Yi Chen,et al.  EasyTicket: a ticket routing recommendation engine for enterprise problem resolution , 2008, Proc. VLDB Endow..

[20]  Andreas Zeller,et al.  Where Should We Fix This Bug? A Two-Phase Recommendation Model , 2013, IEEE Transactions on Software Engineering.

[21]  Milkias Tadesse Design Metrics on Prediction of Open Source Software Complexity , 2013 .

[22]  Jian Zhou,et al.  Where should the bugs be fixed? More accurate information retrieval-based bug localization based on bug reports , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[23]  Eleni Stroulia,et al.  A contextual approach towards more accurate duplicate bug report detection and ranking , 2013, Empirical Software Engineering.

[24]  Frank Tip,et al.  Directed test generation for effective fault localization , 2010, ISSTA '10.

[25]  Preethi Raghavan,et al.  Extracting Problem and Resolution Information from Online Discussion Forums , 2010, COMAD.

[26]  Michael I. Jordan,et al.  Latent Dirichlet Allocation , 2001, J. Mach. Learn. Res..

[27]  Thomas Zimmermann,et al.  Automatic Identification of Bug-Introducing Changes , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[28]  Dawid Weiss,et al.  Lingo: Search Results Clustering Algorithm Based on Singular Value Decomposition , 2004, Intelligent Information Systems.