In legacy programming environments (and probably a few current ones, too): An independently compilable unit of source code (e.g. the "file I/O module") that is later linked into the final executable. Unlike a component, this kind of module is typically not independently deployable. It may or may not have a corresponding set of unit tests or component tests.
When describing the functionality of a software system or application: A complete vertical chunk of the application that provides a particular piece of functionality (e.g. the "Customer Management Module") that can be used somewhat independently of the other modules. It would have a corresponding set of acceptance tests and may be the unit of incremental delivery.
Copyright © 2003-2008 Gerard Meszaros all rights reserved