TDA594 / DIT594 Software Engineering Principles for Complex Systems