Software Engineering concepts for distance learning