Documenting Software Architectures: Views and Beyond (2nd Edition)