Sequence databases are growing rapidly in size, so there is a need for faster algorithms. This requires reuse of existing code for data structures, algorithms, and heuristics in order for rapid development of new algorithms. Blast is one of the most heavily used programs for searching sequence databases. The original Blast is a procedural program, not particularly well-suited for reuse. In this thesis, we develop an object-oriented framework to meet the requirement of reusability. First we describe the methodology for Framework Programming. Then we use the methodology to develop the Blast framework. Finally, we apply the framework to develop BlastP, an instance of Blast, in order to evaluate the Blast framework.