| With the software's increasing impact on people's life, there is an increasing demand on software's quantity and quality. There are a series of problems during the software development and maintaining process, namely so called "Software Crisis". One reason of these problems is the large number of repetitive work during the development process, so "Software Reuse" technology is regarded as one of effective methods to solve software crisis.There are more-levels reusable elements during an entire software development process. And the efficiency rises with the level's rising. However, in software reuse domain, there is no software development principle or standard which offers a guide to developers about how to reuse more levels of elements during software development process. This paper proposes a knowledge-based more-levels software reuse technology, which is based on goal-oriented software methodology and domain engineering. It summarizes different levels of software reusable elements after goal operationalization. These elements include atomic operation, transaction, service, function, activity, workflow and business system. These different levels of software elements all have the possibility of be reused or reuse other existing elements. And they are mapped to specific knowledge in knowledge-base according to the mapping rules, which include subject-mapping rule, object-mapping rule, and knowledge-mapping rule of using the low-level elements to construct high-level elements.KnowledgeBase-based more-levels software reuse technology is applied to the Magic Platform and this platform offers a new software development model for all software developers, it mainly aims at process-oriented business systems. Magic Software Studio does knowledge mapping process. And Magic Engine in running time gets the knowledge from knowledgebase, parses it and then implements the business functions according to the specific knowledge. Therefore, use Magic Platform to develop business systems can be regarded as the process of use lower-level software elements to construct higher-level software elements. Reuse different software elements according to the specific business requirements greatly improve the efficiency of software reuse, and also the development efficiency is improved at the same time. |