CPSC 333: Accounts Management System, Version Two

Location: [CPSC 333] [Ongoing Examples] [Accounts Management System] Version Two

This page was most recently modified on March 20, 1997


Problem Statement

Summary of Changes

In this version of the system, changes are made to Version One in order to support accounts for multiple users (and provide at least some security for the account information), and to allow a more modern, graphical user interface to be used.

The system will now keep track of users who have accounts. Each account holder has a ``user name'' (or login) and a ``password,'' and the user must enter both of these on system startup, before access to his or her accounts is allowed. The system ``remembers'' the user while it is active, and only displays (and allows access to) this user's accounts while this user is using it.

It isn't possible to ``switch users'' while the system is active - that is, if another account holder wishes to use the system, then the first user must ``quit'' from the system, so that the next user can restart it. Thus, this system ``knows about'' multiple account holders, but only one account holder can use it at a time.

User Interface

The following information about the system's interface is definitely incomplete. However, it should be complete enough to give you an idea of how the system might be used (and to make it clear that the interface isn't the same as for the system developed on Assignment 3).

When the system is started, a dialog box should be displayed. The account holder can use this to enter his name and password, and (using a check box) to state whether he's a new user (so that the ``name'' he enters should be new, he'll be entering the password he wishes to use in the future, and there are no accounts on file for him yet), or whether he's used the system before (in which case, the name should be recognized and the password he enters must be compared with the one that the system has on file).

Once the name and password have been accepted, a set of ``pull down'' menus should appear. The menus should have titles ``User,'' ``Account,'' ``Transaction,'' and ``Reconciliations,'' and these menus will be used to select some of the commands that should be performed.

The ``User'' menu should include the entries

The ``Account'' menu should include the entries

The ``Transaction'' menu should include the entries

Finally, the ``Reconciliation'' menu should include the entries

You should note that a few ``Transaction'' and ``Reconciliation'' commands don't have menu entries. At least one - ``Add Transaction'' - can be performed without using the menus, as well.

The reason for this is as follows: When the information about a specific account is ``displayed,'' a window for that account should be opened. Account information (including the account name and number) should be shown in a top ``pane'' of this window. The bottom, large, pane of this window should present a scrollable list of the account's transactions, ordered by transaction number.

Each transaction should be listed in a ``row'' of the table that this pane of the window presents, and the table should include columns for the transaction's date, number, memo, deposit amount, withdrawal amount (with one of these two columns filled in, for each transaction), ``registered?'', and ``balance forward.'' The ``transaction number'' and ``balance forward'' can't be filled in by the user - their values are generated automatically when the other values are supplied.

Finally, this window should always show (or, it should always be possible to scroll down to) a bottom row that is ``blank.'' Thus, a user can ``add a new transaction'' by selecting this bottom row of the table and typing information into it (once he's done, a new ``blank'' row will appear below it). A user can ``modify'' a transaction by selecting its row, and retyping information in some of this row's column entries. A user can ``delete'' a transaction by selecting it and then selecting the menu item for deletion. Assuming that the transaction's account's window is open, the user can display transaction information by simply scrolling along the window to the position where the transaction appears.

The command to ``List Accounts'' also opens up a window - with a row showing the name and number of each account for the given user in the system. If this window is open, then the user can select one of the accounts it displays by selecting its row, and using the menu to command to ``Display Account Information.''

``Essential Requirements''

These won't differ very much from the essential requirements for the first version, so the data flow diagrams showing the ``essential requirements'' for that version of the system might be useful as a reference. However, they shouldn't be taken ``too seriously,'' since they only specify essential requirements, for a somewhat different system, and they're part of a specification for a system that's to be developed using ``structured'' techniques, while we're now trying to use ``object-oriented'' techniques to develop the new one.

For example, these requirements don't even agree completely with the essential requirements for the new version of the system: Note that you would need to specify a user's name (along with an account number) in order to identify an account, in the new version of the system, and that this isn't the case with the first version of the system. A few functions - for entry of information about new users, deletion of users, changing passwords, and ``logging on'' - need to be added. Finally, the ``error conditions'' listed in the first version won't always make sense, because of changes in the user interface that's been described above.

Class Diagram

A class diagram for the new version of the system, that shows ``problem domain'' classes and structures, but that doesn't show any message connections, or any ``implementation'' classes, etc., is as follows.

Class Diagram for Accounts Management System

References in Assignments

This system will be considered in one or more assignments.

Location: [CPSC 333] [Ongoing Examples] [Accounts Management System] Version Two


Department of Computer Science
University of Calgary

Office: (403) 220-5073
Fax: (403) 284-4707

eberly@cpsc.ucalgary.ca