Skip to main content
Traditional fault localization techniques are well equipped for identifying faults in sequential programs. Faults in concurrent programs are caused due to interleaving of the threads during run-time. Finding the faults in concurrent... more
Traditional fault localization techniques are well equipped for identifying faults in sequential programs. Faults in concurrent programs are caused due to interleaving of the threads during run-time. Finding the faults in concurrent programs are more difficult in comparison with sequential programs. In this paper, we have proposed a fault localization framework based on spectrum-based fault localization for concurrent programs to find the faults occurs during execution of multiple threads. The technique finds the most suspicious function or branch for effective fault localization. We have tested the proposed the technique with two different concurrent example programs to check the accuracy of the technique.
In software engineering, debugging is a most tedious job. Finding and correcting the bug takes much more time and effort than coding. Many researchers have worked for making the debugging process easier. Many existing debugging techniques... more
In software engineering, debugging is a most tedious job. Finding and correcting the bug takes much more time and effort than coding. Many researchers have worked for making the debugging process easier. Many existing debugging techniques are available. Here, in this paper, we review various new emerging trends of software debugging techniques which is mostly used by the developers or testers for a particular application.
Component- Oriented Program slicing is a program analysis technique that reduces the complexity in software engineering activities such as software debugging, testing by focusing on inherent aspects of the program. This paper proposes a... more
Component- Oriented Program slicing is a program analysis technique that reduces the complexity in software engineering activities such as software debugging, testing by focusing on inherent aspects of the program. This paper proposes a slicing algorithm to compute the slice of Component - Oriented Programs (COP). To achieve this objective, first we have proposed a intermediate representation called Component Dependency Graph (CmDG). Next, we have proposed the slicing algorithm based on proposed intermediate graph. Then, we have presented a theoretical comparative study of our proposed slicing algorithm with one of the existing slicing algorithms.
A dynamic slicing algorithm is proposed in this paper along with its implementation which is dynamic for concurrent Component-oriented programs carrying multiple threads. As a part of representing the concurrent COP (CCOP) effectively, an... more
A dynamic slicing algorithm is proposed in this paper along with its implementation which is dynamic for concurrent Component-oriented programs carrying multiple threads. As a part of representing the concurrent COP (CCOP) effectively, an intermediate graph is developed called Concurrent Component Dependency Graph (CCmDG). The system dependence graph (SDG) for individual components and interfaces are integrated to represent the above intermediate graph. It also consists of some new dependence edges which have been triggered for connecting the individual dependence graph of each component with the interface. Based on the graph created for the CCOP, a dynamic slicing algorithm is proposed, which sets the resultant by making the executed nodes marked during run time in Concurrent Components Dynamic Slicing (CCmDS) appropriately. For checking the competence of our algorithm, five case studies have been considered and also compared with an existing technique. From the study, we found tha...
Now-a-days, failure of the software is unavoidable due to increasing size and complexity of software. So, fault finding is necessary for removing the software faults. Spectrum-based fault localization is most popular technique to find the... more
Now-a-days, failure of the software is unavoidable due to increasing size and complexity of software. So, fault finding is necessary for removing the software faults. Spectrum-based fault localization is most popular technique to find the faulty statements of a given program. Still, there are some limitations also. In case of large software, it is very hard and time taking to test all possible scenarios via traditional approach. The machine learning model is an interesting approach for solving this. Recently, deep learning is widely used for improving the fault finding techniques. Deep learning models are based on the architecture of neural network. The neural network architectures based on input layer, hidden layer(s) and output layer. Convolution Neural Network (CNN) is a well-known architecture for deep learning. The network is trained with large amounts of data and neural network architectures that learn the features directly from the information. So, there is no need of manual feature extraction. This technique can capable of finding the suspicious score of each program statement. Using this technique, we can collect the large amount of data from the test cases and extract the important features. As pooling layer of CNN model reduces the input size and complexity of the model, so it speeds up the training process. This framework can also be able to calculate the suspicious score of each statement and accordingly assign the rank.
In a decade ago software engineering exploration progressively focused on software quality improvement and assessment, however the major of these researchers focus on the internal/development perspective i.e. they did not consider users... more
In a decade ago software engineering exploration progressively focused on software quality improvement and assessment, however the major of these researchers focus on the internal/development perspective i.e. they did not consider users point of views. Nevertheless users mainly attention in the quality of performance intended functions efficiently without knowing how the software product is developed, how work form inside, or its internal quality. The achievement of software companies is totally relies upon the users satisfaction, which they choose to use a software product or not. Hence, in software development strong attention must given to users satisfactions. Software Quality research on users satisfaction help the developers to develop a software that meet users requirements and accepted by end users. In this article based on well known software quality models and the users of software product we intended to discuss the factors as well as sub factors of software quality that in...
Software effort estimation guides the bedding, planning, development and maintenance process of software product.Software development uses different paradigm like: procedureoriented, object oriented, Agile, Incremental, component based... more
Software effort estimation guides the bedding, planning, development and maintenance process of software product.Software development uses different paradigm like: procedureoriented, object oriented, Agile, Incremental, component based andweb based etc. Different companies use different techniques for theirsoftware project development. The available estimation techniques arenot suitable for all types of software development techniques. So thereis a need of estimation technique that can be applied on all type of software. This paper we are evaluating the application of artificialneural networks in prediction of effort in conventional and ObjectOriented Software development approach. We have used feed-forwardneural network created using MATLAB10 (NN tool kit) and appliedon two different types of datasets, one for conventional software andanother for object oriented software. The simulation results werestudied and found that artificial neural network model works veryaccurately on both ...
This thesis first presents some program slicing techniques for Aspect-Oriented Programs (AOPs) and then presents a technique for refactoring of software using the proposed slicing technique. Main aim of all the proposed slicing algorithms... more
This thesis first presents some program slicing techniques for Aspect-Oriented Programs (AOPs) and then presents a technique for refactoring of software using the proposed slicing technique. Main aim of all the proposed slicing algorithms in this thesis is to compute accurate and precise dynamic slices of AOPs. In order to compute the slices of aspect-oriented programs, first we extend the System Dependence Graph (SDG) for Object-Oriented Programs (OOPs) to handle AOPs. We have named the extended SDG Extended Aspect-Oriented System Dependence Graph (EAOSDG). The EAOSDG successfully represents different aspect- oriented features such as class representation, method invocation, inheritance, aspect declaration, point-cuts, advices etc. The EAOSDG of an aspect-oriented program consists of System Dependence Graph (SDG) for the non-aspect code, a group of Aspect-Oriented Dependence Graphs (ADGs) for aspect code and some additional dependence edges that are used to connect the SDG of the n...
Failures of software are mainly due to the faulty project management practices, which includes effort estimation. Continuous changing scenarios of software development technology makes effort estimation more challenging. Ability of... more
Failures of software are mainly due to the faulty project management practices, which includes effort estimation. Continuous changing scenarios of software development technology makes effort estimation more challenging. Ability of ANN(Artificial Neural Network) to model a complex set of relationship between the dependent variable (effort) and the independent variables (cost drivers) makes it as a potential tool for estimation. This paper presents a performance analysis of different ANNs in effort estimation. We have simulated four types of ANN created by MATLAB10 NNTool using NASA dataset. KeywordsEffort Estimation, Artificial Neural Network, NNtool, MMRE
The industries are giving more attention on software quality improvement and assessment, however the majority of researches has been done in the field of internal quality improvement. But, less attention has been given to the user's... more
The industries are giving more attention on software quality improvement and assessment, however the majority of researches has been done in the field of internal quality improvement. But, less attention has been given to the user's prospective to improve the quality of a software. The users want the best quality in the usability. The achievement of software companies totally relies upon the user's satisfaction. We focus on customer perspectives of software quality. In this article, first we present some of the existing software quality metrics and their uses. Then, we have accumulated most of the software quality metrics from the literature and prepared a bunch of 27 metrics. Then, we have conducted a survey, with our university students, on the user's perspective to rank the important software quality factors. Based on their responses, we have proposed a new quality model which is user's perspective quality model.
Web applications are broadly utilised for spreading business around the globe. To meet the necessities of the huge numbers of users or customers, the web applications must have better quality and robustness than any other applications... more
Web applications are broadly utilised for spreading business around the globe. To meet the necessities of the huge numbers of users or customers, the web applications must have better quality and robustness than any other applications where the number of users is limited. Program slicing is found to be useful in improving program understanding, analysis, testing and maintenance. This paper presents a context-sensitive slicing technique for web applications. In this paper, a new intermediate representation called web dependence graph (WDG) is proposed for representing all dependencies that may present in a web application. We have proposed a context-sensitive web slicing (CSWS) algorithm for computation of slices of a given web application using the WDG. A tool is developed for automatic generation of the WDG for a given web application and computation of slices. During our literature survey, we noticed that majority of the automatic graph generation tools are mainly based on byte-code whereas our tool uses the dependency analysis from the source code of the given program. Using our tool WDG, we compared the performance of our proposed CSWS algorithm for slicing with other closely related slicing techniques.
Distributed computing has become very popular these days due to its speed, accuracy and fault tolerance capability. In this pa-per, we have considered the distributed Aspect-Oriented Programs (AOPs) where message passing and... more
Distributed computing has become very popular these days due to its speed, accuracy and fault tolerance capability. In this pa-per, we have considered the distributed Aspect-Oriented Programs (AOPs) where message passing and synchronization are handled by Aspects. In this paper, we present a parallel dynamic slicing algorithm for distributed AOPs. We introduce parallelism into our slicing algorithm to make the slice computation process much faster. Our algorithm is implemented on our developed tool, called DDG generator, to generate the required intermediate graphs for distributed AOPs. The proposed slicing technique is compared with one related existing technique using three case studies. The experimental results show that our proposed slicing algorithm generates precise slices in less time as compared to the existing algorithm.
In this paper, we have introduced a slicing technique for AOP based on the separation of aspect and non-aspect (component) sections and separately find their slices and finally combine these two to get the resultant slice. In this paper,... more
In this paper, we have introduced a slicing technique for AOP based on the separation of aspect and non-aspect (component) sections and separately find their slices and finally combine these two to get the resultant slice. In this paper, we have used AspectJ to find the dynamic information of the program.
The Aspect-oriented programming is a different type of programming methodology, than that of Object-oriented programming. But while coming to slicing, many researchers have treated AOP slicing similar to OOP slicing. We have introduced a... more
The Aspect-oriented programming is a different type of programming methodology, than that of Object-oriented programming. But while coming to slicing, many researchers have treated AOP slicing similar to OOP slicing. We have introduced a different approach to slice an AOP, where we have proposed an algorithm that compute slices depending upon the slice point location in the program. Also the program slices computed by many researchers are not fully executable. The main aim of our approach is to create an executable slice. In this paper we have used AspectJ to find the dynamic information of the target program. In this paper we have also shown comparison of our work with some others.
Program slicing has numerous applications in software engineering activities like debugging, testing, maintenance, model checking etc. The main objective of this paper is to automate the generation of System Dependency Graphs (SDG) for... more
Program slicing has numerous applications in software engineering activities like debugging, testing, maintenance, model checking etc. The main objective of this paper is to automate the generation of System Dependency Graphs (SDG) for aspect-oriented programs to efficiently compute accurate slices. The construction of SDG is automated by analysing the byte code of aspect-oriented programs that incorporates the representation of aspect-oriented features. After constructing the SDG, we propose a slicing algorithm that uses the intermediate graph and computes slices for a given AOP. To implement our proposed slicing technique, we have developed a prototype tool that takes an AOP as input and compute its slices using our proposed slicing algorithm. To evaluate our proposed technique, we have considered some case studies by taking open source projects. The comparative study of our proposed slicing algorithm with some existing algorithms show that our approach is an efficient and scalable approach of slicing for different applications with respect to aspect-oriented programs.
Research Interests:
Research Interests: