Problem frames : analysing and structuring software development problems - Jackson, M. A. (Addison-Wesley, 2000)