=Paper=
{{Paper
|id=Vol-1717/paper3
|storemode=property
|title=None
|pdfUrl=https://ceur-ws.org/Vol-1717/paper3.pdf
|volume=Vol-1717
}}
==None==
Scaling up MDE to Support Large Geographically Distributed Teams - An Experience Report Vinay Kulkarni Tata Consultancy Services Research, India vinay.vkulkarni@tcs.com Abstract We have been using model-driven techniques for developing large business applications for more than 20 years. Large business applications are typically implemented using a distributed architecture consisting of a GUI layer, middleware, service logic and database. We devised a specification-driven approach wherein specifications abstract out implementation-level details that can be filled in later through code generation. A large application requires several sub-teams performing specialized tasks such as creating analysis models, refining analysis models with design details, specifying business logic, transforming models and business logic to code, testing the implementation, deploying into the desired deployment set- up etc. These sub-teams need to share a unified view of the models in order to ensure that different models are consistent with each other. We developed a centralized multi-user repository for storing models to enable multiple teams to work off a common model. However, this enforces everyone to be in lock-step thus sacrificing flexibility in development. To balance this concern, we developed a component abstraction to support the notions of private and public workspaces, and devised a protocol for synchronizing them. Large outsourced projects typically have an onsite and an offshore development team. To achieve scale-up, we replicated the repository at each site. This places an additional requirement on repository synchronization that was addressed by enhancing the workspace synchronization protocol. Large software development engagements are typically delivered in phases where each phase constitutes a well-defined baseline in the project lifecycle. Even after final delivery the software system continues to evolve in response to multiple change drivers such as technology advance, regulatory changes, business process reengineering etc. To address this need, we developed a robust and comprehensive versioning and configuration management capability for models. In many business applications it is critical to have short turn-around times for changes – especially in the maintenance phase. This requires all development / maintenance processes to be change-driven i.e. effort required to implement a change should be proportional to the size of the change. We engineered our MDE processes and tools supporting them to be incremental in nature. Our experience shows that it is essential to have a robust multi-user repository with an integrated versioning and configuration management capability that understands model semantics to scale up MDE to the demands of enterprise systems. An efficient means for change management is also a must.