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

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
September 01, 2001
Executable Models Are Inevitable

At UML World 2001, Ivar Jacobson, the Swedish Amigo, predicts UML "all the way d

Alexandra Weber Morales
September 2001: Executable Models Are Inevitable

UML will become a programming language. There is no technical barrier—only a political barrier," said Ivar Jacobson, one of the three founders of the Unified Modeling Language, in his June 11, 2001 keynote address at CMP Media's UML World conference in New York City. The political problem, Jacobson explained, is due to the huge investment that has been made in integrated development environments (IDEs) that are replete with compilers, debuggers, GUI builders and other productivity-enhancing features.

Jacobson, now vice president of e-development for Rational Corporation, has a pretty good track record when it comes to envisioning the future. In 1985, he predicted in his Ph.D. dissertation that the component-based development approach that he and his colleagues employed would evolve into a world standard. In 1995, his company, Objectory AB, merged with Rational, and he had begun talking about the possibility of someday enabling layman programming. The four trends described in Jacobson's keynote—reusable components, up-front testing, platform transparency and UML "all the way down"—make sense, even if they do run counter to the growing sentiment among some developers.

The Reuse Initiative
Mega-programming with interconnecting components is already beginning to occur, Jacobson noted. Rational and partners such as IBM, BEA, Microsoft, Sun Microsystems and Component Source are backing an initiative to create a UML-based reuse standard with the Object Management Group, the industry consortium that oversees the UML specification. Rational intends to unveil tools for creating, managing and repurposing software assets (from design to code to documentation), and Jacobson also suggests building a framework for technology or domain-specific reusable assets with associated guidelines on usage.

The second trend is to build in quality from the beginning. "For many years, I've been dissatisfied with the development process. I'm not a tester, but lately I've been working with best-in-class testers. If we really integrate with them, we can work wonders," Jacobson enthused. "We've lost two generations of programmers who think that development is first introducing bugs and then removing them." The very effectiveness of IDEs, he argued, has contributed to this mindset by making it easy to churn out code.

Again revealing his business savvy, Jacobson proposed new tools that generate test cases from requirements, analysis and design. "Every activity should include verification and validation. Even when you're gathering requirements, you should think, 'How will we test for this?'"

Politically Incorrect
The third trend is to make software platforms transparent. Due to the diversity of platforms, middleware, frameworks and languages, development has never been as difficult as it is today, Jacobson said. One as-yet unproven way to empower developers, then, is to give them intelligent agents. These autonomous software entities would be unencumbered by communication protocols, goal-driven by a rule database, proactive (suggesting a pattern or next step), and able to capture knowledge and apply it just in time and in context.


"Of course we want light methods," Ivar Jacobson, one of the three founders of the Unified Modeling Language, told the audience during his keynote address at UML World. "We humans are not so good at formalizing. But we're fighting the black hole of complexity due to the two-language problem and the general-impedance problem."

Finally, Jacobson hit the audience with his politically incorrect fourth trend: turning UML into a programming language. Modelers today work in two complex environments: UML and the C++ or Java IDE. Having to create model files in a UML editor and then use a separate UML compiler to generate C++ or Java code that in turn can be fine-tuned in a stand-alone IDE introduces defects, he argued. Existing IDEs are designed to be complete solutions, resulting in a large overlap between a given UML editor and an IDE. Indeed, according to Jacobson, the IDE contributes only 10 to 20 percent of the code: The remainder originates in the UML model.

Thus, Jacobson claimed, the UML will become a formal set of languages for specification and programming (today termed "executable UML" by the OMG). He foresees that Java and C++ and their ilk will become superfluous; a "program" will combine visual and code-like syntax.
But what of countering trends, espoused most vocally by disciples of Extreme Programming, that proclaim code as the most important software development artifact and deride executable models as exacerbating the quantity-over-quality problem that Jacobson attributes to overly powerful IDEs? One recent dissenter among those who attack ever-increasing layers of abstraction, for instance, was noted Turbo Pascal architect Anders Hejlsberg, who, in his Excellence in Programming Award acceptance speech at the Software Development 2001 conference in San Jose, California, stated that "programming is all about text." Hejlsberg downplayed the importance of code-generating tools, which create, in his words, "simplexity—complexity wrapped up in something simple."

Jacobson has harsh words for those who are still fascinated by object-oriented programming at the code level: "This stuff was in Simula 20 years ago. It can't be that exciting."

