Perspectives on Software Applications and their User Interfaces