ISSTA 2015 Keynote Address by Prof. Daniel Jackson, M.I.T.
What is a software design and can it be analyzed?
Abstract
Great progress has been in analyzing code. But what about analyzing designs? Of course, code matters, and its defects (especially structural ones) can affect performance, reliability and maintainability. But how well a software system works — whether it's fit for purpose — depends less on its code design and more on its conceptual design: that is, how the behavior of the system is structured, and how both its users and developers conceive of it. To improve software, then, we need good ways to express and analyze conceptual designs. Recently I've been developing some ideas about how do do this; I'll explain them with examples from well known applications, and provide some initial ideas about what kinds of analysis might be possible.
[slides]
Bio
Daniel Jackson is a professor in the Department of Electrical Engineering and Computer Science, and leads the Software Design Group in the Computer Science and Artificial Intelligence Laboratory. He received an MA from Oxford University (1984) in Physics, and his SM (1988) and PhD (1992) from MIT in Computer Science. He was a software engineer for Logica UK Ltd. (1984-1986), Assistant Professor of Computer Science at Carnegie Mellon University (1992-1997), and has been at MIT since 1997.
He has broad interests in software engineering, especially in development methods, design and specification, formal methods, and safety critical systems.
(See also: Keynote address by Yuanyuan Zhou)