Model-Based Software Performance Analysis
Poor performance is one of the main quality-related shortcomings that cause software projects to fail. Thus, the need to address performance concerns early during the software development process is fully acknowledged. There is a growing interest in the research and software industry communities towards techniques, methods and tools that permit to manage system performance concerns as an integral part of software engineering.
Model-based Software Performance Analysis introduces performance concerns in the scope of software modeling, thus allowing the developer to carry on performance analysis throughout the software lifecycle.
With this book, Cortellessa, Di Marco and Inverardi provide the cross-knowledge that allows developers to tackle software performance issues from the very early phases of software development. They explain the basic concepts of performance analysis and describe the most representative methodologies used to annotate and transform software models into performance models. To this end, they go all the way from performance primers through software and performance modeling notations to the latest transformation-based methodologies.
As a result, their book is a self-contained reference text on software performance engineering, from which different target groups will benefit: professional software engineers and graduate students in software engineering will learn both basic concepts of performance modeling and new methodologies; while performance specialists will find out how to investigate software performance model building.

Review By: Sunil S. Prasad
06/08/2012
A functional requirement for an e-commerce software system could claim, "The purchase operation must be executable only after the user has been authenticated through the login operation." For the same system, a non-functional requirement could claim, "The average execution time of the purchase operation must be lower than two seconds." But, what is an execution time? What are the parameters that contribute to it? How can it be analyzed?
Model-based Software Performance Analysis talks about techniques, methods, and tools for system performance in software development. Seven beautifully articulated chapters clarify the concept in multiple ways. The book introduces performance concerns into the scope of software models. Developers can carry out performance analysis all along the software lifecycle, and testers can be ready early enough to test happy flow, negative flow, and alternative flow cases. In sum, everyone can be on the same page and there are no surprises at the end of the project.
One of the main causes of poor performance is quality-related shortcomings. The authors have done well to provide examples of e-commerce, use case diagrams, state machine diagrams, and UML profiles that allow developers to fuel performance. It's like the old adage "measure twice before cutting." The developer while designing can translate the software model into performance that will help not only technical teams but also business understand in a simpler way. This is possible by the authors' description of the most representative methodologies used to annotate and transform software models into performance models.
My personal favorite is the last chapter, "Advanced Issues in Software Performance." The authors have done great justice in providing an introduction to this domain and suggesting other books to read to achieve higher level of knowledge. Professional software engineers and graduate students in software engineering can read Model-based Software Performance Analysis to learn both basic concepts of performance modeling and new methodologies.