Foundation of Software Engineering