Modern Software Development Using Java