TCS RESEARCH

TCS RESEARCH
TCS Research

Improve Operational Efficiency and Productivity

Arun Bahulkar, Head, Software Engineering Group, TCS Innovation Labs - TRDDC

Increase Operational Efficiency and Productivity in Engineering and Industrial services

The process of developing and managing applications across their life cycle is one that offers abundant scope for innovation. From getting the requirements right, to developing defect-free software deploying minimal effort and supporting an entire set of users with small support teams; there are a myriad challenges to be addressed. In our research aimed at enhancing operational efficiency, we have continued to work on some of these challenges.

Defining requirements for any application poses a significant challenge. Moreover, learning from previous experiences can be useful in gathering requirements more accurately. To this effect, we conducted early experiments to devise novel methods in knowledge engineering that apply well to requirements gathering. These include the creation of a domain specific repository that captures, classifies and organizes data models, use cases, and business rules using principles of ontology and inference rules that assist analysts in using the right terminology, and being more thorough in requirements analysis by providing access to previously captured and vetted models. A process has been defined to capture previously unseen requirements and promote them to the level of domain knowledge collaboratively.

Another challenge commonly faced is of creating custom solutions using a configuration and assembly process with a method to handle evolution of any aspect; be it function, process, data, interface, architecture, or technology. We have succeeded in building a mechanism that ensures configurability and extensibility at each layer and aspect of an application. This applies to data and data access, messaging and communication, security, diagnostics and traceability, functional features, business logic and user interfaces. We are currently applying this mechanism to our software product line architectures. An advantage of model-based specifications is that it enables us to explore new approaches to design and architecture.

Integrating data is another big challenge faced by any enterprise. We have successfully developed a mechanism that creates enterprise level models useful in generating Extract, Transform and Load (ETL) scripts for data integration processes, generating query programs to extract data from operational systems given queries on the enterprise model, and performing data migration when applications integrate. These enterprise level models have also been mapped successfully to actual system data.

In software evolution, we focused on transforming existing applications to make them simpler to manage. We are continuing to work on an application product , towards reducing unexpected errors that are typically encountered in the less exercised program paths. We are currently breaking down the large COBOL program into smaller units so that concurrent changes can be made. We are also helping one of our customers, a printer products company, to refactor the code and move to a desired functional architecture and also to move to an SPLE architecture that would enable rapid creation of new products.

Our Zero Defect Program for embedded software has led to the creation of tools that can analyze hundreds of related state charts for system properties, analyze applications with more than 10 million lines of code (MLoC) of C code to detect genuine defects, and automatically generate data to achieve Modified Condition/Decision Coverage (MCDC) coverage. The tools can also generate test data to not just achieve Boundary Value Coverage (BVC), but also confirm to the more effective coverage criteria of Masked Boundary Value Coverage. These tools have already been applied to real life projects with positive results.

In the enterprise system space, our focus was on automating system testing based on extended Business Process Modelling Notation (BPMN) process specifications from which we generate test data, test execution scripts and test validation steps. Our endeavour is to continue working on major challenges facing software development.

Case Study