code: @Pure
  	public static File getSystemConfigurationDirectoryFor(String software) {
  		if (software == null || "".equals(software)) { //$NON-NLS-1$
  			throw new IllegalArgumentException();
  		}
  		final OperatingSystem os = OperatingSystem.getCurrentOS();
  		if (os == OperatingSystem.ANDROID) {
  			return join(File.listRoots()[0], Android.CONFIGURATION_DIRECTORY,
  					Android.makeAndroidApplicationName(software));
  		} else if (os.isUnixCompliant()) {
  			final File[] roots = File.listRoots();
  			return join(roots[0], "etc", software); //$NON-NLS-1$
  		} else if (os == OperatingSystem.WIN) {
  			File pfDirectory;
  			for (final File root : File.listRoots()) {
  				pfDirectory = new File(root, "Program Files"); //$NON-NLS-1$
  				if (pfDirectory.isDirectory()) {
  					return new File(root, software);
  				}
  			}
  		}
  		return null;
  	}
docs: Replies the system configuration directory for the specified software.
  
  <p>On Unix operating systems, the system directory for a
  software is by default {@code /etc/software} where {@code software}
  is the given parameter (case-sensitive). On Windows&reg; operating systems, the user
  directory for a software is by default
  {@code C:<span>\</span>Program Files<span>\</span>software}
  where {@code software} is the given parameter (case-insensitive).
  
  @param software is the name of the concerned software.
  @return the configuration directory of the software for the current user.