A Model-Driven Approach for Building Business Components
Modern business systems need to cater to rapidly evolving business requirements in an ever-shrinking window of opportunity while keeping pace with advances in technology. Current industry practice for developing large and complex applications is expensive and error prone as it relies heavily on manual verification. Model-driven development approach addresses this problem by providing a set of modeling notations like UML for specifying the different aspects of a system and a set of code generators for transforming these models into code. These modeling notations can be used to specify an application as a set of interacting components that can be adapted along the dimensions of change. Typically, business applications vary along the dimensions of domain functionality, business process, architecture, design strategies and technology platforms. We present a methodology, emerging from and aimed at guiding the engineering practice, that uses aspect-orientation and model-driven development techniques for specifying different views of interest of a system as models and transforming them in successive stages of refinement with specific aspects of interest being imparted at each stage. We discuss how this approach was used to restructure a model driven development environment resulting in greater reuse and ease of its evolution.