Sales and Inventory Management System | Introduction663
The solution is Modularity
For all the above problems, we as a team was very concerned about those problems andthe effect of them on development effort, time, and our co-operation during thedevelopment process. So we start searching for a solution which was modularity.
is designing a system that is divided into a set of functional units (namedmodules) which can be composed into a larger application/system. A module representsa set of related concerns. It can include components such as views, business logic, andpieces of infrastructure, such as services for authenticating users, working with data,and communicating with other modules. Modules are independent of one another butcan communicate with each other in a loosely coupled fashion using the service modelthat connect all the system modules/applications together.
Benefits of Modularity
Modularity provides the following benefits to our development team:
It promotes separation of concerns through allowing a high degree of separationbetween the application infrastructure and the business logic.
It allows different team members to independently develop each of theindividual business logic and infrastructure components.
It allows parts of the application to separately evolve. And we faced this scenario
a lot during tea last stages of the development which makes us think about “how
this could be achieved without the separation pro
vided by this concept??”.
It promotes code re-use and flexibility because it allows business logiccomponents and the application infrastructure to be incorporated into multiplemodules. For example we have common parts between the four main systemcomponents such as data access tier and security services.
Design Principals of a Modular System
When we decided to develop the system in a modularized fashion, we structures theapplication into separate modules that can be individually developed, tested, anddeployed by different team members. This helps us address separation of concerns bykeeping a clean separation between the business functionality and the implementationand used technologies as each team member is free to choose the implementationtechniques and the technologies he is familiar with.