Software Innovations Laboratory

Contact: Eli Tilevich

The Software Innovations Lab at Virginia Tech creates novel software tools that facilitate the development and maintenance of the computer systems of today and tomorrow. The Lab's research activities explore how advanced software engineering practices, including automatic code generation, program transformation, novel system designs and programming paradigms can assist in the development and sustainment of complex computer systems. Current research projects include automated refactoring of framework-based applications, novel architectures for high-performance bioinformatics software, new programming abstractions for distributed object systems, and automated program enhancement.

2015
Song, M., and E. Tilevich, "Reusing metadata across components, applications, and languages", Science of Computer Programming, vol. 98: Elsevier, pp. 617–644, 2015.
Kwon, Y. - W., and E. Tilevich, "Facilitating the Implementation of Adaptive Cloud Offloading to Improve the Energy Efficiency of Mobile Applications", Proceedings of the 2th ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft 2015): ACM, 2015.
2014
Tilevich, E., and Y. - W. Kwon, "Cloud-based execution to improve mobile application energy efficiency", Computer, vol. 47, no. 1: IEEE Computer Society, pp. 75–77, 2014.
Edstrom, J., and E. Tilevich, "Improving the survivability of RESTful Web applications via declarative fault tolerance", Concurrency and Computation: Practice and Experience: Wiley Online Library, 2014.
2013
Kwon, Y. - W., and E. Tilevich, "The impact of distributed programming abstractions on application energy consumption", Information and Software Technology, vol. 55, no. 9: Elsevier, pp. 1602–1613, 2013.
Kwon, Y. - W., and E. Tilevich, "Reducing the energy consumption of mobile applications behind the scenes", Proceedings of the 29th IEEE International Conference on Software Maintenance (ICSM 2013): IEEE, pp. 170–179, 2013.
2012
Song, M., and E. Tilevich, "Reusing Non-Functional Concerns Across Languages", AOSD '12: Proceedings of the 11th International Conference on Aspect-Oriented Software Development, 2012.
2011
Kim, D. K., E. Tilevich, and C. J. Ribbens, "Dynamic software updates for parallel high-performance applications", Concurrency & Computation: Practice & Experience, vol. 23, pp. 415-434, 2011.
Shah, E., and E. Tilevich, "Reverse-engineering user interfaces to facilitate porting to and across mobile devices and platforms", NEAT '11: in Proceedings of the NExt-generation Applications of smarTphones, 2011.
Kwon, Y. - W., and E. Tilevich, "A declarative approach to hardening services against QoS vulnerabilities", MESOCA '11: Proceedings of the 2011 IEEE International Workshop on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems, 2011.
Tilevich, E., and S. Gopal, "Expressive and Extensible Parameter Passing for Distributed Object Systems", ACM Transactions on Software Engineering and Methodology, vol. 21, no. 1, New York, NY, USA, ACM, 2011.
2010
Dumitras, T., P. Narasimhan, and E. Tilevich, "To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains", Onward '10: Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2010.
Henthorne, C., and E. Tilevich, "Sonifying performance data to facilitate tuning of complex systems: performance tuning: music to my ears", Onward '10: Proceedings of the ACM Symposium on New Ideas in Programming and Reflections on Software, 2010.
Kwon, Y. - W., E. Tilevich, and W. R. Cook, "An Assessment of Middleware Platforms for Accessing Remote Services", SCC '10: Proceedings of the 2010 IEEE International Conference on Services Computing, 2010.
2008
Tilevich, E., and G. Back, "Program, Enhance Thyself! Demand-Driven Pattern-Oriented Program Enhancement", AOSD '08: Proceedings of the Seventh International Conference on Aspect-Oriented Software Development, Brussels, Belgium, ACM Press, April, 2008.
Tansey, W., and E. Tilevich, "Efficient Automated Marshaling of C++ Data Structures for MPI Applications", In Proceedings of the 22nd Annual IEEE International Parallel and Distributed Processing Symposium (IPDPS 2008), April, 2008.
Tilevich, E., and Y. Smaragdakis, "NRMI: Natural and Efficient Middleware", IEEE Transactions on Parallel and Distributed System (TPDS), vol. 19, no. 2, pp. 174-187, February, 2008.
2007
Archuleta, J. S., W. - C. Feng, and E. Tilevich, "A Pluggable Framework for Parallel Pairwise Sequence Search", International Conference of the IEEE Engineering in Medicine and Biology Society, Lyon, France, August, 2007.
Archuleta, J. S., E. Tilevich, and W. - C. Feng, "A Maintainable Software Architecture for Fast and Modular Bioinformatics Sequence Search", 23rd IEEE International Conference on Software Maintenance, Paris, France, October, 2007.
Henthorne, C., and E. Tilevich, "Code Generation on Steroids: Enhancing COTS Code Generators via Generative Aspects", 2nd International Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques (IWICSS), May, 2007.
2006
Tilevich, E., and Y. Smaragdakis, "Transparent Program Transformations in the Presence of Opaque Code", ACM Generative Programming and Component Engineering (GPCE 2006), 2006.
Tilevich, E., Y. Smaragdakis, and M. Handte, "Appletizing: Running Legacy Java Code Remotely From a Web Browser", IEEE International Conference on Software Maintenance (ICSM 2005), September, 2006.
2005
Tilevich, E., and Y. Smaragdakis, "Binary Refactoring: Improving Code Behind the Scenes", Proceedings of the 27th International Conference on Software Engineering (ICSE 2005), May, 2005.
2004
2003
Tilevich, E., S. Urbanski, Y. Smaragdakis, and M. Fleury, "Aspectizing Server-Side Distribution", Automated Software Engineering (ASE), October, 2003.
Tilevich, E., and Y. Smaragdakis, "NRMI: Natural and Efficient Middleware", The International Conference for Distributed Computing Systems (ICDCS), May, 2003.
2002
Tilevich, E., and Y. Smaragdakis, "J-Orchestra: Automatic Java Application Partitioning", European Conference on Object-Oriented Programming (ECOOP), Malaga, May, 2002.