1. A method for engineering a Distributed Control System having a plurality of devices including at least one Input/Output device and at least one controller device such that the at least one Input/Output device and the at least one controller device have a communicative connection, the method comprising the steps of : a. Prompting a user to request an application type and select a solution variant from one or more solution variant options; b. Identifying at least one device from the plurality of devices based on the user input; c. Selecting at least one function block 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; d. Creating instances of function fragments and arranging at least one instance of function fragments based on the at least one identified device; and e. Configuring the at least one identified device based on the created instances of function fragments, wherein, creating instances of function fragments and arranging at least one instance of function fragments based on the at least one identified device includes a step of analysing the arrangement of instances of function fragments for the selected solution variant option for the at least one identified device to find solutions that satisfy one or more identified distributed control system conditions.