Design Specification Document For A Client/Server Purchasing System

March 24, 1998

by Pat Ellis, Bill Miller, An Q. Nguyen, Al Williams

 

Design Specifications for Client/Server Purchasing System by NU Software

1. Introduction

NU Software will develop a comprehensive client/server application that will have a web interface for external customers and 32 bit graphical user interface for internal employees. Both interfaces will interact with a server based database for ordering personal computers. This product will be designed for a company who specializes in selling business PC's, and networking solutions to wide range of both small and large customers. The company arranges to be the sole provider of all computer equipment for its customers, and in return provides its customers with discounted pricing, reliability, and added services. One of the services the company wishes to provide is an on-line ordering system where their customers may order new computer systems, or computer components, through the Internet. This will service will give their customers the opportunity to order new equipment at their convenience, and allow the customer to browse through the companies complete on-line catalog of products. At the same time, company wants the same ability to interface with its on-line catalog from their office. This will allow the company to more effectively take phone orders for new equipment.

  • 1.1 Purpose
  • The Purpose of the design specification documentation, hereafter known as DSD, is to describe in detail the interface design, function and limitations of the software application designed by NU Software. This DSD is designed for the engineers and software developers who will be assigned to develop NU Software’s product.

     

  • 1.2 Scope
  • This software application developed by NU Software herein will be known as "Corporate PC".

    Corporate PC will be a 32 bit client/server application that will have a customer web-based browser interface that is external and PC based interface for clerical use that is internal. The web interface will allow a company's external customers to order products via a series of drop down menus over the web. The web interface will interact with an internal database that will generate the customer's order. Once the order has been placed, it will be evaluated for credit approval. After credit approval, the order will be rejected (with a subsequent rejection letter sent) or approved and a pick-list is generated. Once the pick-list is generated the order is assembled and then shipped to the customer via a land based forwarder.

    The internal clerical interface is for orders that are sent in via phone or fax. The internal interface is similar in function to the web interface with some differences. The internal interface will also allow the clerical worker to enter and update relevant customer information. Also, the credit standing will be readily apparent to the clerical worker.

    The server-based database will hold information as it relates to customer contact, shipping information and company products offered. It does not contain a comprehensive accounting package for managing Accounts Payable, Accounts Receivable or General Ledger activity. Also, Corporate PC does not have a Procurement function. These features should be obtained through third party application components.

    The web interface will support browsers that are non-Java and non-frames enabled. The internal clerical interface will be in a 32 bit environment and will support Windows 95 and NT 4.0 as the PC operating system. The server side database will be supported only with NT Server 4.0.

     

  • 1.3 Definitions and Abbreviations
  • 1.3.1 Definitions

  • Accounts Payable - Accounting department from where bills are paid to vendors

    Accounts Receivable - Accounting department that receives customer payments

    Client/Server - System architecture whereby a variety of computer hosts can send to and receive from the server centralized data that is shared.

    Discount Rate - Pricing will be based on discount on gross invoice total

    Frames - A window partition formatting for HTML pages.

    General Ledger - Theory of double entry bookkeeping in which all accounting transactions are recorded in separate accounts broken down by category.

    Java - A programming language that relies on a "virtual machine" to be resident on the client.

    Just in Time - An inventory methodology in which inventory is maintained for only for the orders on hand.

    Internet Latency - The amount of time between packets of information traveling via the Internet.

    Pick-list - List of products ordered per customer that the warehouse must physically pull from inventory

  • 1.3.2 Abbreviations

    CPCS - Corporate PC System

    DB - Database

    DO - Same as above

    DSD - Design Specification Documentation

    GUI - Graphical User Interface

    MS - Microsoft Corporation

    N/A - Not Applicable

    NT - Microsoft Windows NT Workstation 4.0

    NTFS - NT File Structure

    OS - Operating System

    PC - IBM compatible personal computer

    SP3 - Service Pack 3

    SRS - Software Requirement Specification

    SSL - Secure Socket Layer for secure Internet connection

    VB - Visual Basic

     

  • 1.4 References
  • The Institute of Electrical and Electronics Engineers, Inc., IEEE Recommended Practice for Software Requirements Specifications, 1994

    Roger S. Pressman, Software Engineering A Practitioner’s Approach, McGraw-Hill 1997

    Pat Ellis, et all., Software Requirement Specification for Client/Server Purchasing System, February 28, 1998

     

    1.5 Overview

    The rest of the SRS will contain the following:

    Section 1 Overview

    This will give a general overview of the layout of the DSD including the purpose, the scope of the project, and a description of the project. Also, a list of definitions and abbreviations are included to increase the readability of the DSD.

    Section 2 Data Design

    This section describes the major data objects and data structures of the system that are both internal and external.

    Section 3 Architectural Design

    This section details the system architecture with the System Architectural Diagram that shows the module hierarchy. Also there is the module description, which shows the inputs/outputs of the each module. The procedure design language is a pseudocode of the software processes of the system. Lastly, the internal data structures are logical representations of the internal databases.

    Section 4 Interface Design

    The Interface Design section gives a complete description of the user interface of the system. Included are screenshots of the web interface and the internal "clerical" interface and descriptions of the form objets. Also, there is a description of the external interfaces including hardware, other software packages and communication.

    Section 5 Requirements Cross Reference

    The requirements cross reference compares the functional requirements of section 3.2.1 of the SRS for this system dated February 28, 1998. This compares the requirements of the SRS to the DSD modules that will address those issues.

    Section 6 Test Provisions

    The test provision section details the test parameters of the different modules in the system. Most notably is testing the data entered to see if matches the correct data type.

    Section 7 Design Constraints

    The assumptions and dependencies are listed here. Many of the items listed are due to the constraints of the systems high dependency of third party software.

    Section 2 Data Design

    This section describes the major data objects and data structures of the system that are both internal and external.

     

    2.1 Data Objects (internal data tables)

    2.2 External Database

    Parts Data Base

    Part# Part# Pre-Built#  
    Manufacture Price Price  
    Type Quanitity Quantity  
    Description   Description  

    Customer Data Base

    Cust#
    Cust Name
    St. Address
    City
    State
    Zip
    Discount Rate

     

    Section 3 Architectural Design

    This section details the system architecture with the System Architectural Diagram that shows the module hierarchy. Also there is the module description, which shows the inputs/outputs of the each module. The procedure design language is a pseudocode of the software processes of the system. Lastly, the internal data structures are logical representations of the internal databases.

    3.1 System Architecture Diagram

     

        1. Module Inputs, Outputs and Return Arguments
        2. The design of our system modules does not lend itself to having return arguments. All data is simply passed along to the next module in the work flow system.

        3. Procedural Design Language
  • The PDL is a pseudocode presentation of the logic flow of the system.
  • /* Definitions */

  • DEFINITION FALSE 0

    DEFINITION TRUE 1

    DEFINITION BAD 0

    DEFINITION GOOD 1

  • CONST LINELIMIT 20

     

     

    /* Data Structures */

    TYPE part is STRUCTURE DEFINED

  • part# is STRING

    part desc. is STRING

    stock qty is INTEGER

    unit price is REAL NUMBER

  • END part TYPE

    TYPE customer is STRUCTURE DEFINED

  • cust# is STRING

    cust name is STRING

    st address is STRING

    city is STRING

    state is STRING

    zip code is STRING

    discount rate is REAL NUMBER

  • END customer TYPE

    TYPE order is STRUCTURE DEFINED

  • order# is INTEGER

    part# is STRING

    order qty is INTEGER

    b/o qty is INTEGER

    ship qty is INTEGER

  • END order TYPE

    TYPE credit is STRUCTURE DEFINED

  • cust# is STRING

    order# is INTEGER

    credit is BOOLEAN

  • END credit STRUCTURE

    TYPE cust order is STRUCTURE DEFINED

  • cust# is STRING

    order# is INTEGER

    Complete Status is BOOLEAN

    BO Status is BOOLEAN

  • END cust order TYPE

     

    GLOBAL VARIABLE

    Parts is ARRAY of type part

    Customers is ARRAY of type customer

    Orders is ARRAY of type order

    Cust_order is ARRAY of type cust order

    Credit is ARRAY of type credit

    /* ----------------------------------------------------- */

    PROCEDURE cpcs executive

    INTERFACE RETURNS no value

    REPEAT UNTIL SUBMITS or ENDS PROCEDURE

    CASE OF user choice

    WHEN user choice = "web order"

    CALL order admin

    WHEN user choice = "check stock status"

    CALL get stock status

    WHEN user choice = "phone order"

    CALL order admin

    WHEN user choice = "confirm shipped order"

    CALL confirm ship order

    ENDCASE

    ENDREPEAT

    END cpcs executive

    /* ---------------------------------------------------------- */

    PROCEDURE confirm ship order

    /* This procedure requires manually input of data. The operator must know the

    which order is completed before hand. */

    INTERFACE RETURNS no value

    REPEAT UNTIL USER SUBMITS or EOF

    PROMPT USER for Cust_order.Complete Status

    READ Cust_order.Complete Status

    ENDREPEAT

    END confirm ship order

    /* ---------------------------------------------------------- */

    PROCEDURE order admin

    INTERFACE RECEIVES: customer# and order#

    INTERFACE RETURNS no value

    CALL accept order

    CALL prove cust status(customer#, order#)

    END order admin

    /* ----------------------------------------------------------- */

    PROCEDURE get stock staus

    /* this procedure is to help the customer to know which part# they

    need to have in their order. */

    INTERFACE RETURNS no value

    LOCAL VAR:

    USER_STOP: BOOLEAN

  • part# is STRING

    partdesc. is STRING

    stock qty is INTEGER

    unit price is REAL NUMBER

  • REPEAT UNTIL USER_STOP

    PROMPT USER FOR part#

    READ part#

    GET part#, partdesc, stock_qty from External Database

    DISPLAY part#, partdesc, stock_qty

    ENDREPEAT

    END get stock status

    /* ------------------------------------------------------------ */

    PROCEDURE accept order

    LOCAL VARIABLE: Line_Item# is INTEGER

    INTERFACE RETURNS no value

    GET SYSTEM GENERATED order.order#

    Initialize Line_Item#

    REPEAT UNTIL user SUBMITS or ENDS PROCEDURE

    CASE OF user choice

  • WHEN user choice = "pre-built" SELECT
  • CALL pre-built(Orders.order#, *Line_Item#)

  • WHEN user choice = "custom built" SELECT
  • CALL custom built (Orders.order#, *Line_Item#)
  • WHEN user choice = "parts only" SELECT

  • CALL parts only(Orders.order#, *Line_Item#)

    ENDCASE

    ENDREPEAT

    END accept order

    /* --------------------------------------------------------- */

    PROCEDURE pre-built

    INTERFACE RECEIVES Cust_Orders.order#

    Line_Item# by reference

    RETURNS no value

    Orders.order#=Cust_Order.order#

    REPEAT UNTIL user SUBMITS or ENDS PROCEDURE or Line_Item# > LINELIMIT

    READ (Orders.order#).part#

    READ (Orders.order#).order qty

    Line_Item# ++

    ENDREPEAT

    END pre-built

    /* ------------------------------------------------------------------------- */

    PROCEDURE custom built

    INTERFACE RECEIVES Cust_Order.order#

    Line_Item# by reference

    RETURNS no value

    Orders.order#=Cust_Order.order#

    REPEAT UNTIL user SUBMITS or ENDS PROCEDURE or Line_Item# > LINELIMIT

    READ (Orders.order#).part#

    READ (Orders.order#).order qty

    Line_Item# ++

    ENDREPEAT

    END custom built

    /* ------------------------------------------------------------------------- */

    PROCEDURE parts only

    INTERFACE RECEIVES Cust_Order.order#

    Line_Item# by reference

    RETURNS no value

    Orders.order#=Cust_Order.order#

    REPEAT UNTIL user SUBMITS or ENDS PROCEDURE or Line_Item# > LINELIMIT

    READ (Orders.order#).part#

    READ (Orders.order#).order qty

    Line_Item# ++

    ENDREPEAT

    END parts only

    /* --------------------------------------------------------------- */

    PROCEDURE prove cust status

    /* this procedure will check the credit status of an existing customer

    and then based on the status, processes the order accordingly. */

    INTERFACE RETURNS no value

    PROMPT USER for Customers.cust#

    If ((Credit.Customer#).credit status = BAD )

    CALL Print_Reject_Letter(Customer#, Order#)

    else

    CALL Process_Order(Customer#, Order#)

    }

    END prove cust status

    /* -------------------------------------------------------------------- */

    PROCEDURE Print_reject_Letter(Customer#, Order#)

    INTERFACE RECEIVES: Customer# is type STRING

    Order# is type INTEGER

    RETURNS no value

    Merge Customers information into the letter form

    Print the letter

    END Print_reject_Letter

    /* ---------------------------------------------------------------------- */

    PROCEDURE Process_Order(Customer#, Order#)

    INTERFACE RECEIVES Customer#, Order#

    RETURNS no value

    LOCAL VARIABLE Back_Order is type BOOLEAN

    Line_Item# is type INTEGER

    Initialize Line_Item#

    Back_Order = NO

    WHILE ((there is a line item on Orders.Order#) AND (Line_Item# < LINELIMIT)

    {

    If ((Orders.order#).part# in NOT in Internal Database)

    then

  • GET Parts.part#, Parts.partdesc, Parts.Stockqty, Parts.unitprice from External Database
  • /* now part is in Internal Database */

    If (Orders.orderqty <= Parts.stockqty)

    then

    { Orders.backorderqty = 0

    Orders.shipqty = Orders.orderqty

    Parts.stockqty -= Orders.orderqty

    }

    else /* order qty > stock qty */

    {

    If (Parts.stockqty > 0)

    then

    {

    Orders.backorderqty = Orders.orderqty – Parts.stockqty

    Orders.shipqty = Parts.stockqty

    Parts.stockqty -= Orders.orderqty

    }

    else /* now stock qty already negative */

    {

    Orders.backorderqty = Orders.order qty

    Orders.shipqty = 0

    Parts.stockqty - = Orders.orderqty

    }

    Back_Order = YES

    }

    END WHILE

    If (Back_Order == YES)

    then Cust_Order.BOstatus = YES

    else Cust_Order.Bostatus = NO

    CALL Print pick list (Customer#, Order#)

    END Process_Order

    /* ----------------------------------------------------------------- */

    PROCEDURE Print pick list(Customer#, Order#)

    INTERFACE RECEIVES Customer#

    Order#

    INTERFACE RETURN no value

    If (Cust_Order.BO status = NO) AND (Credit.credit status != BAD)

    then

    { Merge information from Customers, Orders, and Parts to the form

    Print pick list

    }

    END Print pick list

    /* -------------------------------------------------------------------------- */

    3.2.3 Internal Data Structures

    Section 4 Interface Design

    4. Interface Design:

    The CPCS has been designed with both physical and logical user interfaces.

    The physical interface is twofold:

    The logical interface, facilitates customer/user browsing via web-site (http://www.wmiller.com/cpcs/) to view a PC parts catalog. It will also enable established customers to requisition either a pre-built PC system(s)or customized PC system(s) and/or PC parts.

    4.1 User Interface Specification

    For any one instance of the user interface it is based on a point and click access system for each function. A mouse or another suitable pointing device is used to click various 'buttons' that correspond to various system functions. These interface designs are not unlike that seen in popular Microsoft Windows applications.

    To select functions, the user simply has to 'point and click'. Manipulation of text data will then be done using the keyboard. This type of graphical interface was chosen to make the system unimposing and user friendly. The chief goal of the interface design team was to build a system interface that most individuals could utilize with minimal training. A good system is one that gets used!

    The system has a main dialogue screen that enables the user to select primary function groupings. These groupings are identical to those found in section two of this document. Whenever a particular function grouping is chosen, a screen particular to that group will be displayed, allowing the user to direct data processing as required. When a particular function is exited, the system will return to the main selection screen. It should be noted that unless the user chooses to exit a particular function screen, the system will remain active at the screen. This feature was chosen to facilitate ease of performing multiple iterations of the same task.

    4.1.1 Screen Name: Administrative Clerk/User Screen:

     

  •  
  • data base.

  •  
  • screen and to close the screen.

    get to the individual fields one should use the tab button.

    Records the following information:

    Order Number

    Customer Number

    Name

    Address

    City

    Zip Code

    Phone number

  • The default mode for the Submit Order Data screen is
  • browsing. There is no specific browse button. To browse the customer database, enter information in the Order or Customer Number fields or both. It will actively search the database for the customer(s) with that particular information pertaining to that field. The customer(s) that match either or both fields, all other related information will appear in the empty fields. To narrow the search just enter in both fields.
  • The New button allows you to add new customers to the database. Assuming that a customer number has been established through routine administrative procedures.
  •  
  •  
  • By clicking on a radial button the user selects one of the three methods for customer ordering:
  •  

     

     

     

  • the system
  • screen
  • screen and to close the screen.

    Submits the following information:

    Order Number

    Customer Number

    Customer Name

    Pre-Built System

  • Quantity
  • This screen allows you to perform the following functions:

  • The Pre-Built System screen allows the clerical user to enter a Pre-Built System name or select a Pre-Built System from a list of names provided by the system. A customer and or order number is selected via browsing.
  •  

     

    Label Parts:

  • the system
  • screen
  • screen and to close the screen.

    Submits the following information:

    Order Number

    Customer Number

    Customer Name

    CPU

    Motherboard

  • Speakers
  • SCSI

    RAM

    SoundBoard

    HardDrive1

    HardDrive2

    Monitor

    VideoAdapter

    CD-ROM

    OperatingSystem

    Joystick

  • The Custom Built System screen allows the clerical user to select 13 different types of PC parts. A customer and or order number is selected via browsing.
  •  

     

  • the system.
  • screen.
  • screen and to close the screen.

     

    Submits the following information:

  • Order Number

    Customer Number

    Customer Name

  • CPU

    Motherboard

    SCSI

    RAM

  • HardDrive
  • CD-ROM

    SoundBoard

    Speakers

  • VideoAdapter
  • Monitor

  • JoyStick

    OperatingSystem

  • The Individual Parts Order Form screen allows the clerical user to select or enter 12 different types of PC parts. A customer and/or order number is selected via browsing.
  •  

     

     

     

     

     

     

     

     

    4.1.2 Screen Name: Shipping Clerk/User Screen:

  • One button flags an order as being completed and

    three additional buttons as follows:

  •  
  •  
  • screen, cancel the operation and close

    the screen.

     

     

    Displays the following information:

    Order Number

    Customer Number

    Customer Name

  • The default mode for the Submit Order Data screen is
  • browsing. There is no specific browse button. To browse the customer database, enter information in the Order or Customer Number fields or both. It will actively search the database for the customer(s) with that particular field information. The customer(s) that match that field, information will appear in the associated fields.
  • The Ok button allows you to flag to the invoicing agency that an order is filled.
  •  
  •  
  • 4.1.3 Page Name: Website Customer/User Screen:

     

  • Corporate PC Systems.
  • Invokes the following:

  • http://www.wmiller.com/cpcs/
  • Image: http://www.wmiller.com/cpcs/order.gif

    Image: http://www.wmiller.com/cpcs/demo.gif

    Image: http://www.wmiller.com/cpcs/Email.gif

  • Image: http://www.wmiller.com/cpcs/cgi-
  • bin/counter.exe?frmain.htm
  • Image: http://www.wmiller.com/cpcs/cpcs.gif

     

     

     

  • The page has one field to accept the Customer Number.
  • There is a single button to invoke CPCS Ordering System page.
  • form page.
  • By clicking on the Order button you invoke the CPCS Ordering System page.
  • A message will come up alerting the user if a bad credit status has been flagged.
  • A message will come up when user enters and invalid customer number.
  • Page Name: Customer Intro
  • Invokes the following:

  • http://www.wmiller.com/cpcs/customer.htm
  • Form 1:
  • Action URL: http://www.wmiller.com/cpcs/customer.htm

    Encoding: application/x-www-form-urlencoded (default)

  • Method: Post

  • Image: http://www.wmiller.com/cpcs/

  • button.jpg
  •  
  • default value.
  • Invokes the following pages:

    http://www.wmiller.com/cpcs/order_splash.htm

  • Form 1:
  • Action URL: http://www.wmiller.com/cpcs/

  • order_splash.htm
  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

    Form 2:

    Action URL: http://www.wmiller.com/cpcs/

  • order_splash.htm
  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

    Form 3:

    Action URL: http://www.wmiller.com/cpcs/

  • order_splash.htm
  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

    Form 4:

    Action URL: http://www.wmiller.com/cpcs/

  • order_splash.htm
  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

  • By clicking on a radial button, the user selects a method for customer ordering:
  • By selecting the appropriate radial button and clicking the submit button, a method of ordering is invoked.
  • Click the Reset button to return field to default value.
  •  
  •  
  •  

  • One field (combination box) will be used to select a Pre-Built System.

    The other field will receive a desired quantity.

  •  
  • default value.
  • Submits the following information:

  • http://www.wmiller.com/cpcs/Pre_built.htm
  • Form 1:

  • Action URL: http://www.wmiller.com/cpcs/Pre_built.htm

    Encoding: application/x-www-form-urlencoded (default)

  • Method: Post

    Form 2:

  • Action URL:
  • http://www.wmiller.com/cpcs/

    Pre_built.htm

  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

  •  
  • The Pre-Built System screen allows the user select a Pre-Built System from a list of names provided by the system. A customer and or order number is selected via browsing.
  •  

  • order.
  • default value.
  • Invokes the following pages:

    http://www.wmiller.com/cpcs/Customer_order.htm

    Form 1:

  • Action URL:
  • http://www.wmiller.com/cpcs/Customer_order.htm

    Encoding: application/x-www-form-urlencoded (default)

  • Method: Post

    Form 2:

  • Action URL: http://www.wmiller.com/cpcs/

    Customer_order.htm

  • Encoding: application/x-www-form-urlencoded (default)
  • Method: Post

  • By clicking on a combination box the user selects the desired part.
  • The entered quantity tells the system how many systems will be ordered.
  • After selecting the desired parts, click the submit button. A Custom Built order is initiated.
  • Click the Reset button to return all fields to default value.
  •  
  •  
  •  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • order.
  • default values.
  • Invokes the following pages:

  • http://www.wmiller.com/cpcs/Parts_Order_Form.htm
  • Form 1:

  • Action URL: http://www.wmiller.com/cpcs/Parts_Order_Form.htm

    Encoding: application/x-www-form-urlencoded (default)

  • Method: Post

    Form 2:

  • Action URL: http://www.wmiller.com/cpcs/Parts_Order_Form.htm

    Encoding: application/x-www-form-urlencoded (default)

  • Method: Post

  • By clicking on a combination box the user selects a desired part.
  • By selecting the desired parts, and clicking the submit button, a individual parts order is initiated.
  • Click the Reset button to return all fields to default value.
  •  
  •  
  •  

    4.2 External Interface Specification

        1. Software Interfaces

    The CPCS has a GUI interface operating within a 32 bit environment and must be supported by Windows 95 and Windows NT workstation version 4.0 with service packs 1 or 3.

    4.2.2 Communication Interfaces

    The CPCS will provide an interface for both a telecommunications and internet connection.

        1. Hardware interface

    The hardware interface has two aspects.

     

    Section 5 Requirements Cross Reference

    The requirements cross reference compares the functional requirements of section 3.2.1 of the SRS for this system dated February 28, 1998. This compares the requirements of the SRS to the DSD modules that will address those issues

    SRS Requirement

    DSD Implementing Module

    As stated, the system shall use a friendly graphical user interface to assist a customer to make an inquiry to the system for a product by providing either a pre-defined product identification (ID) number or a description of a product. Phone Order and Website Order
    Based on the information provided by the customer, the system shall respond to the query by showing both the product ID number and its description, along with the listing unit price. Get From Ext Database Stock Status
    In case of an incorrect product ID number entered, the system shall prompt an error message, and let the customer try again. Prove Cust Status
    The system shall also provide the customer some pre-determined lists of products, grouped by product types, in order to ease the searching process for the customer. All they have to do is to choose the product they want to order from the lists. Design Implementation
    Once the customer knows what to order, the system shall let the customer submit their pre-assigned customer number. Customers without a valid customer number shall not be able to place an order at the time, and they must go through a separate process to obtain a customer number, which is not in the scope of this system. Prove Cust Status
    The system shall allow customers with a valid customer number to order up to 20 different line items per order. Process Order Controller
    With a valid customer number provided, along with the information of the products on order, the system shall accept the order for further process, and issue a unique order number to the customer for reference Process Order Controller
    In regard to the customer’s credit status with the seller, the system shall either issue a rejection letter or a notification: Prove Cust Status

    Section 6 Test Provisions:

    6.1. Objectives of the Test Plan:

    This test plan is designed to verify the logic used in the implementation of the Client/Server Purchasing System, also known as Corporate PC. The test will help software developers to ensure the correct program flow, and to determine the error-handling capability of the system.

    6.2. Modular Testing:

    6.2.1.Main Menu Testing:

    . Objective: To ensure that the system will be able to choose a correct interface depending on the initial request.

    . Tests:

    6.2.2.Validity test of customer number:

    . Objectives: To ensure that only valid customer numbers will be accepted by the system.

    . Tests:

    6.2.3.Different line items on an order:

    . Objectives: To ensure that an order can have one, or two, or many different line items.

    . Tests:

    Every time exiting an order, the system should record the order into the internal database correctly.

    6.2.4.Maximum number of line item:

    . Objectives: To ensure that the customer will not enter more than the maximum number of line items on one order.

    . Tests:

    6.2.5.Customer credit status:

    . Objectives: To ensure that the order originated by a customer with a bad credit status will not be processed to ship, but a rejection letter will be sent instead.

    . Tests:

    6.2.6.Back Orders:

    . Objectives: To ensure that any available quantities will be allocated to the items on order, stock quantities will be accounted for appropriately to reflect the back order quantities, and a pick list will not be generated.

    . Tests:

    Request a new order. Enter 2 part numbers with quantities less than the available quantities, and 1 part number with quantity greater than the available quantity. The system should mark this order as back order, change the stock quantity of the item on back order (item# 3) correctly (to a negative number,) and put this order on hold.

     

    Section 7 Design Constraints

    This section contains the design constraints and assumptions that were made by the designers of CPCS. Some of the provisions below are forced due to the high dependency on third party software.

    7.1 Constraints

    Interfaces to other applications - Must be 32-bit operating system. 16 bit applications may not be compatible.

    Parallel operations - web server must run with database server.

    Higher-order language requirements for customer server client must have language specific run time dynamic link library.

    Criticality of the application - though this application will be a tremendous benefit to both the customer service and the web clients, manual disaster recovery operations may be implemented at any time due to software system failures.

    7.2 Assumptions and dependencies

    Because of the use of third party products such as Microsoft Access and Microsoft SQL server, all operating system requirements as stated previously in the DSD will need to be strongly followed.