Aleksey Burdakov:
Realized Projects Description:

WAREHOUSE MANAGEMENT SYSTEM

eng rus

 

1. Introduction

The warehouse management system was designed and developed for VESCO Company (Moscow, Russia).

VESCO is a hole-sale trading company. This company sales spirits and wines for Moscow region and other regions of Russia. Company has 6 branches in Moscow, each with its storages and points of sale. All branches are bound to a central office (every day they send information to the central office and get information from the central office).

The system was developed on Centura Team Developer (Centura, formerly Gupta) platform as front-end of client-server architecture and on SQLBase (Centura) SQL-DBMS as a back-end. DBMS servers are installed on separate servers in the branches. Communication between computers in each branch is realized through Ethernet 10-Mbit network.

In the following table, you can see branches and spreading of software components over them:

 

Branch

Server OS

DBMS

Client OS

Clients

# 1

NetWare 4.11

SQLBase 6.1.2

Windows 98

15

# 2

NetWare 4.11

SQLBase 6.1.2

Windows 98

5

# 3

Windows 9x

SQLBase 6.1.2

Windows 9x

1

# 4

NetWare 4.11

SQLBase 6.1.2

Windows 9x

20

# 5

NetWare 4.10

SQLBase 6.1.0

Windows 9x

15

# 6

Windows NT 4.0

SQLBase 6.1.2

Windows 9x

5

Central

Windows NT 4.0

SQLBase 6.1.2

Windows 9x

30

 

 

Note: number of client workplaces is approximated.

I have been working on this project since forth quarter of 1995. The system was released and then installed in VESCO in January 1998 and since then, it has been used. Since 1998 it has been redesigned (some parts of it were added or changed) several times due to permanently changing law in Russia.

2. A warehouse management system design and development

 

This chapter describes stages of the software system design and development in details.

2.1. A Data Flow Diagram (DFD)

A DFD was designed as the results of analyze of the business structures and processes. The DFD represents processes and data themselves and relationships between them. Processes were realized as algorithms in application programs while data structures were reflected in the database schema.

For the DFD design the BPWin CASE-tool (Business processes design) was used.

2.2. Logical and physical database schema design

CASE-tool ERWin/ERX (Logic Works) was used for database schema design. Usage of this CASE-tool reduced database design cycle. This CASE-tool helps to draw an entity-relationship (ER) diagram and produces SQL-script that generates the following database objects:

    • Tables
    • Indexes
    • Synonyms
    • Views
    • Stored Procedures and triggers

The entity-relationship diagram includes about 60 several tables, views, and relationships between them used in the project (some of them are used in other projects too).

SQL-script was generated for SQLBase (Centura Software) DBMS.

2.3. System architecture

The designed information system had to be (first) multi-user capable and at the same time distributed (company has widely distributed net of branches and warehouses). Designed systems supposed to be tolerant to hardware and software faults and supposed to have good performance characteristics. For this project was selected the following architecture:

    • Each territorially separated branch has its own database on a DBMS server, called “operational database”. This OLTP (on-line transaction processing) database contains only one-day information i.e. current operations and references (commodity, currency, customer reference, etc.).
    • Corporate OLAP (on-line analyze processing) database is placed in the central branch and contains all historical information about all operations whenever produced in “operational databases”. This central database allows analyzing an information in different aspects.
    • Exchange of an information between OLTP and OLAP databases is performed daily with special replication utilities (they also have been written in the framework of this project).

 

2.4. Design and development of applications

For an application development one of the most powerful fourth Generation Languages (4GL) - Centura Team Developer (Centura Software, formerly Gupta) was used. This development platform is similar to the following platforms: Visual Basic (Microsoft), PowerBuilder (Sybase), and Developer-2000 (ORACLE).

 

2.4.1. Object-oriented programming

 

One of the most powerful features of Centura Team Developer platform is Object Oriented Programming. OOP was widely used in application development especially in Quick-Objects design (hi-level components for application development). Quick Objects allows a developer save his (her) time.

In the framework of this project was developed about 15 several object classes that were used in applications. For example: one of the object classes is cListBoxStorage, which represents the hierarchy of companies, branches and warehouses in MS Windows 9x explorer style. The cListBoxStorage object class was inherited (derived) from cOutlineListBoxExplorer object class, which inherited from cOutline and cListBoxExtensions (here is implemented a multiply inheritance). The cListBoxStorage object class was used in several user interface forms: reports master, balance checking, price-list generator.

 

2.4.2. Libraries

Library mechanism was used for sharing an application code between several parts of this project. In this project the following application libraries were developed:

    • Errors.apl - implements a common mechanism of errors handling and logging
    • CRPE50.apl - implements an interface between Crystal Reports Print Engine (repot generator) and Centura Team Developer applications
    • ODBC32.apl - implements an interface between Microsoft 32-bit ODBC driver and Centura Team Developer applications.
    • ODBC.apl - implements several special procedures for ODBC Data Source configuring.
    • AnimationControl.apl - implements an object class that adds animation in applications (like flying sheets during file-copy operation in Windows 9x explorer).
    • Qtable.apl - implements an object class of Table Windows, which can be configured by special configuration tool with user interface (this is a perfect example of Centura Quick-Object technology).

2.5. Report generation

A big part of this project is a reports part. For development of reports was used Seagate Crystal Reports 6.0 report generator. This is the most powerful report generator, which can be used with any ODBC-compatible database management system (i.e. Centura DBMS) and with several DBMS through native connection (ORACLE, Sybase, and others).

Communication with CRPE was implemented through its API.

The following part describes generation of reports in general:

    1. Selection of report parameters: on this stage user selects reports options through special user interface designed for this report (for example, he (she) selects warehouse, suppliers, period, etc.)
    2. User-selections encoding: on this stage previously selected options are encoded into special Crystal Reports instructions (Selection formulas) through CRPE API.
    3. Report generation: on this stage Crystal Reports sends SQL-query to DBMS server (SQLBase), gets a result set from DBMS server and forms report.
    4. Output to window/printer: on this stage generated report is showed in a window, printed on a printer or exported into file.

In the framework of this project was written about 50 reports.

 

3. Project control and management

 

Centura Object Manager was used as CASE-tool for project management and control. The following features of Centura Object Manager were used:

    • Security control
    • Version control (like PVCS): all versions of application modules are stored in central repository
    • Programming standards for applications and user interface: variable, function, class naming conventions, user interface conventions (hot-keys, buttons, etc)
    • Relationships between components of the project: CASE-tool takes care of relationships between application modules, libraries, reports, and resource files (bitmap, icon etc.)
    • Files storing in the repository

 

Subject area.gif (20288 bytes)

 

Data flow diagram.gif (15765 bytes)

Entity-relationship diagram.gif (18486 bytes)

System architecture.gif (15990 bytes)

System architecture (hardware).gif (17889 bytes)

 

Dialogue graph.gif (16210 bytes)