Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
MyBookStore – E-shopping for books. Presented By : Sushma Reddy Chitturi MS FINAL DEFENSE May 10 2010. Committee Members: Dr. Daniel Andresen Dr. Gurdip Singh Dr. Mitchell Neilsen OUTLINE Introduction  Approach       Requirement Analysis System Analysis Design Implementation Testing Demo- a first look  Conclusion  Challenges  Limitations  Future Work  Resources  References  Acknowledgments  INTRODUCTION  Motivation …The Web Web is a Shopper’s paradise.  Design of an Efficient application which can serve to the needs of shoppers providing a user friendly environment.   Goal Design and Develop a user interactive e-commerce web application that is  User friendly  Highly Responsive  And has efficient search and filter methodologies. INTRODUCTION  Problems  Use of non-interactive and traditional user interface which can make an application slow to respond.  No effective search methodologies have been implemented for finding a particular product amongst numerous products.  Filtering of products based on various criterions.  Can be non-user friendly. SOLUTION – MYBOOKSTORE  Need of the application  Sophisticated search and filter techniques to efficiently locate books.  A rich user friendly application to cater the needs efficiently.  Enables users to view complete specifications of books.  Ability for the users to manage their accounts. APPROACH-REQUIREMENT ANALYSIS  Information Gathering for functionality   E-commerce applications available online Information Gathering for Implementation.  Microsoft Asp.net website.  Msdn technical forums.  Design Patterns in Web Programming. APPROACH-REQUIREMENT ANALYSIS - CONTINUED  System Feasibility  Economic Feasibility  A Computer with an internet connection  Pretty feasible economically.  Technical Feasibility  Operating Environment : Windows 2000/XP or Above  Platform : .Net Framework 2.0 or above, IIS  Programming Language : C#, Java Script  Database : MS Sql Server 2005 or above  Behavioral Feasibility Most of the features in this application are self-explanatory to the user. No special technical guidance is required APPROACH-SYSTEM ANALYSIS  Use Case Diagram APPROACH-SYSTEM ANALYSIS - CONTINUED  Entity – Relationship Diagram APPROACH-SYSTEM ANALYSIS - CONTINUED  Dataflow Diagrams APPROACH-SYSTEM ANALYSIS - CONTINUED  Dataflow Diagrams APPROACH-DESIGN  Design Goals  Sophisticated search and filtering techniques.  Building user interactive web pages for viewing available books, searching for a particular book, viewing the details of the book.  Implementing easy navigability throughout the application.  Flicker free web pages during post-backs through usage of AJAX framework controls. APPROACH-DESIGN - CONTINUED  Architectural Context Diagram APPROACH-DESIGN - CONTINUED  Modular Approach          Available Products Module Cart Module Login Module Checkout Module Administrator Module Categories Module Sub Categories Module Products Module Orders Module APPROACH-DESIGN - CONTINUED  System Architecture Presentation Layer – UI Designed in Asp.net and AJAX Framework.  Business Logic Layer  Data Access Layer – Designed in MS Sql server 2005.  APPROACH-DESIGN - CONTINUED  System Architecture  Presentation Layer – UI Designed in Asp.net and AJAX Framework. APPROACH-IMPLEMENTATION  Database APPROACH-IMPLEMENTATION - CONTINUED  User Interface – Home Page APPROACH-IMPLEMENTATION - CONTINUED  User Interface – View Cart Page APPROACH-IMPLEMENTATION - CONTINUED  User Interface – View Cart Page APPROACH-IMPLEMENTATION - CONTINUED  User Interface – Product Details Page APPROACH-IMPLEMENTATION - CONTINUED  User Interface – Order Summary Page APPROACH-IMPLEMENTATION - CONTINUED  Technical Discussions         Implementing sophisticated search and filter methods. Use of AJAX controls to handle the issues caused due to post backs to improve the behavior of web pages. Minimizing access to database by using session variables. Use of Yahoo-API to implement a web service. User navigability. Auto-population of available books while searching. Complete Administrator site developed. Validating all data entry done by the user as well as admin. APPROACH-IMPLEMENTATION - CONTINUED  Break down of Program code. Initial Estimate – about 4000 LOC  Final Outcome – 4534 LOC  Code Type Number of Lines Java Script 50 Automated C# 1012 Hand Written C# 2387 CSS 533 SQL Stored Procedures 552 APPROACH-TESTING  Testing  Testing Environment  Processor: Intel Centrino  Processor Speed : 2.2 GHz  Memory: 2.0 GB  Operating System : Windows 7 Professional  Server : IIS Local Machine APPROACH-TESTING - CONTINUED  Testing  White Box Testing      Tester has access to internal data structures and code to test the system. All logical paths in the code have been executed at least once. All conditional statements have been executed for both true and false results. All loops in the code have been executed. Results  All Tests passed for both correct as well as incorrect inputs. APPROACH-TESTING - CONTINUED  Testing  Unit Testing    Integrated unit testing tool in visual studio 2008. Tested for both correct and incorrect values to see if the desired results are achieved. Unit Test cases that were performed.          Login method was tested so that only registered users were allowed to login into the system and proper messages were displayed if there is an error while logging in. Hitting a back button doesn’t produce any undesired results in view cart page like adding a new product into the cart. Entering a value zero in the quantity box in cart removes that particular item from the cart. Price and quantity values are updated properly whenever user clicks Update cart button in view cart page. Navigation Link buttons take users to designated pages. Categories and sub categories are displayed in the left menu. Proper filtering of books. Filtering Panel is displayed only when there are books available. All Orders are displayed when user queries his order history. APPROACH-TESTING - CONTINUED  Testing  Results APPROACH-TESTING - CONTINUED  Testing   Integration Testing  To make sure that the interfaces between components comply with design.  Iterative – Bottom – up fashion.  Each module was developed and tested individually and was then integrated with other module(s) and tested. Results  Each module executed independently as well as when integrated with other modules correctly. APPROACH-TESTING - CONTINUED  Testing  Non Functional Testing  To ensure that the application works correctly even when wrong inputs are given to the application. An Example : Entering Alphabets where numerical values are expected.  Results  Application behaved correctly by displaying appropriate user-friendly error messages whenever wrong inputs were given. APPROACH-TESTING - CONTINUED  Testing   Validation Testing  final assurance for the quality, functionality and behavioral requirement of the application.  comprises of validation test criterion which makes sure that input fields receive proper type of inputs Results  Application behaved as per its functionality. APPROACH-TESTING - CONTINUED  Testing  Performance Testing       to determine how fast a system performs under varying loads. to validate and verify other attributes of the system such as scalability, reliability and resource usage. Apache JMeter was used to perform load testing. NeoLoad tool developed by NeoTys was used to simulate multiple users hitting the system simultaneously. Microsoft web application Stress tool. Factors effecting the performance of the system.   number of users accessing the system. Constant load vs. Peak Load. APPROACH-TESTING - CONTINUED  Testing  Performance Testing   Tests were conducted by changing the number of users. Results Users Ramp-Up Period Loop Count Home Page Average Response (ms) 50 5 500 995 100 5 500 996 500 5 500 1010 APPROACH-TESTING - CONTINUED  Testing  Performance Testing    Tests were conducted to test the response times of two web pages both differing in the complexity. Loop Count – 150 , Ramp Up Period – 10sec. Results Users Home Page (ms) Product (ms) 100 28000 1060 500 105300 8000 1000 135000 11000 details Page APPROACH-TESTING - CONTINUED  Testing  Performance Testing   Tests were conducted to test the throughputs of two web pages both differing in the complexity. Results - Throughput of a simple web page. APPROACH-TESTING - CONTINUED  Testing  Results - Throughput of a complex web page. APPROACH-TESTING - CONTINUED  Testing  CPU Utilization – Tested using WAS.  When tested for 100 users for about an hour was about 40%.  When tested for 200 users for about an hour it increased to about 75%. APPROACH-TESTING - CONTINUED  Testing  Interpreting Results and Observations  100% CPU utilization might be achieved by increasing the duration of test script.  Increase in the number of Users increases the number of server requests as well as response times.  The Response Time of more complex pages is much more than that of simple pages.  Throughput under constant load conditions is high when compared to increasing loads.  The application could handle loads up to 1000 users.  Better configuration systems can produce even better results. DEMO – LETS PLACE AN ORDER. CONCLUSION  Challenges  Design a proper structure for the application which should be user friendly.  Designing of database so that there is no redundancy. Normalization of the tables that have been designed.  Learning of Ajax framework for implementing many controls in the application and the usage of java script for client side validations.  Using Web services in the application.  Learning and implementing the application using .NET technologies. CONCLUSION - CONTINUED  Limitations  Validating the check-out process which means validating the credit card details that have been entered by the user while checking out.  Ability for the users to save their cart so that they can check out later.  Ability for the users to subscribe to price alerts for books. CONCLUSION - CONTINUED  Future Work  Saving the cart for future check-out purpose.  Subscribing for price alerts.  Ability to save the billing and payment details so that data entry work for a user can be reduced while checking out.  Ability to add multiple receivers.  Drag and drop of the items into the cart. RESOURCES AND TOOLS UTILIZED  Asp. Net Ajax Controls.  Microsoft Visual Studio 2008  MS Sql 2005  Apache JMeter  NeoLoad  Microsoft Web Application Stress tool REFERENCES  “Microsoft Ajax Control Tool Kit”, Microsoft Corporation 2009.   “Apache JMeter”, Apache Software Foundation 1999-2009.   (http://jakarta.apache.org/jmeter/). “Nhibernate for .NET”, Red Hat Middleware, 2009.   (http://www.asp.net/ajaxlibrary/act_tutorials.ashx). (https://www.hibernate.org/343.html) . “Nhibernate - Relational Persistence for Idiomatic .NET”, hibernate.org.  (https://www.hibernate.org/hib_docs/nhibernate/html/quickstart.html).  Geoffrey Sparks, Database Modeling in UML, Sparx Systems.  “A UML Profile for Data Modeling”, Scott.W.Ambler, 2009 .   (http://www.agiledata.org/essays/umlDataModelingProfile.html). “How to: Measure Asp .NET Responsiveness with Web Application Stress Tool”, Microsoft Support 2010.  (http://support.microsoft.com/kb/815161). ACKNOWLEDGMENTS  Dr. Daniel Andresen.  Dr. Gurdip Singh.  Dr. Mitchell Neilsen. QUESTIONS