Students in the MSE Professional Programs have the opportunity to engage with world-renowned research faculty in software engineering. Through an independent study, the student and a member of the research faculty or a technical staff member at the Software Engineering Institute can design a one-semester exploration of state-of-the-art methods and tools to build more reliable and safe software.
Travis Breaux conducts research in requirements engineering, including the search for new methods and tools to develop correct software specifications and ensure that software systems conform to those specifications in a transparent, reliable and trustworthy manner. This includes demonstrating compliance with U.S. and international privacy and security laws, policies and standards. Recently, his research focuses on the application of natural language processing to identify privacy requirements in policies, to identify ambiguity and vagueness in text, and to promote machine-guided elicitation in requirements discovery.
Bhatia, Jaspreet & Breaux, Travis. “Empirical Measurement of Perceived Privacy Risk,” Proceedings of the ACM Transactions on Human Computer Interaction (TOCHI), 2018.
Bhatia, J. ; Breaux, T.D.; Reidenberg, J.R.; & Norton, T.B. “A Theory of Vagueness and Privacy Risk Perception.” Proceedings of the 24th IEEE International Requirements Engineering Conference (RE’16). Beijing, China, 2016.
Breaux, Travis D.; Smullen, Daniel; & Hibshi, Hanan. “Detecting Repurposing and Over-collection in Multi-Party Privacy Requirements Specifications,” 166-175. Proceedings of the IEEE 23rd International Requirements Engineering Conference (RE’15), Ottawa, Canada, Sep. 2015.
David Garlan is a Professor of Computer Science and the Associate Dean for Master’s Programs in the School of Computer Science at Carnegie Mellon University. His research interests include software architecture, self-adaptive systems, formal methods, and cyber-physical systems. He is recognized as one of the founders of the field of software architecture, and, in particular, formal representation and analysis of architectural designs. He has received numerous awards, including the Allen Newell Award for research excellence, the ACM SIGSOFT Outstanding Research Award, and the IEEE TCSE Distinguished Education Award.
Professor Garlan currently has a number of on-going research programs that might serve as the basis for an independent study project or research opportunity for master’s students. These include explainable autonomy, self-securing systems, secure robotics systems, architectural development tools, and intelligent self-adaptation, human-in-the-loop systems.
Cámara, Javier; Peng, Wenxin; Garlan, David; & Schmerl, Bradley. “Reasoning about Sensing Uncertainty and its Reduction in Decision-Making for Self-Adaptation.” Science of Computer Programming 167 (December 2018): 51-69.
Garlan, David; Cheng, Shang-Wen; Huang, An-Cheng; Schmerl, Bradley; & Steenkiste, Peter. “Rainbow: Architecture-Based Self Adaptation with Reusable Infrastructure.” IEEE Computer 37, 10 (October 2004).
Dwivedi, Vishal; Garlan, David; Pfeffer, Jürgen; & Schmerl, Bradley. “Model-based Assistance for Making Time/Fidelity Trade-offs in Component Compositions.” Proceedings of the 11th International Conference on Information Technology : New Generations (ITNG 2014), April 2014.
Vincent Hellendoorn’s work incorporates machine intelligence into the software engineering process. Deep, neural models can learn to extract rich patterns from software, which can in turn be used to support developers by speeding up/automating programming, helping find bugs, and more. This requires both machine learning skills, but also rich insights into how developers write, and reason about software, since programming is a human activity.
Professor Hellendoorn is available year-round and happy to work with students who have a (basic) deep learning background and are excited to create new models and tools to support software engineering, or those with more of a human-computer interaction background who want to evaluate the real-world efficacy and interpretability of existing models.
Hellendoorn, V. J.; Sutton, C.; Singh, R.; Maniatis, P.; & Bieber, D. “Global Relational Models of Source Code.” Proceedings of the 8th International Conference on Learning Representations (ICLR’20), April 2020.
Hellendoorn, V. J.; Proksch, S.; Gall, C. H.; & Bacchelli, A. “When Code Completion Fails: a Case Study on Real-World Completions.” Proceedings of the 41st ACM/IEEE International Conference on Software Engineering (ICSE’19), Montréal, Canada, May 2019.
Ding, Y.; Ray, B.; Devanbu, P.; & Hellendoorn, V. J. “Patching as Translation: the Data and the Metaphor.” Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE’20), September 2020.
Eunsuk Kang’s research interests include software engineering and formal methods, with applications to system safety and security. His expertise is in leveraging formal modeling techniques, design and architectural methods, and automated verification to construct secure and reliable software and cyber-physical systems (CPS). He has applied his work to a diverse range of systems, including intelligent vehicles, unmanned aerial vehicles (UAVs), medical devices, water treatment plants, and mobile applications
Zhang, Changjian; Garlan, David; & Kang, Eunsuk. "A Behavioral Notion of Robustness for Software Systems." Proceedings of the ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE). November 2020.
Gafford, Benjamin; Dürschmid, Tobias; Moreno, Gabriel A.; & Kang, Eunsuk. "Synthesis-Based Resolution of Feature Interactions in Cyber-Physical Systems." Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE), September 2020.
Zhou, Weichao; Gao, Ruihan; Kim, BaekGyu; Kang, Eunsuk; & Li, Wenchao. "Runtime-Safety-Guided Policy Repair." Proceedings of the 20th International Conference on Runtime Verification (RV), October 2020.
Christian Kästner conducts research on software engineering for production systems with machine learning components, collaboration in open source communities, and quality assurance in software systems. He is particularly interested in how software engineers and data scientists can work better together, define clearer interfaces for their work, and better test their systems.
Kästner, Christian. A software testing view on machine learning model quality. (2020).
Trockman, Asher; Zhou, Shurui; Kästner, Christian; & Vasilescu, Bogdan. “Adding Sparkle to Social Coding: An Empirical Study of Repository Badges in the npm Ecosystem,” 511-522. Proceedings of the 40th International Conference on Software Engineering (ICSE), New York, NY: ACM Press, May 2018.
Meinicke, Jens; Wong, Chu-Pan; Vasilescu Bogdan;, and Kästner, Christian. “Exploring Differences and Commonalities between Feature Flags and Configuration Options,” 233-242. Proceedings of the Proc. International Conference on Software Engineering — Software Engineering in Practice Track (ICSE-SEIP), May 2020.
Velez, Miguel; Jamshidi, Pooyan; Siegmund, Norbert; Apel, Sven; & Kästner, Christian. “White-Box Analysis over Machine Learning: Modeling Performance of Configurable Systems.” Proceedings of the 43rd International Conference on Software Engineering (ICSE), May 2021.
Rohan Padhye’s research spans several areas including software engineering, programming languages, systems, and security. Broadly, he researches techniques to automatically discover software bugs. His recent projects make use of dynamic program analysis and coverage-guided fuzz testing. The corresponding research tools have been used to discover thousands of previously unknown bugs across open-source and commercial software, and have been adopted by various firms including Samsung, Microsoft, Netflix, and GitLab.
Professor Padhye suggests that you reach out before the start of the semester (preferably in the last couple of weeks of the preceding semester). The process will likely involve a short interview. Please be prepared to share pointers to past projects or software artifacts.
Vikram, Vasudev; Padhye, Rohan; & Sen, Koushik. “Growing a Test Corpus with Bonsai Fuzzing”. To appear in Proceedings of the 43rd ACM/IEEE International Conference on Software Engineering (ICSE’21).
Padhye, Rohan; Lemieux, Caroline; Sen Koushik; Papadakis, Mike; & Le Traon, Yves. “Semantic Fuzzing with Zest”. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’19).
Padhye, Rohan; Lemieux, Caroline; Sen Koushik; Simon, Laurent; & Vijayakumar, Hayawardh. “FuzzFactory: Domain-Specific Fuzzing with Waypoints”. Proceedings of the ACM on Programming Languages, Volume 3 Issue OOPSLA. 2019
Lemieux, Caroline; Padhye, Rohan; Sen Koushik; & Song, Dawn. “PerfFuzz: Automatically Generating Pathological Inputs”. Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA’18).
Much of Bogdan Vasilescu’s recent work has focused on improving the sustainability of open-source software. Open source plays critical roles in our software infrastructure, and by extension in economic growth and almost every facet of modern life, far beyond only technical software projects: it is used in almost every product or in the process of creating products by companies big and small, often in ways invisible to open-source maintainers or without ever contributing back. Some argue that open source provides just as important infrastructure as roads and bridges do for the economy. However, despite its ubiquitousness, the importance of open-source software, and our dependence on it, are often not recognized. Sustaining open source remains a significant challenge.
- Invited talk at the 2020 State of the Source Summit.
- Episode #40 of the Sustain podcast.
- 3-minute video overview of our data-driven approach to studying open-source teams.
- Infographic summarizing a recent research project on the use of repository badges within the npm ecosystem.
- Keynote talk at the 2019 Scala Days about sustaining open source digital infrastructure.