What is a Software Module?

aliraza995 5,434 views 11 slides Nov 09, 2014
Slide 1
Slide 1 of 11
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11

About This Presentation

Apart from the general definition of a software module, There can be a more precise definition for it. The presentation describes the more specific definition of software modules. The content is taken from Kirk Knoernschild book Java Application Architecture


Slide Content

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 M odules 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 .