MDD at TCS in the past
MasterCraft, our toolset that implements model-driven development (MDD), came into existence in mid-90s as an enabling technology for a solution to a critical business problem – how best to develop database-intensive business applications that can keep pace with technology advance. Encoding of the appropriate design strategies, technology platforms, and architectural decisions by the code generators resulted in increased productivity, uniformly high code quality, and technology independence.
MasterCraft was used to deliver purpose-specific business applications. Even the products group functioned more like asset-based solution group where specifications of an earlier solution that came closest was used to provide a jump-start to the project. Every new project necessitated development of new set of code generators. Therefore, MasterCraft team was becoming a bottleneck in fast delivery of the purpose-specific business application. We devised building block abstraction to enable MDE tools product line with which model-based generation of model-based code generators was accomplished. This enabled MasterCraft team to be organized according to various specialties such as architecture experts, platform experts, languages experts etc. It also helped MasterCraft evolve as a single product line as opposed to a motley collection of a large number of tools.
We came up with a component abstraction with which an application was modeled as a set of inter-dependent components which could be developed in parallel with on-demand intermittent synchronization. Repository-centric development process facilitated coordinated development with large teams and that too in a distributed setting. For instance, development of policy administration system (PAS) at an organization involved large onsite and offshore teams synching their work through an automated sync-up process. We observed that developers were tempted to fudge the generated code if cycle time for reflecting a model change in the code is high. We came up with strategies of Incremental change-specific generation that compute impact of a specification change and perform only the minimal code generation. As component was specified in terms of models (stored in database) and programs in higher level language (stored as text files on disk), we came up with seamless support for versioning and configuration management of models and code. Some aspects MasterCraft toolset are shown below
While MDD as a development method and MasterCraft as a toolset continue to be used successfully in organizations across globe, the sentiment here is that instead of restricting ourselves to using MDD for IT systems of an organization, we could model an organization itself- something we call a model-driven organization (MDO) (A workshop was recently held at the MODELS conference called AMINO on the same theme, proceedings are available here).
From MDD to MDO at TCS – Modern organizations are faced with the challenge to maintain the desired level of operations in the face of continuous changes arising from external business pressures. The enterprise architecture community has considered the problem of business-IT alignment with enterprise models that are descriptive in nature and hence need human expertise for their interpretation. As a result, current approaches to Enterprise Modeling (EM) exhibit a high degree of latency in meeting key objectives such as alignment, adaptation etc. Our vision in MDO is that the different layers of an organization are modeled, analyzed, and translated to a model of the underlying IT platform, whilst at the same time being accessible to all organizational stakeholders. This is illustrated in figure below.
This can be viewed as generalizing the notion of Model Driven Architecture (MDA) to the level of organizations, where the platform independent model (PIM) contains features from the strategic and tactical layers and the platform specific model (PSM) is the IT platform that runs the organization. MDO activities include modeling a domain as a graph of problem-specific models given the domain context (imagine a bank that needs to manage regulatory compliance– here banking domain sets the context and the problem is that of regulatory compliance), modeling a specific enterprise in a domain in terms of machine-manipulable models addressing ‘what and how’, and ‘why’ concerns (Imagine EM of given Bank and associated goal models), ensuring that the ‘what and how’ and ‘why’ models are consistent with each other and an enterprise model is a valid model and that enterprise goals are valid goals in the given domain using various analyses, specifying a ‘realization’ for the enterprise as a system in terms of multiple stakeholder views and ensuring completeness and consistency between the various views so as to lead to an integrated realization, refining the system model to derive specification(s) of the required IT system(s), and finally deriving the desired IT system implementation and realizing interactions between them (the IT platform for the given Bank).
The shift from MDD to MDO has just begun and it’s quite exciting!!!
Explore more views from them on the TCS Innovation Blog .