Title: Patterns of Software Construction