# Introduction he reuse of software components refers to the process of using software artifacts for the development of new software. Since the evolution of computational systems, the reuse of software is in practice. Reuse of the already existing code to develop new software or developing the software that can be reused is one of the prominent areas of research. The present study mainly focuses on the intricacies involved in reuse of multi agent software systems. A software agent is a computer program that symbolizes a user. It implies that an agent has the capacity to make the appropriate decisions. Using software agents for Domain-oriented component design method is a newly proposed reuse approach in software engineering and it starts from the process of acquiring business knowledge within a common application domain. After having the knowledge of the application domain, a collection of business logic is mapped into components which can be reused in the future deign. This method increases the functional completeness of the software component and makes it reusable to a lower extent. Since the business requirements of different organizations are diverse and are changing, so a reusable knowledge base that can be adaptive and flexible are yet to be provided by current domain component design methods. In the following section the major design issues of the reusable software components are addressed. # II. # Design Issues # Software A bstractions The abstraction of software artifacts has to be used in every method of software reuse. A software abstraction is high-level, in the sense that attributes corresponding to one or more realizations of facts in more detailed level are represented. Some attributes describe what and how abstraction is done [19]. For the clear understanding, comparison and selection of appropriate software artifacts, the small abstractions are needed and these abstractions can be used in reuse process. The clear understanding of user interface has to be there so that a set of software artifacts can be composed and this should be depicted in the abstraction specification. Every artifact plays an important role in application development and it may not be concluded that the final deliverable i.e. the software product satisfies the user requirements or not. An abstraction is composed of a fixed, a variable and a hidden part. Only the fixed and variable part is visible in the abstraction specification. The fixed part represents the invariant features and the variable part symbolizes the variable features of the abstraction. The hidden part consists of the realization details. # C The major issues to be considered in the development of agent-based software systems include [3], [11], [12]. required to transfer software system from one phase to another in terms of intellect. The goal of the reuse technique should be to minimize the cognitive distance between the abstraction and the final software product. To minimize this distance the abstraction specification should more specifically represent the abstractions which are used for application domain. Finally the mapping of the specifications should be made partially or fully automated [10]. # IV. Multigent A pplication E ngineering "Multi-Agent Application Engineering" is a domain oriented research towards reducing software complexity and increasing productivity. This can be accomplished via techniques and tools that aid software reuse in Multi-Agent Software Engineering. In Application Engineering, the software abstractions that can be reused are created. Application Development is the process of developing domain specific applications using software abstractions that can be used again and again [12]. In the following section the model for developing agent based application specific software is presented. A set of activities and various tools and libraries that can be used is also discussed for developing high level software abstractions. # a) Developing Multi-Agent Specific Applications A multi-agent specific application is made using the constitution of a group/assortment of reusable agent frameworks available in the library of the development environment as shown in Figure 1. These frameworks are realizations of high-level software abstractions in the library. Particular requirements of a multi-agent specific application are used, to map the specification level of a domain model into a realization satisfying such needs. The realization should have associated a set of frameworks, which are agent-based solutions to those requirements. Requirement analysis in Agent-based Application Development should also consider particular preferences of users of the multi-agent specific application. Therefore, these user profiles are used to map the specification level of a user model into a realization satisfying these preferences or user needs. The realization should have associated a set of frameworks, which are agent-based solutions to those needs. The choice of mapping to select best frameworks depends on the fact that which particular style of agent architecture is to be used for the design. # Realization of Composed of # b) Developing High -Level Software Abstractions The reusable agent-based software abstractions are illustrated and described considering their level of abstraction and their dependence level from the application or user domain: domain models, user models, agent-oriented architectural styles, agentoriented design patterns, agent-oriented frameworks and software agents. # C Software Agent Reusability Mechanism at Application Level A conception of problem. The language represents the definitions necessary for elements, processes and their relationships in the system. The user model specifies the needs and requirements of the end user. # d) Design of the Model The outcome of the design phase is the reusable design attributes of Agent -Based Application Engineering. It consists of the agent based architectural styles, software patterns and the frameworks. Architectural style is the set of designing rules which will specify the type of elements and coupling which can be used to constitute the system and subsystems. The software pattern identifies and specifies the problems can commonly occur at conceptual and architectural level. These problems generally originate from architectural styles being used, domain model and the user model. A software pattern has a set format so that it can be easily propagated. This format asserts the problems that have been depicted by the pattern and forces the action to be taken to resolve the problems. For making use of such pattern there should be a framework that validates the pattern and provides a probable solution to the problem. If it was previously used in some application, that has to be mentioned in the framework. Some agent based software patterns have already been proposed that can be used at architectural level or later stages in the agent design [2,17]. The basic design guidelines are provided by the architectural styles and the agent patterns so that agent oriented frameworks can be developed [3,5,20]. The participating agents are chosen from the bank of agents which facilitates domain dependent or domain independent functionality. # V. # Conclusion A new horizon of reuse based software engineering using agent paradigm has been introduced. With the introduction of one more layer of abstraction at the software level, the present study may be used for the development of reusable software components across various platforms. Thus it proposed an effective model for agent based reuse. ![The cognitive distance is the measure of the effectiveness of the reuse technique. It is the effort T](image-2.png "") * SIMCAP: A Multi-agent System for Filtering Scientific Publications from the Web JHAlves Da Silva Filho advisor). RGirardi advisor). 2001 * Agent Design Patterns: Elements of Agent Application Design YAridor Proceedings of Autonomous Agents 98 Autonomous Agents 98 1998 * JMBradshaw Book on Software Agents. Published by The AAAI Press 1997. 1997 * Towards Agent-oriented Application Frameworks DBrugali ACM Computing Surveys 32 1 2000 * Models and Methodology for Agent-Oriented Analysis and Design BBurmeister Proceedings of KI'96 Workshop on Agent-Oriented Programming and Distributed Systems KI'96 Workshop on Agent-Oriented Programming and Distributed Systems 1996 * ABARFI: An Agent-Based Software Architecture for Information Access and Filtering ADiniz advisor RGirardi advisor 2001 * User Modeling in the Design of Interactive Interface Agents MFleming 67-76 Proceedings of Seventh International Conference on User Modeling Seventh International Conference on User ModelingNew York Inc. Secaucus NJ USA Springer -Verlag 1999 * Software Architectures to Improve the Effectiveness of Reuse Techniques RGirardi 8th WORKSHOP ON SOFTWARE REUSE (WISR8) 1997 * Towards Effective Software Abstractions for Application Engineering. Position Paper, NASA Focus on Reuse Workshop RGirardi 1996. Sept. 24-27, 1996 Fairfax, Virginia George Mason University * Application Engineering: Putting Reuse to Work In: Object Frameworks RGirardi Dennis Tsichritzis 1992 University of Geneva * A Road Map of Autonomous Software Agent Architectures GopalShankar VMThakare Proceedings of 3 rd National Conference INDIA Com-2009, Computing for Nation Development 3 rd National Conference INDIA Com-2009, Computing for Nation Development 2009. Feb 26, 27 2009 BVICAM New Delhi * Software Agents: An Overview SNHyacinth Knowledge Engineering Review 11 3 1996 * On Agent-based software engineering NRJennings Artificial Intelligence 117 2000 * A Roadmap of Agent Research and Development NRJennings Autonomous Agents and Multi-Agent Systems 1 1 1998 * Patterns of Intelligent and Mobile Agents EAKendall Proceedings of Autonomous Agents' 98 Autonomous Agents' 98 1998 * CWKrueger Software Reuse. ACM Computing Surveys 24 2 1992 * Agent-based Software Architectures in Information Access Systems. Final Degree Dissertation SLima Costa Ferreira advisor RGirardi advisor CGCC-UFMA 2002 In Portuguese * An Overview of Agent-based Framework ZMaamar ACM Computing Surveys 32 1 2000 * An Analysis of Software Patterns for Agentbased Development. Final degree dissertation IRibeiro De Oliveira advisor RGirardi advisor CGCC-UFMA 2001 In Portuguese * Reuse in Agent -Based Application Development RosarioGirardi * Software Architecture: Perspectives on an Emerging Discipline MShaw 1996 Prentice-Hall