What do you call a piece of software inside another software that could be considered a software on its own? I am looking for a language and technology independent word for it. Is there a word for it, the only think I can think of is "part of a software that's also software on its own", but that's too long, I am looking for a single word. I also am trying to find a word extremely general that could be used in almost any context.
An exception: In Visual Basic, "components" and "widgets" are only available as part of dynamic linked libraries. In programming environments similar to Visual Basic, "components" are not stand-alone programs that can be called from the command line.