Julie MacAller
Microsoft Corporation
January 1999
Summary: Provides an overview of the Microsoft® Visual Studio® 6.0 Island Hopper News sample application, an automated classified ads system developed with both Web- and Windows®-based clients in mind. (7 printed pages)
Note The sample application and source code can be accessed from "Island Hopper News Sample" in the Visual Studio documentation located in the MSDN Library Online and CD.
One of the greatest challenges for customers using the Visual Studio development system is figuring out how to use the Visual Studio tools together with Microsoft technologies such as Component Object Model (COM) objects, Microsoft Transaction Server (MTS), and Microsoft SQL Server™ to create business applications. The Island Hopper News application is designed to show how to create a typical data-driven application with both Web- and Windows-based clients.
The Island Hopper News application is an automated classified ads system. The implementation supports two categories of users: external customers, who browse or place ads using a Web browser, and Island Hopper Publishing Company employees, who maintain customer records, produce invoices, and enter customer payments using a Windows-based client.
This article describes the business problem the Island Hopper News sample was designed to solve.
The application was written to solve a business problem for a fictitious company, Island Hopper Publishing. This company, based on a small island in the Puget Sound area, has been publishing a print-based weekly newspaper called Island Hopper News. The editor of Island Hopper News wanted to convert the paper to an online newspaper, so summer residents could keep up-to-date on island news throughout the year. Converting an entire newspaper to an online newspaper is a huge challenge, and the editor saw it meant more than just creating a bunch of Web pages and hosting them on a server. To make Island Hopper News a really great online newspaper would require converting not only the paper itself, but the many behind-the-scenes processes used to publish the paper, which themselves were manual, not automated.
Disturbed by the sheer number of manual processes, not to mention the tedium of doing everything by hand, the editor decided to automate as many of the publishing processes as possible. Rather than automate everything wholesale, though, the editor wisely decided to start small and automate the processes for just one section of the paper.
The editor decided to start by reviewing the submission and billing processes for the classified ads section. The manual processes for submitting and billing classified ads are summarized in the following table.
Step | Who | Action |
1 | Customer | Fill out Classified Ad Submission form (paper). |
2 | Customer | Calculate cost of ad by counting words and multiplying by cost-per-word rate. |
3 | Customer | Send paper form and check for payment to Island Hopper News, attention Classified Ads department. |
4 | Classified Ads department employee | Enter text of ad into the Classified Ads table in the Island Hopper Publishing corporate database. |
5 | Classified Ads department employee | Forward copy of ad and check to Accounting department. |
6 | Accounting department | Recalculate cost of ad and correct any billing errors. |
7 | Accounting department | Enter cost and billing information into the Accounting and Customer Information tables in the Island Hopper Publishing Corporate database. |
If a customer wanted to change the text of an ad, or retract the ad before it was printed, even more steps were required, as summarized in the following table.
Step | Who | Action |
1 | Customer | Contact the Classified Ads department by phone or e-mail, and submit a change request. |
2 | Classified Ads department employee | Modify ad text in database, or delete ad from database. |
3 | Classified Ads department employee | Forward changes to Accounting department. |
4 | Accounting department | Modify invoice in database. |
5 | Accounting department | Send revised invoice to customer. |
After examining the manual processes, the Island Hopper News editor, the Classified Ads department head, and the Accounting department head decided that the classified ads section was a good place to start automating Island Hopper News. The result of their decision is the Island Hopper News sample.
To start the application design process, the Island Hopper News editor and the Classified Ads and Accounting department heads—the design team—met to articulate some goals for automating the classified ads process.
The design team came up with the following goals:
Keeping the goals in mind, the design team enumerated the following user scenarios:
Another way to think of user scenarios is as use cases. In the Unified Modeling Language (UML), a use case defines the interaction between users and the system. Each use case represents a part of the system's overall functionality. The following figure shows a high-level use case diagram for the Island Hopper News application.
Along with use case diagrams, UML activity diagrams are a useful way to visualize a system. Where use case diagrams show the major functions of an application and who the users of the application are, activity diagrams show workflow of a task. Although activity diagrams resemble flowcharts, they offer a significant advantage: Activity diagrams can show parallel processes. The following figure is a high-level activity diagram for the customer activities in the Island Hopper News application.
The design team knew they wanted the ability to browse and place classified ads using the World Wide Web. Further, they realized that the needs of the Classified Ads and Accounting departments dictated a separate way to get at the information in the classified ads database—one designed to make it easy for employees of those departments to maintain customer records, enter payments, track invoices, and so on.
The design team had gone as far as they were able to go without technical assistance. Now they hired a pair of developers to help them finish designing the application and then to build it.