Lecture: Daniel Jackson Presents 'Towards a Theory of Software Design'
November 10, 2016
4:00 pm-5:00 pm
Computer Science Building
UMass Amherst Campus
Daniel Jackson presents his talk titled “Towards a Theory of Software Design.”
Abstract: 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 (eg, by brainstorming and user testing). I'll give examples from a variety of well known applications.