A method for engineering a Distributed Control System having a plurality of devices comprising at least one Input/ Output device and at least one controller device such that the said at least one Input/ Output device and the said at least one controller device have a communicative connection, the method performed by an engineering tool comprising the steps of: a. Requesting an user to input an application type and to select a solution variant from one or more solution variant options; b. identifying at least one device from the plurality of devices for configuration based on the said user input; c. selecting at least one function block, the function block comprising a plurality of function fragments that are linked together, along with its function fragments from a plurality of function blocks available in a library based on the requested application type and selected solution variant, each function block being comprised of a plurality of function fragments that are linked together; d. Creating instances of the function fragments of the selected at least one function block and arranging at least one of said instances of the function fragments considering the identified at least one device from the plurality of devices; wherein the method further comprises the steps of: e. analysing the function fragments of the selected at least one function block considering involved device specifications, processing and communication overheads to ascertain overall functionality according to the Distributed Control System needs; f. dynamically rearranging at least one of the instances of the function fragments in any of the plurality of devices to find the solution that satisfies one or more identified distributed control system needs; and g. configuring the identified at least one device from the plurality of devices based on the created instances of the function fragments. a. Requesting an user to input an application type and to select a solution variant from one or more solution variant options; b. identifying at least one device from the plurality of devices for configuration based on the said user input; c. selecting at least one function block, the function block comprising a plurality of function fragments that are linked together, along with its function fragments from a plurality of function blocks available in a library based on the requested application type and selected solution variant, each function block being comprised of a plurality of function fragments that are linked together; d. Creating instances of the function fragments of the selected at least one function block and arranging at least one of said instances of the function fragments considering the identified at least one device from the plurality of devices; e. analysing the function fragments of the selected at least one function block considering involved device specifications, processing and communication overheads to ascertain overall functionality according to the Distributed Control System needs; f. dynamically rearranging at least one of the instances of the function fragments in any of the plurality of devices to find the solution that satisfies one or more identified distributed control system needs; and g. configuring the identified at least one device from the plurality of devices based on the created instances of the function fragments.