Abstract
Requirements prioritization is one of the most valuable aspects of software engineering. This is primarily due to the fact that resources, be it time, skillset, or budget, are limited. Existing complex methodologies, such as analytical heuristic process (AHP) and planning game, face low adoption in the industry, promoting the need for more accessible techniques. This research introduces a novel contribution to software engineering by offering a simple and scalable approach to requirement prioritization (RP) and software acceptance prediction. The proposed approach consists of two key methods, knapsack 0/1 and Markov, to optimize RP and predict software acceptance respectively. By considering constraints, organizations can make enlightened decisions on handling requirements and optimize their minimum viable product. The results showcase significant time efficiency, with an average worst-case time of 5.645s for 10,000 requirements and an upper bound of 0.023s for the Markov prediction. This study aims to provide practitioners with a practical solution for prioritizing requirements and predicting software outcomes from user acceptance tests. By simplifying the process and offering compelling time complexity, this approach contributes to the enhancement of software development practices.
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs41870-023-01476-4/MediaObjects/41870_2023_1476_Fig1_HTML.png)
![](http://media.springernature.com/m312/springer-static/image/art%3A10.1007%2Fs41870-023-01476-4/MediaObjects/41870_2023_1476_Fig2_HTML.png)
Similar content being viewed by others
Availability of data and materials
This does not apply to the research conducted.
References
Cerpa N, Bardeen M, Kitchenham B, Verner J (2010) Evaluating logistic regression models to estimate software project outcomes. Inf Softw Technol 52(9):934–944. https://doi.org/10.1016/j.infsof.2010.03.011
Mehr Awan K, Ikram Lali M, Shehzad B, Mehr Awan K, Ikram-ullah Lali M, Aslam W (2017) Identification of patterns in failure of software projects. J Inf Sci Eng 33:1465–1479. https://doi.org/10.6688/JISE.2017.33.6.5
Sharma MK (2017) A study of SDLC to develop well-engineered software. Int J Adv Res Comput Sci 8(3):520–523
Tiranga SK, Sharma N (2019) Nimble agile a new approach in software testing. Int J Res Anal Rev 6(2):904–908
Nundlall C, Nagowah SD (2021) Task allocation and coordination in distributed agile software development: a systematic review. Int J Inf Technol 13:321–330. https://doi.org/10.1007/s41870-020-00543-4
Coutinho JCS, Andrade WL, Machado PDL (2019) Requirements engineering and software testing in agile methodologies: a systematic map**. ACM Int Conf Proc Ser. https://doi.org/10.1145/3350768.3352584
Sawyer P, Sommerville I, Viller S (1999) Capturing the benefits of requirements engineering. IEEE Softw 16(2):78–85. https://doi.org/10.1109/52.754057
Sawant AA, Bari PH, Chawan P (2012) Software testing techniques and strategies. J Eng Res Appl 2(3):980–986
Mishra DB, Panda N, Mishra R et al (2019) Total fault exposing potential based test case prioritization using genetic algorithm. Int J Inf Technol 11:633–637. https://doi.org/10.1007/s41870-018-0117-0
Jamil MA, Arif M, Abubakar NSA, Ahmad A (2017) Software testing techniques: a literature review. In: Proceedings—6th international conference on information and communication technology for the muslim world, ICT4M 2016, 177–182. https://doi.org/10.1109/ICT4M.2016.40
Sadiq M, Devi VS (2022) A rough-set based approach for the prioritization of software requirements. Int J Inf Technol 14:447–457
Mohammad CW, Shahid M, Hussain SZ (2021) Fuzzy attributed goal-oriented software requirements analysis with multiple stakeholders. Int J Inf Technol 13:1–9
Leshob A, Hadaya P, Renard L (2020) Software requirements prioritization with the goal-oriented requirement language. In: Chao KM, Jiang L, Hussain O, Ma SP, Fei X (eds) Advances in E-business engineering for ubiquitous computing. ICEBE 2019. Lecture notes on data engineering and communications technologies, vol 41. Springer, Cham. https://doi.org/10.1007/978-3-030-34986-8_13
Sapunkov A, Afanasieva T (2019) Software for automation of user requirements prioritization. ACM Int Conf Proc Ser Part F1482:1–5. https://doi.org/10.1145/3318236.3318251
Tufail H, Qasim I, Masood MF, Tanvir S, Butt WH (2019) Towards the selection of optimum requirements prioritization technique: a comparative analysis. In: 5th international conference on information management, ICIM 2019, pp 227–231. https://doi.org/10.1109/INFOMAN.2019.8714709
Hudaib A, Masadeh R, Qasem MH, Alzaqebah A (2018) Requirements prioritization techniques comparison. Mod Appl Sci 12(2):62. https://doi.org/10.5539/mas.v12n2p62
Misaghian N, Motameni H (2018) An approach for requirements prioritization based on tensor decomposition. Require Eng 23(2):169–188. https://doi.org/10.1007/s00766-016-0262-6
Gupta A, Gupta C (2018) CDBR: a semi-automated collaborative execute-before-after dependency-based requirement prioritization approach. J King Saud Univ Comput Inf Sci. https://doi.org/10.1016/j.jksuci.2018.10.004
Hujainah F, Bakar RBA, Abdulgabber MA, Zamli KZ (2018) Software requirements prioritisation: a systematic literature review on significance, stakeholders, techniques and challenges. IEEE Access 6:71497–71523. https://doi.org/10.1109/ACCESS.2018.2881755
Alzaqebah A, Masadeh R, Hudaib A (2018) Whale Optimization Algorithm for requirements prioritization. In: 2018 9th international conference on information and communication systems, ICICS 2018, 2018-Janua, pp 84–89. https://doi.org/10.1109/IACS.2018.8355446
Masadeh R, Alzaqebah A, Hudaib A (2018) Grey Wolf Algorithm for requirements prioritization. Mod Appl Sci 12(2):54. https://doi.org/10.5539/mas.v12n2p54
Hudaib A, Masadeh R, Alzaqebah A (2018) WGW: a hybrid approach based on Whale and Grey Wolf Optimization Algorithms for requirements prioritization. Adv Syst Sci Appl 02
Sadiq M (2017) A fuzzy set-based approach for the prioritization of stakeholders on the basis of the importance of software requirements. IETE J Res 63:616–629. https://doi.org/10.1080/03772063.2017.1313140
Morales-Ramirez I, Munante D, Kifetew F, Perini A, Susi A, Siena A (2017) Exploiting user feedback in tool-supported multi-criteria requirements prioritization. In: Proceedings—2017 IEEE 25th international requirements engineering conference, RE 2017, pp 424–429. https://doi.org/10.1109/RE.2017.41
Keertipati S, Savarimuthu BTR, Licorish SA (2016) Approaches for prioritizing feature improvements extracted from app reviews. ACM Int Conf Proc Ser. https://doi.org/10.1145/2915970.2916003
Ur Rehman Khan S, Peck Lee S, Dabbagh M, Tahir M, Khan M, Arif M (2016) RePizer: a framework for prioritization of software requirements. Front Inform Technol Electron Eng 17(8):750–765. https://doi.org/10.1631/FITEE.1500162
Liaqat RM, Ahmed MA, Azam F, Mehboob B (2016) A majority voting goal based technique for requirement prioritization. In: 2016 22nd international conference on automation and computing, ICAC 2016: tackling the new challenges in automation and computing, pp 435–439. https://doi.org/10.1109/IConAC.2016.7604958
Mirjalili S, Lewis A (2016) The Whale Optimization Algorithm. Adv Eng Softw 95:51–67. https://doi.org/10.1016/j.advengsoft.2016.01.008
Achimugu P, Selamat A, Ibrahim R (2015) Using the fuzzy multi-criteria decision-making approach for software requirements prioritization. Jurnal Teknologi 1:1–6
McZara J, Sarkani S, Holzer T et al (2015) Software requirements prioritization and selection using linguistic tools and constraint solvers a controlled experiment. Empir Software Eng 20:1721–1761. https://doi.org/10.1007/s10664-014-9334-8
Achimugu P, Selamat A, Ibrahim R, Mahrin MNR (2014) A systematic literature review of software requirements prioritization research. Inf Softw Technol 56:568–585. https://doi.org/10.1016/j.infsof.2014.02.001
Mirjalili S, Mirjalili SM, Lewis A (2014) Grey Wolf Optimizer. Adv Eng Softw 69:46–61. https://doi.org/10.1016/j.advengsoft.2013.12.007
Wiegers KE (2003) Software requirements, 2nd edn. Microsoft Press, p 544
Acknowledgements
We want to thank the Department of computer science, KNUST for their support and encouragement which contributed to the success of the research conducted.
Funding
This research did not receive any funding or grant from any organization, person, or body.
Author information
Authors and Affiliations
Contributions
All authors were involved equally in the preparation and writing of the manuscript, review of the manuscript, experimentations, implementations, and analysis of results. The order and appearance of author names do not bear any effect on their contribution.
Corresponding author
Ethics declarations
Conflict of interest
We declare that there are no competing interests concerning the research conducted. Non-financial interests: The research conducted bears no financial interests from any organization, persons, or bodies.
Ethical approval
This does not apply to the research conducted.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Armah, I.A., Hayfron-Acquah, J.B., Takyi, K. et al. The use of knapsack 0/1 in prioritizing software requirements and Markov chain to predict software success. Int. j. inf. tecnol. 16, 1967–1979 (2024). https://doi.org/10.1007/s41870-023-01476-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s41870-023-01476-4