Analysis and design: Critical yet complicated

Analysis and design have increased in both importance and complexity as a result of the Internet revolution.

The Internet is revolutionizing the way we do just about everything. So it should come as no surprise that the Internet is affecting analysis and design tools as well. In the "old" days—which really were not all that long ago—development projects spanned three to six months or longer. In today's e-commerce society, that length of time is no longer acceptable. Customers in the Web world are demanding and unpredictable, and they have high expectations.

Traditionally, client/server and host-based analysis and design tools focused only on data, business and component modeling. What they did not focus on was content modeling—the piece of the puzzle that is crucial for Web-based development. In a client/server environment, developers could also build an application in a single environment. Nowadays, it is a little more complicated, as applications need to be much more integrated to address distributed environments.

Moving from client/server to Web-based applications, a number of things affecting analysis and design become crucial. Business modeling plays an important role in trying to understand what an application is supposed to do on the Web. Communicating the flow of material and publishing artifacts also become increasingly important. Rational Software Corp., Cupertino, Calif., for example, had a standard client/server environment with an engineering focus. However, the company found that its teams were not as communicative or closely aligned as they could have been.

"We have found that database analysts didn't really talk to application people so much," noted Dave Locke, director of product marketing for Rational's Requirements Management Business Unit in Boulder, Colo. "As the application changed for the next release, database people weren't running as adequately as the application people and vice versa. In a Web environment, communication becomes critical."

Communication is important for a number of reasons. Because the development cycle is much shorter nowadays, there is less room for error. If teams are not communicating, there is a greater chance mistakes will occur. All team members need to be aware of how the application will work and what role each person plays. Requirements also have a big role. "Requirements become more critical in a Web-based environment because of the need to communicate what their piece of the puzzle is, what their requirements are and what happens when requirements change," Locke said.

In addition to business modeling, communication and requirements, integration is also a critical factor in a Web-based environment. In the client/server paradigm, development and deployment could be done on the same PC because the process was self-contained. In a Web-based environment, however, developers need to test applications on an application server with a Web server interacting with other objects that may be in the environment.

"Tight integration between tools and the server is very important for productivity in this new Internet model," said John Magee, senior director of Oracle 9i product marketing at Oracle Corp., Redwood Shores, Calif.

Development tools also need to be integrated with a deployment environment. "The tighter the integration between a Web application development tool and the deployment platform, the more productive the developer will be," said Michael Salerno, group product manager of Sybase Inc.'s Internet Applications Division in Concord, Mass.

And while integration is important, there has to be a separation of business logic from the presentation layer in Web-based applications. For client/server applications, business logic was embedded right into the interface. On the Web, this has to be changed because of the inherent deployment model change. Business logic, therefore, has to be incorporated into content in a scalable way.

Developers also need to be able to test and debug applications where they are going to be running, need to understand the business processes and implementation of those processes, and need a good understanding of the architecture. The architecture is very important because it encompasses so much more in a Web-based environment; it has to take into account reliability, scalability and security issues, among other things.

As a result of all these issues, analysis and design are extremely important and complicated in Web-based development due to the diversity and distributed nature of the players. "Getting a handle on the problem and doing appropriate architectures is more critical than it ever has been in the past," noted Rational's Locke. Added Sybase's Salerno, "design becomes paramount because when you build an application for the Web, you're allowing customers to interact more closely with your business. You're more exposed."

To aid in Web analysis and design, Sybase offers PowerDesigner, a product that supports physical relational data models and provides application modeling in the form of simplified Unified Modeling Language (UML) diagrams. The tool also includes a repository where multiple users can simultaneously store and share design information at the same time, making it easier for distributed users to collaborate on multiple application design projects.

The Oracle Internet Development Suite from Oracle Corp. includes a Java tool and reporting tools among its offerings. It also contains application development tools, business intelligence tools and enterprise portal building tools all with an integrated approach. The tools also work with the Oracle 9i application server. "If the tools are not aware of the application server," explained the firm's Magee, "development is a much slower process."

ACCO Brands Inc., a large office products manufacturer in Lincolnshire, Ill., is using the Oracle Internet Development Suite with a broad suite of applications it built in-house to put its product catalog online. Oracle's suite includes JDeveloper and Business Components for Java, which provide a framework to rapidly analyze the interrelationships of database tables. Business Components provides a "re-entrant wizard where I can look at the database to manage relationships of the data," explained Mark Johnson, IT project manager at ACCO Brands.

