patterns of hci design and hci design of patterns .
Software Architecture in Practice (Second Edition)