Manjari Gupta - Academia.edu (original) (raw)

Papers by Manjari Gupta

Research paper thumbnail of Hook_Test: An Aid to the Hook-Driven Test-First Development of Framework based Application

Enhanced quality with reduced cost and reduced time-tomarket is the primary goal of any software ... more Enhanced quality with reduced cost and reduced time-tomarket is the primary goal of any software industry. Researchers and practitioners are trying to aspire it with many techniques. Object-oriented framework is the promising technology to promote reuse, thus realizing desired goal. Inherently complex design and large size of a framework make it difficult to understand the framework, thus inhibit the purpose of reuse of framework. Conventionally, test is performed after the implementation phase of the waterfall model and any fault detection at this stage is a very costly affair. In this paper, we are introducing Hook_Test document to assist in test-first development approach of instantiation of framework known as Hook-Driven Test-First Development (HDTFD) of framework based application. Hook_Test guides the user of the framework to generate hook method specification based test cases for different types of hooks. These test cases can be further customized during the framework instant...

Research paper thumbnail of Reusable Framework for Unit Testing

Research paper thumbnail of Designing a Task Allocator Framework for Distributed Computing

International Journal of Advanced Research in Computer Science, 2019

Software Frameworks attempt to capture and implement a software system architecture that is reusa... more Software Frameworks attempt to capture and implement a software system architecture that is reusable. A frameworks, thus, is a semicode that needs to be customized for a particular reuse. The problem of finding an optimal task allocation in distributed computing system (DCS) is an NP-hard. There are various task allocation algorithms and hence a Task Allocator may implement any of them. Any Task Allocator, hence will have many portions that can be reused to define and implement a Task Allocator. In distributed system a Task Allocation mechanism may be replaced by a new one if a standardized definition of a reusable system architecture for this purpose is available. This work attempts at formalizing a system architecture of a Task Allocator by proposing a framework for the purpose. Here we start the design methodology for OO software and identify the various parts of the software system architecture for task allocation. This effort finally results into a semicode framework. The interesting conclusions include "Identification of that code portion of the semicode framework that does not change when reused", "Characteristics of the code portion that need customization" and the nature of framework definitions that need to be coded at the time of reuse. In this work OO design of various activities of task allocation process has been carried out as per the OO design methodology. To be objects have been identified the dynamic and functional modeling along with identification use cases, corresponding scenarios and data flow diagrams.

Research paper thumbnail of DPVO: Design Pattern Detection Using Vertex Ordering a Case Study in JHotDraw with Documentation to Improve Reusability

Communications in Computer and Information Science, 2018

Research paper thumbnail of Possibility of Reuse in Software Testing

Research paper thumbnail of Predicting Code Smells and Analysis of Predictions: Using Machine Learning Techniques and Software Metrics

Journal of Computer Science and Technology

Research paper thumbnail of Mining Design Patterns using String Encoding Format

Journal of scientific research

In object oriented software, design pattern gives the particular solution for common design probl... more In object oriented software, design pattern gives the particular solution for common design problems. In software engineering it's very difficult task to find out design information due to improper documentation of software systems. It is very much necessary to recover pattern instances so that system would be understandable and can do modifications in them. Actually recovery of design patterns play a significant role in object oriented programming for software developers and researchers during development of system software and their maintenance. Hence mining of design patterns are very important. The paper describes detection of design patterns from software or system design by using the String Encoding Format in which pattern and system graphs are transformed in string after that process of matching is performed to extract instances from software systems. Here we match string of system design graph and design pattern graph using structural analysis.

Research paper thumbnail of Software Metrics and tree-based machine learning algorithms for distinguishing and detecting similar structure design patterns

SN Applied Sciences

Design patterns are general reusable solutions for recurrent occurring problems. When software sy... more Design patterns are general reusable solutions for recurrent occurring problems. When software systems become more complicated due to the lack of documentation of design patterns in software and the maintenance and evolution costs become a challenge. Design pattern detection is used to reduce the complexity and to increase the understandability of the design in the software. In this paper, we propose a design pattern detection approach based on tree-based machine learning algorithms and software metrics to study the effectiveness of software metrics in distinguishing between similar structural design patterns. We build our datasets using P-MARt repository by extracting the roles of design patterns and calculating the metrics for each role. We used parameter optimization techniques based on the Grid search algorithm to define the optimal parameter of each algorithm. We used two feature selection methods based on a genetic algorithm to find features that influence the most in the distinguishing process. Through our experimental study, we showed the effectiveness of machine learning and software metrics when distinguishing similar structure design patterns. Moreover, we extracted the essential metrics in each dataset that supported the machine learning model to take its decision. We presented the detection conditions for each role in the design pattern by extracting them from the decision tree model.

Research paper thumbnail of Generating Code-Smell Prediction Rules Using Decision Tree Algorithm and Software Metrics

International Journal of Computer Sciences and Engineering

Research paper thumbnail of Detecting Meta-Patterns from Frameworks Using Hybrid Genetic Algorithm

International Journal of Engineering & Technology

Meta-patterns are a sort of basic object-oriented constructs that have been used to design an obj... more Meta-patterns are a sort of basic object-oriented constructs that have been used to design an object-oriented framework. It has been used to precisely describe possible design pattern of a framework at meta-level to manifest framework hot-spots and its corresponding adaptability. The present study is an attempt to develop a genetic algorithm approach for detecting the types and numbers of meta-patterns. For this purpose we have converted the UML class diagram of object-oriented framework and meta-patterns into directed graph and applied hybrid genetic algorithm. The obtained results from the proposed algorithm are further validated manually with the recall and precision percentage of 86.20 and 80.64 respectively. Overall the study demonstrates the utility of the uniquely proposed algorithm for the near accurate identification of meta-patterns for high reusability. This can be applied on frameworks for assessing the evolution process, documentation of hot-spots and reducing the custo...

Research paper thumbnail of Software fault classification using extreme learning machine: a cognitive approach

Evolutionary Intelligence

Research paper thumbnail of An Idea Towards Improving Design Pattern Detection

International Journal of System and Software Engineering, 2015

Research paper thumbnail of Design Pattern Detection using Genetic Algorithm for Sub-graph Isomorphism to Enhance Software Reusability

International Journal of Computer Applications, 2016

Design patterns have been proposed as a technique to introduce reuse in design phase. In industry... more Design patterns have been proposed as a technique to introduce reuse in design phase. In industry, it is focused to reuse design patterns as a reusable part when designing a new application. Reusable Design Pattern, that are proven solutions to common design problems, to improves many qualities of applications like Reusability and its maintainability. If better reusability is required for an application where design patterns were used, then an automated tool that can detect the used design pattern in the application will be useful. Therefore, a reliable design pattern discovery is required to promote software reusability. The techniques of finding an isomorphic sub-graph were used to solve design pattern detection in past. Furthermore, we are applying a hybrid genetic algorithm for sub-graph isomorphism problem which uses an incremental approach to detect design patterns. Moreover, detection is done with increasing the size of sub-problem step by step. A hybrid GA is applied to each sub-problem, initialized with the evolved population of previous step. This proposed work of identifying and then later reusing of design pattern facilitate to bring software design in reduced time and consequently expedite software reusability.

Research paper thumbnail of Redesign of Hot Spots using Aspect-Oriented Programming

International Journal of Computer Applications, 2015

During last decade, software developers have given much more attention to the aspects and aspect-... more During last decade, software developers have given much more attention to the aspects and aspect-oriented programming (AOP). It offers a unique module to encapsulate scattered and tangled code. This approach might be helpful to solve the problem of crosscutting concerns. To the best of our knowledge, there are few reports are available in open source on design and programming part of framework, especially in modularising framework hot spots. Further, these reports are limited to the systematic approach for developing flexible hot spots. In this paper, we propose an aspect-oriented approach to redesign of hot spots by explaining how framework hot spots are related to the scattering and tangling problem. Further, we also introduced a comprehensive approach for descattering and untangling of hot spots using template-hook model in which these methods are rehabilitated into aspect. Our approach might be beneficial in the reusability of aspectoriented implementation of a framework that is more flexible and modular. Besides that, the present study is suitable for being applied in available frameworks.

Research paper thumbnail of Possibility of Reuse in Software Testing

Research paper thumbnail of Documenting Specialization Concerns in Aspect-Oriented Framework

Proceeding for the 4th Annual International Conference on Software Engineering & Applications (SEA 2013), 2013

Research paper thumbnail of Design Pattern Mining Using State Space Representation of Graph Matching

Communications in Computer and Information Science, 2011

Abstract. Design Pattern Detection is a part of many solutions to Software Engineering problems. ... more Abstract. Design Pattern Detection is a part of many solutions to Software Engineering problems. It is a part of reengineering process and thus gives significant information to the designer. Design Pattern improves the program understanding and software ...

Research paper thumbnail of A New Approach for Detecting Design Patterns by Graph Decomposition and Graph Isomorphism

Communications in Computer and Information Science, 2010

Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is ... more Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is a part of reengineering process and thus gives important information to the designer. Design Pattern existence improve the program understanding and software maintenance. With the help of these patterns specific design problem can be solved and object oriented design become more flexible and reusable. Hence

Research paper thumbnail of A Decision Tree Approach for Design Patterns Detection by Subgraph Isomorphism

Communications in Computer and Information Science, 2010

In many object oriented softwares, there are recurring patterns of classes. Design pattern instan... more In many object oriented softwares, there are recurring patterns of classes. Design pattern instances are important for program understanding and software maintenance.Hence a reliable design pattern mining is required. Here we are applying decision tree approach followed by subgraph isomorphism technique for design pattern detection.

Research paper thumbnail of Design pattern mining for GIS application using graph matching techniques

2010 3rd International Conference on Computer Science and Information Technology, 2010

Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is ... more Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is a part of reengineering process and thus gives important information to the designer. Design Pattern existence improve the program understanding and software maintenance. With the help of these patterns specific design problem can be solved and object oriented design become more flexible and reusable. Hence a reliable design pattern mining is required. A GIS is an information system designed to work with data referenced by spatial / geographical coordinates. Here we are detecting design patterns so that it can be used as a conceptual tool to cope with recurrent problems appearing in the GIS domain. In this way, GIS applications can evolve smoothly, because maintenance is achieved by focusing on different concerns at different times.

Research paper thumbnail of Hook_Test: An Aid to the Hook-Driven Test-First Development of Framework based Application

Enhanced quality with reduced cost and reduced time-tomarket is the primary goal of any software ... more Enhanced quality with reduced cost and reduced time-tomarket is the primary goal of any software industry. Researchers and practitioners are trying to aspire it with many techniques. Object-oriented framework is the promising technology to promote reuse, thus realizing desired goal. Inherently complex design and large size of a framework make it difficult to understand the framework, thus inhibit the purpose of reuse of framework. Conventionally, test is performed after the implementation phase of the waterfall model and any fault detection at this stage is a very costly affair. In this paper, we are introducing Hook_Test document to assist in test-first development approach of instantiation of framework known as Hook-Driven Test-First Development (HDTFD) of framework based application. Hook_Test guides the user of the framework to generate hook method specification based test cases for different types of hooks. These test cases can be further customized during the framework instant...

Research paper thumbnail of Reusable Framework for Unit Testing

Research paper thumbnail of Designing a Task Allocator Framework for Distributed Computing

International Journal of Advanced Research in Computer Science, 2019

Software Frameworks attempt to capture and implement a software system architecture that is reusa... more Software Frameworks attempt to capture and implement a software system architecture that is reusable. A frameworks, thus, is a semicode that needs to be customized for a particular reuse. The problem of finding an optimal task allocation in distributed computing system (DCS) is an NP-hard. There are various task allocation algorithms and hence a Task Allocator may implement any of them. Any Task Allocator, hence will have many portions that can be reused to define and implement a Task Allocator. In distributed system a Task Allocation mechanism may be replaced by a new one if a standardized definition of a reusable system architecture for this purpose is available. This work attempts at formalizing a system architecture of a Task Allocator by proposing a framework for the purpose. Here we start the design methodology for OO software and identify the various parts of the software system architecture for task allocation. This effort finally results into a semicode framework. The interesting conclusions include "Identification of that code portion of the semicode framework that does not change when reused", "Characteristics of the code portion that need customization" and the nature of framework definitions that need to be coded at the time of reuse. In this work OO design of various activities of task allocation process has been carried out as per the OO design methodology. To be objects have been identified the dynamic and functional modeling along with identification use cases, corresponding scenarios and data flow diagrams.

