Online Store Requirements
The overall product vision, along with the initial set of requirements, was defined during the inception phase of the Unified Process in Chapter 4. The preceding iteration concluded the development of the photo editor application, which allows customers to do simple image postprocessing using their personal computers. The construction phase now continues with the development of the Web site for the business, which allows online customers to order products customized with their personal images. |
The initial project plan created in Chapter 4 anticipated the following requirements to be addressed in the ninth iteration of the project:
- F:order_products
- F:product_browse
- F:product_options
- F:product_customize
- F:product_shopping_cart
- F:order_checkout
- F:checkout_shipping
- C:checkout_shipping_cont
- F:checkout_payment
- C:checkout_payment_method
However, further analysis of typical use cases of the product also led to a change request for the Online Photo Shop Web site, and this change requires adjustments to the original project plan. Analyzing the typical use cases has shown that online customers will return to the Web site and place new orders for products such as prints, cups, or T-shirts as long as they are satisfied with the service. To ease the ordering process for returning customers, it has been decided to store the shipping and payment information for each new customer. When a customer returns, he or she can simply update the stored information if necessary. Of course, this information needs to remain confidential between the business and the online customer and therefore must be placed in a secure area of the Web site. Furthermore, each online customer will be required to log in to the order section of the Web site with an identifier and password. See Table 11.1 for the definition of the new requirement key.
In the initial project plan we tried to group requirement keys by technical areas. This led to (for example) all Web-Form-related requirement keys being placed in the ninth iteration. This kind of grouping usually makes it easier to assign developer resources and to minimize dependencies between iterations and thereby to enable developers to work in parallel. But adding the login page and security aspects of the entire checkout area to this iteration would be overload it and would introduce a higher risk to the entire project. On the other hand, there seems to be a buffer in the tenth iteration; the plan was to use this buffer to address summarizing an order and securing payment information. Furthermore, security aspects now overlap with the newly added login requirement. We therefore rearrange all checkout- and security-related requirement keys to fall in the tenth iteration. Table 11.2 shows the updated project plan.
Requirement |
Type |
Summary |
---|---|---|
F:customer_login |
Functional |
Returning customers shall be able to use their previous shipping and payment information by providing their e-mail identifier and a password. |
Phase |
Iteration |
Type: Requirement Key |
---|---|---|
Construction phase |
Iteration 9 |
F:order_products F:product_browse F:product_options F:product_customize F:product_shopping_cart |
Iteration 10 |
F:customer_login F:order_checkout F:checkout_shipping C:checkout_shipping_cont F:checkout_payment C:checkout_payment_method R:checkout_payment_secure F:checkout_summarize |
The focus for the ninth iteration, which is described in this chapter, is now limited to the following:
- Managing an XML product catalog: We need to design a generic format for products and product attributes such as pricing and shipping cost. We will implement utility classes that provide access to this catalog.
- Implementing an online product browser: Maintaining static Web pages is a very time-consuming and risky task. Manual updates can lead to incorrect or outdated product descriptions or, even worse, outdated pricing. For this reason a Web browser interface for the XML product catalog needs to be implemented.
- Customizing products with uploaded images: The main idea behind the business's online store is the capability of customers to order customized products. An interface needs to be developed that allows users to upload an image for each ordered item.
- Shopping cart: Customers must be able to place items in a personal shopping cart while browsing the product catalog. After items have been placed into the shopping cart, the customer can proceed to the checkout procedure.
Requirement |
Type |
Summary |
---|---|---|
F:order_products |
Functional |
Ordering products via an Internet site shall be provided. A product catalog is provided as an XML document. |
F:products_browse |
Functional |
Customers shall be able to browse through the products catalog, which is provided in form of formatted HTML documents. |
F:product_options |
Functional |
Customers shall be able to choose between options offered for a particular product. |
F:product_customize |
Functional |
Customers shall be able to customize a product with personal digital pictures. |
F:product_shopping_cart |
Functional |
Customers shall be able to add products to a shopping cart while browsing through the product catalog. |
C:online_shop_codebehind |
Constraint |
Web forms shall be created using the Visual Studio Web Form wizard and follow separation of code and design (code behind). |
C:online_shop_stateservice |
Constraint |
To allow for future scalability, the ASP State service shall be used to implement session management. |
Table 11.3 summarizes all requirement keys for the online store that are addressed in this chapter. As per project definition, for all iterations of the construction phase we must complete design, implementation, and unit tests for all requirement keys to fulfill the go/no-go criterion for this iteration.