Like it or not, modeling has become an essential way for agencies to handle the complexities of contemporary software and systems design.
Developers can use modeling tools to graphically depict the parts of a proposed system and then use the models to guide their work.
Government business processes are also getting more complicated, as technology enables new forms of collaboration and information sharing within and between agencies. To assist in these activities, agencies are increasingly using modeling as a tool to develop and depict information technology enterprise architectures, which resemble blueprints that show the relationship between agency business processes and their supporting IT systems. Decision-makers use these blueprints to help plan future IT investments.
Unified Modeling Language (UML), which was first released by the Object Management Group (OMG) in 1997, is one of the more important standards in the field. It's already the basis for most object-oriented software design, and it's becoming a standard for describing business processes.
Numerous companies that offer software development tools, called integrated development environments, have recently added or soon will add direct support for UML. The addition is expected to boost developers' productivity while allowing them to crank out software applications that better reflect the business processes that they automate.
But many see the potential for collaboration between end users and system developers as UML's most important advantage. Both groups are major stakeholders in an application development project, but they often struggle to talk to one another.
Proponents believe UML can help because it is an accessible, visual way of presenting software design elements and business processes to software engineers and business executives.
"Diagrams produced using UML are easily understood both by software and systems people and by normal people," said Terry Quatrani, a self-described UML evangelist for software tools vendor Rational Software. The company is one of the original developers of UML and now part of IBM Corp.'s software group.
Before UML's existence, companies such as Rational toiled to clearly present complicated flow diagrams to customers "who were not plugged into the geeky stuff," she said.
"So UML definitely helps with that," she said. "It helps our customers to understand the intentions of the software that's been developed."
It is the same for groups within end-user organizations, said Regina Gonzales, principal member of the technical staff at Sandia National Laboratories.
Her group is using UML in business process re-engineering to formalize Sandia's technical business and the transfer and implementation of information. UML is also assisting in the development of an enterprise architecture to model the labs' business side and the IT side's execution of business processes.
"Even though the two groups may have a different way of looking at things, they are still reasoning about the same concepts," she said. "The nice thing about UML is that it creates positives for even those people who don't use a model-based approach and where there is a huge transition in translating things from a business to an IT-based perspective."
In that sense, using UML "really helps to get over that hump" in communication, she said.
UML will also be a key factor in the development of Web services because it lets people develop services in a language-neutral way. Architects and software designers can focus on what applications need to do without worrying about how they will be implemented, said John Magee, vice president for Oracle9i JDeveloper at Oracle Corp..
That's particularly valuable in organizations that might have many different platforms and people who need to collaborate without breaking down the code.
Another trend is how UML will affect the way applications developers work, he said.
"Traditionally, the business analysts have made their models and then taken their requirements and 'thrown them over the wall' to the developers and told them to go develop," Magee said. "Not surprisingly, the model has tended to sit on a shelf while the developers go about doing things their way."
But there's a need now for increased integration of the business and developer worlds, he said. UML can link the business models and the code so that the models are updated automatically.
New software development tools incorporate this dynamic two-way interaction. Compuware Corp.'s OptimalJ, for example, is designed to speed the development of Java applications by generating working applications directly from visual models.
Modeling in the past was the domain of "ivory tower businesspeople," said Greg Keller, director of design and modeling solutions for Embarcadero Technologies Inc. They tended to forget about code developers when deadlines got tight, and higher-level requirements would be discarded, which complicated later changes.
"With UML, the developers no longer have an excuse not to be tied closely to the business requirements," he said. "UML has been wonderfully adopted by the high end of the analysts, and now we need to see how to make UML meaningful to coders so they don't have to stop modeling."
One benefit is making coding easier, said Glenn Cammarata, a computer engineer working on flight software for the James Webb Space Telescope at NASA's Goddard Space Flight Center.
"Just by itself, UML doesn't give you any real bang for your buck," he said. "The other major thing it provides is automated generation of code."
Cammarata uses a real-time variant of IBM's Rational Rose RealTime, one of the major UML-based development tools. It provides automatic generation of code from models, so once the code is generated, he said, you don't have to touch it.
"Producing code is around a quarter of our total development costs, so just in this one area we can see a 40 to 60 percent gain in savings," he said.
Saying you are using UML is not enough, however, because it's just a language, after all, said Jan Popkin, founder and chief executive officer of Popkin Software. You also need a process to put the diagrams that UML creates into context to produce a coherent model.
"And that's probably the bigger challenge," he said. "To use UML effectively, an agency needs the expertise to be able to fit it into the bigger picture."
Also, he said, UML describes many things well but not everything. When describing data, for example, there are other standards that do a better job, so users should always be aware that they will probably need to use other standards or models with UML.
You also don't have to learn everything that is included with UML, said Rob Byrd, chief operational architect for SI International, an IT services contractor that is doing extensive work on the Defense Department's Architecture Framework.
But he feels the time is past when people could choose to bypass UML and modeling completely.
"The traditional ways are not working anymore," he said. "They did when things were simple, but IT systems are now so overwhelmingly complex that you simply have to work in a different way."
Robinson is a freelance journalist based in Portland, Ore. He can be reached at firstname.lastname@example.org.
How it works
Unified Modeling Language (UML) provides a set of static and dynamic diagrams that represent systems and business functions within an information technology architecture and how they relate to one another. The diagrams produce a blueprint that IT architects and developers can use to build and maintain infrastructures and software code.
Most UML-based tools also facilitate reverse engineering, the ability to create UML diagrams from existing code, and automatic code generation from the models produced using UML diagrams. n
By the Numbers
UML-based software development
Stand-alone Unified Modeling Language (UML) tools can cost from $1,000 to $3,000 per user, though prices could be higher depending on what add-ons are required. Return on investment is difficult to calculate, though figures run up to 20 percent per user. Cost savings on software development alone can be equivalent to 70 percent of the total costs, depending on the percentage of code that is automatically generated.
Several suppliers of application development tools already offer UML-based wares, while most of the major companies such as IBM Corp., Sun Microsystems Inc. and Microsoft Corp. have said they intend to make UML a core of their next-generation integrated development environments, in response to customer demand. n