FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Events
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
September 01, 2005
Conference Coverage: Not Just Model - Model Driven

The software complexity conundrum can be tackled only by raising the abstraction level and reducing risk through the Unified Modeling Language and Model-Driven Development, according to the current cochair of the UML 2.0 effort.



IBM Distinguished Engineer Bran Selic.

Some 15 years ago, a missing break statement nestled among millions of lines of code caused a system-wide AT&T failure, costing $1 billion. That's just one stale example of the growing problem in software: dealing with the sheer size of modern applications.

"Modern software is reaching the level of complexity encountered in biological systems. You're talking about tens of millions of lines of code," said IBM Distinguished Engineer Bran Selic in his June 2005 keynote at CMP's UML & Design World conference in Austin, Texas.

There are two kinds of complexity, Selic pointed out, referring to Frederick Brooks's theory on the topic: "Essential complexity is inherent to the problem, such as solving the traveling salesman problem. Accidental complexity is due to the technology or methods used to solve the problem. Most mainstream programming languages abound in accidental complexity," he said.

They are obtuse, chaotic and hard to abstract. "We have to constrain the unpredictable nature of technology. That's why we've eliminated gotos, explicit pointer manipulation and potentially chaotic constructs," Selic noted.

A Sisyphean Task?
Still, years after UML's introduction, Selic, cochair of the UML 2.0 Finalization Task Force, was forced to explain—to a room full of UML aficionados—the utility of models. For this, he went back to the first century B.C., when Vitruvius, author of the world's oldest engineering book, De Architectura, devoted an entire chapter to models.

The two keys to an engineering model—which Selic defined as "a reduced representation of some system that highlights its properties of interest from a given viewpoint"—are first, that "we don't see everything at once," and second, that "what we do see is adjusted to human understanding."

Today, modeling languages are supported at the lower abstraction levels with action languages. Further, models can be refined continuously until the application is fully specified, until ultimately "the model becomes the system that it was modeling. There's something so special and so powerful about computers," Selic noted, adding, "In other engineering disciplines, the model and the code are separate, but in software they may not be. I can extract the model automatically from the actual implementation. The computer offers a uniquely capable abstraction device."

Thus, in model-driven development, or MDD (a term Selic prefers instead of the Object Management Group's Model-Driven Architecture, or MDA), the primary artifacts of development are models. However, the platform- independent concept that OMG had made a cornerstone of MDA has proved confusing, Selic opined. "To make a PIM, you have to explicitly say which platforms you are independent of. The OMG is backing off from this story because it seems to be too perfect."

Though he acknowledged the presence of MDA skeptics in the audience and among the UML & Design World faculty (namely, Software Development columnists Scott Ambler and Robert Martin), Selic pointed out that the concept merely hinges on two time-proven methods: abstraction and automation.

"The compiler is certainly the most dramatic invention of software engineering. I remember the first time I saw Turbo C—it was a revelation to see that you could integrate the compiler and runtime environment so seamlessly—and that took 30 years," Selic said. "MDD is really just an initiative to support abstraction and automation through open standards for the modeling language, interchange, model transformations and development processes."

And what of Microsoft's well-hyped foray into domain-specific languages? Profiles are UML's answer to the same question. A profile, Selic explained, is simply a version of a modeling language in which constraints or semantics are added and unused constructs are hidden—"like a filter you can put on the model." As an example, SDL, a domain-specific language for telecommunications that has been around since the 1970s, has recently been defined as a UML profile.

"The complaint that really annoys me is that UML is too big," Selic declared. "You can do everything with a Turing machine, we know—but programming languages aren't Turing machines. This demagogic appeal to simplicity—it's cheap, really. As Einstein said, things should be simple, but not too simple."

Calling All Compiler Experts
The hitch holding MDA back today, according to Selic, is lack of automation for transforming models into views or source code and adapting them to new domains. "We need a comprehensive theory of model transformations comparable to compiler theory. You see hardly any of that referenced in the transformation work done. All this work is being done as far as I can tell by people who aren't compiler experts. They're starting from first principles."

Despite concluding with some examples of state-of-the-art applications built entirely via MDA and answering questions from the audience, it was clear that not all had been entirely convinced. Even so, a question about performance lightened the mood. "As a professor once said, performance is always a good question at the end of a software lecture," Selic joked. "It's always relevant, even if you've slept through the entire talk."

People Before Technology

A preview of the upcoming SD Best Practices conference in Boston.

Gather your questions, concerns and enthusiasm, and prepare for a feast of ideas at the third annual SD Best Practices Conference and Expo at Boston's Hynes Convention Center on September 26-29, 2005. This year's conference boasts 152 sessions—118 all-new—in seven focused tracks: Build & Deploy; Design & Architecture; People, Projects & Teams; Process & Methods; Requirements & Analysis; Testing & Quality; and an entirely new C++ segment. Of course, you can also blow off all that intellectual steam with parties and the Readers' Choice Awards ceremony.

Emotional Intelligence
Kicking off the conference, industry icon and charter member of the Computing Hall of Fame Jerry Weinberg will help you get in touch with your inner programmer. In "Truth and Circumstances: Advice for Dealing with Real Project Dynamics," Weinberg will explore a question he was asked in a recent Software Development interview: "Why do so many software projects go over budget or fail to meet their original requirements?"

Weinberg's humanistic approach is evident in his response, "In 50 years, I've never seen a project where something didn't go wrong. When it does, the project's success is determined by the leaders' ability to manage themselves emotionally."

Michael Schrage, MIT Media Labs E-Markets Initiative codirector and senior advisor of MIT's Security Studies program, tackles money matters in his keynote, which will deal with what Schrage dubs the "perverse incentives and misunderstood risks" that undermine both individual and organizational abilities to develop software cost-effectively.

Getting Involved
After the keynotes, it's time to roll up your sleeves. On Monday morning, September 26, author and consultant Rebecca Wirfs-Brock will take you on a "Brief Tour of Responsibility-Driven Design," or you might choose to spend that time with project management mavens Esther Derby and Johanna Rothman as they cohost a hands-on session where you can learn how to enhance your evaluation and communication skills.

On Monday afternoon, step up to bat in Scrum cocreator Ken Schwaber's experiential tutorial. Divided into small teams, class members will plan a facility for trading excess Major League Baseball tickets, and then respond to a major project change just 30 days prior to implementation.

And this year, 14 fresh case studies will delve into real-life examples and stories from the field, with titles such as "Fears and Facts about Dual-Shore Development," "Virtual Teams Made Easy," "Developing High-Performing Teams" and "Extreme Hiring."

Ceremony and Celebration
On Wednesday, September 28, take some time out from all that brainwork and hit the Readers' Choice Awards ceremony to find out what you and your colleagues deemed the best products, books and websites of the year. Afterward, attend the VIP party to meet and mingle with conference organizers and presenters.

To fill your plate with fresh ideas, networking opportunities and celebratory events, go to sdexpo.com for registration information. See you in Boston!

—Laurie O'Connell



RELATED ARTICLES
No Related Articles
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK