Asset Publisher

Code quality

Update 2023:
Goal: Increasing the code quality for better maintainability and future developments
To maintain high quality code, we perform daily code scans to detect code vulnerabilities, bugs, potential hotspots for errors and confusing code. Furthermore, we check the code covered by our automated tests, and make sure this is an ever-increasing percentage.

---------------------------------------------------

Plan 2023:
SonarQube is monitoring our code commits on a daily basis. Since its introduction in May 2020 we adopted the approach to only add 'clean code', making sure all traffic lights on SonarQube's dashboard are green (bugs, security hotspots, code-smells). At the same time, we try to work our way back through the complete code base, repair where bugfixes are implemented and increasing the unit test coverage continuously.

We are intensifying the use of the SonarQube tool and will select packages to focus on to reach the (self-imposed) target for a minimum code coverage / unit-tests coverage of 80%. 
Besides that we will actively maintain the (newly structured) Delft-FEWS hard and software requirements page and will launch a Delft-FEWS update strategy page. The latter contains an overview of all supported versions of relevant operating systems, database types and third-party libraries, java and middleware like Tomcat per Delft-FEWS version and by when this will change. 

 

Contact: Gerben Boot

--------------------------------------------------

Update 2022: 
Attention for code quality is reaching a business as usual aspect of ‘daily development’ activities of the Delft-FEWS team. During daily stand-ups the SonarQube dashboard is reviewed and WIKI pages with our update and upgrade strategy are maintained.  The SonarQube dashboard monitoring our committed code (since May 2020) is kept in a “all-green” status as much as possible. Third party library jar upgrades are taking place regularly and are monitored using dedicated JIRA placeholders. Around releases and around the creation of the ‘new trunk’, extra attention is paid to these code quality aspects. In 2022 the overall unit-test coverage % has grown. Two packages - Master Controller and Open Archive - have grown substantially (around 5%) due to extra attention by the developers of these components. Review steps have been added to our JIRA screens about the new features. 

--------------------------------------------------

Plan 2022

Our code quality is constantly monitored using SonarQube and all code commits are checked against the latest java coding rules. Automated tests using the latest (Docker) technology are part of our stack now and in 2022 we continue the pilot for a complete DevOps pipeline. We expect that this will pave the path towards a more DevOps (CI/CD) approach for more Delft-FEWS components.

We are intensifying the use of the SonarQube tool and will select packages to focus on to reach the (self-imposed) target for a minimum code coverage / unit-tests coverage of 80%.

Besides that we will actively maintain the (newly structured) Delft-FEWS hard and software requirements page and will launch a Delft-FEWS update strategy page. The latter contains an overview of all supported versions of relevant operating systems, database types and third-party libraries, java and middleware like Tomcat per Delft-FEWS version and by when this will change.

Expected effort in 2022: ±40 days

--------------------------------------------------

Update 2021
Our code quality is monitored using SonarQube and all code commits are checked against the latest java coding rules. Automated tests using the latest (Docker) technology are part of our stack now and a pilot for a complete DevOps pipeline has been set-up.

--------------------------------------------------

We are improving our code quality by adopting a special method for evaluating the delivered code results and implementing supporting tools to evaluate our code on a daily basis. As a follow-up to the advice of an external review of our software code to improve the modularity of the codebase, we will start with the three most intensively used modules in 2021.