Software Engineering

Real Time Data Server for an OTC Market: Yellowjacket Software

(Funded by NSF-PFI) YellowJacket Software provides a managed communication and data service for the over−the−counter (OTC) energy derivatives market that supports private, flexible and custom transactions through the operation of a message-based system. CISDD was asked to extend the functionality of the existing YellowJacket system and client software deployed in the field. The main goals of the project included the minimization of YellowJacket server data traffic, the creation of a buy and sell button in Microsoft Excel clients, and an automated testing system to predict and verify the behavior of enhancements without impacting development servers. CUNY developed a Microsoft Excel real-time data (RTD) server designed to request this updated data only. Modified cells were to visually indicate change. During the development of the features described above, a parallel effort was be undertaken to create an automated test system. If deployed, this system would simulate YellowJacket server usage with the RTD prototype.

Production Designer Software Control System Project: Wet Electronics

Production Designer is a fully integrated software control system that accesses and expands the power of a customer's audio-visual infrastructure. Allowing for complete control of any presentation, Production Designer manages configuration and synchronization of digital audio and video playback and device control within an intuitive graphical interface. The product is applicable to trade shows, corporate presentations, conference centers, college auditoriums, stadiums, concerts, convention centers and theme parks. CISDD partnered with Wet Electronics to undertake all quality assurance testing for this project.

Persistent Java Virtual Machine

The Persistent Java Virtual Machine (pjvm) project began as an attempt to reduce the overhead involved in the compile-test-edit cycle during the development of Java applications. The idea was to keep a single JVM "alive" across iterations of the development cycle in order to eliminate the loading and initializing of a new JVM each time. An analogy would be the use of the "++" option with IBM's Jikes compiler, which keeps the compiler process running, with an automatic recompilation of only those source files that have changed when the user presses the Enter key. Similarly with pjvm, only those classes that have been modified would need to be reloaded into the JVM during an iteration of the development cycle. In developing the pjvm facility, we soon realized that the tool we were developing was far more useful than simply a mechanism for streamlining the development cycle. Java's Reflection Mechanism, a key feature needed to support pjvm, provides professional and student developers with key insights about the structure and operation of code running in the JVM environment. Using the pjvm interface, the user cannot only create JVMs and load classes into them, but also instantiate classes, invoke methods, and get lists of objects, methods and classes currently residing in each JVM. Right now, pjvm is not a full-featured debugger, but with the addition of standard debugging facilities for tracing code will, we think, make pjvm the development platform of choice for serious Java developers.

Stack Frame of a Function

This project developed a new way to create the stack frame of a function in order to have the capability of storing dynamic variables in the same area as local variables thus eliminating the storage heap that currently exists between the permanent storage area and the stack. In addition, the use within object-oriented languages of passing dynamically allocated variables or arrays to the calling function was investigated. In order to demonstrate this method of compiling, the Principal Investigators created multiple functions with a variety of memories. Markets for this project include compiler and operating system developers.
Education - This is a contributing Drupal Theme
Design by WeebPal.