Chapter 1: The Case for 
Modularity 
By Syed Ali Raza
Define a Module 
 “chunk of software” 
 A software module is a deployable, 
manageable, natively reusable, 
composable, stateless unit of software 
that provides a concise interface to 
consumers.
Elements of a module 
 DEPLOYABLE 
 MANAGEABLE 
 TESTABLE 
 NATIVELY 
REUSABLE 
 COMPOSABLE 
 STATELESS
Deployable 
 a unit of deployment 
 a module is a discrete unit of 
deployment that can alongside other 
software modules. 
 modules represent something more 
physical and coarse-grained than 
classes or packages, which are 
intangible software entities. 
 Examples of deployable units of 
software include EAR, WAR, and JAR 
files.
MANAGEABLE 
 They can be installed, uninstalled, and 
refreshed. 
 This includes improving build 
efficiency, allowing developers to 
independently develop autono-mous 
modules, and planning the 
development effort along module 
boundaries. 
 It include EAR, WAR, and JAR files.
TESTABLE 
 A module is a unit of testability. 
 A module can also be independently 
tested. 
 It include classes, packages, and 
JAR files
NATIVELY REUSABLE 
 Modules are a unit of intraprocess reuse. 
 modularity is a way to organize units of 
deployment in a way that they can be 
reused across applications, but a module 
is always invoked natively (the 
operations exposed by a module are 
invoked by calling the method directly.) 
 a module is deployed with each process 
that intends to reuse its functionality. 
 It include classes, packages, and JAR 
files.
COMPOSABLE 
 Modules can be composed of other 
modules 
 this involves coarse-grained modules 
being a composition of finer-grained 
modules.
STATELESS 
 Modules are stateless. 
 There exists only a single instance of 
a specific version of a module. 
 We don’t instantiate software 
modules, although we do instantiate 
instances of the classes within 
software modules, 
 WAR, EAR, and JAR files
SUCCINCT DEFINITION OFA 
SOFTWARE MODULE 
 After applying each segment of the 
definition 
◦ The best candidate as the unit of 
modularity on the Java platform is the 
JAR file!
Reference 
 Java Application Architecture by Kirk 
Knoernschild.

What is a Software Module?

  • 1.
    Chapter 1: TheCase for Modularity By Syed Ali Raza
  • 2.
    Define a Module  “chunk of software”  A software module is a deployable, manageable, natively reusable, composable, stateless unit of software that provides a concise interface to consumers.
  • 3.
    Elements of amodule  DEPLOYABLE  MANAGEABLE  TESTABLE  NATIVELY REUSABLE  COMPOSABLE  STATELESS
  • 4.
    Deployable  aunit of deployment  a module is a discrete unit of deployment that can alongside other software modules.  modules represent something more physical and coarse-grained than classes or packages, which are intangible software entities.  Examples of deployable units of software include EAR, WAR, and JAR files.
  • 5.
    MANAGEABLE  Theycan be installed, uninstalled, and refreshed.  This includes improving build efficiency, allowing developers to independently develop autono-mous modules, and planning the development effort along module boundaries.  It include EAR, WAR, and JAR files.
  • 6.
    TESTABLE  Amodule is a unit of testability.  A module can also be independently tested.  It include classes, packages, and JAR files
  • 7.
    NATIVELY REUSABLE Modules are a unit of intraprocess reuse.  modularity is a way to organize units of deployment in a way that they can be reused across applications, but a module is always invoked natively (the operations exposed by a module are invoked by calling the method directly.)  a module is deployed with each process that intends to reuse its functionality.  It include classes, packages, and JAR files.
  • 8.
    COMPOSABLE  Modulescan be composed of other modules  this involves coarse-grained modules being a composition of finer-grained modules.
  • 9.
    STATELESS  Modulesare stateless.  There exists only a single instance of a specific version of a module.  We don’t instantiate software modules, although we do instantiate instances of the classes within software modules,  WAR, EAR, and JAR files
  • 10.
    SUCCINCT DEFINITION OFA SOFTWARE MODULE  After applying each segment of the definition ◦ The best candidate as the unit of modularity on the Java platform is the JAR file!
  • 11.
    Reference  JavaApplication Architecture by Kirk Knoernschild.