The purpose of this chapter is to introduce the sample application used as an example in Chapters 6–9. This chapter sets the context and high-level requirements for the application and contains information commonly found in a Vision document. Development of a Vision document is outside the scope of the J2EE Developer Roadmap. However, the document itself is an input artifact to a number of activities in the Requirements discipline (see Chapter 6, Requirements).
Our sample application is an online auction. An online auction is a subcategory of a larger family of enterprise applications called e-commerce systems. An e-commerce system enables buyers and suppliers of products and services to conduct business-to-business transactions in a virtual marketplace. The three concepts underlying auctions are auction, bid, and exchange.
The term auction can be used both as a verb (“to auction an item”) and as a noun (“the auction has closed”). When used as a verb, an auction represents the process of offering an item for sale and the corresponding transaction between a buyer and a seller. When used as a noun, an auction represents a system entity, which stores information about the offered item and any bids. An auction has a number of interesting characteristics, which we describe in the following list.
An auction item is usually specialized (it is one-of-a-kind item, rather than a commodity).
There are only a few buyers or sellers.
Sellers and buyers are often anonymous.
An auction is often used when there is a single supplier for a product and potentially many customers.
In an auction, a buyer expresses his readiness to purchase an item by placing a bid. There are usually multiple bids for the same item, and later bids are higher than earlier bids. When the auction closes, at a predefined time, the highest bid becomes the purchase price.
An exchange occurs when the seller accepts a bid, delivers the item to the buyer, and receives the payment. In our example, the transaction between the buyer and seller is outside the scope of the system. The Online Auction application we use as an example in the following chapters simply provides the buyer and seller with each other's information.
Online auctions are a virtual place where sellers can present their items or services to potential buyers. Auctions also provide buyers with access to a potentially large selection of items. For both buyers and sellers, they provide an option of staying anonymous until the very end of the transaction and, even then, the disclosure of identities occurs only between the specific buyer and seller.
The popularity of online auctions is growing because of their simple business models. Usually the auction site owner charges the sellers for completed transactions. The charge is either a flat fee or a percentage of the sale value. The profitability of an auction site depends on (1) the volume of transactions and (2) the cost of running the site. Both of these can be greatly influenced by a well-designed and well-implemented online auction system. If a system is easy to access and use, is reliable and performs well, it is likely that it will attract both sellers and buyers. If the system is easy to install, administer, and maintain, its cost of operation will be lower.
Our Online Auction application must address the needs of its stakeholders and users, which are described in the following list.
The sellers need to reach the largest possible number of potential buyers to obtain competitive purchase offers for their items or services.
The buyers require access to a large and diverse catalog of items and want control over the amount of money they are willing to pay for those items.
Both the buyers and sellers want the option of remaining anonymous until they decide to complete the exchange transaction.
The auction site owner wants to provide an environment in which sellers and buyers meet frequently and anonymously and complete frequent exchanges, and wants to make a profit by charging a fee to the seller for completed exchanges.
The Online Auction application must provide a secure, virtual environment in which sellers can advertise their items, buyers can bid on them, and the administrator can effectively support this e-commerce solution.
The term “stakeholders” refers to people or organizations directly involved in making or influencing key decisions about the functionality and properties of the Online Auction application. The term “users” represents individuals or legal entities who use the Online Auction application and support its operation.
The key stakeholders of the Online Auction application are the Auction Site Owner and Auction System Provider, both of whom are briefly described in Table 5.1.
Table 5.1. Stakeholders
Name | Description | Concerns and Responsibilities |
---|---|---|
Auction Site Owner | An individual or organization who owns the auction site |
|
Auction System Provider | An individual or organization who provides the Online Auction application |
|
The key users are Seller, Buyer, Casual Visitor and Auction Administrator. These are briefly described in Table 5.2.
The functional features of the Online Auction application should address the concerns of its stakeholders and users. The following are descriptions of typical features of an auction system that should be realized by our Online Auction.
Management of user accounts. Auction site users (the Sellers and Buyers) are able to create accounts with the system and update account information if it is incorrect or when it changes. The Auction Administrator is able to browse user accounts, update user information, and archive or delete information.
Placing items for auction. The Seller is able to create an auction by de scribing the auction item to be sold and by defining the initial starting price and minimum bid increment.
Table 5.2. Users
Name | Description | Concerns and Responsibilities |
---|---|---|
Seller | An individual or an organization who puts an item up for auction |
|
Buyer | An individual or an organization who places a bid onan auction item |
|
Casual Visitor | A person who visits the auction site just to browse thecatalog. Such a visitor may become a Buyer or a Seller |
|
Auction Administrator | An individual who administers the auction site |
|
Browsing a structured catalog of open auctions and placing bids. Any user (defined as a Casual Visitor above) is able to browse a catalog of open auctions, view the description of auction items, and see the bid history of auctions.
Managing auctions. The system supports the operations performed by Sellers, Buyers and the Auction Administrator. A Seller may reject bids (for any reason) associated with any auction that he or she has created. A Buyer is able to enter a bid on an auction item. A Buyer is able to cancel his or her own bids before the auction closes. An Auction Administrator is able to close auctions without accepting any bids (for example because of unpaid seller fees), remove bids of certain Buyers (who, for example, violate rules of conduct) and archive auctions.
Maintaining system security. The application supports system security and in particular, authenticates users and ensures that users perform only the operations for which they have been authorized. For example, a Buyer must not be able to cancel a bid of another Buyer, and only the Auction Administrator may see all completed transactions.
There is also one particularly important constraining assumption that the Online Auction application must address. When a Seller accepts a bid and his or her auction is closed, the following exchanges take place:
The Seller receives payment for the auction item from the Buyer.
The Buyer receives the purchased items.
The Seller pays the transaction fee to the Auction Site Owner.
The assumption is that the Auction Site Owner does not get involved in the exchange of the auction item, or the payment from Buyer to Seller. The Online Auction application discloses the Buyer's and Seller's information to each other, but they (the Buyer and the Seller) decide how to complete the exchange (not the Online Auction application). From the system's point of view, this disclosure of information indicates the end of the application's participation in a given auction.
As a result of the above constraint, the online auction application does not support features that are present in some auction systems such as placing an item “on hold” with the Auction Administrator or providing an escrow account.
The important nonfunctional properties of the system must address the key concerns of the stakeholders. These concerns include: usability, reliability, ease of maintenance, ease of extending system functionality, and security.
It is anticipated that these concerns will be addressed by following software development best practices such as requirements management and visual modeling, and also by the reuse of proven designs. The Online Auction application does not have specific performance requirements beyond those commonly expected from an online system, such as acceptable response times.
Sellers, Buyers and Casual Visitors will access the system via Internet connections and will use commonly available Web browsers. It is anticipated that the Auction Administrator will primarily use a Web browser interface to the system, but will also have access within a local area network that is “behind the firewall.”
The Online Auction application will run on a reference implementation of the J2EE specification. This choice of words here is deliberate, in that an application that deploys and runs in this environment should also deploy and run using commercial implementations of the J2EE platform.
As we mentioned in the introduction to the chapter, the presented information is commonly found in a Vision document. A Vision is the first “approximation” of what a system should provide and is used as a major input to the project go/no-go decision. If the project goes ahead then the Vision becomes the basis for the development of more detailed requirements as described in the next chapter (Chapter 6).
One thing that has not been discussed in this chapter, but that is often a part of a Vision document, is a business analysis of the return-on-investment (ROI) and buy-versus-build alternatives. These concerns have been deliberately skipped. Had we decided to purchase rather than build our Online Auction application, then there would be no reason to look at the development process and the book would stop here!