Issue No. 02 - February (2006 vol. 39)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2006.44
Developing Applications Using Model-Driven Design Environments, pp. 33-40
Krishnakumar Balasubramanian, Aniruddha Gokhale, Gabor Karsai, Janos Sztipanovits, and Sandeep Neema
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.
CALM and Cadena: Metamodeling for Component-Based Product-Line Development, pp. 42-50
Adam Childs, Jesse Greenwald, Georg Jung, Matthew Hoosier, and John Hatcliff
Compared to many existing approaches that focus on modeling and analyzing single-system assemblies in a fixed component model, CALM/Cadena is a rigorous type-based framework for modeling multiple component middleware platforms. Developers can use this framework to systematically organize and transition between platform definitions, creating customized development environments that leverage domain knowledge and automating development process steps to enable early design decisions for entire product lines.
Automating Change Evolution in Model-Driven Engineering, pp. 51-58
Jeff Gray, Yuehua Lin, and Jing Zhang
Ideally, a model representation would simulate each new design configuration so that designers could rapidly determine how some configuration aspect, such as a communication protocol, affects an observed property, such as throughput.
To provide that degree of model-evolution support, a tool must accommodate two categories of changes that designers now do manually: changes that crosscut the model representation's hierarchy and scaling up parts of the model.
Both these change evolution categories would benefit greatly from automation. To this end, the authors have developed the Constraint-Specification Aspect Weaver, a generalized transformation engine for manipulating models.
Model-Driven Development Using UML 2.0: Promises and Pitfalls, pp. 59-66
Robert B. France, Sudipto Ghosh, Trung Dinh-Trong, and Arnor Solberg
During the development of Unified Modeling Language version 2.0, the requirements evolved to include support for model-driven development (MDD). Specific problems included the apparent bloat in earlier UML versions and the lack of well-defined semantics.
Widespread awareness of these problems, coupled with growing interest in MDD, raised expectations that the UML 2.0 architects would produce a version of the general-purpose language that consisted of a significantly reduced set of modeling concepts for concisely and conveniently describing a wide variety of applications. 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.
Overzealous promotion of UML and associated MDD technologies can be as harmful as unfair criticisms. By cutting through the hype surrounding UML 2.0, the authors provide some insights into how well it can support MDD.
Distributed Embedded Smart Cameras for Surveillance Applications, pp. 68-75
Michael Bramberger, Andreas Doblander, Arnold Maier, Bernhard Rinner, and Helmut Schwabach
By providing access to many views through cooperation among individual cameras, networks of embedded cameras can potentially support more complex and challenging applications—including smart rooms, surveillance, tracking, and motion analysis—than a single camera.
The authors have designed a smart camera as a fully embedded system, focusing on power consumption, quality-of-service management, and limited resources. The camera is a scalable, embedded, high-performance, multiprocessor platform consisting of a network processor and a variable number of digital signal processors.
Although smart cameras have various applications, this work focuses on traffic surveillance, which imposes demanding video-processing and compression-algorithm requirements on the camera's hardware and software.
To demonstrate the distributed surveillance system's feasibility, the authors developed a prototype implementation consisting of several smart cameras. They assigned video-based surveillance tasks to clusters of smart cameras and dynamically and autonomously mapped tasks to individual cameras.