Wednesday, March 12, 2008

How do interfaces get defined if we're not using an object oriented language?

I have a question about interfaces: If an organization doesn't design or build using Object-Oriented Programming, how can internal interfaces be interpreted? As documentation of functions or procedures invoked?

Even "procedural" programs have interfaces - both intra- and inter-program interfaces.

If you're asking about internal interfaces, or intra-program interfaces, you might consider that interface descriptions and standards are a big part of this - just as much as it might be in an OOP world. These are practices that are contained with Technical Solutions, or TS, in the CMMI Model.

"C" functions have interfaces too, of course, except they're often defined by data structures that are passed, or pointers to pointers of data structures - but they're still interfaces that need to me defined and managed. Of course, OOP makes this simpler and easier to maintain, but that's another discussion!


JCTP said...

At my organization we've been having problems identifying which interfaces to manage.

There may be situations where there are hundreds of interfaces defined, and it seems of no value to manage all of them.

Someone would say that we should manage the ones that are more important. However that criteria is hard to define.


Juan Carlos

Jeff Dalton said...


I agree, it may be of no value to manage thousands of interfaces this way.

I'm not sure I would interpet the practice that way in your situation. "Manage" interfaces in this case could mean a clear definition of interfaces and records of each type.

For instance, for intra-application interfaces in a "c" program you have certain ways you pass data structures to and from functions. Is your standard to pass an entire data structure, or a pointer to a structure? Do you standardize on certain data types, or is type conversion permitted? Do you use arrays of pointers and just pass the index, or do you pass the actual data? Then, what are the guidelines on when and where to apply, or deviate from these standards.

These are some possible ways you might interpet the practice, altough there are others. Good luck!