Title :
Developing applications using model-driven design environments
Author :
Balasubramanian, Krishnakumar ; Gokhale, Aniruddha ; Karsai, Gabor ; Sztipanovits, Janos ; Neema, Sandeep
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., Vanderbilt Univ., Nashville, TN, USA
Abstract :
Historically, software development methodologies have focused more on improving tools for system development than on developing tools that assist with system composition and integration. Component-based middleware like Enterprise Java-Beans (EJB), Microsoft .NET, and the CORBA Component Model (CCM) have helped improve software reusability through component abstraction. However, as developers have adopted these commercial off-the-shelf technologies, a wide gap has emerged between the availability and sophistication of standard software development tools like compilers and debuggers, and the tools that developers use to compose, analyze, and test a complete system or system of systems. As a result, developers continue to accomplish system integration using ad hoc methods without the support of automated tools. Model-driven development is an emerging paradigm that solves numerous problems associated with the composition and integration of large-scale systems while leveraging advances in software development technologies such as component-based middleware. MDD elevates software development to a higher level of abstraction than is possible with third-generation programming languages.
Keywords :
distributed object management; middleware; programming environments; software packages; software tools; CCM; CORBA Component Model; EJB; Enterprise Java-Beans; MDD; Microsoft .NET; commercial off-the-shelf technologies; component abstraction; component-based middleware; model-driven design environments; software development tools; software reusability; Application software; Availability; Java; Middleware; Programming; Software reusability; Software standards; Software testing; Standards development; System testing; MDE tools; Model-driven engineering; Programming languages; Software development; System design;