Non-Functional Requirements
Click here to load reader
-
Upload
yuriy-guts -
Category
Software
-
view
1.602 -
download
0
Transcript of Non-Functional Requirements
![Page 1: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/1.jpg)
Yuriy Guts
R&D Engineer, Software Architect @ ELEKS
![Page 2: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/2.jpg)
1. How fast should the system perform?
2. How available should the system be?
3. How about security?
![Page 3: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/3.jpg)
1. How fast should the system perform?
2. How available should the system be?
3. How about security?
— As fast as possible!— 24 x 7 x 365!— Everything should be secure!
![Page 4: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/4.jpg)
• Data loss is not acceptable
• Every page should load within 500 ms
• The system should be extensible
• Changes to all sensitive data should be audited
• All code should be transparent and properly commented
• 100% unit test coverage
![Page 5: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/5.jpg)
1. Speak to stakeholders in their own language.
2. Explain the tradeoffs in terms of cost, schedule, and realism.
3. Together, try to come up with specific, measurable NFRs.
4. Prioritize: the domain matters a lot!
Wouldn’t you?
![Page 6: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/6.jpg)
Customer: — We want to have 100% system uptime.
Architect: — OK, that might be doable, but requires all components to be redundant and eligible for automatic failover.That would take a year and $1,000,000 to implement.As an alternative, we can build a simpler system for $500,000 in 8 months but it will require manual maintenance in case of failure. Which one would be more suitable for you at this point?
Customer: — Let’s build the second option, it’s much cheaper and faster. We’re a startup and time-to-market is our top priority.
![Page 7: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/7.jpg)
…and how to quantify NFRs
![Page 8: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/8.jpg)
Response time
Latency
(!) Avoid 100% guarantees, measure it per operation type
![Page 9: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/9.jpg)
Current expectation
Growth forecast
Average usage vs. Peak usage
Usually: “# of some-business-operations” per “unit-of-time”
![Page 10: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/10.jpg)
Usually expressed in “nines”
E.g., 99.9% per year
Remember about hardware failure, system upgrade and rollback!
![Page 11: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/11.jpg)
Should start with a threat model!
i.e., what we actually want to protect AGAINST
Is an integral part of the design, can’t just put it “on top” of existing system
![Page 12: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/12.jpg)
Recovery Time Objective (RTO)
Recovery Point Objective (RPO)
![Page 13: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/13.jpg)
Globalization = Internationalization + Localization
As with security, you can’t just put it “on top” of existing system
![Page 14: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/14.jpg)
What data must be retained for a particular period of time?
What data must never leave the system or the premises?
What data must never be persisted to durable storage?
![Page 15: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/15.jpg)
Accessibility
Documentation
Emotional Factors
Extensibility
Maintainability
Reliability
Testability
Usability
![Page 16: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/16.jpg)
![Page 17: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/17.jpg)
• Interoperability with existing systems
• Approved technology, IT policies
• Target platform, vendor relationships
• Technology maturity
• Open source technology
• Licensing
• Pricing
![Page 18: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/18.jpg)
• Initial team ramp-up
• Team scalability
• Skills of people involved in the team
• On-demand education and consulting
• Delivery vs. Maintenance personnel skills
![Page 19: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/19.jpg)
yuriy.guts @ eleks.com
![Page 20: Non-Functional Requirements](https://reader037.fdocuments.us/reader037/viewer/2022100607/55a2091a1a28abe3788b48e2/html5/thumbnails/20.jpg)
1. Len Bass, Paul Clements, Rick Kazman.
“Software Architecture in Practice, 3rd Edition”.
2. Simon Brown “Software Architecture For Developers”.