Preface
Maintaining software is hard and therefore expensive and IT departments are often under funded. However, if they are in a just do it mode then non-functional requirements are easy to be forgotten. The consequences of leaving these NFRs lead directly to the aforementioned maintenance problems and increased technical debt.
NFRs are necessary to completing the story of the IT application. While you might consider two or three important NFRs (like performance and security), you’ll probably not cover the others extensively enough, or you might miss out on them all together. And if you do allocate time to deal with them, when the project schedule slips, the NFRs may be the first thing to get drop. So, whether you plan for NFRs or not, chances are high you won’t cover them 100% of the time. You should try to avoid adding technical debt and maintenance nightmares to your future portfolio.
NFRs are key to any software/IT program. They cannot be overlooked or ignored. The book provides a comprehensive approach from analysis, architecture and measurement of non-functional requirements. The book outlines the methodology for capturing the NFRs and also describes a taxonomy framework that can leveraged by analyst and architects for tackling NFRs on engagements.
To summarize, the key differentiators for the book are:
- Covers all the three stages of non-functional requirements that is, analysis, architecture and measurement.
- NFR framework and taxonomy provides guidance around the modelling phase for the NFRs
- Describes the process for capturing and analyzing the KPI and KRAs. These are the key metrics that are required by different stakeholders.
- Trade-offs between various NFRs are covered as part of the title
- Describes the application performance management domain which is a key practice for managing and monitoring of enterprise applications that helps monitor and analyze NFR KPIs and KRAs as part of the ongoing process.
Coverage of the book:
- This book covers areas pertaining to analysis, architecture and measurement of non-functional requirements. A topic with-out which software systems cannot be build or deployed. NFRs are a life-line of any software application and capturing and addressing them is a critical activity in any IT project. The topic in itself is very critical and applicable for IT systems/applications for various industry verticals. The book provides a comprehensive approach from analysis, architecture and measurement of non-functional requirements.
Part I - Analysis:
- The books provides and introduction of NFRs and why NFRs are a critical for building software systems. The next section describes the taxonomy of NFRs that is, scalability, availability, reliability and so on. The books outlines various methodology for capturing the NFRs, The books also outlines and describes a framework that can leveraged by analyst and architects for tackling NFRs for various engagements. The framework will focus on the KPIs and KRA for each of the NFRs which will be the key input for solution design phase. The NRF framework will focus on the most critical NFRs applicable for any given situation and any industry.
Part II - Architecture:
- This section focus on the solution part of the NFRs providing insights into how they will be addressed in the solution design phase. The book covers key NFRs that are most critical for any project and for each NFR provides the various alternatives pertaining to the solution, the design principle that needs to be applied to achieve the desired outcome for example, high availability or scalability or reliability as covered. The book includes considerations for bespoke (Java, .NET) and COTS applications and are applicable to any IT applications/systems in different domains.
Part III - Assessment:
- This part deals with the measurement of NFRs. This outlines the methodology for NFRs measurement. This sections also describes the trade-offs between various NFRs and the best practices to be applied on engagements.
What this book covers
Chapter 1, Understanding NFRs, the chapter provides and introduction of NFRs and why NFRs are a critical for building software systems. The chapter also explains the various KPI for each of the key of NFRs that is, scalability, availability, reliability and so on. The book covers the most critical 24 NFRs that are applicable for IT applications and systems.
Chapter 2, Taxonomy and Framework for NFRs, this chapter describes the taxonomy of NFRs that is, scalability, availability, reliability and so on. The chapter outlines entire life cycle of NFRs, The chapter describes a framework that can leveraged by business analyst and architects for discovering NFRs on various engagements. The framework will focus on the KPIs and KRA for each of the NFRs which will be the critical input for the solution design phase.
Chapter 3, Methodology Eliciting - Non Functional Requirements, this chapter outlines methodology for discovering (elicitations) NFRs. The chapter describes a framework that can be leveraged by business analyst for elicitations of NFRs. The chapter also outlines a framework for prioritization of NFRs. The output of this stage will be the critical input for the solution architecture phase.
Chapter 4, Solutions Addressing NFRs, this chapter outlines the solutioning part of the NFRs providing insights, guidance and principles for architecting NFRs. The book covers all the key NFRs that are critical for any project and for each NFR provides the various alternatives pertaining to the solutioning and the design principles that need to be applied to achieve the desired outcome for example, high availability or scalability or reliability and so on. The book includes considerations for bespoke (Java, .Net) and COTS applications and are applicable to any IT applications/systems in different domains.
Chapter 5, Architectural Patterns and its Impact on NFRs, this chapter outlines the patterns for NFRs providing insights into architecting NFRs. The chapter covers all the key tiers / layers that are critical for any project and describes various patterns pertaining to the business, database and integration tiers. This also covers impact on various NFRs. This chapter describes the trade-offs between various NFRs and the best practices to be applied on engagements.
Chapter 6, Sizing, Measurement and Monitoring, this chapter deals with the measurement of NFRs. This outlines four methodologies for NFRs monitoring and measurement. These include sizing, analytical modelling, quality assurance and monitoring and management. This chapter also describes the approach in depth for monitoring and measuring NFRs.
Chapter 7, Understanding Pivotal NFRs and Closing Thoughts, this chapter provides an introduction to the pivotal NFRs. The chapter explains the various KPI for each of the pivotal NFRs. This is the final chapter of the book and provides summary and trends for the NFR domain. This also outlines architecture assessment and NFR measurement methodology.
Who this book is for
The primary audiences for this title are the gamut of roles starting from IT consultant to Chief Architect who are responsible to deliver strategic, tactical and operational engagements for fortune 100 customers worldwide. Non-functional requirements are the key to any software/IT program. They cannot be overlooked or ignored. The book provides a comprehensive approach from analysis, architecture and measurement of non-functional requirements. The book includes considerations for bespoke (Java, .Net and COTS applications). These are applicable to IT applications from various domains. The book outlines the methodology for capturing the NFRs and also describes a framework that can leveraged by analyst and architects for tackling NFRs for various engagements. The audiences for this book include:
- Business Analyst
- Enterprise Architects
- Business Architects
- Solution Architects
- Technical Architects/Designers
- Domain/Security/Integration Architects
- Software Developers, Support Engineers & Test Engineers
- Technical Project Managers
- Project Leads/Technical Leads/Technical Project Managers
- Students - Computer Science/IT Stream
Conventions
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
New terms and important words are shown in bold.
Note
Warnings or important notes appear in a box like this.
Note
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book-what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail [email protected]
, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books-maybe a mistake in the text or the code-we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form
link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata
section.
Piracy
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at [email protected]
with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
Questions
If you have a problem with any aspect of this book, you can contact us at [email protected]
, and we will do our best to address the problem.