Improving quality, efficiency, software trustworthiness
Our research in software development spans all aspects of making developers more productive and software more trustworthy. It includes programming-language design, compilers, specification and verification, development environments and tools, runtime environments, formal models of systems, performance monitoring and optimization, security and privacy, software analytics, and quality improvement.
We work on tools, languages, and methodologies to increase dramatically the productivity of software development. We are interested in analysis tools for existing software and in asking questions about how the software of the future should be designed and developed.
Abram Hindle, Christian Bird, Thomas Zimmermann, and Nachiappan Nagappan, Do Topics Make Sense to Managers and Developers?, in Empirical Software Engineering, Springer, December 2015.
Pantazis Deligiannis, Alastair Donaldson, Jeroen Ketema, Akash Lal, and Paul Thomson, Asynchronous Programming, Analysis and Testing with State Machines, in Programming Language Design and Implementation (PLDI), ACM, June 2015.
Akash Lal and Shaz Qadeer, DAG Inlining: A Decision Procedure for Reachability-Modulo-Theories in Hierarchical Programs, in Programming Language Design and Implementation (PLDI), ACM, June 2015.
Jacek Czerwonka, Michaela Greiler, and Jack Tilford, Code Reviews Do Not Find Bugs. How the Current Code Review Best Practice Slows Us Down, IEEE – Institute of Electrical and Electronics Engineers, 17 May 2015.
Kim Herzig, Michaela Greiler, Jacek Czerwonka, and Brendan Murphy, The Art of Testing Less without Sacrificing Quality, in Proceedings of the 2015 International Conference on Software Engineering, IEEE – Institute of Electrical and Electronics Engineers, May 2015.
- T2 Temporal Prover
- Sampling software projects
- Tark: A Tool Kit to Mine Linear Temporal Rules
- Society of Devices Applications (SODA)
- Code Hunt Community
- Code Hunt
- Ziria - Wireless Programming for Hardware Dummies
- Live Programming
- Logging practice study
- Code Completion
- Contextual Fuzzing for Mobile App Testing
- The R2 Project
- Neural Networks for Software Developers
- Q Program Verifier
- T2 temporal prover
- Code Digger