Object Oriented Systems 600.421

 

Analysis Document

for

DIGCAD

A Digital Circuit Analysis and Design Application in VisualWorks

 

Table of Contents

Team

Overview

GUI Description

CRC Analysis

Usecase Analysis

System Requirements

Group Dynamics



GROUP 12 TEAM

 

OVERVIEW

 

Motivation

Circuits for Dummies - that is right, this is an application visualized primarily as an educational aid to students learning digital electronics. However, this application will be useful for those who would like (voluntarily or involuntarily) to spend time on designing and analyzing digital circuits. This application will act as a GUI tool for the logic design phase and, it will help the user to expand his knowledge by developing circuit libraries of his own.

 

Description

The application opens a window which consists of a workspace and a menu. The description of menu is given in the section on GUI Description. A rudimentary diagram of the application window, as given below, will suffice for our discussion. When a user starts the application, he will have two options. He can either build a new circuit on the workspace or load an existing circuit from a file. We will provide functionality to save a circuit in a file and read it back.

Our application will run in two modes. The first will be the edit mode, in which user can make changes to the circuit like adding gates to the circuit, making connections and performing other actions to form a desired circuit. The other mode will be the simulation mode. The user will be able to switch from edit mode to simulation mode. In the simulation mode, the user will not be able to change the circuit. He will be able to change only the values of input components. These will be reflected instantaneously at the output.

To give a concrete example – In the edit mode, a user may choose a component called AND GATE by clicking on the AND GATE icon in the component submenu. A click anywhere in the workspace will reproduce the AND GATE there. Choosing connect from the operations submenu, a user can connect any two terminals through a wire. In this way, a user will be able to design a circuit. User can also connect an input device or output device to any terminal. More detailed use cases and a listing of all possible user actions are given in the Use-case Analysis. Similarly, to test an existing circuit in the simulation mode, the user will click on the input components in the circuit and choose the desired input. The output(s) shall be shown at the output component automatically.

The components available to the user will be the usual AND GATE, OR GATE, NOT GATE and other such memoryless components. Output of a memoryless component does not depend on its previous values. The input-output characteristics of such components can be described by a truth-table consisting of 0's and 1's. We also plan to introduce some components with memory e.g. FLIP-FLOPS. We have decided to provide flexibility to the user for his design and hence, we plan to give him the capability to make his own components (as an extension).These may be formed either by combining pre-existing components or by specifying the truth-table of the component. This extension is highest on our priority list.

Extensions

The following extensions are being proposed. They will be implemented, within the time constraints, in increasing order of difficulty as following

We have identified that our project can be broken into two different packages viz. the logic or component package and the GUI or workspace package. The subsequent description should be read bearing this division in mind.

GUI DESCRIPTION

Here is a snapshot of the prototype of our GUI:

The GUI is composed of four field.
 
1.The menu bar. [ top, horizontal]
The menu bar on top gives user different choice of operation.

File menu enables user to create, save, or load a file, which will be translated from/into a workspace similar
to the one shown below. It also provides exit from the application.

Mode menu allows the user to toggle between edit mode and simulate mode.  Toggling to either mode will enable the relevant operation while disabling irrelevant ones. (Please refer to our use case analysis for more detail.)

Action menu enables user to
                (1) Under edit mode: define the circuit in the current workspace as his own component. The component will be saved to a file. Later user  can load the component from the component toolbox at left and use it in his other design. 
                (2) Under simulate mode: Set input sequence. User can define input sequence(s) to one or mutiple inputs.

Help button: Clicking on the help button will open a small browser window containing useful infomation.

2. The component toolbox: [ left, vertical]
 
    The component toolbox works similarly to smalltalk's palette in the UIpainter. User clicks on a button to drop a
component onto the workspace.
   Besides gates which constitude the circuits, where are also wires that connects the gates, nodes that help in complex  connections, switches that defines the input, and LED to show the output.
    The User_defined component is a special unit. Clicking on it will open a file manager to allow the user to choose the component that he/she has created and saved previously.
    The is a small field at the bottom of the component box to help user identify each component. The name of any of the component that is been clicked will be instantly displayed in this field. 

3. The workspace.
    The workspace displaces the circuit that the user is designing. Under different mode,  user can in this workspace
either:
    (1)[ edit mode]
                                 move, disconnect, or delete a gate;
                                  disconnect or delete a wire;
      (2) [simulate mode]
                                 check to see the value of each component. The value and the component type will be shown in the
            console field at the bottom of the window.
    The workspace is contained inside the GUI window. Each time there can be only one workspace.

4. The console. [below, horizontal]
    The console is the communicator between the application and the user. Beside signalling operation status, under edit mode there can be messages signify potential errors; while under simulate mode user can find the value of any
component there each time he/she examines a certain component in the workspace.
 

CRC ANALYSIS

Two UML class diagrams given below represent the class organization of our project. The division of classes into two separate groups comes very naturally in our design and hence, the class diagrams were developed by two independent teams. GUI class diagram and Component class diagram .

A description of the classes of the project, their responsibilities and collaborators is given in the GUI class description and Component class description .

USE-CASE ANALYSIS

 

In the beginning of the circuit design, the user is requested to create a new workspace for his design. After that he can do the following things in two modes viz. the edit mode or simulate mode.


Edit Mode Actions


Simulation Mode Actions

 

Use Cases

 
We have considered some of the representative use cases in the edit and simulation mode operation of our application. All these use cases are described below.

Edit Mode Use-Cases

Use case overview: a use case diagram UseCase.PDF Note: please see the *second* page.

We provide 4 use case analysis:

 Initialize the application window.

 Creating a component onto the WorkspaceView.

 Creating a connection between two components.

 Deleting a component.

 Loading a Circuit.

 Saving a Circuit.

Simulation Mode Use-Cases

 Simulating an invalid circuit with a loop.

 Simulating a valid circuit without a loop.

 Simulating a circuit containing SR Flip-Flop.

 

SYSTEM REQUIREMENTS

 

GROUP DYNAMICS

Structure

We have decided to remain as a loose group of independent people without any particular group structure. To coordinate our meetings and maintain records of the proceedings and documents related to the project we have chosen Paritosh Tyagi as the Coordinator. Paritosh Tyagi shall be the coordinator of the group, and he will try to organize the meetings.

Interaction

Each week, we have a meeting in which the responsibilities are identified and distributed to the members of the group. As the implementation of project starts there will be a more specific division of labor. For the Analysis document preparation we had divided the task into five subtasks. This division shall carry out for the Design Document too. As the details of the project become more clear, we plan to increase our interaction using email.

RoadMap

As mentioned earlier, our project consists of two main components. The logic implementation and the GUI implementation. We have planned to assign Yun Yiang Liu, Yan Gu and Paritosh Tyagi for the GUI implementation and Ankur Bhargava, Guiwen Liang for the Logic implementation.This is based on our view that the GUI part of the project will require more effort. However, no specific divion of labour has taken place as yet. We plan to divide the work among us in our weekly meetings. Moreever, this division allows for, one person to switch to logic from GUI, if the situation demands it