Modern Software Engineering: Foundations and Current Perspectives