Can anybody explain me how an IDE helps to improve the productivity of developers and how does it improve the quality of the systems that they produce?

Well for one, it helps develop code quicker with less mistakes. In an enterprise/organization, that equates to more productivity at a lower cost.

An IDE has a number of practical advantages. And they also depend largely on what kind of projects your working on.

When you're just "writing code": An IDE helps you with:

  • reading the code more easily by highlighting the syntax (language keywords, comment blocks, etc.).
  • keeping the code in good formatting style (indentation, etc.) by enforcing that formatting automatically.
  • avoiding typos via code-completion and variable highlighting (you avoid mispellings or see them right away when the IDE cannot highlight the variable, or highlights it as a typo).
  • gaining easy access to the documentation related to classes, their members, or functions, usually by hovering the mouse over it or through some key-combination.
  • and, having many tools for refactoring the code, from basic find-and-replace and automatic formatting to more advanced language-specific refactoring tools.

When you're working on a bigger project: An IDE helps you with:

  • configuring your builds (compilation scripts), although most people choose to use build scripts that are external to the IDE.
  • managing and visualizing differences (diffs) between code patches along with your version control system of choice.
  • connecting with a server or internal network of your development team.
  • providing analysis tools to map out dependencies, code-coverage, etc.
  • providing unit-testing frameworks to ensure the quality of the code.
  • providing well-integrated UML tools for designing the software.

When compiling and testing the code: An IDE helps you with:

  • giving you informative error / warning messages and direct you to the correct places in the code.
  • providing a debugging environment that allows you to step through the code, inspect the data, report stack-traces from run-time errors, etc.
  • providing run-time analysis tools for performance (profiling) and memory usage (memory checker).
  • providing advanced run-time analysis tools, e.g., Intel's Parallel Advisor.

And that's not even mentioning GUI-oriented IDEs that provide you with a WYSIWYG editor.

Of course, IDEs vary in what features they provide and the type of projects they tailor to. Also, many tools exist for only specific tasks (features), and many programmers prefer that, especially in Unix-like environments, where programmers often opt for an enhanced text editor for coding (providing only the "code-writing" features) and use external tools for the rest (a build-system, a debugger / memory analyser, specifically-targeted run-time analysers, version control systems, unit-test frameworks, etc.). Many IDEs are also little more than a thin wrapper that provides user-friendly integrated access to these task-specific tools. This very much depends on the language, the target platforms, the type of project and the size and organization of the development team.