Software engineering with java