Analysis and design vary significantly between Web and client/server development, noted Johnson. "What you're trying to do in Web development is to break everything down into its most basic components. That never became a huge part of client/server, but it's crucial to Web development."

The most important requirement of Web analysis and design, he added, is figuring out what the business users are trying to get the Web site to do. "Most Web developers I know," said Johnson, "can make the Web sing and dance. But if it doesn't help sell products the way users want it to, it's not worthwhile." Analysis and design for the Web force developers into a different mindset—seeing things from the users' perspective.

Andy Heydon, vice president of software development at CollegeNET Inc., Portland, Ore., agrees. "You can't force a user to go through things," he said. "Through a browser, you have no idea whether a person is going to continue or not. That has to change your way of thinking about how you construct your transactions ... It [forces] you to do things in smaller chunks as opposed to the big deal you would do in a client/server environment."

That mindset change is crucial to the company's developers of advanced space management and admissions workflow enhancement software. CollegeNET provides products to help schools schedule classrooms; the firm also provides its users with a portal they can use to apply to more than 500 colleges and universities over the Web.

CollegeNET uses eXtreme Programming (XP), which allows it to develop in small steps, doing only what needs to be done for the next iteration. Products are built slowly, but they work at every step of the process. The company uses Uniface from Compuware Corp., Farmington Hills, Mich., which, like Sybase's PowerDesigner, stores all code in a repository so that everyone's code is always integrated.

"One of the key pieces of eXtreme Programming is constant integration," explained Heydon.

It's all in the process
Rational takes a different approach to Web analysis and design by offering a development process. The Rational Unified Process, part of the Rational Suite Team Unifying Platform, keeps everyone on a development project on the same track. Smart Online Inc., Research Triangle Park, N.C., a source of Web-delivered software applications, uses the Rational Unified Process in its development projects.

"It takes the entire development for a legacy application, a client/server application or a Web application—from the inception of the product through QA testing of the product—and provides a process so that you're not restricted to using just Rational tools," explained Richard Washington, Smart Online's CIO. "You can plug any tools you want into this process."

In developing Web-based applications, visuals are very important. The ability to use other tools with this process is what drew Smart Online to the Rational Unified Process. Smart Online supplements its Rational process with Dreamweaver from San Francisco-based Macromedia Inc. to provide a drawing or pictorial presentation to aid in its development workflow.

"Rational provides a level of a diagram to get us there," Washington said. "We supplement it with a map, so to speak. We're building key points of interest in pictorial form and combining that."

The visuals aid Smart Online in developing the back-end requirements and GUI front end simultaneously. "The beauty is that as we're doing analysis and looking at the comps, we have the complete picture of what our project should look like in front of us," said Scott Baker, senior requirements analyst at Smart Online. "You have to do the GUI and the back end at the same time. If you don't, you're behind. They work hand in hand on the Web."

Another benefit of Rational's process is integration. "We didn't have to write our own code to integrate with models or a tool that collects defects. The toolset Rational provided has integration built in," Baker noted.

"Spinning plates"
Business modeling, communication, requirements and integration play a much larger role in the analysis and design for Web-based applications than they did for client/server or host-based applications. The reason is that the Web speeds things up and forces people to rethink their projects. "The Web has given rise to more quick-and-dirty programming techniques," said Oracle's Magee.

Development today is "more like spinning plates than ever before," explained ACCO's Johnson. Understanding what is going to go on in the browser represents one spinning plate, while memory requirements represent another. What the database can do represents still another, and all the plates spin at the same time. Developers need to understand where all the pieces are going to go in a logical world and they need to be flexible. The key to successful development is integrating business intelligence with the presentation layer.

Edwin Schumacher, director of product management for Compuware's Uniface laboratory in Amsterdam, sees a great deal of focus on business-to-business processes—companies integrating business processes over the Internet. The company's Uniface Eight product allows business processes to be integrated over the Web through its business process model.

"To build a Web-based application, a company needs to have the normal functionality of an application development tool: data modeling, component modeling and functionality, process modeling and integration capabilities," Schumacher said. To build a business-to-business application, an organization needs to add business process modeling and execution capabilities.

Today, developers need to master analysis and design for Web-based applications, which can be very demanding. But with the right pieces in place and the right mindset, it can be done. Once that is accomplished, mastering business-to-business applications is the next logical step.