« Concurrency and Distribution in computing | Main | Interview Question »

Software Organization

Lately I've been  hacking quite a few open source code in the telecom and data com area. One of the interesting thing I came up ( and of course nothing new) is the software organization. I've read Hardware Organization books, but I don't recall any such book on software that I read. There are a few books on crafting good codes with our choice of languages... But what about the organizations. Even source code could make anyone confused if they are not logically organized.

In this particular case I'm talking about some user land libraries. When it comes to closed source, all one needs to do is to expose the contract very very clearly and precisely, and rest of it is hidden anyway. For open source, there is really more responsibility. Without looking at the implementation(s), some of the things I would really like to see are --


  1. Clear separation of interface files, so an user knows up front what are the interfaces.
  2. Reflect the naming of files and the organization of files in a logical manner that mimics the specification, for example the functional design of an RFC from ITU.
  3. Immune to refactoring meaning no illogical introduction of files and or the tree structure.
  4. Examples of isolation of interface, so that the bindings are very very loosely coupled.
  5. Replacing old libraries with new one should very very seamless.

Few such libraries seem to have some respect for those five points I just stated, but many don't....



Posted on Wednesday, September 10, 2008 at 06:41PM by Registered CommenterProkash Sinha | CommentsPost a Comment

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Hyperlinks will be created for URLs automatically.