From: sleeper75se (sleeper75se_at_yahoo.se)
Date: 2002-03-18 15:34:54
Hi John,
here are some quick comments and opinions on what is missing in your
design. I hope you find them useful:
* I think some of these class names, such
as "Interface", "Device", "FileReader", "USB", "Sensor" etc are too
generic. They should be more descriptive and perhaps use a common
prefix to group them together, avoiding name-clashes as the program
grows in size. Examples: BioSensor and BioInputDevice. "Bio" is just
a suggestion, something else might sound better.
* Some names can't be written in code (Java or C++ anyway). ("HAL-4"
and "Modular EEG")
* Opinion: Shouldn't "respiration" and "temperature" sensors have
three letter designators as well?
A device that logs temperature is called "thermograph" and a device
that measures breathing rate is called "pneumograph".
Using the same "E" as in EEG, ECG and EMG, we would
get "electrothermograph" and "electropneumograph" (ETG and EPG).
* You need to define a class for managing data in memory. It may also
encapsulate (control) a file manager object.
* The sensor objects produce data. How about defining some data
streams for that data? Perhaps EEGDataStream, EMGDataStream etc.
inheriting from BioDataStream, inheriting from a standard class.
* I miss error management strategies and execption handling classes.
How will errors (such as "file not found" and "out of memory") be
handled? (Find a book on patterns...there should be something there.)
* As for the user interface and signal-processing sections: I have
not given them much thought yet ...
It might be beneficial to limit the design scope for now, to include
only data types, input, management and file storage as it forms the
foundation of our "house". The feedback and signal processing parts
can be saved for later. Focusing on one thing at a time usually
produces better results too.
By the way, we should find some coding standard to follow. I suggest
this one: http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
Regards,
Andreas
This archive was generated by hypermail 2.1.4 : 2002-07-27 12:28:43 BST