You can look into initial chapters of Cade's book about NFRs. It describes how to achieve performance. Just reflect on your design and see if you have followed those directions. I guess then you will know the justification automatically.

One example from my assignment. I have used JPA so one of my justifications would be you get easy lazy or eager object intialization feature in JPA which can be utilized to improve performance.

Vijaykumar Dixit wrote: One example from my assignment. I have used JPA so one of my justifications would be you get easy lazy or eager object intialization feature in JPA which can be utilized to improve performance.

Is your design EJB-Centric or Web-centric? I'm wondering how can you get benefit of lazy loading when using EJB-Centric approach since all required data should be fetched in the transaction scope which is during EJB method call.

My design is EJB centric. Having said that there are instances where data displayed on presentation layer is split into summary page and details page.

Here suppose jpa entities are detached when passed over to web tier in case of summary display all collections within don't need to be initialised. However on details page, EJB will make sure complete entity is fetched.

The two factors that determine the system performance are as follows:
* Processing time—The processing time includes the time spent in computing, data marshaling and unmarshaling, buffering, and transporting over a network.
* Blocked time—The processing of a request can be blocked due to the contention for resources, or a dependency on other processing.

It can also be caused by certain resources not available; for example, an application might need to run an aggressive garbage collection to get more memory available for the processing.
Besides increasing the system capacity and using more efficient algorithms one can also introduce cached copies of data.
Cached copies of data can be used to reduce the computation overhead, as follows:
* Introduce concurrency to computations that can be executed in parallel.
* Limit the number of concurrent requests to control the overall system utilization.
* Introduce intermediate responses to improve the performance perceived by the user.

To improve the system throughput, it is common that a timeout is applied to most of the long-lasting operations, especially those involving the access to an external system.