In-Depth

Visual Modeling’s New Look

Talking Points
VISUAL MODELING'S VALUES

  • Visual modeling illustrates the requirements for new applications and their technical design while hiding the complexity of the business needs and the underlying code.
  • Models create easy-to-understand visual documentation that can reduce the effort and cost of the entire application lifecycle.
  • Visual modeling is best suited to applications large and complex enough to justify the effort, and when developers and project managers have the skills to use modeling correctly, veteran modelers and analysts say.

While working as a software developer for a former employer, says Reinhard Rossmy, he was able to use visual modeling (diagrams to illustrate the business and technical requirements for new apps) to cut the time it took to develop applications from 18 to 6 months.

"It's very easy for a software developer, when they see a model or some diagrams, maybe a use-case diagram, or an activity diagram, to understand" the function of a specific part of the application and why it was designed the way it was, says Rossmy, a software development manager with Kathrein, a manufacturer of antenna and signal filtering systems in Rosenheim, Germany.

Today's visual modeling tools can deliver benefits earlier modeling technologies never could, such as automatically producing much of the code the application requires. For example, Reinhard uses Ameos, a modeling tool from Aonix, to generate 80 to 90 percent of the code for embedded signal-processing applications.

In addition, visual models create easy-to-understand visual documentation that can reduce the effort and cost of the entire application lifecycle of deployment, testing, and maintenance. The benefits materialize as higher developer productivity, reduced maintenance costs and applications that make businesses more competitive.

Visual modeling isn't for everyone or every application, veteran modelers and analysts say. It's best suited to applications large and complex enough to justify the modeling effort, in which many developers and business users must reach an understanding of the functions the application will perform, and in which developers and project managers have the skills to use modeling correctly.

"It's more of a seamless process where you can take the model created by the business analyst, the business use cases, and they flow easily into the next step, which is the component and the class diagrams," says Glenn Stout, a senior functional specialist with The Revere Group, an IT consulting firm in Deerfield, Ill. All this enables designers to more easily trace requirements "back to what the business analyst meant in the first place."

