This week's book giveaway is in the Programmer Certification forum.
We're giving away four copies of OCP Oracle Certified Professional Java SE 21 Developer (Exam 1Z0-830) Java SE 17 Developer (Exam 1Z0-829) Programmer’s Guide and have Khalid Mughal and Vasily Strelnikov on-line!
See this thread for details.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • paul wheaton
  • Ron McLeod
  • Devaka Cooray
Sheriffs:
  • Jeanne Boyarsky
  • Liutauras Vilda
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Carey Brown
  • Piet Souris
Bartenders:

Component and Module difference

 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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 ]
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
See http://en.wikipedia.org/wiki/Module
 
Stan James
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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.
 
reply
    Bookmark Topic Watch Topic
  • New Topic