-3-tier layering (thin client layer, service layer, db layer)
-Networking with RMI (easier to use, simpler resulting code for junior level programmer understanding)
-Control database record lock owner by running thread
-Initialize DBSchema class at startup by reading database file header. Helps make the code more flexible if schema changes.
-UI implemented with the MVP pattern. UI components are kept simple, search fields are free text fields, table not sortable.
-48 hours rule not implemented, I decided that would restrict the software too much, users manually enforce this in their business process.
-primary key of the record is the index position in the file (preferred simple solution again)
-Locking: due to DBMain interface had to assume that client code to DBMain is well-behaved and does always follow the right method call sequence.
This well-behaveness is enforced in the service layer which is assumed to be the sole client to DBMain.
-javadoc, followed rigourously all javadoc best practices.
-reviewed code with checkstyle plugin with sun coding convention template.
I'd like to thank you all for the useful information you provided in this forum.