Scientific Data Analysis with Java: DAWN
Posted on 2 April 2015
Scientific Data Analysis with Java: DAWN
By Steve Crouch, Devasena Inupakutika, Alun Ashton, Mark Basham and Matthew Gerring
Scientific projects are often created as stand alone applications which use their own definitions for algorithms and visualisation tools. This makes it difficult to benefit from other people's work. The DAWN Science project allowed a large group of scientific developers and software engineers to collaborate by developing a single, general purpose API to allow access and sharing of existing algorithms and visualisation tools. This significantly accelerates the development of new analysis tools. We reviewed the DAWN code and provided advice on how to improve the organisation of the software and sharing of the code.
DAWN (Data Analysis WorkbeNch) is open-source scientific data analysis software for numerical data built on the Eclipse/RCP platform. It is developed by a collaboration of facilities and universities, some of whom are contributing code or development effort and others who use and test the software. The collaborative development is led by Diamond Light Source which is situated at the Rutherford Appleton Laboratory Campus near Oxford. Diamond is not restricted to a single scientific domain, so the software must cover a wide range of uses, from specialist capability like calibration and data reduction for diffraction equipment, to general capability like peak fitting and and integrated Python development environment including interactive tools such as plotting.
DAWN software employed at Diamond, has achieved a significant level of technical and process maturity with its software development. The DAWN team already have a productive and well-established development process that has led to a generally well-engineered implementation. They employ appropriate infrastructure and practices, follow agile development methodology and release management enabling them to provide both release builds for advanced feature development and use, as well as scheduled releases. However, the project is facing a number of socio-technical challenges common to any project which is undergoing an integration with its stakeholders’ working processes. To overcome these challenges, the DAWN developers - Matthew Gerring, Matthew Webber and Mark Basham asked for our help during the Open Call 2013. Steve Crouch and Devasena Inupakutika worked with them to evaluate the DAWN software and collaboration, and collate any areas for improvement.
The assessment was formed of two parts: a Collaboration Review, based around a set of 11 interviews with DAWN stakeholders on-site at Diamond, and the Technical Evaluation, a broad technical assessment conducted to determine preliminary barriers to approaching and using the software for new users.
Many positive observations arose from the Collaboration Review. A major strength of the collaboration is the support provided by the DAWN team, who are very approachable, eager to help resolve issues and take new ideas on board which is commendable. The technical review examined the experiences of approaching, developing and deploying the software from an end user's perspective, as well as providing a list of recommendations for improving the software. DAWN owners and developers were given insight into how the project is presented to new users and potential contributors.
Both the reviews were well received by the DAWN team. Many of the recommendations were taken forward and implemented in their next development cycle. The positive outcome of the initial discussions concerning the project is the appointment of Mark Basham as a 2014 Software Sustainability Institute Fellow.
Finally, the main outcomes of our work with the DAWN team were to increase the visibility of software release and future change announcements, to help to bring together the beamline users with different levels of technical capability as an actively interacting user community and to make that community one which can potentially leverage experience from other users to clarify and resolve issues.