Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Vibhu Saujanya Sharma is active.

Publication


Featured researches published by Vibhu Saujanya Sharma.


asia-pacific software engineering conference | 2009

Extracting High-Level Functional Design from Software Requirements

Vibhu Saujanya Sharma; Santonu Sarkar; Kunal Verma; Arun Panayappan; Alex Kass

Practitioners spend significant amounts of time creating high-level design from requirements. Though there exist methodologies to describe and manage requirements and design artifacts, there is not yet an automated way to faithfully translate a requirement into a high-level design. While it is extremely difficult to generate design elements from free-form natural language due to its inherent ambiguity, it is possible to significantly improve the accuracy of the design from relatively structured and constrained natural language. In this paper we propose a technique to generate high-level class diagrams from a set of requirements, using a set of requirement-specific heuristics. In this approach, we leverage work we had previously done to first process a requirement statement to classify it into a requirement type, and then break it into various constituents. Depending on the requirement type and its constituents, our heuristics then discover a functional design comprising of coarse-grained modules, their relationships and responsibilities. We express the design as a UML class diagram in IBM Rational Software Architect (RSA) format. Our preliminary investigation shows that the resulting class diagram is rich, and can be used by practitioners as a basis for further design.


india software engineering conference | 2010

A social network based study of software team dynamics

Subhajit Datta; Vikrant Kaulgud; Vibhu Saujanya Sharma; Nishant Kumar

Members of software project teams have specific roles and responsibilities which are formally defined during project inception or at the start of a life cycle activity. Often, the team structure undergoes spontaneous changes as delivery deadlines draw near and critical tasks have to be completed. Some members -- depending on their skill or seniority -- need to take on more responsibilities, while others end up being peripheral to the projects execution. We posit that this kind of ad hoc reorganization of a teams structure can be discerned from the projects bug tracker. In this paper, we extract a social network from the bug log of a real life software system and apply ideas from social network analysis to understand how the positions of individual team members in the network relate to their organizational seniority, project roles, and geographic locations that define the formal team structure. In addition to providing insights on individual team members for the system studied, our approach can serve as a framework for analyzing team dynamics of software projects.


component based software engineering | 2008

Deploying Software Components for Performance

Vibhu Saujanya Sharma; Pankaj Jalote

Performance is a critical attribute of software systems and depends heavily on the software architecture. Though the impact of the component and connector architecture on performance is well appreciated and modeled, the impact of component deployment has not been studied much. For a given component and connector architecture, the system performance is also affected by how components are deployed onto hardware resources. In this work we first formulate this problem of finding the deployment that maximizes performance, and then present a heuristic-based solution approach for it. Our approach incorporates the software architecture, component resource requirements, and the hardware specifications of the system. We break the problem into two sub-problems and formulate heuristics for suggesting the best deployment in terms of performance. Our evaluation indicates that the proposed heuristic performs very well and outputs a deployment that is the best or close to the best, in more than 96% cases.


international conference on cloud computing | 2012

ReLoC: A Resilient Loosely Coupled Application Architecture for State Management in the Cloud

Vibhu Saujanya Sharma; Shubhashis Sengupta; K. M. Annervaz

Maintaining the state of applications and user sessions is difficult in large scale web-based software systems. This problem is particularly accentuated in the context of Cloud computing as Cloud providers, especially Platform as a Service (PaaS) vendors, do not explicitly support state management infrastructure - such as clustering. In a PaaS environment, a user has little or no access and control over the server platform and session management layer. Additionally, the platform tiers are generally loosely coupled and service-oriented. These make traditional session-state management techniques non-usable. In this work, we present ReLoC - a session-state management architecture for Cloud that uses loosely-coupled services and platform agnostic scalable messaging technology to propagate and save session states. Preliminary experiments show a very high level of tolerance to failures of the platform tiers without corresponding disruptions in user sessions. We argue that, in the context of PaaS Clouds, ReLoC architecture will be more scalable compared to traditional clustering environments.


Proceedings of the 4th International Workshop on Twin Peaks of Requirements and Architecture | 2014

A framework for identifying and analyzing non-functional requirements from text

Vibhu Saujanya Sharma; Roshni R. Ramnani; Shubhashis Sengupta

Early identification of Non-Functional Requirements (NFRs) is important as this has direct bearing on the design and architecture of the system. NFRs form the basis for architects to create the technical architecture of the system which acts as the scaffolding in which the functionality of the same is delivered. Failure to identify and analyze NFRs early-on can result in unclassified, incomplete or conflicting NFRs, and this typically results in costly rework in later stages of the software development. In practice, this activity is primarily done manually. In this paper, we present a framework to automatically detect and classify non-functional requirements from textual natural language requirements. Our approach to identify NFRs is based on extracting multiple features by parsing the natural language requirement whereby the presence of a certain combination of and relationship among the features uniquely identifies the requirement as an NFR of a particular category. These features are specified as pattern based rules which can be specified in a human readable language through the use of a domain specific language that we have defined. This enables great ease and flexibility in creating and extending rules. Our approach has been implemented as a prototype tool and here we also present the results of applying our approach on a publicly available requirement corpus.


ieee international conference on cloud computing technology and science | 2013

Detecting Performance Antipatterns before Migrating to the Cloud

Vibhu Saujanya Sharma; Samit Anwer

Performance is one of the key drivers for migrating existing systems to Cloud. While Cloud computing platforms come with a promise of scaling on demand, simple lift and shift of an existing application to Cloud would often not be the best solution. The design of a software system has a significant bearing on its performance and while migrating to Cloud, certain design patterns, can be detrimental to software performance. The area of detecting performance antipatterns automatically in context of Cloud migration and assessing their effects on performance is however unstudied. In this paper we present an approach to assess a system for known performance antipatterns, before Cloud migration. Our approach leverages static analysis and also factors in information about the prospective deployment on Cloud to evaluate whether certain antipatterns become prominent if the system is migrated to Cloud. We have found that the presence of these performance antipatterns can actually worsen the performance of parts of a software system containing them, when compared to those without these.


international conference on software engineering | 2011

Studying team evolution during software testing

Vibhu Saujanya Sharma; Vikrant Kaulgud

Software development teams are one of the most dynamic entities of any software development project. While the individuals are assigned planned roles at the start of any project, during the course of the project, the team constitution, structure, relationships and roles change. Such changes are often spontaneous and constitute the evolution of the team along different phases of the software development lifecycle. As software development is a team effort, these dynamics may have a significant effect on the development lifecycle itself. This work is aimed at studying the evolution of project teams and gathering insights that can be correlated with project health and outcomes. In this study we apply social network analysis techniques to investigate team evolution in a project in its testing phase. While the questions and insights that we investigate in this paper are valid and useful for all phases of the software development lifecycle, we have focused on software testing phase as it one of the most critical phases in the lifecycle. Our work aims to provide insights in the changes in team interactions and individual roles as the testing process continues and can help find if the same is aligned to the planned and desired project behavior.


ieee international conference on services computing | 2014

Performance Antipatterns: Detection and Evaluation of Their Effects in the Cloud

Vibhu Saujanya Sharma; Samit Anwer

The way an application is designed and certain patterns thereof, play a significant role and might have a positive or a negative effect on the performance of the application. Some design patterns that have a negative effect on performance, also called performance antipatterns, may become important when evaluating migrating the application to the Cloud. Although there has been work done in the past related to defining performance antipatterns, there has been none that highlights the importance and effects of these performance antipatterns when an application is migrated to Cloud. In this work we present an approach to automatically detect important performance antipatterns in an application, by leveraging static code analysis and information about prospective deployment of the application components on the Cloud. We also experimentally show that these antipatterns may become prominent and pull down the applications performance if the application is migrated to the Cloud. Our results show that the performance of the parts of the application with such antipatterns suffer significantly and hence, the detection of these antipatterns has an overarching significance in the domain of software development for the Cloud. The approach we present here has also been implemented in a prototype cloud migration assessment tool.


workshop on emerging trends in software metrics | 2011

Insights into component testing process

Vikrant Kaulgud; Vibhu Saujanya Sharma

Effective component testing (or commonly termed as Unit Testing) is important to control defect slippage into the testing stage. Often testing teams lack in-process visibility into the effectiveness of ongoing component testing. Using project data such as code coverage and schedule and effort estimates, we generate temporal and rate-based insights into component testing effectiveness. A simple composite metric is used for measuring and forecasting the health of the component testing process. The early warning signals, based on the forecast and associated insights, lead teams to take proactive actions for improving component testing. In our ongoing experimental studies, we have observed that use of these insights cause a substantial reduction in defect slippage.


international conference on cloud computing | 2015

A XaaS Savvy Automated Approach to Composite Applications

Poulami Debnath; Vibhu Saujanya Sharma; Vikrant Kaulgud

Applications have evolved significantly over time - from monolithic and self contained, to numerous plug gable apps available on various platforms these days. Modern applications their functionality as services in varying level of granularity and domains. This paradigm of Everything as a Service (XaaS), provides a dynamic environment wherein multiple smaller applications can be rapidly composed to create complex applications. Such composite applications would allow for efficient re-use of the existing applications and their services, instead of more traditional model of building everything from scratch. The intent of this paper is to demonstrate our initial work to implement an end-to-end delivery system in an enterprise scenario. We propose an automated algorithm to utilize a composers input to match available services and create a composite plan or a manifest which is then used to quickly orchestrate the composite application in real-time. We have implemented our approach on our internal enterprise cloud using Puppet.

Collaboration


Dive into the Vibhu Saujanya Sharma's collaboration.

Researchain Logo
Decentralizing Knowledge