EPANET 3 software architecture

A meeting on the architecture requirements for a future open source version of EPANET was held at the WDSA conference in Cartagena, Colombia on 27 July. There was a lot of interest with 23 people attending (including @samhatchett via a weblink).

It should be stressed (particularly for those not familiar with open source projects) that this meeting had no formal status or authority, and was simply a way to get the conversation started before moving it here.

I’ve listed the main discussion points below (corrections and additions are welcome):

  • Different levels of code should be identified, requirements for each defined and links between the levels clarified. For instance, for the core hydraulic engine efficiency is very important, while expandability may be more important in higher levels.

  • A key decision will be whether to extend the existing EPANET 2 code, continue with the EPANET 3 code presented to the project by @LRossman or redevelop the architecture from scratch.

  • Redeveloping from scratch will take significantly more effort and time than modifying existing code. However, it will allow certain features to be incorporated that may be hard to achieve otherwise.

  • @LRossman’s code should be the starting point for our deliberations. Use this thread.

  • A number of groups have developed their own code in the past, and we can learn valuable lessons from their experiences.

  • It may be prudent to involve an expert on software architecture development to provide input at an appropriate time in the development.

  • The main conclusion reached by the meeting was that we need to understand our needs for EPANET 3 before formulating the architecture. A topic “EPANET 3 Needs Assessment” has already been started for this purpose.

  • It may be very hard to make changes to the code once development has started. Thus it is important to define our requirements as completely as possible before starting the coding process.