Curriculum Vitae


    • PhD in Computer Science, CICS, UMass Amherst,USA           Sept 2018 - Present
    • MS, Computer Science, CICS, UMass Amherst, USA              3.83/4                 May 2018      
    • B-Tech (hons.) in Computer Science and Engineering, IIIT Hyderabad, Hyderabad, India     8.95/10                May 2011
    • Class XII, CBSE, Sir Padampat Singhania Education Center, Kanpur, India              88%                     May 2006      
    • Class X, CBSE, Sir Padampat Singhania Education Center, Kanpur, India              92%                     May 2004      


    • Manish Motwani, Sandhya Sankaranarayanan, René Just, and Yuriy Brun, Do Automated Program Repair Techniques Repair Hard and Important Bugs?, in Proceedings of the Journal First Track at the International Conference on Software Engineering (ICSE), 2018 [ PDF ]
    • Manish Motwani, Sandhya Sankaranarayanan, René Just, and Yuriy Brun, Do Automated Program Repair Techniques Repair Hard and Important Bugs?, Empirical Software Engineering (EMSE), 2018 [ PDF ]
    • Smita Ghaisas, Manish Motwani, Balaji Balasubramaniam, Anjali Gajendragadkar, Rahul Kelkar, and Harrick Vin, Towards automating the security compliance value chain, in proceedings of the Industrial Track at the Joint Meeting on Foundations of Software Engineering (FSE), 2015 [ PDF ]
    • Smita Ghaisas, Manish Motwani, and Preethu Rose, Detecting System Use Cases and Validations from Documents, in proceedings of the New Ideas Track at the IEEE/ACM International Conference on Automated Software Engineering (ASE), 2013  [ PDF ]
    • Preethu Rose Anish, SK. Sharma, Manish Motwani, and Smita Ghaisas, Knowledge-assisted Product Requirements Configurator, in proceedings of the International workshop on Product Line Approaches in Software Engineering (PLEASE), 2013 [ PDF ]


    • Systems and Methods for an Automated Interpretation of Legal Regulations, US Patent granted – US9972016B2, May 2018.
    • Automated Classification of Business Rules from Text, US Patent Filed – US13/778850, Feb 2013.

    Academic Achievements

    • Received B-Tech (Hons.) with academic distinction (2011)
    • Featured in the Dean’s List award for academic excellence (2010 and 2011)
    • Placed in top 2% out of 350,000 students in Indian Institutes of Technology Joint Entrance Examination (IIT-JEE) (2007)
    • Placed in top 0.2% out of 500,000 students in All India Engineering Entrance Examination (AIEEE) (2007)
    Work Experience
    • Teaching Assistant for the course "Theory and Practice of Software Engineering" at College of Information and Computer Sciences, UMass Amherst. Sept 2018 - Dec 2018
    • Research Assistant, College of Information and Computer Sciences, UMass Amherst. Sept 2015 - Aug 2018
    • Researcher at Tata Research Development and Design Centre (part of Tata Consultancy Services – Innovation Labs), Pune, India. Working in the area of Software Engineering with specialization in Requirements Engineering.                                                        July 2011 - July 2015
    • Internship at Cisco Systems India Pvt. Ltd., Bangalore, India. Worked on the serviceability and debug-ability of Cisco’s IOS-XR OS.                                                                                                                                                                    May 2010 – July 2010
    • Teaching Assistant for the course “Building Energy Simulation” at IIIT Hyderabad, India.                                Spring 2011
    • Teaching Assistant for the course “Compilers” at IIIT Hyderabad, India.                                                 Monsoon 2010
    • Teaching Assistant for the course “Discrete Mathematics” at IIIT Hyderabad, India.                Monsoon 2009

    Research Experience

    Currently ongoing research projects at CICS, UMass Amherst       Sept 2015 - Present

    • High-Quality Automatic Program Repair using Software Concerns
      This project aims to develop an automatic program repair technique that produces high-quality (acceptable by the developers) patches while repairing defects.
    • Evaluating the applicability of Automatic Program Repair techniques using large real-world defects
      Existing evaluations of automated repair techniques focus on the fraction of the defects for which the technique can produce a patch, the time needed to produce patches, and how well patches generalize to the intended specification. These evaluations have not focused on the applicability of repair techniques and the characteristics of the defects that these techniques can repair. This project aims to find answers for questions such as “can automated repair techniques repair bugs that are hard for humans to repair?” and “which techniques are more likely to repair a memory leak defect?”.
    • Quality of Automated Program Repair on Real World Defects
      This project aims to address a deficit of earlier evaluations of automated repair techniques caused by repairing programs and evaluating generated patches' correctness using the same set of tests. Since tests are an imperfect metric of program correctness, evaluations of this type do not discriminate between correct patches and patches that \emph{overfit} the available tests and break untested but desired functionality. We attempt to evaluate well-studied repair tools, on a publicly available benchmark using independently constructed evaluation test suites.
    • Expressive Semantic Search for Real-World Program Repair
      This project aims to develop a technique that fundamentally redesigns the use of semantic search for automated repair of real-world defects in real-world systems. The technique should handle large, real-world programs that employ realistic programming constructs and idioms (e.g., structs, console output, and library calls) as well as defects with no passing test cases executing the buggy region.

      Research projects pursued at TRDDC - TCS Innovation Labs July 2011 - July 2015

    • Towards automating the security compliance value chain (2014 - 2015)
      Information security is of paramount importance in this digital era. While businesses strive to adopt industry-accepted system-hardening standards such as benchmarks recommended by the Center for Internet Security (CIS) to combat threats, they are confronted with an additional challenge of ever-evolving regulations that address security concerns. These create additional requirements, which must be incorporated into software systems. In this paper, we present a generic approach towards automating different activities of the Security Compliance Value Chain (SCVC) in organizations. We discuss the approach in the context of the Payment Card Industry Data Security Standard (PCI-DSS) regulations. Specifically, we present automation of (1) interpretation of PCI-DSS regulations to infer system requirements, (2) traceability of the inferred system requirements to CIS security controls (3) implementation of appropriate security controls, and finally, (4) verification and reporting of compliance.
    • Getting Stakeholders on Same Indifference Curve - A Requirements Negotiation Model (2014 - 2015)
      Stakeholders’ experiential expectations from business processes (and software systems supporting them) are often negotiable when viewed from the angle of meeting conflicting goals. For a given set of conflicting goals that must be aligned with, stakeholders are seen to be willing to climb down from their most preferred choices in terms of meeting requirements and settle for the next best option(s). The process of requirements negotiation among stakeholders who ‘own’ conflicting goals should finally result in getting all the involved stakeholders on the same indifference curve:- a concept we borrow rather broadly in spirit, from Microeconomics. In this work we reimagine software systems as intelligent systems that take into account possible negotiations among stakeholders and recommend optimal decision based on negotiation parameters in a given scenario. We present a requirements negotiation model and early results of its illustration for stakeholders internal and external to an organization.
    • Automating the Interpretation of Regulations and Tracing of their Implications to Requirements (2013 - 2014)
      Regulations influence several aspects of IT-enabled businesses. Aimed at safeguarding the wellbeing of citizens, they are written with great rigor and discipline to minimize incidents of violations. However, their diction is so highly specialized that it is almost incomprehensible to business communities and software vendors who need to ensure regulatory compliance. We devise a Regulatory Rule Model (RRM) to represent regulations and demonstrate its use to automate the interpretation of regulations. We apply NLP-based techniques around RRM to detect intended constraints in regulatory statements and interpret them in terms of the implementation specifics they necessitate for software systems to be compliant. Further, we demonstrate the use of RRM for tracing the implementation-specific implications of regulations to software requirements. The traces in our case, not only associate relevant regulatory statements with requirements, they also transmit interpretations of those regulatory statements into requirements.
    • Detecting System Use Cases and Validations from Documents (2012 - 2013)
      Identifying system use cases and corresponding validations involves analyzing large requirement documents to understand the descriptions of business processes, rules and policies. This consumes a significant amount of effort and time. We proposed an approach to automate the detection of system use cases and corresponding validations from documents. We devised a representation that allows for capturing the essence of rule statements as a composition of atomic ‘Rule intents’ and key phrases associated with the intents. Rule intents that co-occur frequently constitute 'Rule acts’ analogous to the Speech acts in Linguistics. We employ syntactic and semantic NL analyses around the model to identify and classify rules and annotate them with Rule acts. We map the Rule acts to business process steps and highlight the combinations as potential system use cases and validations for human supervision.   [ View Details ]
    • Knowledge assisted product requirements configuration (2012 - 2013)
      Time to market is a key determinant for the success of any product-based business. This depends to a great extent on how efficiently the existing product knowledge is utilized for customization needs. The knowledge is often not represented in a form that allows an easy reuse. In this project, we developed an ontological representation of product primitives for a knowledge-assisted requirements configurator and deployed it in an organizational unit for a financial product suite.   [ View Details ]
    • Automated extraction, classification and annotation of Business Rules from Project Documentation (2012 - 2013)
      Business rules represent constraints in a domain, which need to be taken into account either during development or usage of a system. In software engineering and requirements engineering (SE & RE) communities, business rules have been studied with the purpose of developing rule engines and rule-based systems that aim to facilitate the “business driving IT vision.” Despite long-standing recognition for its business impact, business rule management isn’t mainstream. Motivated by the knowledge reuse potential within a given domain, we studied business rules in our organization. We interviewed 11 experienced practitioners on how they understand, capture, and use business rules. We found that practitioners have a very broad perception for this term, ranging from business process flows to directives for calling external system interfaces. We identified 27 types of rules, which are typically captured in requirements documents and other project documentation. We used these rule types to create a method and tool to automate the classification and annotation of business rules from documents. The novelty of our approach lay in (1) providing the right granularity for representing rules formally and (2) focus on working with documents which is still the preferred medium of work in the RE practice. [ View Details ]
    • Purpose-centric search for Enterprise Knowledge Reuse (2012 - 2013)
      Knowledge workers in software enterprises deal with broad range of knowledge tasks. To facilitate these, enterprise Knowledge Management Systems (KMS) employ flexible and lightweight platforms such as wikis and weblogs, and use context-sensitive approaches. These advancements have resulted in increased reuse efficiency of KMS; however finding the right portion of knowledge corresponding to knowledge workers’ need is a challenge. In this project, we proposed taxonomy of search purpose. The taxonomy explicated the knowledge workers’ needs in terms of three purpose-values—Consume, Produce and Maintain. We presented a purpose-centric search approach that takes into account explicated purpose-value along with search query and context, to retrieve and present right portion of relevant knowledge elements. We demonstrated the concept using purpose-centric search extension developed for MediaWiki. [ View Details ]
    • Exploring Personality Driven Dynamics of Projects (Agent-Based simulation) (2012 - 2013)
      Among the goals of organizations in pursuing process initiatives like Capability Maturity Model (CMM) and ISO is to make processes and their execution so rigorous that we can commit to process completion metrics irrespective of the individuals who occupy key roles in a project. In an ideal scenario, replacing a worker with another would have very little impact on the project, apart from temporary transients due to the entropy of learning curves and handovers. While some projects may proceed in this ideal fashion, anecdotal evidence indicates that for many other projects, people, especially in key roles (Project Leader, Architect, etc.), have mattered. In this project, we went beyond the process centric model to see how individual actors (people and their personalities) and their dynamics with other actors influence a project, positively and negatively. We aimed to develop experience based and heuristic models and theories of personalities in projects and how different personalities interact and engage with one another in different roles. [ View Details ]
    • Organizing Requirements in Large Transformational Programs (2012 - 2013)
      Organizations such as TCS often execute large programs, which include the entire business cycle, starting with identifying business needs of client’s organization to actually operating its business. This is radically different from engagements that involve exercises such as application development, technology migrations or system integrations. Large program management opens up challenges unique to its expansive scope. For example, as a result of having to operate the business for the client, a multitude of stringent Service Level Agreements (SLAs) come into picture, which are severe in terms of the consequences if not met. The exercise of understanding requirements and interpreting them all the way to operations phase in terms of their ability to meet the SLAs thus, is a new Requirements Engineering (RE) practice that needs to be explicitly addressed. All the sub-practices of RE will have to be then viewed with a different lens. In this project, we proposed a viewpoint model to help organize the requirements in large transformational programs. We conducted interviews of experts in different key roles from a large UK Government program to understand the additional types of requirements involved. We analyzed our findings to identify these types and classified them into new viewpoints in addition to those defined in our previous work. Experts independently validated that mapping of requirements to the viewpoints enabled addressing the requirements deliberately and explicitly and thus aided in meeting SLAs. [ View Details ]
    • Knowledge-assisted Requirements Elicitation (SynQuanOnto)   (2011 - 2012)
      The project was aimed to develop a semantic and collaborative platform that combines the virtues of social software principles and the semantic web concepts to enable creation, refinement, selection and reuse of domain knowledge for the purpose of requirements definition. It employees domain ontologies to classify, define and relate domain knowledge in a terminology acceptable to all participants. The platform fosters enterprise-wide sharing and reuse of domain knowledge while defining requirements.

    Undergraduate Projects    


    • RFID Deployment in IIIT                                                                                                                                     2010 (July) – 2011(April)
      • Developed RFID software application for Linux platform that is compatible with the proprietary RFID devices and deployed it at IIIT-H for integrating it with applications such as - Security, Mess Management and Attendance.
      • Integrated Mess Management software with RFID application.
      • Technologies: QT4, C++, MySql
    • Implementing Bloom Filters to trace back the path of the malicious packet from victim to its source                        2011 (Jan – April)
      • Implemented bloom filters in routers/switches to identify malicious data packets and implementing a trace back algorithm to find out the path of malicious packets from the victim to its source.
      • Technologies: C++, Wireshark
    • “Network Pooling” in Linux                                                                                                                                        2009 (May – Nov)
      • Developed open source software for Linux to facilitate automatic load balancing among multiple network connections that are active at any point of time on the system.
      • Conventional systems support single network connections. Here, user may combine multiple network connections in a given ratio. The software re-routes the network flow based on specified combination to effectively increase bandwidth.
      • Implemented by manipulating and constructing the routing tables in the back-end w.r.t. user specifications.
      • Technologies: QT4, C++, MySql
    • Compiler for Decaf Programming                                                                                                                               2009 (Jan – May)
      • Developed a compiler for DECAF programming language. The project involved implementation of all the phases - Lexical Analysis, Syntactic Analysis, Semantic Analysis, Code Generation & Register Allocation.
      • Technologies: Java, Eclipse
    • Page Rank Implementation using cloud                                                                                    2009 (Aug – Dec)
      • Implemented Google’s page-rank algorithm on distributed system using Hadoop platform and Map-Reduce framework and tested it for a subset of Wikipedia pages.
      • Technologies: Java, Map-Reduce, Eclipse, Hadoop, Amazon ec2 and Amazon S3 buckets.


    • Implementing primary indexing on B+ Tree (Database Management Systems)
    • Implementing and comparing Classification Algorithms (ID3 and SLIQ) (Data Warehousing and Data Mining)
    • Simulation of Linux Shell using basic system calls (Operating Systems)
    • Transformed Based Learning for POS Tagging (Artificial Intelligence)
    • Designing of a 2D game “Asteroid Shooter” (Computer Graphics)
    • “Online leave application portal” for faculty of IIIT-H to automate existing manual process  (IT-Workshop)

    Skills / Expertise

    • Programming languages:            Java, C (working knowledge), C++(working knowledge), ocaml (basic), Plt-Scheme(basic)
    • Scripting languages:                  Python, Ruby on Rails, JavaScript, Shell
    • Operating systems:                   Linux (Red-Hat, Fedora), Windows
    • Web Applications:                     Html, CSS
    • API:                                         Eclipse, Net-Beans, QT-Creator
    • Databases:                               Oracle, MySQL
    • Programming Environments:       Vim, Visual C++, Visual Basic

    Areas of Interest

    I am interested in improving software engineers’ productivity by automating software engineering practices. My research involves analyzing large software repositories to learn interesting phenomena in software development and maintenance, and to use that knowledge to design novel automation techniques, such as testing and program repair.

    Relevant Coursework

    Computer Programming, Operating Systems, Data Structures, Computer Organization (Computer Architecture), Principles of Programming Languages, Computer Networks, Compilers, Cloud Computing, Concurrent Data Structures, Database, Management Systems, Computer Graphics, Algorithms, Artificial Intelligence, Systems & Network Security, Software Engineering, Data Warehousing and Data Mining, Advanced Computer Networks.

    Extracurricular Activities

    • Member of recreational activities organization committee at TRDDC
    • Fire Evacuation Warden at TRDDC
    • Member of Association for Computing Machinery (ACM)
    • Member of organization committee of annual cultural and technical fest of IIIT - Felicity ’10.
    • Member of website designing team for Felicity ’10.
    • Member of movie-appreciation club and the fine-arts club.