Design and Analysis of Some Software Metrics Using Soft Computing Approaches

dc.contributor.authorKumar, Vijai
dc.contributor.supervisorKumar, Rajesh
dc.contributor.supervisorSharma, Arun
dc.date.accessioned2014-08-22T08:15:54Z
dc.date.available2014-08-22T08:15:54Z
dc.date.issued2014-08-22T08:15:54Z
dc.descriptionPHD, SMCAen
dc.description.abstractIntroduction Software metrics are the integral part of software engineering to quantify activities during the different phases of software development life cycle. The quantification processes consist of the measurements of entities which need to be analyzed during the software development processes. In software engineering, these entities are called software metrics, which are measured in all the phases of software development life cycle. There are defined processes and product metrics which contain various attributes to be measured. Direct measurement is not possible for some software metrics; hence these metrics are derived using a combination of different metrics attributes. For example, size metric is a direct measure and complexity is indirect measure, which depends on a combination of different factors. Software metrics measurement has been a great research interest area for last four decades. The different conventional statistical methods have been proposed for analysis and measurements of the software attributes. Regression analysis is frequently used method for software attributes analysis. Although conventional methodologies are most widely used in the industries worldwide but recently the research communities are moving towards interdisciplinary streams and have started exploring the unconventional techniques such as fuzzy logic, artificial neural network, neuro-fuzzy etc. There are some metrics attributes, which needs forecasting i.e., the occurrence in future for better process improvement in advance. Some of these metrics are software quality, reliability, maintainability, reusability, defect density and many more. There is no direct measurement possible with the fixed mathematical concept for most of these attributes. So, the term “prediction” comes into consideration in software engineering. The prediction is nothing but the forecasting and quantification of these attributes which are based on the available information during the software development process at any point of time. The regression analysis has been used from early days for prediction of software metrics. Recently soft computing paradigms attracted the research community and foreseeing a huge potential of research using soft computing techniques in engineering disciplines. Soft computing has been used extensively in engineering and science but a great momentum has been seen in the area of software engineering during the last decade. The reason of this momentum is the predictive characteristics of soft computing approaches. There are good numbers of evidences where soft computing outperforms the conventional techniques in prediction of an attribute or future event quantification. In the proposed study, soft computing techniques have been used to analyze software quality, maintainability, reliability, reusability, defects of software products and systems. The fuzzy logic, artificial neural network and adaptive neuro fuzzy inference system have been used in proposed study. The different soft computing techniques have different characteristic and hence some pros and cons. In literature survey, this has been observed that the proposed conventional techniques works efficiently in specific domain and in case of some variations, the conventional techniques do not perform upto expectation. The soft computing techniques tried to solve this problem and able to adapt the environment changes. The fuzzy logic is proven tool for decision making problem analysis and artificial neural networks become popular because of its learning and adaptive capability. Neuro-fuzzy combines and inherits the advantage of both. In the proposed research work, we have used the soft computing techniques to predict the software attributes as per the applicability and importance. The fuzzy toolbox, artificial neural network simulator and adaptive neuro-fuzzy inference system of MATLABTM software is used for experimentation of the proposed soft computing approaches. Although there are plenty of research contents of the prediction of above mentioned software metrics but there is a scope of improvements of the existing approaches in terms of feasibility, efficiency, accuracy, generic framework for all domains, applicability, practical ability etc. All of them may not be feasible to include in a single approach but there can be a balance of these so that industries can adapt in their software engineering processes during the software development life cycle. Most of the soft computing techniques need some history data either to design the model or validate the model, fuzzy logic can be built with less data or even without any data. The research in software engineering using soft computing approaches is still in progress because a specific model or metric works well either in specific domain type project or with particular data set. Here, the conclusion throws out the fact that there is always a need of designing the soft computing based software metrics and model due to these limitations and practicality. 2. Objectives of the Proposed Work In the objective, focus is to analyze the existing soft computing based software metrics and propose some soft computing based approaches to address the prediction requirements of software defects, reliability, quality, reusability, maintenance severity and maintainability as well as validate them with real project data set to show quantitative analysis. The followings are the set of objectives which are analyzed and explored in this study: Objective 1: Study and analysis of the existing metrics and approaches. The existing software metrics and approaches have been analyzed and explored. The conventional, nonconventional approaches and models have been thoroughly studied for software metrics such as quality, defects, reliability, reusability and maintainability. Based on analysis, the future prospects of soft computing techniques have been discussed. Objective 2: To design some software metrics such as maintainability, defect density, reusability, reliability for component-based systems and other domains. The soft computing based software metrics and approaches have been proposed for prediction of software defects, reusability, maintenance severity, maintainability and reliability. The proposed approaches are defined for the appropriate software engineering paradigms as per importance and need. Objective 3: Evaluation of software metrics by using soft computing approaches such as fuzzy logic, artificial neural network and neuro-fuzzy. All the proposed metrics are simulated using soft computing approaches such as fuzzy logic, artificial neural network and neuro-fuzzy. The evaluation is done for these proposed metrics approach using root mean square error and error performance. The proposed defect and reliability approaches are evaluated for the generic software engineering paradigms. The reusability metrics are evaluated for component based systems. The maintenance severity is also evaluated independent of used methodology in software development. The fuzzy toolbox, artificial neural network simulator and adaptive neuro fuzzy inference system of MATLABTM software is used for experimentation of the proposed approaches. Objective 4: Validation of proposed metrics. The empirical validation of the defect and reliability metrics carried out using the real project data from two industrial projects which are based on mixed software engineering methodologies i.e., structural, object and component oriented for a complex telecommunication software system. The proposed reusability software metrics are empirically validated against the component based system project data collected from live project. For reusability, a comparative analysis and validation is done between different soft computing approaches as per applicability. The maintenance severity metric is validated with three project data sets of structural, component and object oriented development. 3. Thesis Outline Thesis is structured into seven chapters as per following scheme of chapters: Chapter 1 covers the basic understanding and introduction about the software engineering and soft computing basics. It includes some basic concepts for the need and importance of prediction of software attributes as well as the usefulness of soft computing techniques. It covers brief definitions of software engineering methodologies and the metrics proposed in the current study. It also contains the fundamental concepts of soft computing approaches i.e., fuzzy logic, artificial neural network and neuro-fuzzy techniques. This has been concluded that there is a need of prediction of software metrics, where soft computing can play an important role. Chapter 2 contains the analysis and review of the existing conventional and nonconventional approaches. The initial section gives the introduction about the basic software metrics and need of soft computing to solve the prediction problems in software metrics. The detailed analysis of conventional metrics is carried out considering the maintainability, defect, reliability, quality, and reusability metrics. Also, the detailed analysis of soft computing approaches such as fuzzy logic technique, artificial neural network technique, neuro-fuzzy techniques and other hybrid methodologies have been carried out for the set of defined metrics. The chapter concludes with the future prospects and possibilities of soft computing intervention in prediction of software metrics and to propose the soft computing based software metrics and model. Chapter 3 discusses the defect metric using soft computing approach. Existing work in literature regarding defects prediction has been explored in this chapter. As software defect cannot be measured directly, it needs the prediction using some technique. The defect density metric is designed using the combination of software complexity, size and number of defects observed before customer delivery. Here, the defect density metrics is designed considering any type of software engineering methodology but we need to capture the input factor values such as lines of count, complexity and defects count before release. These metrics can be designed considering the history data from any project, which can be applied to other similar projects for defect prediction. Here, we have proposed fuzzy logic and artificial neural network based defect density metric with the three independent factors. The validation is done using the data set of two different projects P1 and P2 from telecom domain, and the better accuracy has been observed through results. Project P1 is an optical telecom application project, which is used as an optical communication platform across the cities. It has been implemented using object oriented based system design as well as structural design and developed in 4 years timeframe. Project P2 is a 4G telecom application project which is mix of all three main software engineering methodologies conventional, object oriented and component based application project. The validation has been performed for proposed approach across various domain projects. Chapter 4 proposes a unique and new quality and reliability management framework across the subsequent releases of software product. In starting sections, it gives the detailed analysis of the proposed techniques for reliability and quality relationship with defects. The basic reliability growth model is used to design the reliability and quality prediction framework. The proposed reliability and quality model is implemented using fuzzy logic and artificial neural network. The developed approach is validated using three release data from two different projects. Multiple releases of project P1 from optical telecom project are used for validation. Three release of Project P2 from 4G telecom software domain were used for cross validation across different project. The validation and experimentation is done with the different combination of fuzzy logic and artificial neural network architectural attributes. The reliability factor is calculated on the basis of predicted defects for multiple releases and the model is able to predict the defects and reliability with a good accuracy. Using the model across releases, the quality and reliability management framework is proposed which is a new concept across the subsequent releases for large and complex projects. The discussion has been organized for the practical importance and application of the developed framework in the software quality assurance and software process improvements. Chapter 5 contains the proposed fuzzy logic, artificial neural network, neuro-fuzzy based approach for prediction of component reusability. Six independent factors, which influence most to component reusability, are identified for the software components. These factors are release version, existing defects, portability, interface complexity, customizability and understandability. Several real-life components are used for the training and testing of soft computing techniques. The data for several components is collected from web sources and in-house development. These components include very simple calculator application to complex inventory management system. These components have been developed using different technologies ranging from Java beans, .Net to open source technologies. The validation is done using the components’ data and the quantified results show that adaptive fuzzy inference system performs better than other two soft computing approaches in terms of root mean square error. Chapter 6 presents the exhaustive analysis of artificial neural network approach to design the software maintenance severity and maintainability metrics independent of component, procedural and object oriented based development. This chapter discusses soft computing based approach for maintenance severity prediction and maintainability prediction of software system modules. In the proposed maintenance severity metrics, artificial neural network approach is used. Six influencing basic metrics for maintenance severity are used as independent factors which are easily available and captured during the software development process. These factors are halstead difficulty, multiple condition count, decision count, cyclomatic complexity, design complexity and lines of count for component based, structural or object oriented software development strategy. In case of maintainability prediction, four basic metrics are considered to formulize the maintainability prediction approach. These four simple metrics are: multiple condition count, node count, percentage comments and lines code which can be easily collected by analyzing the code. The different possible combination of artificial neural network architectures and two learning algorithms are used to get the better results. For the variance in architecture and algorithm, different numbers of neurons nodes ranging from 5 to 25 are selected for the analysis. The artificial neural network approach needs a good amount of input and output data vector sets. In this case, artificial neural network is used, which is based on three projects data set to train and test the proposed metrics. The data of three projects PC5, PC4, PC2 from PROMISE repository of empirical software engineering data is used for validation and training. The conclusion of the thesis has been presented in Chapter 7, which is summarized form of major contribution of presented work. The direction for future work has also been detailed in this chapter.en
dc.format.extent5101546 bytes
dc.format.mimetypeapplication/pdf
dc.identifier.urihttp://hdl.handle.net/10266/3014
dc.language.isoenen
dc.subjectSoftware metricsen
dc.subjectsoft Computingen
dc.titleDesign and Analysis of Some Software Metrics Using Soft Computing Approachesen
dc.typeThesisen

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
3014.pdf
Size:
4.84 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.79 KB
Format:
Item-specific license agreed upon to submission
Description: