software architecture lecture 13