Research paper thumbnail of DPVO: Design Pattern Detection Using Vertex Ordering a Case Study in JHotDraw with Documentation to Improve Reusability

Communications in Computer and Information Science, 2018

Research paper thumbnail of Possibility of Reuse in Software Testing

Research paper thumbnail of Predicting Code Smells and Analysis of Predictions: Using Machine Learning Techniques and Software Metrics

Journal of Computer Science and Technology

Research paper thumbnail of Mining Design Patterns using String Encoding Format

Journal of scientific research

In object oriented software, design pattern gives the particular solution for common design probl... more In object oriented software, design pattern gives the particular solution for common design problems. In software engineering it's very difficult task to find out design information due to improper documentation of software systems. It is very much necessary to recover pattern instances so that system would be understandable and can do modifications in them. Actually recovery of design patterns play a significant role in object oriented programming for software developers and researchers during development of system software and their maintenance. Hence mining of design patterns are very important. The paper describes detection of design patterns from software or system design by using the String Encoding Format in which pattern and system graphs are transformed in string after that process of matching is performed to extract instances from software systems. Here we match string of system design graph and design pattern graph using structural analysis.

Research paper thumbnail of Software Metrics and tree-based machine learning algorithms for distinguishing and detecting similar structure design patterns

SN Applied Sciences

Design patterns are general reusable solutions for recurrent occurring problems. When software sy... more Design patterns are general reusable solutions for recurrent occurring problems. When software systems become more complicated due to the lack of documentation of design patterns in software and the maintenance and evolution costs become a challenge. Design pattern detection is used to reduce the complexity and to increase the understandability of the design in the software. In this paper, we propose a design pattern detection approach based on tree-based machine learning algorithms and software metrics to study the effectiveness of software metrics in distinguishing between similar structural design patterns. We build our datasets using P-MARt repository by extracting the roles of design patterns and calculating the metrics for each role. We used parameter optimization techniques based on the Grid search algorithm to define the optimal parameter of each algorithm. We used two feature selection methods based on a genetic algorithm to find features that influence the most in the distinguishing process. Through our experimental study, we showed the effectiveness of machine learning and software metrics when distinguishing similar structure design patterns. Moreover, we extracted the essential metrics in each dataset that supported the machine learning model to take its decision. We presented the detection conditions for each role in the design pattern by extracting them from the decision tree model.

Research paper thumbnail of Generating Code-Smell Prediction Rules Using Decision Tree Algorithm and Software Metrics

International Journal of Computer Sciences and Engineering

Research paper thumbnail of Detecting Meta-Patterns from Frameworks Using Hybrid Genetic Algorithm

International Journal of Engineering & Technology

Meta-patterns are a sort of basic object-oriented constructs that have been used to design an obj... more Meta-patterns are a sort of basic object-oriented constructs that have been used to design an object-oriented framework. It has been used to precisely describe possible design pattern of a framework at meta-level to manifest framework hot-spots and its corresponding adaptability. The present study is an attempt to develop a genetic algorithm approach for detecting the types and numbers of meta-patterns. For this purpose we have converted the UML class diagram of object-oriented framework and meta-patterns into directed graph and applied hybrid genetic algorithm. The obtained results from the proposed algorithm are further validated manually with the recall and precision percentage of 86.20 and 80.64 respectively. Overall the study demonstrates the utility of the uniquely proposed algorithm for the near accurate identification of meta-patterns for high reusability. This can be applied on frameworks for assessing the evolution process, documentation of hot-spots and reducing the custo...

Research paper thumbnail of Software fault classification using extreme learning machine: a cognitive approach

Evolutionary Intelligence

Research paper thumbnail of An Idea Towards Improving Design Pattern Detection

International Journal of System and Software Engineering, 2015

Research paper thumbnail of Design Pattern Detection using Genetic Algorithm for Sub-graph Isomorphism to Enhance Software Reusability

International Journal of Computer Applications, 2016

Design patterns have been proposed as a technique to introduce reuse in design phase. In industry... more Design patterns have been proposed as a technique to introduce reuse in design phase. In industry, it is focused to reuse design patterns as a reusable part when designing a new application. Reusable Design Pattern, that are proven solutions to common design problems, to improves many qualities of applications like Reusability and its maintainability. If better reusability is required for an application where design patterns were used, then an automated tool that can detect the used design pattern in the application will be useful. Therefore, a reliable design pattern discovery is required to promote software reusability. The techniques of finding an isomorphic sub-graph were used to solve design pattern detection in past. Furthermore, we are applying a hybrid genetic algorithm for sub-graph isomorphism problem which uses an incremental approach to detect design patterns. Moreover, detection is done with increasing the size of sub-problem step by step. A hybrid GA is applied to each sub-problem, initialized with the evolved population of previous step. This proposed work of identifying and then later reusing of design pattern facilitate to bring software design in reduced time and consequently expedite software reusability.

Research paper thumbnail of Redesign of Hot Spots using Aspect-Oriented Programming

International Journal of Computer Applications, 2015

During last decade, software developers have given much more attention to the aspects and aspect-... more During last decade, software developers have given much more attention to the aspects and aspect-oriented programming (AOP). It offers a unique module to encapsulate scattered and tangled code. This approach might be helpful to solve the problem of crosscutting concerns. To the best of our knowledge, there are few reports are available in open source on design and programming part of framework, especially in modularising framework hot spots. Further, these reports are limited to the systematic approach for developing flexible hot spots. In this paper, we propose an aspect-oriented approach to redesign of hot spots by explaining how framework hot spots are related to the scattering and tangling problem. Further, we also introduced a comprehensive approach for descattering and untangling of hot spots using template-hook model in which these methods are rehabilitated into aspect. Our approach might be beneficial in the reusability of aspectoriented implementation of a framework that is more flexible and modular. Besides that, the present study is suitable for being applied in available frameworks.

Research paper thumbnail of Possibility of Reuse in Software Testing

Research paper thumbnail of Documenting Specialization Concerns in Aspect-Oriented Framework

Proceeding for the 4th Annual International Conference on Software Engineering & Applications (SEA 2013), 2013

Research paper thumbnail of Design Pattern Mining Using State Space Representation of Graph Matching

Communications in Computer and Information Science, 2011

Abstract. Design Pattern Detection is a part of many solutions to Software Engineering problems. ... more Abstract. Design Pattern Detection is a part of many solutions to Software Engineering problems. It is a part of reengineering process and thus gives significant information to the designer. Design Pattern improves the program understanding and software ...

Research paper thumbnail of A New Approach for Detecting Design Patterns by Graph Decomposition and Graph Isomorphism

Communications in Computer and Information Science, 2010

Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is ... more Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is a part of reengineering process and thus gives important information to the designer. Design Pattern existence improve the program understanding and software maintenance. With the help of these patterns specific design problem can be solved and object oriented design become more flexible and reusable. Hence

Research paper thumbnail of A Decision Tree Approach for Design Patterns Detection by Subgraph Isomorphism

Communications in Computer and Information Science, 2010

In many object oriented softwares, there are recurring patterns of classes. Design pattern instan... more In many object oriented softwares, there are recurring patterns of classes. Design pattern instances are important for program understanding and software maintenance.Hence a reliable design pattern mining is required. Here we are applying decision tree approach followed by subgraph isomorphism technique for design pattern detection.

Research paper thumbnail of Design pattern mining for GIS application using graph matching techniques

2010 3rd International Conference on Computer Science and Information Technology, 2010

Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is ... more Design Pattern Detection is a part of many solutions to Software Engineering difficulties. It is a part of reengineering process and thus gives important information to the designer. Design Pattern existence improve the program understanding and software maintenance. With the help of these patterns specific design problem can be solved and object oriented design become more flexible and reusable. Hence a reliable design pattern mining is required. A GIS is an information system designed to work with data referenced by spatial / geographical coordinates. Here we are detecting design patterns so that it can be used as a conceptual tool to cope with recurrent problems appearing in the GIS domain. In this way, GIS applications can evolve smoothly, because maintenance is achieved by focusing on different concerns at different times.