International Journal of Computer Science and Communication Vol. 2, No. 1, January-June 2011, pp. 149-152 ABSTRACT COMPONENT INTERACTIONS FROM SOFTWARE ARCHITECTURE RECOVERY Shivani Budhkar 1 and Arpita Gopal 2 1 Department of MCA, P.E.S. Modern College of Engineering, Pune-411005, India, E-mail: shivanibudhkar@gmail.com. 2 Department of MCA, Sinhgad Institute of Business Administration and Research, Kondhwa, Pune-411048, India, E-mail: directormca_sibar@sinhgad.edu. In modern software engineering, Software architecture modeling plays very important role in all phases of software development—like coding, maintenance, testing, etc. Component based software architecture is beneficial as it is useful for reusing system parts represented as components. Most of the existing systems do not have reliable software architecture and some legacy systems are designed without software architecture design phase. So, by doing reverse engineering we can retrieve component based software architecture. The software architecture of the system is described as a collection of components along with the interaction among these components, where as the main system functional block are components, they strongly depend on connectors— which is abstraction capturing nature of these interactions. Therefore, the project will focus on extracting connectors in component based architecture from existing object oriented system. Keywords: Component Based Architecture, Connectors, Software Architecture, Clustering Algorithms, Object Oriented System. 1. INTRODUCTION Object-oriented development had not provided extensive reuse and computing infrastructures are evolving from mainframe to distributed environments, where object technology has not led to massive development of distributed systems. However, component-based technology is considered to be more suited for distributed system development due to its granularity and reusability. Component Based Development is gaining recognition as the key technology for the construction of high quality, evolvable large software systems in timely and affordable manner. Using Component based software architecture is beneficial because: 1. Exchange between software architects and programmers easily. 2. Useful for reusing system parts represented as components. 3. Clear separation between components and connectors. 4. Localizing software defects and reducing risk of misplacing new functionalities during mainte- nance and evolution phases [14]. Software architecture has put forward connectors as first-class entities to express complex relationships between system components [6]. Although components have always been considered fundamental building blocks of software systems, the way the components of the system interact may also be determinant on the system properties. Recent development in the field of software architecture have emphasized the concept of first class connectors which capture the interaction between components and the architectural connectors have emerged as a powerful tool for supporting the description of the interactions. There is a completely new approach to building more reliable software systems which consist to decompose large and complex systems into smaller and well-defined units—software components. Typically, components are considered to be entities with well-defined provided (server) and required (client) interfaces, and in some cases also with formally specified behavior. A component based application is a collection of individual components, which are interconnected via well-defined connectors between their Interfaces. Generally, software architectures are composed of components, connectors and configurations, constraints on the arrangement and behavior of components and connectors. The architecture of a software system is a model, or abstraction of that system. Software architecture researchers need extensible, flexible architecture descriptions languages (ADLs) and equally clear and flexible mechanisms to manipulate these core elements at the architecture level [1]. Today software systems are composed from prefabricated heterogeneous components that provide complex functionality and engage in complex interaction. While retrieving component based software architecture, if we identify connectors, these connectors can be reused in similar systems and in more complex