Object Oriented Architecture


The goal of an object-oriented architecture study is to describe a collection of hardware and virtual objects, which meets the requirements produced by analysis. This section shows what goes into an object-oriented architecture study, using the example of the voice substitution device.


Some definitions from the introduction are repeated here:


Objects may be hardware or virtual. A hardware object is made out of material parts. A virtual object is simulated in software. Objects may be composed of other objects. A compound object is an object which is composed of other objects. A mixed object is a compound object with some hardware and some virtual objects.


The architecture study begins with a single mixed object comprising the entire system. This object is shown along with its functionally relevant interactions with the external environment. This is called a system context diagram.



The buttons control the waveform of the substituted voice. The potentiometer setting controls the output volume.


Next, we show a more detailed diagram of the system. It still includes all of the external influences on the system, but it breaks down the single mixed object, represented by the bold hexagon, into a group of objects, and shows the interactions between them. The breakdown is made along functional lines.


Virtual (software) objects and influences are shown with dotted lines. Hardware objects and physical influences are shown with thin, continuous lines. Mixed objects and influences are shown with bold, continuous lines.



1.1 Aux Inputs

The Aux Inputs object is a separate board from the rest of the system. It is a Basic Stamp2TM system with some push buttons, and a potentiometer. The software includes periodically called routines which read the button states, read the pot resistance, compose a record of those readings, and crank a bit banging state machine to pass that record to the User Interface on the main processor board.


1.2 Audio I/O

This object accepts analog input from the microphone or line level input jacks, and it converts to a stream of digital input data buffers. It also accepts a stream of digital output data buffers, and converts them to analog output on the line level and earphone output jacks.


1.3 User Interface

This object has a synchronous serial port which receives the bit stream clocked by the Aux Inputs object. It keeps track of button and potentiometer settings and supplies those values to the Signal Processor on demand.


1.4 The Signal Processor

This object receives audio input data from the Input Buffer Stream, determines whether a harmonically structured voice is present, and if so, substitutes one of four synthesized voices.


1.5 Case and Circuit Boards

This hardware object includes the circuit boards for the two processors, their power supplies and associated hardware, including memory chips, buttons, knobs, LEDs, and so on. This object is assumed to supply memory, CPU cycles, and power to all the other objects that might need them.