"This whole discussion of lightweight versus heavyweight methodologies that's going on right now in the industry is dependent on the current technological situation. Of course we want light methods; we humans aren't so good at formalizing. But we're fighting the black hole of complexity due to the two-language problem and the general-impedance problem," Jacobson said.

"I never really liked any language other than Smalltalk. I've always been a front-end guy. Part of what will determine whether this happens is market forces, and so far, market forces have been going our way." The crowd laughed—a bit ruefully, perhaps.

Alice in Use Case Land
Methodologist's deadpan but biting allegory entertains.

Doug Rosenberg, president of Iconix and author of Use Case-Driven Object Modeling with UML (Addison-Wesley, 1999), used his Wednesday-morning soapbox at UML World 2001 on June 13, 2001 to deliver his version of Lewis Carroll's Alice in Wonderland—rewritten to skewer the Extreme Programming movement. Rosenberg's keynote slides borrowed John Tenniel's famous engravings from the first edition of Carroll's book (published in 1865), interspersed with screenshots of postings from Web newsgroups that painted an unflattering portrait of the Chrysler C3 project run by XP's most prominent voice, Kent Beck. One screenshot contained a second- or third-hand quote, ostensibly from a Chrysler executive, stating that the company experimented with Extreme Programming "once and only once." A posting from Beck himself read " … the fundamental problem was …[that] the customer feeding stories to the team didn't care about the same things as the managers evaluating the team's performance … The new customers wanted tweaks to the existing system more than they wanted to turn off the next mainframe payroll system. IT management wanted to turn off the next mainframe payroll system."

Rosenberg's keynote was divided in three parts: First, Alice encounters analysis paralysis; next, she is urged to "jump right into code" without requirements; finally, she discovers the path of moderation in the form of the four diagrams Rosenberg proposes in Use Case-Driven Modeling with UML. In part two, Alice is approached by a group of soldiers who resemble index cards—the primary planning tool used in XP to write down pieces of functionality in the form of customer stories. "Then a gust of wind blew," Rosenberg read, "refactoring the entire stack of cards." Alice is prosecuted by the Queen of Hearts for Big Design Up Front and sentenced as the jury chants "Off with her head, CMM's dead." Part three describes Rosenberg's process, including the forgotten robustness diagram, a relic from Ivar Jacobson's Objectory Method.

Though there were laughs during the talk, the audience was generally quiet, and there were no questions when Rosenberg finished. "I'm a bit disappointed by the reaction," he said quietly afterward, closing his laptop. "There's a lot of talk going on in the newsgroups and the industry about practices that I think sound a lot like things we've heard before, and I'm not afraid to speak my mind." He didn't have long to worry, however. As he gathered his equipment, a crowd of those who shared Rosenberg's skepticism had formed, and several called out their congratulations on an enjoyable, if unusual, talk.

 

What's Up With XP and Use Cases?
The rift widens between those who love code and those devoted to UML.

Continuing the week's Extreme Programming emphasis, the panel discussion on incorporating the most popular requirements-gathering practice—writing use cases—within so-called "agile methods" may have widened the rift between those who love reading and writing clear, elegant source code and those who prefer to model and design their systems first—either extensively or just barely—using UML. The panel members, Software Development Senior Contributing Editor Scott Ambler, Iconix President Doug Rosenberg, ThoughtWorks Chief Scientist Martin Fowler, Object Mentor Consultant Robert "Uncle Bob" Martin, and panel moderator, former Software Development Technical Editor Roger Smith, spent an hour wrangling over the model-versus-code conundrum. By the end, more than a few audience members were frustrated, saying that the advice to seek moderation was obvious and that the experts had indulged too heavily in posturing for sensational effect.

Initially sticking with the assigned topic, Fowler recommended Alistair Cockburn's book, Writing Effective Use Cases (Addison-Wesley, 2000) as the best on the subject, and endorsed use cases as complimentary to XP customer stories. "As Alistair describes them, they're very narrative, very light, no more than a few pages long and very much led by the customer."

"These panels are going to be pretty boring if we stay reasonable," Martin interjected. "It's not about not modeling or not documenting. Do it if you must, but know why you're modeling and have a goal for that model." Ideally, said Martin, the overview of the system should exist in the modelers' heads rather than on paper, but they should be able to quickly scratch it onto a whiteboard if someone asks for it.

"I use Rational Rose and Object Team," an audience member proclaimed, jumping into the fray. "And I model for one reason: because I want to create the skeleton for the code. I can lay out all my classes and objects and then generate code." This motivation didn't move the panelists, however.

