11/3/2016 10:43:06 AM
As part of the CS @ ILLINOIS Distinguished Lecture Series, Daniel Jackson, MIT computer science professor and recipient of the 2016 ACM SIGSOFT Impact Award, will discuss an evolving theory, based on the identification of concepts and purposes, to guide the design of software. The lecture will take place at 4 pm on November 11, in 2405 Siebel Center.
Towards a Theory of Software Design
Engineers make things work reliably and efficiently; designers make them useful. In the development of buildings, for example, the civil engineer is concerned about the internal structural that prevents the building from falling down; the designer (i.e. the architect) is concerned about the aspects of the building (light, space, etc.) experienced by its users.
We have a pretty good theory of software engineering that guides the internal structure of software systems, using notions such as decoupling, information hiding, representation independence, redundancy, and so on. But we don’t have much of a theory to guide the design of software: the aspects that determine the user’s experience.
In this talk, I’ll present the elements of an evolving theory of software design based on the identification of concepts and purposes, and I’ll present how some straightforward design rules that can help improve the design of a software system without resorting to trial and error (e.g., by brainstorming and user testing). I’ll give examples from a variety of well-known applications.
I’ll also tell you about a new project in which we’re developing a mechanism for synthesizing applications from concepts drawn from a library of clichés.