Software Engineering for Bioinformatics — Teaching Domain Specificity
Bioinformatics refers to the science of collecting and analyzing complex biological data. An example is the analysis of genetic codes. The software used to gather, organize, visualize, analyze, interpret, and store such data is immensely complex and increasingly needs to be designed specifically for the field in which it will be used. Bioinformatics software engineers need to first understand the complexity of the computational tasks required to address the biological problems of the specific life science they are developing software for.
As the needs and requirements evolve, the success of software engineering for bioinformatics begins with the education of engineers, and a key element is teaching domain specificity. Immense amounts of time and resources can be saved by benefiting from the collective successes and failures of the bioinformatics software development community. The results of a survey among developers can improve our understanding of the requirements and, thereby, our approach to education.
The Approach to Development
The survey revealed that the majority of developers used prototyping or extreme programming (XP) as the process they followed. But how the processes were used differed, often based on what is applicable in the field of bioinformatics. This highlighted the need for collaboration within the community as to what works and what doesn’t. For example, prototyping may provide a more rapid solution to the client, but often the prototype is used as the actual software, resulting in bugs and other problems in the long run. Educators of the next generation of developers need to show the importance of a knowledge of XP and its associated paradigms, such as test-driven development. Ultimately, strategies may need to be mixed and adapted to fit the requirements of individual projects. Read More…