Description of Horizontal Prototyping • A Horizontal, or User Interface, Prototype is a model of the outer shell of an entire system, i.e., windows, dialogue boxes, menus, screens, reports, and batch processes, with little or no processing behind them. It typically contains all of the system functions on menus, but includes only dummy screens, reports, and database queries (if applicable) for core functions. • A Horizontal Prototype is usually developed during the early stages of analysis.
Purpose of Horizontal Prototyping • The Horizontal Prototype is developed to: • define project scope, • demonstrate the external features of the system (e.g., windows, menu bars, and reports), as a means of communicating an understanding of the requirement.
Use Automatic Tools • Automated CASE tools can significantly reduce the time required to generate a Horizontal Prototype. If automated tools are not available, a paper prototype can be prepared. Although it requires a little more imagination, the analyst can walk through a paper prototype with the customer as if it were an automated prototype.
Horizontal Prototype Versus Interviewing • Horizontal Prototyping is recommended in addition to interviews when the principal objective of the interviews is to define specific requirements related to the external design of a system. • Modelling the external features of a system with a Horizontal Prototype greatly enhances communication between the analyst and the customer.
Horizontal Prototype Versus Interviewing • This productive interaction sometimes results in more concrete and useable output than can be gained from interviews. Customers find it easier to respond to a suggested approach demonstrated by a Horizontal Prototype, than to define their requirements or problems with the existing systems in an interview.
Develop a Horizontal Prototype • Reflect proposed functionality in a set of screens in a Horizontal Prototype. • Character-based screen designs may be implemented using menus to decompose the functionality for the Horizontal Prototype. Menus allow analysts and customers to understand the total proposed system in layers, with each layer providing a more detailed view of the functionality. • GUI screen designs offer many graphical objects, such as check boxes, radio buttons, and list boxes that allow users to navigate through the windows.
Description of a Vertical Prototype • A Vertical Prototype contains a stripped down version of the core functions of the system. These functions provide the ability to enter data and store it in a database, as well as the ability to display data on query screens and reports. • A Vertical Prototype includes some user functionality but, more importantly, access to data. This can demonstrate to the user a "working" system, although not one that is fully functional or tuned.
Vertical Prototype Requires a Corresponding Data Model • Do not develop a Vertical Prototype without reference to a corresponding data model or database. Without a corresponding data model, unrealistic expectations for system externals may be created that prove difficult to implement.
Benefits of a Vertical Prototype • A Vertical Prototype provides the opportunity to test and refine the core application features and physical database design at an early stage. • By providing the customer with a Vertical Prototype, considerable development effort can be saved. • Key components of a system can be tested before design is fully underway.
Benefits of a Vertical Prototype • The stripped down versions of the programs can be modified to accommodate the requests for changes that inevitably surface once the customer has a working model. • However, beware of the "give them everything they ask for" trap that increases complexity and the risk of failure. • Accommodating customer change requests must be compared against the added value of the change and the additional prototyping costs.
How to Build a Vertical Prototype • The steps to follow to build a Vertical Prototype are: • Determine the core functions of the system; i.e., the functions that should be part of the prototype. • Determine any temporary structures required to replace non‑core functions. For example, in an accounting system, vendor files are not critical to the functionality but you need vendor data in a file to be able to demonstrate payables. In this case, table maintenance routines are developed to build vendor files.
How to Build a Vertical Prototype • The steps to follow to build a Vertical Prototype are: • Design and build a preliminary database or make a copy of an existing database. • Build temporary structures. • Identify and develop key modules and functions. • Design and develop core functions.