Model-Driven Development Using UML 2.0: Promises and Pitfalls
Widespread awareness of the problems associated with earlier UML versions, coupled with growing interest in MDD, raised expectations that the UML 2.0 architects would produce a version that consisted of a significantly reduced set of modeling concepts for concisely and conveniently describing a wide variety of applications. It was also anticipated that this version would have precise semantics that would facilitate the automation needed to move MDD beyond the realm of existing computeraided
... ware engineering tools. Some expected UML 2.0 architects to produce a modeling language silver bullet, or at least a close approximation. Those unfamiliar with the inner workings of a community-driven language standardization effort found the size and complexity of the UML 2.0 standard surprising. Indeed, the end result seems at odds with the forces that initially motivated this major revision. From a detractor's viewpoint, the numerous modeling concepts, poorly defined semantics, and lightweight extension mechanisms that UML provides make learning and applying it in an MDD environment difficult. These real problems must be addressed, but we should not be surprised that this first-generation modeling language is far from perfect. As some UML 2.0 architects point out, we are still in the "infancy of modeling language design." 2 We need constructive criticism of UML to drive the process of evolving MDD-related knowl-The Object Management Group initiated the Unified Modeling Language 2.0 effort to address significant problems in earlier versions.While UML 2.0 improves over earlier versions in some aspects, its size and complexity can present a problem to users, tool developers, and OMG working groups charged with evolving the standard. E xperience indicates that effective complexity management mechanisms automate mundane development tasks and provide strong support for separation of concerns. For example, current high-level programming languages and integrated development environments provide abstractions that shield developers from intricate lower-level details and offer automated support for transforming abstract representations of source code into faithful machineexecutable forms. Advances in software development and information processing technologies have resulted in attempts to build more complex software systems. These systems have highlighted the inadequacies of the abstractions provided by modern high-level programming languages. This has led to a demand for languages, methods, and technologies that raise the abstraction level at which software systems are conceived, built, and evolved. The Object Management Group (OMG) has responded to this demand with the UML version 2.0 1 and the Model Driven Architecture (MDA) initiative (www.omg.org/mda). The problems initially targeted by the architects of the UML 2.0 standard included the apparent bloat in earlier UML versions and the lack of well-defined semantics. During the standard's development, the requirements evolved to include support for model-driven development (MDD), particularly the MDA approach to MDD.