Todays post will be about achieving performance in Web Applications.
Performance doesn’t just happen. You must make it happen. Performance management is similar to most other software engineering management functions such as project management, requirements management, quality management,configuration management,etc. One of the most important tools at your disposal is performance modeling. The performance model will be useful for performance planning and management.
Performance modeling ( a step by step approach)
1. Identify UML Use Cases for areas where performance is important.
Write Use Case Narratives for the functionalities for which you think performance might become an issue.
2. Identify the load
The load is the number of users, number of concurrent users, data volumes, number of transactions, etc
3. Identify the performance related objectives (response times, throughput,resource utilization)
What are the required response times, how many request must you process per minute , what is the maximum resource utilization.
4. Identify your resources
(know how much bandwith,memory,cpu time you have)
5.Identify your use case steps.
Part of your Use Case Narrative will be a description of the dialog between the actors and the computer system. Each of these steps must be analyzed. It might look like:
1. User selects the Optimal Route menu item
2. System returns the map
3. User clicks on all the towns he plans to visit
4. After each click the page is refreshed to display a red dot near each town selected.
5. User clicks on Calculate Optimal Route
6. System calculates the route
7. Map is presented with lines and number representing the optimal travel route.
6. For each of these steps determine what % of your resources will be required.
Determine bandwith,memory,data access,%cpu power.
6.Question the feasibility. Get a good understanding of the problem areas.
Visualize how the load will affect performance. Do this for each step in your Use Case Narratives. This analysis will give you a good understanding of the performance risks and issues you are dealing with.
Test your design early by prototyping, testing the critical parts early.