views:

273

answers:

1

I see these terms used quite a lot between various authors, but I can't seem to fix upon definitive definitions.

From my POV a software interface is a "type" specifying the way in which a software component may be used by other softare components.

But what exactly a software component is I'm not entirely sure (and it seems no-one else is either). Same goes for software unit, and software module, although I suspect that a software unit is a smaller, ahem, unit than a component, and a software module has something to do with packaging.

I hope this is not deemed (and downvoted) as frivulous, as I have serious intent in the asking.

A: 

Typically:

  • a unit is a source code file
  • a module (UML and Java package) is a directory of source files, probably with it's own build script
  • a component is a run-time, or at least install-time, thing, generated by a build process

Most writing on this tries to be sufficiently abstract that you can't tell what component runtime is being used, what language is being talked about, whether the OS supports 'files' and 'directories', or indeed whether you are intending to write a computer program, or just draw a diagram of a possible way of looking at a piece of software that could be argued not to be sufficiently wrong to be worth redrawing.

soru