CS Colloquium: Dr. Clay Stevens
Speaker:Clay Stevens
Choosing and Preserving Software Designs through Formal Analysis
The design of a software system is one of the most important and difficult aspects to get right, and faults introduced in the design phase are the most costly to detect and repair. Despite this, software design is often one of the most neglected aspects of the software development lifecycle in terms of documentation, analysis, and tooling. Designs are often chosen quickly based solely on anecdotal “best-practices” and the personal experiences of the designer. Furthermore, as software systems develop, the implementation tends to diverge from the original design. In this talk, I’ll explore some avenues for employing formal methods of analysis to not only help designers choose the best design, but also look forward to ways we might use those techniques to detect, prevent, or repair design decay over time. Drawing from my research, I’ll also discuss improvements to the formal techniques themselves that allow them to be used on larger scale, enabling their use for efficient and systematic analysis of software designs.
About Clay Stevens
Clay Stevens is an Associate Professor in the Department of Computer Science at Iowa State University. He received his PhD in computer science at the University of Nebraska-Lincoln, with an emphasis in software engineering. Before starting his Ph.D., Clay spent more than 13 years in industry as a professional software engineer and architect. His research aims are to scientifically study how software engineers and architects work in practice and to improve the scalability of rigorous formal analysis tools to enable their use on large-scale, real-world problems.
Note: this colloquium will be hybrid.