"I'm not a big fan of CASE tools or diagramming tools," said Martin. "I don't like the code they generate. It puts a step between me and the code; I don't want to have to draw the diagram first." Responding to Ivar Jacobson's predictions made in a keynote here earlier in the week, Martin said "I don't believe UML will be the next programming language, and if it is, I don't think it will be a significant language, and I don't think laymen will program. I don't advise my clients to buy tools. If they've just made a big capital outlay for Rational Rose, I commiserate with them and then I help them to not use the tool."

Rosenberg disdained the idea too, but from a different angle: "If you're modeling to generate code, you're modeling for the wrong reason. It's reasonable to generate headers and overall structure, but I don't think the purpose of UML is coding. You need it for when the project is so big that you can't have everyone in the same room. The code that you get out of models, if any, is just a nice side effect."

 

The Horse's Mouth
Kent Beck: Eschew heavy planning and live in the moment.


"People do report that XP is exhausting at first—especially people who are used to being interrupted every five minutes," said Kent Beck, author of Extreme Programming Explained: Embrace Change (Addision-Wesley, 1999).

According to Extreme Programming (XP) guru Kent Beck, software is only now beginning to shake free of the "scientific" management concepts introduced in the early 20th century by Frederick Taylor, the first industrial engineer. Without additional capital expenditure, Taylor could double or triple a factory's output. Time studies, separate planning departments, task assignments, quality control and differential pay rates are familiar concepts, but Taylor "had a little problem with retention," said Beck in his UML World keynote on Tuesday, June 12, 2001 in New York City. Things have changed since then, however: "Today, instead of the differential rate, developers have stock options."

In the 1950s, W. Edwards Deming, the father of Total Quality Management, took the first big step away from Taylorism, explained Beck. Indeed, modern manufacturing looks very different from its Victorian origins: Workers follow a product through the plant, keep their own statistics, design and improve their own process, and have more egalitarian reporting relationships. However, the software world, Beck claims, is still clinging to an industrial manufacturing metaphor.

"There's no emphasis on maintenance. We talk about 'making' and 'shipping' products. I call this the 'spec-and-disappoint cycle.'"

But a conflict is erupting between those who emphasize a formal requirements-gathering, modeling and design process and those who espouse so-called "customer stories" dashed onto index cards. Beck considers the latter practice crucial in helping developers estimate the duration of a given requirement's development based on an ever-more-precise sense of the team's velocity in testing and building the software's frequent releases. Business people aren't cut out of the process, he said. Rather, they set scope, priority and dates.

 

TOP 5 ARTICLES
No Top Articles.
DR. DOBB'S CAREER CENTER
Ready to take that job and shove it? open | close
Search jobs on Dr. Dobb's TechCareers
Function:

Keyword(s):

State:  
  • Post Your Resume
  • Employers Area
  • News & Features
  • Blogs & Forums
  • Career Resources

    Browse By:
    Location | Employer | City
  • Most Recent Posts:
    MEDIA CENTER  more
    NetSeminar
    Modernize your Development by Moving Build and Code Quality Upstream
    Moderated by Jon Erickson, Editor-in-Chief of Dr. Dobb's, this interactive panel discussion brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.

    The reality of today's development environment - geographically distributed teams, the use of Agile development practices, increasing application complexity, etc. - is straining the viability of the traditional coding, build and release process. To stay ahead of the curve, development teams are modernizing their approach to dealing with these issues, and as a result are achieving new levels of development productivity. Register for the webcast.
    Date: Wednesday, July 15, 2009
    Time: 11 am PT/2 pm ET
    Modernize your Development by Moving Build and Code Quality Upstream
    Moderated by Jon Erickson, Editor-in-Chief of Dr. Dobb's, this interactive panel discussion brings industry experts Anders Wallgren, CTO of Electric Cloud and Gwyn Fisher, CTO of Klocwork together for a candid discussion of the cost savings, productivity and quality benefits that can be achieved by stabilizing builds and code quality as early in the development cycle as possible.

    The reality of today's development environment - geographically distributed teams, the use of Agile development practices, increasing application complexity, etc. - is straining the viability of the traditional coding, build and release process. To stay ahead of the curve, development teams are modernizing their approach to dealing with these issues, and as a result are achieving new levels of development productivity. Register for the webcast.
    Date: Wednesday, July 15, 2009
    Time: 11 am PT/2 pm ET
                                   
    INFO-LINK

    Resource Links: