Design and Analysis of Metrics for Component-Based Software Systems

Loading...
Thumbnail Image

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Component-based Software Engineering (CBSE) is a paradigm that aims at constructing and designing systems by using a pre-defined set of software components. A component is a reusable, self-contained piece of software with well-specified interface that is independent of any application. Main advantages of this approach are low cost, high quality and less time to develop applications along with several others. There are many software component models available in the industry, for example: Microsoft’s COM (Component Object Model), DCOM, .NET Framework, Sun’s Java Beans, EJB (Enterprise Java Beans), J2EE Specification and OMG’s (Object Management Group) CORBA (Common Object Request Broker Architecture). However, besides several advantages, CBSE still faces many problems. The research aspect of component quality assessment, with emphasis on quantitative approaches, is fairly unexplored. The few existing evaluations are performed at a qualitative level. In traditional approach, most of the metrics models are based on source code analysis, which can not be used in component-based systems. Due to the black-box nature of the components, it requires considerably different approach for quantitative analysis of quality aspects. OBJECTIVES OF THE PROPOSED WORK In this work, the main emphasis is on quantitative evaluation of metrics for various functional and non-functional aspects of software components and their impact on the system, they are integrated in. Also, it proposes a quality model for estimation of quality for software components. Following are the objectives which are explored in this study: Objective 1: To identify the metrics for software components. Metrics have been thoroughly studied and explored for several quality features of component-based systems. These features include complexity, customizability, reusability, maintainability and others. The new metrics have been proposed for interface complexity, reusability and maintainability aspects. Objective 2: To design a methodology to evaluate the metrics. We have proposed quantitative evaluation of interface complexity and reusability for black-box components and maintainability for component-based systems. Interface complexity metric is based on the interface methods and the properties of the component and is empirically evaluated on several Java Bean components. To estimate the reusability, Artificial Neural Network (ANN) technique has been adopted, while for maintainability of system, we used Fuzzy Logic based approach. Objective 3: To explore and compare these metrics along with some other existing metrics. Interface complexity metric is evaluated on several Java Bean components and validated against customizability, readability and performance metrics. A correlation analysis has also been conducted to establish the relationships between the suggested metric and these existing metrics. Reusability metric is validated by considering test data collected from real-life components. Maintainability prediction is validated by using Analytical Hierarchy Process (AHP) on two class room based projects. Objective 4: To propose a model to bring out the relationship among metrics and with a view to establish quantitative estimation of quality and validate the suggested model. A quality model for component-based systems is proposed which includes new quality characteristics like complexity, reusability, flexibility and trackability along with others, present in most of the quality models, including ISO 9126. Weight values are assigned to these characteristics and sub-characteristics by using Analytical Hierarchical Process (AHP) and by conducting a survey on experienced software professionals, working on component-based technologies. This model may be used to evaluate the quality of the component as a single variable. A case study from live project has also been considered for empirically evaluating the quality of software components by the proposed model. THESIS OUTLINE Thesis is divided into seven chapters as follows: Chapter 1 covers the basic issues and understanding about the components and component-based systems (CBS). It consists of a detailed literature survey of various metrics for CBS. It covers complexity, reusability, customizability, maintainability, and other aspects of these systems. Some of the metrics proposed in the literature are derived from that of object-oriented systems with no or minor changes, others are exclusively specific for CBS. This chapter also covers various quality models, and discusses the major findings of these models in the context of CBS. Chapter 2 proposes an interface complexity metric for software components. While proposing this metric, it considers that due to black-box in nature, source code of the components is not available to the application developers. Only interface methods and properties are available. Based on the complexities of these two, the interface complexity of the component is designed. The proposed metric is then evaluated theoretically against standard Weyuker’s properties (Weyuker, 1988) and most of these properties are satisfied by the proposed metric. This metric is evaluated for several Java Bean components taken from different sources. The proposed metric is validated against performance, customizability and readability metrics (Washizaki et al., 2003). Correlation study is performed between complexity metric and these metrics. The results show that there is strong positive correlation between complexity and execution time i.e. complex components take much time to execute. Also negative correlation coefficients between complexity and customizability and complexity and readability confirm that complex components are hard to understand and maintain. The proposed metric may be used by the developers to evaluate the complexities of identical target components and then select the least complex component among them for use. It will help in developing less complex systems which will be easy to understand and will have low maintenance cost. Chapter 3 discusses the various methodologies (Vieira and Richardson, 2002; Li, 2003; Stafford et al., 2003; Guo, 2002) to represent component dependency for a CBS which include adjacency matrix and graph based approaches also. The main problems of these approaches are that all of them store only the presence of dependency and do not store the interactions and their types. We propose a link-list based representation for storing component dependencies. Proposed approach can store interactions and their type, which in turn can be used to evaluate several metrics like interaction density, dependency level, list of child components, most critical and isolated components etc. These metrics may be used to measure the interaction complexity of the system and are useful in understanding the system during the testing and maintenance. We conducted an experiment by taking a case study of component-based system and represented dependency by using the proposed methodology. We also evaluated several interaction metrics by this proposed representation. Chapter 4 discusses several existing measures for reusability (Mili et al., 1995; Dumke and Schmietendorf, 2000; Boxal and Araban, 2004; Rotaru et al., 2005) and proposes an Artificial Neural Network based approach to predict it for software components. We identified the factors influencing reusability which include customizability, interface complexity, portability and understandability. These factors are categorized from very low to very high categories. Neural network is trained by considering a real-life component data, collected from various sources. The best training is obtained by taking different training functions, numbers of hidden layers and neurons. The network is then tested by taking another set of test data. Results indicate that proposed model is suitable for predicting reusability of software components. Chapter 5 is about the maintenance of CBS. Maintenance of these systems may require several different activities than normal applications, such as, upgrading the functionality of black-box components (for which code may not be available), replacement of older version components with the new ones for better and improved functionality, tracing the problem of compatibility between the new components with system, and so on (Kajko et al., 2006). The focus of this chapter is on investigating several issues and concerns about maintainability of component-based systems. It also explores the acceptance of maintainability characteristic and its sub-characteristics as defined in ISO 9126 quality model for CBS. It proposes a new sub-characteristic ‘trackability’ to be added under maintainability. Trackability will keep track of various system properties during the maintenance activities. These activities may include tracking of system performance or resource utilization, before and after any maintenance activity. This may also include the possible security violations, like access authorization due to some maintenance activities. Tracking, not only will validate any improvement effort, but also, it may provide insight into managing statistical control. This, in effect, will ease the overall maintenance process. The present work also proposes Fuzzy Logic-based approach to estimate the maintainability of component-based systems. We identified the factors influencing maintainability of the CBS and then categories them into low, medium and high. Rules were designed, based on the expert opinion. Finally, by defuzzification process, the maintainability is estimated. The proposed model is implemented on two classroom based projects to empirically evaluate and validate the maintainability. Chapter 6 studies several existing quality models (McCall and Joseph, 1978; Boehm et al., 1976; Grady, 1992; Dromey, 1995; ISO, 2001; Bertoa and Vallecillo, 2002; Rawashdeh and Matalkah, 2006) and then proposes a new quality model for CBS by adding several new sub-characteristics which are relevant to the CBS. These sub-characteristics include reusability, complexity, flexibility, trackability and scalability. It also proposes to remove analyzability and attractiveness sub-characteristics from standard ISO 9126 quality model, while keeping others in the proposed model as it is. This proposed quality model is then refined by conducting a survey on software professionals working on live projects on component technologies and collected their preferences on these quality characteristics and sub-characteristics on a scale of 1-4 (1-never used, 4 – always used). This data is analyzed by using Analytical Hierarchy Process (AHP) and weight values are calculated to quality characteristics and sub-characteristics, for the proposed model. The weight values obtained will help developers to select only those quality characteristics and sub-characteristics, which are important and relevant as per their quality requirement in that domain. The proposed model is implemented on a live case study. Only those characteristics and sub-characteristics are selected, which are more important in that domain. Weight values are then normalized and metrics are identified for the selected characteristics and sub-characteristics. Some of the metrics need to be normalized to fit into same unit. The metric values are multiplied by their corresponding weight values to get the value of quality sub-characteristics, characteristics and then finally of the whole system. This experimentation leads to the useful conclusion related to the capability of measuring quality of the component-based system as a single variable, which may be used to compare and select the better quality components for the end product. Thesis summarizes in Chapter 7 with the major contributions of the present work. These contributions include inferences drawn as a result of various experiments conducted in this thesis. It also suggests some future work in this directio

Description

Ph.D.

Citation

Endorsement

Review

Supplemented By

Referenced By