Reusable software component retrieval via normalized algebraic specifications

Abstract : Efforts in the software engineering community to reuse code are hampered by a lack of tools. Reusability is particularly beneficial in a rapid prototyping environment. Rapid prototyping with automated reusable software component retrieval is a software development method to rapidly construct and adapt software, validate and refine requirements, and check the consistency of proposed designs. This dissertation describes a tool used within the Computer Aided Prototyping System (CAPS), developed at the Naval Postgraduate School, which retrieves reusable components from a software base using a formal specification as the search key. The query specification that represents a design requirement is compared to formal specifications of Ada reusable software components stored in an object-oriented database management system. A syntactic search compares specification interfaces, identifying reusable candidates based on types of parameters. The semantic search rank orders a set of candidate components based on semantic similarity to the query. The method, called query by consistency, compares terms that are reduced in the axioms of each specification. Specifications are normalized to facilitate the matching between query specifications and reusable component specifications in the retrieval. A formal proof verifies that query by consistency can retrieve components guaranteed to meet specified requirements.