Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
7Activity
0 of .
Results for:
No results containing your search query
P. 1
Graduation Project Documentation

Graduation Project Documentation

Ratings: (0)|Views: 731 |Likes:
Published by sameh samir

More info:

Published by: sameh samir on Jun 23, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/23/2013

pdf

text

original

 
CHAPTER 3Design Principals
 
“How good the design is doesn't matter near as much as whether the
design is getting better or worse. If it is getting better, day by day, I can live
with it forever. If it is getting worse, I will die.”
 Kent BeckThe creator of extreme programming
In This Chapter
 
Modularity
 
Interoperability
 
Scalability
 
 65
 
Introduction| Sales and Inventory Management System
Design PrincipalsModularity
Problems of Monolithic Applications
A monolithic application is an application where all its pieces are combined into a singleapplication. It is designed without modularity
this means the parts are very tightlycoupled and cannot be separated or replaced.The requirements for developing applications are constantly changing. This causes theapplication to evolve and become more complex. These changes are based on multiplefactors, including changes in the market, customer expectations, and changes intechnology. Development team grows to handle the new needs of the application. If theapplication has not been properly designed to handle this growth, the complexity willcontinually be unmanageable. Because we have so many moving parts that are inter-dependent, and a number of people working on the code, the application is much lessmaintainable and more fragile. Additionally, our team may be divided into independentsub-teams to support the application. Continued development in such an application isoften expensive and time-consuming. If the system design is not modular, it is difficultfor the team to introduce new features and the application is difficult to test and todeploy as all team members should meet each time a new feature is added to thesystem to perform integration testing for this feature before going on.This also will introduce another problem, which is the dependency of each teammember schedule on other team members schedules. For example, if one of the team
who is responsible for the “Web Administration Application” depends o
n a particular
function in the system’s service model (the service that connects the parts of the
system), his work would be delayed until the function he needs in the service model isfinished.The monolithic applications approach also introduce a new difficulty in respect tobuilding the User Interface (UI). This approach would make it difficult to handle commonscenarios that need to be addressed as the application grows. This includes changing theusers experience based on role, adding new functionality, and modifying existingfunctionality and the way the user interact with the system according to nature of theapplication (Web, Windows, or Mobile application) and according to the set of functionality that must be available for each user. Another problem static compositionposes is that it is difficult for multiple team members to work on the UI simultaneously.
 
 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.
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.

Activity (7)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Mohd Alasmari liked this
Drhmsa1994 liked this
mako222 liked this
Siber Ria liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->