Archuleta, JeremyTilevich, EliFeng, Wu-chun2013-06-192013-06-192006-09-01http://hdl.handle.net/10919/19544Bioinformaticists use the Basic Local Alignment Search Tool (BLAST) to characterize an unknown sequence by comparing it against a database of known sequences, thus detecting evolutionary relationships and biological properties. mpiBLAST is a widely-used, high-performance, open-source parallelization of BLAST that runs on a computer cluster delivering super-linear speedups. However, the Achilles heel of mpiBLAST is its lack of modularity, adversely affecting maintainability and extensibility; an effective architectural refactoring will benefit both users and developers. This paper describes our experiences in the architectural refactoring of mpiBLAST into a modular, high-performance software package. Our evaluation of five component-oriented designs culminated in a design that enables modularity while retaining high-performance. Furthermore, we achieved this refactoring effectively and efficiently using eXtreme Programming techniques. These experiences will be of value to software engineers faced with the challenge of creating maintainable and extensible, high-performance, bioinformatics software.application/pdfenIn CopyrightParallel computationDistributed computingBioinformaticsSoftware engineeringArchitectural Refactoring for Fast and Modular Bioinformatics Sequence SearchTechnical reportTR-06-20http://eprints.cs.vt.edu/archive/00000924/01/mpiblast-icse07.pdf