New modeling technologies
The process usually involves a series of models, each one more explicitly describing the final application. The first is made up of use cases (examples of specific functions, such as a bank teller's recording of a deposit). Then, the application architects and business users create a workflow diagram illustrating all business requirements the application must fulfill, and often a diagram illustrating the class hierarchies of the objects that will make up the application.

The next step is the creation of a platform-independent model identifying the various technical components needed, such as application servers, databases and middleware, followed by a platform-specific model detailing which products will be used for each component. Finally, a detailed physical design shows specifically where the various application components will reside and how they interact.

A case for UML
Earlier development methodologies that used modeling, such as CASE, promised to speed software development, but were often too complex and slow to produce usable results. In addition, you couldn't port models among the various CASE tools. Today, many industry leaders have rallied around UML, a common set of application modeling standards spearheaded by the Object Management Group of Needham, Mass.

Newer modeling tools can span multiple computing platforms because they're based on Web services, which allow developers to create application services, such as file, print, or database access. Major advances in compiler technology have also made it easier for modeling tools to generate high-quality code, OMG Chairman and CEO Richard Soley says.

RBC Financial Group in Toronto, Canada's largest financial services firm, uses modeling to help ensure new applications can run in such a service-oriented architecture, says David Hewick, RBC's lead architect for payments and trade. "When I capture my design in terms of modeling, it becomes much easier for me to see if I've done a good job of loosely coupling components, and of building the right kinds of interfaces between them, to facilitate an SOA or to facilitate better reuse," he says.

An alternate modeling approach uses domain-specific languages in which the elements in the model are not generic objects such as "customer" or "invoice," but specific elements needed to carry out specific functions in specific applications. In banking, for example, these might include "show checking account balance" or "transfer funds." These elements also include metadata showing where, for example, the components must look to find the data they need to show the customer.

Using the Kinzan Studio modeling tool from Kinzan in Carlsbad, Calif., MW2 Consulting in Sunnyvale, Calif., creates "composite applications" that combine data from, say, ERP and CRM systems, cheaper more cheaply and more easily than earlier application integration methods, says SOA practice manager Eric Robertson, head of services marketing.

Reuse and instant code
Software reuse was one of the big disappointments with earlier modeling tools, which often delivered code other applications couldn't use.

In a joint project with Dynamics Research, Compuware says OptimalJ is automatically generating about 80 percent of the Java code needed for the database and business logic tiers for a system to track child-protection information in Ohio. Although OptimalJ can also generate the user-interface code, the State of Ohio chose to write that portion of the application manually, Compuware's OptimalJ Product Manager Mike Sawicki says.

The instant documentation the models provide through reuse is just as important as instant code, says Kathy Perras, director of state and local programs at DRC. This makes it easier, she says, to reassign developers to different tasks because they understand the structure of the system, making it easier to find the code they need to work on.

Avoid analysis paralysis
One of the most common mistakes in modeling is "analysis paralysis," when customers get bogged down trying to create a perfect model of their needs, says Alan Brown, a distinguished engineer at IBM Rational Software. Instead, he recommends focusing on a specific set of business problems and modeling them through a set of "relatively short iterations."

That's the approach DRC is taking with Compuware on the $30 million, 90-person Ohio child-protection information system. Five development teams work on parallel 20-day iterations on a set of use cases (user requirements). The developers prepare them before their first design sessions with users. Based on these, OptimalJ generates a platform-independent model that serves as the architectural framework for the application, as well as a default screen that is refined to better meet users' needs. Based on these changes, OptimalJ then generates a platform-specific model "and then the code base for the client, business [logic] and data tiers," Perras says.

Because OptimalJ is now producing 95 to 97 percent error-free code, "the time we have to spend squashing bugs is relatively small," says Angelo Serra, an information technology manager with the State of Ohio. Visual modeling helps capture business requirements, he says, by making it easier for users to identify data that must be passed among application modules. For example, when a child being tracked in the foster care module changes homes, it must send a notification to the fiscal module to ensure the state sends the proper funding to educate the child to the school system he or she will attend, he says.

Yet, you must train code-level developers to succeed in the new world of modeling. In the early stages of the Rational Unified Process, for example, developers need user feedback to successfully model the applications they need, so "good business communication skills and interpersonal communication skills are very important," says Paul Pocialik, chief technology officer at Noblestar, an IT services and application development firm in Reston, Va. Moving into the design phase, technical skills become much more critical, especially if the developers are working with component-based, object-oriented systems.

Several veterans stressed the value of veteran modelers as mentors. "Mentors have been really key in getting the process started, of how to [draw] the requirements out of the subject matter experts, and how to turn those into an early iteration of the model," RBC's Hewick says.

The 30 percent solution
Noblestar typically uses modeling only on projects that require at least five to 10 of its consultants working collaboratively with users, Pocialik says. He also recommends watching for signs users have lost interest, such as when they take much longer than usual to provide feedback on your models.

"If you have a small project with very few developers, say, three or four people, and it's a short-term project, and you spend half of that time doing all kinds of modeling, I'd say that's too much," The Revere Group's Stout says. "If you're constantly maintaining your model, where it's so down and deep and detailed you have to change it every second, you're spending too much time with it."

Rossmy recommends that analysis take no more than 30 percent of the project time, with 30 percent devoted to modeling the class diagrams and systems architecture. Another 30 percent should go toward writing, compiling and testing the source code, with the final 10 percent reserved for deployment.

Another challenge is resistance from developers or business people who "don't understand the impact of having a good model," Stout adds. "It's often the first element cut out of a development project," he says, on the grounds that "We don't have any time for drawing pretty pictures."

Among the technical challenges customers face is the need for better tools to diagnose problems in the code that modeling tools automatically generate. OMG's Soley says vendors are working to address this with standards that capture debugging information that can be used among multiple modeling environments.

Modeling may never automatically generate perfect applications from a simple sketch. But when it's done properly, it can significantly cut down on manual coding, allow for reuse of entire portions of application design, and ease the huge maintenance burden IT organizations face. Perhaps most important, it serves what Stout calls "a common language for the team to rally around when they need to solve a problem." By making sure the business and development teams are working to solve the same problems, "it minimizes rework...and really delivers a quality product the first time out."

Sidebar: Modeling in moderation
Sidebar: Is modeling good for your career?