Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives