Siba Mishra bio photo

Email Skype

Current Research


Software requirements are usually written in common natural language. Some essential characteristics of requirements are completeness, consistency and unambiguity. Out of this, unambiguity is an important quality criterion. This simply means that all readers of the requirement must arrive at the same understanding of requirement. Due to differences in the domain expertise of requirements engineer and other stakeholders of the project, it is possible that the requirements contain several words that allow alternative interpretations. For enhancing confidence between the stakeholders, the following problems should be addressed during the early stages of software development.

  • early identification of all ambiguous words.
  • defining domain specific technical terms in a common glossary.
  • the terms that are used in similar ways should always belongs to the same cluster.

All the above mentioned problems are very crucial throughout the software development lifecycle. To address the aforementioned issues, we are using a twofold technique based on natural language processing (NLP) and the state-of-the-art neural word embeddings.

Past Research


Cost Estimation and Testing of SOA Systems (2013-2018): The main objective is to study, design and develop efficient cost estimation and testing approaches for SOA systems. In general, the cost/effort estimation and testing of SOA systems is different from that of traditional software. One of the prominent reason for this could be visualized from the architectural difference of SOA systems when compared to the traditional software development. Additionally, some recent empirical studies pointed out that distributed processing is more complicated than the non-distributed processing. As any form loose coupling make tasks easier, but increases complexity. In the literature, there is a lack of significant work about cost and effort estimation of SOA systems. Addressing the above mentioned issues, two novel effort estimation approaches have been developed by utilizing statistics and machine learning. The first approach deals in utilizing statistical based approach in estimating the development effort of SOA systems from the implication of new proposed metrics and regression models based on some past project data. The second approach deals in employing machine learning based technique. The proposed structure employs an adaptive filter by combining the insights of signals theory with empirical research to find a recommendation scheme for SOA system effort estimation. To the best of our knowledge, this is the first work in literature to solve the problem by adhering basic principles of SOA system design with a proper validation mean. Furthermore, the current testing approaches of SOA systems are inadequate in addressing the complexities associated with the SOA systems. Additionally, the current testing techniques of SOA systems are unable to assure the desired level of trust, which may create a barrier between the service providers and the end users. Therefore, we inspect an abstract formulation of this problem to identify faulty business processes using minimum number of tests for improving the testing effort and fostering trust between the service providers and end users.

Dynamic Slicing of Concurrent Aspect-Oriented Programs (2010-2013): The main idea is to deal with dynamic slicing of concurrent aspect-oriented programs. In this regard, a dependence based intermediate program representation known as Concurrent Aspect-oriented System Dependence Graph (CASDG) has been proposed to represent concurrent aspect-oriented programs. Moreover, an efficient dynamic slicing algorithm has been implemented for computing the dynamic slices of concurrent aspect-oriented programs, appropriately during the runtime. The CASDG is modelled by the main program together with all methods, constructors, used and defined variables present in the non-aspect code and all pointcuts, advices and introductions exist in the aspect code. The proposed dynamic slicing algorithm is an extended version of Node Marking Dynamic Slicing (NMDS) algorithm for concurrent object-oriented programs, which is primarily based on marking and un-marking of the executed nodes in CASDG during the run time.