Curriculum Vitae

    • PhD in Computer Science, College of Information and Computer Sciences, UMass Amherst, USA                        Sept 2015 - Present
    • B-Tech (hons.) in Computer Science and Engineering, IIIT Hyderabad, Hyderabad, India                      8.95/10 (CGPA)        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        


    • Towards automating the security compliance value chain: Smita Ghaisas, Manish Motwani, Balaji Balasubramaniam, Anjali Gajendragadkar, Rahul Kelkar, Harrick Vin, In: Proceedings of the10th Joint Meeting on Foundations of Software Engineering (FSE), 2015
    • Detecting System Use Cases and Validations from Documents: Smita Ghaisas, Manish Motwani, Preethu Rose, In: 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2013    [ PDF ]
    • Knowledge-assisted Product Requirements Configurator: Preethu Rose Anish, SK. Sharma, Manish Motwani, S. Ghaisas, In: 4th International workshop on Product Line Approaches in Software Engineering (PLEASE), 2013    [ PDF ]
    • Automated classification and annotation of business rules in project documentation-An Approach to Building the tools likeliest to be used: Manish Motwani,  Preethu Rose, SK. Sharma, M. Raman, T. Arul, M. Anand,  Smita Ghaisas, In: Technical Architect’s Conference (TACTiCS), 2013   [ PDF ]
    • Organizing Requirements in Large Transformational Programs: N.P. Raghupathy, Manish Motwani, Preethu Rose, Smita Ghaisas, In: Technical Architect’s  Conference (TACTiCS), 2013   [ PDF ]


    • Automated Classification of Business Rules from Text, US Patent Filed – US13/778850, Feb 2013.
    • Systems and Methods for an Automated Interpretation of Legal Regulations, US Patent Filed - 14/550, 420, Nov 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
    • 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

    Ongoing Research Projects at UMass Amherst       Sept 2015 - Present

    • Evaluating applicability of Automatic Program Repair techniques using large real-world defect datasets
      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?”.

    • Enhancing Automatic Program Repair techniques considering quality of patch generated
      With the invention of multiple automatic program repair techniques since 2009, the focus of automatic program repair research community has now shifted from coming up with techniques that can fix more bugs to technqiues that can produce more acceptable fixes. This project aims to enhance two existing techniques and evaluate them using real-world defect datasets.

    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:            C, C++, Java(basic), Plt-Scheme(basic)
    • Scripting languages:                  Python, Ruby on Rails, JavaScript, Bash
    • 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

    Applying Artificial Intelligence, Machine Learning and Information Retrieval techniques to improve current practices in Software Engineering.

    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.