A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science at Department of Computer of Science University of Sharjah (2010)