A Unifying Framework for Structured Analysis and Design Models, Cambridge Tracts in Theoretical Computer Science