International Journal of Recent Technology and Engineering (IJRTE) ISSN: 2277-3878, Volume-8 Issue-6, March 2020 1600 Retrieval Number: F7811038620/2020©BEIESP DOI:10.35940/ijrte.F7811.038620 Published By: Blue Eyes Intelligence Engineering & Sciences Publication Abstract: Reuse is the elementary and essential attribute of the component-based software engineering. Reusability focuses on building huge and complex software through assembling pre-fabricated software constructs. In this paper, our emphasis is on to analyze and quantify the two core notions of component-based software, that is, reusability and interaction behavior of the components with the goal of minimum complexity generation. We analyse prominent works available in the literature in the area of reuse and interaction complexities. We Analyze and Estimate reusability complexities of components in Component-Based Software Engineering and we propose efficient and useful metrics to compute the reusability of components. Reusability metrics are defined for individual components as well as overall system level. Different types of components are defined on the basis of their reusability, that is, components that can be reused as it as, and tailored components. To define the metrics we have used lines-of-code as the basic parameter due to its simplicity and countability. We proposed a matrics which select the best component on the basis LOC based complexity.We compare IRMCcTotal-i matrics with SCCp metrics and SCCr metrics and analyses that negative relationship between SCCp and IRMCcTotal-i shows low portability and positive relationship between SCCr and IRMCcTotal-i shows high portability. Keywords: CBSE, Reusability, Interaction, Complexity metrics. I. INTRODUCTION As a process software engineering includes documentation, design, program, test, and maintenance which can be measured statistically. The prime requirement of this process is to efficiently monitor the quality of software .Early prediction of software cost and quality is important for better software planning and controlling. In early development phases, design complexity metrics are considered as useful indicators of a software testing effort and some quality attributes. Due to the appearance of certain factors that affect the quality of software, many practitioners believe that there is a direct relationship between internal attributes such as cost, effort, LOC, speed or memory and external software product attributes such as functionality, quality, complexity, efficiency, reliability or maintainability [1]. For example, a higher number of lines of code or code lines will lead to greater software complexity and so on. Revised Manuscript Received on February 24, 2020. * Correspondence Author Nidhi Mehra School of Computing Graphic Era Hill University, Dehradun, India. E-mail: nidhigehu@gmail.com, *Divya Kapil, School of Computing Graphic Era Hill University, Dehradun, India. E-mail: divya.k.rksh@gmail.com With the ever-increasing complexity of software applications and reducing development time, the software quality and trustworthiness have become an essential concern of the software business. To deal with the software quality, its development time and cost, a Component-Based Software Development (CBSD) is the best approach to be adopted. Component-Based Software Engineering (CBSE) is best practice to reduce the complication of the process. The primarily concerned behind the software development from pre-developed modules is to implement the concept of reusability in appropriate interacted manner. Its major objective is to reduce the software development cost and time by reusing available components, including third-party and internal developed components. CBSD demands high quality components to achieve its goals achieve its goals, which requires effective reusability and interaction metrics. Reusability Implementing the concept of reusability means developing software systems (or components) by assembling prefabricated components. In order to identify prefabricated components efficiently, a reusable quality base with results from previous software development activities is needed. The intention behind the concept of Component-Based Software Development (CBSD) is to increase the basic characteristic of software i.e reusability. CBSD is a software engineering methodology that aims to design and develop software systems using reusable components [ 2, 3, 4, 5, 6, 7,8]. Components are used as the basic building blocks in CBSD. Rather than developing new code, in this paradigm, we reuse and integrate existing components. Integration of these components is based on defined specifications and design architectures using predefined interfaces [1, 9, 10, 11, 12,13]. Interaction among the components in Component-Based Software Development Integration and Interaction among the components according to the user’s specification of requirements are very difficult to implement because software components are usually designed and developed in an isolated environment. When these components deploy later in another software system, software components may need to be configured or customized in a different environment. Therefore, when analyzing the interaction among the components, we can expect to encounter more uncertainties than with traditional software systems. We classify software metrics on the basis of their inception in software life cycle. The arrangement of 8 popular metrics sets, which are listed in the [14] is shown in Table 1. Analysis and Estimation of Interaction and Reusability Complexities of Components in Component-Based Software Engineering Nidhi Mehra, Divya Kapil