Software Engineering


Software-intensive systems play a variety of critical roles throughout society:  they support human decision making in medical, transportation, and legal domains and, over the coming years they will increasingly operate autonomously – without a human in the loop. The critical role that software plays means that individuals, organizations, and institutions must determine whether to trust that its operation is safe, secure, and fair. Using current approaches to developing software-intensive systems, it is essentially impossible to understand them well enough to make sound judgements about whether to trust them. This situation will only get worse as systems continue to increase in scale, complexity, and the diversity technologies used to build them. Through a new collaborative research focus, UVA Computer Science faculty from software engineering (SE), formal methods (FM), security, machine learning (ML), and cyber-physical systems (CPS) seek to address this challenge. Our department’s strength in formal methods and program analysis allows us to advance the state of the art in all these areas, ensuring that these systems operate correctly and securely.

Software Engineering Core Faculty