• Post Reply Bookmark Topic Watch Topic
  • New Topic

Component and Module difference  RSS feed

 
Nikolay Petrov
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

Could anybody please tell me what is the difference between component and module? I've searched through google but did not found anything specific. As I see it both are independent pieces of software made for some purpose but the module is actually bigger. I mean that the module could be composed of some components for instance.
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah, I never know what people mean by those, either. I use a definition of component that involves being an executable, closed, replaceable unit of distribution.

Executable is a tough definition on its own. Some sources say "binary" or "compiled" which is nice except scripting languages aren't either of those and what is Java byte-code anyhow? I think to me this means it's ready to use and I don't have to build it.

Closed goes with that to say that it's not something you are allowed to dig into and modify internally. Again, scripting languages deliver source code so there's nothing to prevent you from mucking about. Configurable from the outside is allowed without breaking the "closed" bit.

Replaceable means that it implements a well-defined API and somebody else could implement that same API and swap a different component into the same place. It also puts some limits on dependencies ... if a component depends on a lot of other stuff and the replacement depends on a lot of different stuff it's much harder to replace.

A unit of distribution or deployment means it can be packaged up and handed off to someone else by itself. In a system built of components it might mean that they can be on independent release schedules. If the mail component team releases an update I can deploy that one component to my server and not disturb the rest of my system.

I get sloppy and talk about subsystems in my application as components. They fit some of these definitions, but not all.

Anybody else have good working definitions for component and module? I don't think I have a different definition for module.
[ April 14, 2005: Message edited by: Stan James ]
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
See http://en.wikipedia.org/wiki/Module
 
Stan James
(instanceof Sidekick)
Ranch Hand
Posts: 8791
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I went to WikiPedia first and found a not-very-good page on componentry. Didn't go far enough to find the good one: Software_Component. I like these criteria fine:

non-context specific gave me a start at first. I guess they mean the context it is used in, not the context it resides in.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!