CS4500 Software Requirements Specification

February 10, 2009

Team Groundhog

 

1. Introduction

1.1 Purpose of this Document

This is the Software Requirements Specification for Team Groundhog’s VLSI UI and Printing project. This document will outline the software design and specification of our application.

1.2 Scope of the Development Project

The application is a Windows based .Net implementation with OpenGL.  Our main UI will developed in C#, which is a .Net language. This application will allow viewing of GDS II files, assignment of Color and Transparency to layers within the VLSI object, as well as printing of the rendered object.  There will be the ability to save these color/transparency palettes for a given GDS file as well as the foundry used to create the file.  These palettes can then be used with future GDS files to save time assigning colors/transparencies to layers.

1.3 Definitions, Acronyms, and Abbreviations

1.4 References

http://en.wikipedia.org/wiki/Alpha_compositing
http://en.wikipedia.org/wiki/VLSI
http://en.wikipedia.org/wiki/GDSII
http://www.opengl.org/documentation/

1.5 Overview of Document

This document contains all of the software requirement specifics. There is a general description of who is going to use our application, how it is going to work, and what technologies we are using to make it work. We also outline and describe specific parts of the project.

2. General Description

2.1 User Personas and Characteristics

2.2 Product Perspective

This application will run as a standalone User Interface that will allow the end user to view and print GDS II files that they have created in other applications.  The main utility of the application will be to display the GDS object with Alpha blending between layers and allow for switching colors on the layers.  Once the layer properties have been established by the user, they will be able to print on the Epson printer.

This product is built to run on a Windows machine using .Net 3.5. The user must have an OpenGL capable graphics card, an Intel Pentium 4 or higher class cpu with no less than 2GB of memory.

2.3 Overview of Functional Requirements

  1. Must be able to open GDS II files generate in other applications.
  2. Must allow setting of layer properties including color and Alpha level.
  3. Must allow for printing to a large format printer using standard Windows UI.
  4. Must allow for saving of Color/Alpha templates for a given Foundry/Layer ID.
  5. Must allow selection of Layers and Hierarchy visibility.
  6. Must contain a simple UI for easy interaction with the user.
  7. Must be intuitive and provide utility for the user.

2.4 Overview of Data Requirements

Files will be provided in the standard GDS II format.  Our application will access these files in a read only manner.

2.5 General Constraints, Assumptions, Dependencies, Guidelines

Files will be provided in the standard GDS II format.  Any changes to the format will cause issues loading the file into our application.  The colors presented on the screen will not be identical to the ones produced on the printer.

2.6 User View of Product Use

Application Objectives

3. Specific Requirements

3.1 External Interface Requirements

Operator/user interface characteristics from the human factors point of view

  1. Mouse Interface allows the user to point and click on GDS objects.
  2. Standard WinForms keyboard shortcuts to access menus
  3. OpenGL VLSI viewer

Characteristics required of the interface between the software product and each of the hardware components

  1. The interface will use OpenGL to display GDS file.
  2. Any mouse and keyboard that works with WinForms
  3. Program will use windows print APIs to interface with printer.

Interfaces with other software components or products, including other systems, utility software, databases, and operating systems

  1. OpenGL libraries for Windows only

3.2 Detailed Description of Functional Requirements

3.2.1 Template for describing functional requirements

Purpose

A description of the functional requirement and its reason(s)

Inputs

Which inputs; in what form/format will inputs arrive; from what sources input will be derived, legal domains of each input element

Processing

Describes the outcome rather than the implementation; include any validity checks on the data, exact timing of each operation (if needed), how to handle unexpected or abnormal situations

Outputs

The form, shape, destination, and volume of the output; output timing; range of parameters in the output; unit measure of the output; process by which the output is stored or destroyed; process for handling error messages produced as output

 

3.2.2 GDS File Selection UI

Purpose

The GDS selection user interface is accessible via the File menu. It will be the standard winforms file open dialog

Inputs

The user will select the GDS file they would like to open.

Processing

The file will be loaded by the GDS library and will be displayed in the main UI.

Outputs

The selected file will be displayed.

3.2.3 Main UI

Purpose

The main UI displays the GDS file and buttons for manipulating the view.

Inputs

The user will select changes to the view such as visible layers or an area to zoom into.

Processing

X/Y locations of the mouse will need to be checked to make sure the clicked location is valid. If the user clicks a button, the button's action will be executed.

Outputs

If a player clicked a valid button, the view will be updated appropriately.

3.2.4 Color selection dialog

Purpose

The purpose of the dialog is to allow the user to select the desired color for a specific layer.

Inputs

The user will appropriate area of the selector to indicate which color should be applied.

Processing

The color will be stored to appropriate objects in the GDS object.

Outputs

The layer will be rendered with the appropriate user selected color.

3.2.5 Print dialog

Purpose

The purpose of the dialog is to allow the user to select the desired print options.

Inputs

The user select the appropriate print options.

Processing

The options selected will be validated against the print driver. Use glReadPixels to write the GL window to a bitmap. Then use .net print support to print the bitmap

Outputs

The file will sent to the printer with the selected options.

 

3.3 Performance Requirements

We need to be able to open very large GDS files within system resource constraints.

3.4 Quality Attributes

The application is very self-contained. Robust error handling will be implemented and code will be object-oriented to allow for easier maintenance and feature additions.

3.5 Other Requirements

None at this time