Projects

Over the last 19 years, Bob Hartwig has developed a strong track record for successfully delivering products to his clients and employers. This page lists and describes some of these products.

The Consortium audio conference bridge

The Consortium audio conference bridge is an award winning turnkey hardware and software system. It connects to the public telephone network or to a corporate phone system, and provides for connecting up to 96 participants in any combination of virtual conferences. A small sampling of its many features includes a full-featured interactive voice response system (written entirely in Smalltalk), A complete reservation system, including resource scheduling subsystem, distributed GUI and Web user interfaces, and automatic email notification system. Implemented in Smalltalk, and documented in UML class diagrams, state transition diagrams, and sequence diagrams, the system consists of over 1200 classes. Throughout the life of the project, an emphasis has been placed on providing maximum modularity, to allow for easy interchangability among various third-party hardware subsystems. Because the system is a continuously evolving system, a major emphasis was placed on designing for change and flexibility.

Originally implemented in Digitalk Smalltalk/V and Visual Smalltalk for OS/2, the system was later ported to 32 bit Windows and IBM's VisualAge for Smalltalk.

Starting in 1992, and continuing into 2007, Bob has been heavily involved in every phase of this project, from its earliest conceptual meetings, through many iterations of object-oriented analysis, design, and implementation, to developing automated regression test suites, hardware test suites, and load (stress) test suites.

Bob started the project as an employee of Teleconferencing Technologies Incorporated. After Coherent Communications Inc. acquired TTI, Bob continued on the project as a consultant and contractor.

At TTI, Bob was the lead application software developer for the project, working with one other Smalltalk developer and several hardware/device driver/DSP developers. His responsibilities included defining the software architecture and development approach, including the selection of programming languages, tools, and object-oriented design methods. He worked with marketing to develop detailed product specs, then designed and implemented the system's object model, while the other Smalltalk developer implemented the graphical user interface.

In addition, Bob was responsible for developing custom visualization, simulation, and testing tools, defining an API to a custom hardware card, interfacing Smalltalk to custom and third party hardware cards through physical device drivers and dynamic link libraries, interfacing with several third party frameworks, developing and interfacing with user primitives, and designing and developing numerous frameworks.

While still at TTI, Bob also designed and developed a working proof-of-concept prototype of a client-server object replication framework, to provide for future replication of the object model and user interface views among several client workstations on a LAN.

After the purchase of TTI, Bob continued to work on the project as a consultant and contractor. While continuing to lead the development of the system's evolving object model, Bob's responsibilities grew to include mentoring and training developers and other consultants on the architecture of the system, advising management and developers on object-oriented technology issues, designing and implementing minor and major new features in response to requests from the company's engineering and marketing groups, designing an architectural strategy to carry the product to new markets and applications. Bob successfully ported major subsystems from Digitalk Smalltalk to VisualAge for Smalltalk, and developed new frameworks to interface to a new generation of telephony platform.

Advanced planning and scheduling system

The client for this project was a major vendor of ERP systems and scheduling software for the manufacturing industry. Bob was originally brought in to address performance and stability issues in preparation for a production release of the product. After profiling and bringing about performance improvements of over 60x in certain critical areas, and successfully addressing many stability issues, the client asked Bob to stay on for another major round of new development.

A major accomplishment for the second round of this project was the porting of the entire 750+ class system from Visual Smalltalk Enterprise, to VisualAge Smalltalk. Additional responsibilities and accomplishments included extensively mentoring the other team members on proper object-oriented development techniques and proper Smalltalk style, refactoring existing Smalltalk code, leading the OO design and Smalltalk implementation of major and minor new features, and the evaluation and recommendation of new technologies with which system interfaced.

Looking toward the future, Bob also created a roadmap for medium to long term architectural changes to the system, to make the system more modular, flexible, scalable, and platform-independent.

Embedded system design and regression testing system

