Two important initiatives started this year. The first is the announcement of the Open Source EPANET project which is currently focused on the EPANET engine (solver). The second is a tender (or solicitation) issued by the USEPA for the “Re-Engineering SWMM and EPANET User Interface Application Software Architectures” (search here for reference number: RFQ-DC-15-00153).
AQUA TERRA Consultants, a division of RESPEC Consulting & Services, has been selected by the U.S. EPA to re-engineer the user interface application software architectures for two of their urban water simulation tools – the Stormwater Management Model (SWMM) and software for modeling water distribution piping systems (EPANET). The project will focus on the design of a modular and extensible User Interface (UI) application software architecture that will enable deployment of new application features created by EPA, third party developers, and end users employing application “plug-ins.” The new design will make the user interfaces more approachable by the open-source user community and provide a path toward mobile applications
What should we expect (according to the statement of work in the solicitation documents):
- The application development framework shall be modern, free and open source.
- The framework project must have a strong development roadmap including support for
mobile applications and good developer documentation with examples.
- A modular plugin architecture which should encourage development of new features and future expansion of the application.
- High level scripting support within the application will allow users to more easily manage input data, drive specialized simulations, analyze output data, and will give users the tools to develop plugins directly within the application itself.
- Rebuild of SWMM and EPANET applications using freely available open-source tools.
The SWMM and EPANET user interfaces are expected to be using the following software development architecture:
- Platform / Operating System: Desktop application primary target Microsoft Windows; secondary targets Mac OS X, and Linux. Future potential for mobile applications.
- Language: C++ / Python; Conform to standard C++ for cross platform compatibility;
- Compiler Tool Chain: Clang, GCC, Intel; Python 3.0
- Application Development Framework: Qt / PySide or PyQt
- Plugin Support: Plugins written in C++ or Python
- Scripting Support: Python API for UI and model toolkits
The basic requirements are:
- Backwards Compatibility: general user interaction paradigm; input and output file formats
- New Functionality: undo/redo support; worksheet style input data display/editing
- GIS Integration: data import/export from/to geodatabase; map rendering; input/output data manipulation
- Special Features: plugin manager; application scripting support; console plugin (iPython); info graphic style project summary, simulation status, and results display; internationalization support
- Help System: Integration with web based user support portal
The award of this work to AQUA TERRA wad made on September 1st 2015 so I would assume that the official starting date of the project is around that time, by the end of September. So when should we expect to see something? Well, the base work is expected to take about one year and should include the following deliverables:
- Quality Assurance Project Plan (QAPP).
- Application Features Requirements Document (AFRD).
- Software Application Architectural Design.
- Minimum Testable Products (MTP) – these are the actual products. “Software code, including that for automated unit and regression testing, shall be developed in an open and transparent manner with frequent “check-ins” into the designated source code management system.” – a proposed schedule of MTPs shall be submitted within 120 days of the project start date.
- Testing and delivery of final products.
- Computational Engine Support – this section is a bit of a mystery for me. The border line between the UI and the engine is not clear yet.
The USEPA intend to share project documents and will accept public comments on them. As mentioned above, the source code of the project is expected to be open so the community will have access to the source code at all times. I hope everything will go as planed and the users community will play an active role in this process. From the little communication I had with the USEPA personal working on this I feel that we are in good hands!