PASASM: A Method for the Performance Assessment of Software Architectures
What is an Architecture Assessment?
An architecture assessment is a formal review that examines architectural decisions with respect to their impact on performance as well as other quality attributes, such as reliability or modifiability. Ideally, it is performed early in the software development process.
An architecture assessment:
- Is relatively quick and inexpensive to perform.
- Identifies potential risks within the architecture with respect to performance and other quality requirements.
- Identifies solutions for reducing or eliminating those risks.
Architecture Performance Assessment is Vital
Performance assessment of a software architecture determines whether the architecture will support the system's scalability and responsiveness requirements:
- For problem systems,it determines the extent of the scalability and responsiveness improvement that can be achieved with tuning and other minor modifications, where to focus efforts, how to achieve requirements, and how long it should take.
- For new development, it uncovers potential problems early in the development process when they are easier and less expensive to fix.
- For legacy systems, it determines whether to continue to commit resources to the current architecture or migrate to a new one.
The PASASM Method
PASA is a rigorous, systematic method for the performance assessment of software architectures. It was developed by Dr. Lloyd G. Williams and Dr. Connie U. Smith. PASA uses the proven performance engineering principles and techniques described in their book Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software.
A PASA assessment consists of the following steps:
- Process Overview–The assessment process begins with a presentation designed to familiarize both managers and developers with the reasons for an architectural assessment, the assessment process, and the outcomes.
- Architecture Overview–In this step, the development team presents the current or planned architecture.
- Identification of Critical Use Cases–The externally visible behaviors of the software that are important to responsiveness or scalability are identified.
- Selection of Key Performance Scenarios–For each critical use case, the scenarios that are important to performance are identified.
- Identification of Performance Objectives–Precise, quantitative, measurable performance objectives are identified for each key scenario.
- Architecture Clarification and Discussion–Participants conduct a more detailed discussion of the architecture and the specific features that support the key performance scenarios. Problem areas are explored in more depth.
- Architectural Analysis–The architecture is analyzed to determine whether it will support the performance objectives.
- Identification of Alternatives–If a problem is found, alternatives for meeting performance objectives are identified.
- Presentation of Results–Results and recommendations are presented to managers and developers.
- Economic Analysis –The costs and benefits of the study and the resulting improvements.