The client for this project, a major telephony equipment provider, needed a test fixture for their new internet telephony device. The device under test was to be used for routing and processing voice traffic from a conventional telephony switch over the internet or intranet using TCP/IP packets. The PC-based test fixture was used by the development team to verify the proper implementation of the API, and regression test the devices. The test fixture modeled and controlled the device under test and a third-party PC telephony card, used to selectively switch PCM audio streams to the device under test. Bob was responsible for all development of the test fixture, from requirement analysis, through object-oriented design, GUI design, Smalltalk implementation, testing, and runtime packaging.

Two factors made this project especially challenging: time to market, and a continuously changing specification of the device API and project scope. By using a pure OO design approach and Smalltalk, Bob was able to successfully keep tester development ahead of the project schedule, even though he was working only part time on the system. The constraint of working with an ever-changing API specification was successfully addressed by using a “metadata” approach for specifying the API. The metadata approach provided a facility for the end-user to change the definition of the API commands, events, and even data types without changing any underlying Smalltalk code. The tests themselves were also end-user changeable, through a scripting facility.

Simulation and prototype of new embedded telephony products

The client for this project was a major telephony equipment manufacturer. Bob provided consultation, object-oriented design services, and Java development services. His responsibilities included proposing and introducing object-oriented concepts to management and technical team members, researching embedded Java environments, analyzing the problem domain to determine the feasibility of a pure object-oriented development approach, defining the software architecture, including the selection of programming languages, tools, and object-oriented design methods.

A pure object-oriented approach was taken throughout all development cycles, to facilitate rapid changes as requirements were refined, and to allow for a high degree of user interface and machine interface modularity. The OMT Object Model and Dynamic Model notations, and object-interaction diagrams were used to document and communicate the object model. The Java programming language was used to implement the systems, which included pure simulations and user interface simulations that interacted with real hardware through native method interfaces.

Client-server contract administration application

The client for this project was a Fortune 100 insurance provider. Bob provided consultation, object-oriented design services, and Smalltalk development services. The development environment for the project was ParcPlace-Digitalk's Visual Smalltalk Enterprise version 3.0.1 for Windows NT. Bob's responsibilities included refactoring existing Smalltalk code to conform to sound object-oriented design principles, mentoring and advising developers on proper object-oriented techniques, implementing and finishing new features.

Among other accomplishments, Bob successfully redesigned and implemented two major subsystems of the application, and implemented major performance improvements.

Moderator Monitor conference control application

While at TTI, Bob developed a Microsoft Windows based application that connects to an analog teleconference bridge to provide conference participants with remote (via modem) real-time monitoring and control of conferences.

Bob's project responsibilities included meeting with marketing and end-users to define functionality and user interface design, choosing development language, tools and design methods, modeling the system in objects, implementing the system using the C++ language, and developing automated test suites. An emphasis was placed on making the system as simple and intuitive as possible for the end users.

Model 660 Speakerphone

Bob developed the embedded software for a micro-controller based speakerphone system.

Project responsibilities included meeting with marketing and end users to specify features and human-interface ergonomics issues, communicating with the hardware development team regarding hardware/software integration issues and algorithm tuning, algorithm development, system analysis, system design, PLM96 and C language coding, testing, and configuration control. He was also responsible for evaluation and recommendation of development tools, and development of propriety utilities used for code generation and run-time performance analysis.

Structured methodologies and portable coding techniques were consistently used throughout the life cycle of the system. CASE tools were employed for system documentation.

D4000 audio conference bridge

Bob successfully implemented new features and maintained code for a multi-processor controlled teleconference bridge.

Structured programming techniques using the PLM86 language and Intel's RMX real-time operating system were used for the main processing node. Structured programming using PLM51 and ASM51 were used for the 32 remote nodes. Code performance analysis and coverage analysis were executed for the purpose of performance optimization and quality assurance.

Model 640, model 730 speakerphones

Bob successfully implemented new features and maintained code for existing speakerphone systems.

An emphasis was placed on improving future maintainability by rewriting unstructured code using structured methods.