====== 6.05 Formally Define Non-Functional Requirements ====== |< 100% >| | [[cbdc:public:cbdc_omg:04_doc:90_recommend:start| Return to Recommendations ]] | Provide Feedback | The OMG's CBDC WG members recommend the Federal Reserve define a task for defining, developing, and perfecting the [[https://www.omgwiki.org/dido/doku.php?id=ddido:public:ra:xapend:xapend.a_glossary:n:nonfuncreq|Non-functional requirements]] that are acceptable to the Federal Reserve and its Stakeholders. Non-Functional Requirements are often incorrectly assumed rather than explicitly defined by users. This can lead to problems towards the end of a project as the user expectations for non-functional requirements are not met. Many times, the developers dismiss non-functional requirements as non-testable and therefore not enforceable. This lack of specificity in non-functional requirements sets the stage for conflicts between the users, system architects, systems engineers, and developers. For example, users expect software to start and run every time it is used however, the non-functional requirement of reliability may never have been explicitly specified. Users expect new features to be added to a system and tested before they use them. Users assume the software is maintainable without an explicit declaration for “[[https://www.omgwiki.org/dido/doku.php?id=ddido:public:ra:xapend:xapend.a_glossary:m:maintainability|maintainability]]”. In many ways, they expect it to be an unwritten requirement and or [[https://www.omgwiki.org/dido/doku.php?id=ddido:public:ra:xapend:xapend.a_glossary:g:goal|goal]]. In other words, users expect the system to be analyzable, changeable, stable, and testable(( Prolifics Testing, __Achieving Requirements Testability__, 10 October 2018, Accessed 10 November 2020, [[https://www.prolifics-testing.com/news/achieving-requirements-testability]] )). For example, smartphone users will switch apps to other apps if the energy consumed by the app is not efficient. Efficiency is therefore a non-functional requirement. Energy consumption may also be a [[https://www.omgwiki.org/dido/doku.php?id=ddido:public:ra:xapend:xapend.a_glossary:f:funcreq|functional requirements]] (i.e., An [[https://www.omgwiki.org/dido/doku.php?id=ddido:public:ra:xapend:xapend.a_glossary:a:application|application]] can not use more than 1040 mW (milli-Watt) per [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:xapend:xapend.a_glossary:s:sms | Short Message Service (SMS) ]] message. (( Sai Suren Kumar Kasireddy and Vishnuvardhan Reddy Bojja, __Measurements of Energy Consumption in Mobile Applications with respect to the quality of Experience__, School of Computing, Blekinge Institute of Technology, 37179 Karlskrona, Sweden, March 2012, Accessed: 10 November 2020, [[https://www.diva-portal.org/smash/get/diva2:829733/FULLTEXT01.pdf]] )). It is recommended the Federal Reserve consider reviewing and specifying values for each of these Non-FUnctional Requirements. 1. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:10_portability | Portability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:10_portability:01_adapt | Adaptability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:10_portability:04_install | Installability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:10_portability:06_replace | Replaceability ]] 2. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:14_reliability | Reliability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:14_reliability:01_matuity | Maturity ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:14_reliability:02_availability | Availability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:14_reliability:04_faulttolerance | Fault Tolerance ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:14_reliability:12_recoverability | Recoverability ]] 3. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability | Maintainability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability:modularity | Modularity ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability:reuseability | Reusability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability:analysability | Analysability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability:modifiability | Modifiability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:20_maintainability:testability | Testability ]] 4. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security | Security ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security:confidentiality | Confidentiality ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security:04_data_integrity | Data Integrity]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security:nonrepudiability | Non-Repudiation ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security:authenticity | Authenticity ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:25_security:accountability | Accountability]] 5. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:28_manageability | Manageability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:28_manageability:02_types | Types of Manageability Functions ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:28_manageability:04_costs | Manageability Costs ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:28_manageability:06_system | System Manageability Issues ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:28_manageability:08_software | Software Manageability Issues ]] 6. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:30_usability | Usability ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:30_usability:effectiveness | Effectiveness Metrics ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:30_usability:efficiency | Efficiency Metrics ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:30_usability:satisfaction | Satisfaction Metrics ]] 7. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:40_performance | Performance ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:40_performance:01_platform | Platform Performance ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:40_performance:02_application | Application Performance ]] * [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:40_performance:04_nework | Network Performance ]] 8. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:05_interoperability | Interoperability ]] 9. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:08_elasticity | Elasticity ]] 10. [[https://www.omgwiki.org/dido/doku.php?id=dido:public:ra:1.4_req:2_nonfunc:16_scalability | Scalability ]] /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~