ABSTRACT
Following the agile principles, agile software development is popular among software developing organizations. The attractive characteristics of agile development are that it embraces frequent changes and that it gives high priority to users. Due to such characteristics, non-functional requirements are usually not identified in the requirements elicitation process. They are often neglected in an early phase, and even overlooked in the later stages of software development. This results in poor quality software. To enhance non-functional requirements identification in agile development, this paper proposes a development of a set of non-functional requirement patterns in the form of requirement templates for agile development. The set is composed of 10 security requirement patterns and 13 fault tolerance requirement patterns, which are derived from an analysis of security and fault tolerance design patterns. The proposed non-functional requirement patterns can facilitate non-functional requirements gathering and help agile team members in writing the requirements. In an experiment on a Scrum team, the team members took less time to write security and fault tolerance requirements for a number of given problems when using the proposed patterns, compared with the case of not using the patterns. In addition, the non-functional requirement patterns helped the team members to write more complete security and fault tolerance requirements. Despite the effort they had to spend in learning the proposed requirement patterns, the team also agreed that the patterns are useful in practice.
- Beckers, K., Côté, I., and Goeke, L. 2014. "A catalog of security requirements patterns for the domain of cloud computing systems," In Proceedings of the 29th Annual ACM Symposium on Applied Computing (Gyeongju, Republic of Korea, March 24--28, 2014). SAC '14. ACM, New York, NY, 337--342. DOI=10.1145/2554850.2554921.Google Scholar
- Behutiye, W., Karhapää, P., Costal, D., Oivo, M., and Franch, X. 2017. "Non-functional requirements documentation in agile software development: challenges and solution proposal," In Proceedings of the 18th International Conference on Product-Focused Software Process Improvement (Innsbruck, Austria, November 29 - December 1, 2017). PROFES '17, LNCS 10611. Springer, Cham, Switzerland, 515--522. DOI= https://doi.org/10.1007/978-3-319-69926-4_41.Google Scholar
- Chung, L., Paech, B., Zhao, L., Liu, L., and Supakkul, S. 2012. RePa Requirements Pattern Template. [Online]. Template for submission to the 2nd International Workshop on Requirements Patterns. RePa '12. 4 pages. Available from: http://www.utdallas.edu/~supakkul/repa12/submission.html. Last access: August 9, 2019.Google Scholar
- CollabNet VersionOne. 2019. 13th Annual State of Agile Report. [Online]. Available from: http://www.stateofagile.com/. Last access: August 9, 2019.Google Scholar
- Hanmer, R. 2007. Patterns for Fault Tolerant Software. John Wiley & Sons Ltd, Chichester, West Sussex, England.Google ScholarDigital Library
- Lucassen, G., Dalpiaz, F., van der Werf, J. M. E. M., and Brinkkemper, S. 2016. The use and effectiveness of user stories in practice. In Proceedings of the International Working Conference on Requirements Engineering: Foundation for Software Quality (Gothenburg, Sweden, March 14-17, 2016). REFSQ '16, LNCS 9619. Springer, Cham, Switzerland, 205--222. DOI= https://doi.org/10.1007/978-3-319-30282-9_14.Google ScholarDigital Library
- Meszaros, G. and Doble, J. 1996. MetaPatterns: A Pattern Language for Pattern Writing. In Proceedings of 3rd Pattern Languages of Programming conference. PLoP '96. 37 pages.Google Scholar
- Palomares, C., Quer, C., Franch, X., Guerlain, C., and Renault, S. 2012. A catalogue of non-technical requirement patterns. In Proceedings of 2012 Second IEEE International Workshop on Requirements Patterns (Chicago, Illinois, September 24, 2012). RePa '12. IEEE, New York, NY, 1--6. DOI=10.1109/RePa.2012.6359969.Google ScholarCross Ref
- Riaz, M. and Williams, L. 2012. Security requirements patterns: understanding the science behind the art of pattern writing. In Proceedings of 2012 Second IEEE International Workshop on Requirements Patterns (Chicago, Illinois, September 24, 2012). RePa '12. IEEE, New York, NY, 29--34. DOI=10.1109/RePa.2012.6359977.Google ScholarCross Ref
- Schumacher, M., Fernandez-Buglioni, E., Hybertson, D., Buschmann, F., and Sommerlad, P. 2006. Security Patterns - Integrating Security and Systems Engineering. John Wiley & Sons Ltd, Chichester, West Sussex, England.Google Scholar
- Withall, S. 2007. Software Requirement Patterns. Microsoft Press.Google ScholarDigital Library
- Supaporn, K., Prompoon, N., and Rojkangsadan, T. 2007. An Approach: Constructing the Grammar from Security Pattern. In Proceedings of 4th International Joint Conference on Computer Science and Software (Khonkaen, Thailand, May 2-4, 2007). JCSSE '07. 8 pages.Google Scholar
- The Standish Group International. 2015. Chaos Report. [Online]. Available from: https://www.standishgroup.com/sample_research_files/CHAOSReport2015-Final.pdf. Last access: August 9, 2019.Google Scholar
- Tal, L. 2015. Agile Software Development with HP Agile Manager. Apress.Google Scholar
Index Terms
- Non-functional Requirement Patterns for Agile Software Development
Recommendations
Prioritizing Non-Functional Requirements in Agile Software Engineering
ACM SE '17: Proceedings of the SouthEast ConferenceDeveloping agile software is a method to deliver and develop software products quickly and effectively. Agile methodology tends to favor Functional Requirements (FRs) while disregarding Non-Functional Requirements (NFRs). Disregarding NFRs can have ...
Managing Non-functional Requirements in Agile Software Development
Computational Science and Its Applications – ICCSA 2022AbstractAgile software development is an iterative software development methodology that aims at maximizing productivity, effectiveness, and speed of delivery. There are a lot of benefits of Agile Software Development. However, there are still some ...
Adopting to Agile Software Development
Abstract Agile software development can be made successful, but there is no well-defined way how to achieve this. The problem is that the successful adoption of agile methods and practices is a complex process and this process should be customizable for ...
Comments