|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
ABSTRACT
We discuss our experience in using model-driven techniques to build large business applications on a variety of architectures and technology platforms. Our foray into model-driven techniques began 12 years ago when our organization decided to develop a banking product that was to be capable of being delivered on multiple technology platforms and capable of easily keeping pace with technological advances. We began by developing a set of modeling notations to specify different architectural layers of the application and a set of code generators that transform these models into an implementation. Separating business functionality from technological concerns and model-based code generation resulted in significant productivity and quality gains. We then discovered that process aspect needed to be addressed as well so as to extend these gains to other phases of development lifecycle. Modeling of workspaces and a role-based process enabled a large team to effectively coordinate development effort leading to significant reduction of integration effort. Encouraged by these benefits, many large development projects readily adopted the model-driven approach despite an initial investment in learning how to create the models. However, even though the benefits of automated generation of architectural code were quite obvious, small and medium sized projects found this upfront expense too large. We developed a code-centric approach that delivers these benefits without incurring the expense of having to explicitly create the models. Ability to easily move to the code-centric approach provided additional flexibility to the model-centric approach. Looking forward, we feel the focus of model-driven techniques needs to expand to address other aspects such as integration, maintenance, testing etc. We also feel there is a need to look at interpretive model-driven techniques in order to address the growing need of rapid customizability REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
INDEX TERMS
Primary Classification:
General Terms:
Keywords:
|
||||||||||||||||||||||||||||||||||||||||||||||