===== Module ===== [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] A **Module** is a separate, interchangeable, self contained component that represents a unit of functionality. It is best to define a Module what it does: * It encapsulates code and data into a single unit (usually a file) that implements a specific functionality * It provides an [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] as a contract between the users of the module (i.e., clients) to access the functionality in an consistent way * It allows for the functionality to be plug-able into other modules (i.e., clients) that use the interface * It is packaged in a single unit so that it can be easily deployed. Generally it is stored as a file, but it could be an entry into a database (i.e., stored procedure), a datastream, etc. For example, ''dapper.net'' encapsulates database access. It has an [[dido:public:ra:xapend:xapend.a_glossary:a:api]] to access its functionality. It is a single file that can be plugged into a source tree. Source: [[https://softwareengineering.stackexchange.com/questions/167859/what-actually-is-a-module-in-software-engineering ]]