Modules are a way to organize programs. They are interchangeable and pluggable pieces of code that have well-defined interfaces and hidden implementations. In Java, modules are organized in packages. In Scala, modules are objects, just like everything else. This means that they can be parameterized, extended, and passed as parameters, and so on.
Scala modules can provide requirements in order to be used.