ABSTRACT
Building shared understanding of requirements is key to ensuring downstream software activities are efficient and effective. Nonfunctional requirements (NFR), which include performance, availability, and maintainability, are vitally important to overall software quality. Research has shown NFRs are, in practice, poorly defined and difficult to verify, especially in agile environments. Continuous software engineering (CSE) practices, which extend agile practices, emphasize fast paced, automated, and rapid release of software that poses additional challenges to NFRs. However, the level of shared understanding achieved across an organization is not well-understood. This dissertation builds the foundations towards a theory of the complex and intricate relationship between shared understanding of NFRs and CSE.
- Wasim Alsaqaf, Maya Daneva, and Roel Wieringa. 2018. Understanding Challenging Situations in Agile Quality Requirements Engineering and Their Solution strategies: Insights from a Case Study. In 2018 IEEE 26th International Requirements Engineering Conference (RE). 274--285. ISSN: 1090-705X.Google ScholarCross Ref
- David Ameller, Claudia Ayala, Jordi Cabot, and Xavier Franch. 2012. How do software architects consider non-functional requirements: An exploratory study. In 2012 20th IEEE International Requirements Engineering Conference (RE). 41--50.Google ScholarDigital Library
- Woubshet Behutiye, Pertti Karhapää, Dolors Costal, Markku Oivo, and Xavier Franch. 2017. Non-functional Requirements Documentation in Agile Software Development: Challenges and Solution Proposal. In Product-Focused Software Process Improvement (Lecture Notes in Computer Science), Michael Felderer, Daniel Méndez Fernández, Burak Turhan, Marcos Kalinowski, Federica Sarro, and Dietmar Winkler (Eds.). Springer International Publishing, Cham, 515--522.Google Scholar
- Stephany Bellomo, Neil Ernst, Robert Nord, and Rick Kazman. 2014. Toward Design Decisions to Enable Deployability: Empirical Study of Three Projects Reaching for the Continuous Delivery Holy Grail. In 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. 702--707. ISSN: 2158--3927.Google ScholarDigital Library
- Stephany Bellomo, Neil A. Ernst, Robert L. Nord, and Ipek Ozkaya. 2014. Evolutionary Improvements of Cross-Cutting Concerns: Performance in Practice. 2014 IEEE International Conference on Software Maintenance and Evolution (2014), 545--548.Google Scholar
- Richard Berntsson Svensson, Tony Gorschek, and Björn Regnell. 2009. Quality Requirements in Practice: An Interview Study in Requirements Engineering for Embedded Systems. In Requirements Engineering: Foundation for Software Quality (Lecture Notes in Computer Science), Martin Glinz and Patrick Heymans (Eds.). Springer, Berlin, Heidelberg, 218--232.Google Scholar
- Eva Alice Christiane Bittner and Jan Marco Leimeister. 2013. Why Shared Understanding Matters - Engineering a Collaboration Process for Shared Understanding to Improve Collaboration Effectiveness in Heterogeneous Teams. In 2013 46th Hawaii International Conference on System Sciences. 106--114. ISSN: 1530--1605.Google ScholarDigital Library
- Elizabeth Bjarnason, Krzysztof Wnuk, and Björn Regnell. 2011. A case study on benefits and side-effects of agile practices in large-scale requirements engineering. In Proceedings of the 1st Workshop on Agile Requirements Engineering. ACM, 3.Google ScholarDigital Library
- Andreas Borg, Angela Yi Huey Yong, Pär Carlshamre, and Kristian Sandahl. 2003. The Bad Conscience of Requirements Engineering: An Investigation in Real-World Treatment of Non-Functional Requirements.Google Scholar
- Richard E Boyatzis. 1998. Transforming qualitative information: Thematic analysis and code development. sage.Google Scholar
- F Brooks and HJ Kugler. 1987. No silver bullet. April.Google Scholar
- Lianping Chen, Muhammad Ali Babar, and Bashar Nuseibeh. 2012. Characterizing architecturally significant requirements. IEEE software 30, 2 (2012), 38--45.Google Scholar
- Lawrence Chung, Brian A Nixon, Eric Yu, and John Mylopoulos. 2012. Nonfunctional requirements in software engineering. Vol. 5. Springer Science & Business Media.Google ScholarCross Ref
- Juliet M Corbin and Anselm Strauss. 1990. Grounded theory research: Procedures, canons, and evaluative criteria. Qualitative sociology 13, 1 (1990), 3--21.Google Scholar
- Marianne Corvera Charaf, Christoph Rosenkranz, and Roland Holten. 2013. The emergence of shared understanding: applying functional pragmatics to study the requirements development process. Information Systems Journal 23, 2 (2013), 115--135.Google ScholarDigital Library
- Daniela S. Cruzes and Tore Dyba. 2011. Recommended Steps for Thematic Synthesis in Software Engineering. In 2011 International Symposium on Empirical Software Engineering and Measurement. 275--284.Google Scholar
- Daniel Cukier. 2013. DevOps Patterns to Scale Web Applications Using Cloud Services. In Proceedings of the 2013 Companion Publication for Conference on Systems, Programming, & Applications: Software for Humanity (Indianapolis, Indiana, USA) (SPLASH '13). Association for Computing Machinery, New York, NY, USA, 143--152.Google ScholarDigital Library
- D. Damian and J. Chisan. 2006. An Empirical Study of the Complex Relationships between Requirements Engineering Processes and Other Processes that Lead to Payoffs in Productivity, Quality, and Risk Management. IEEE Transactions on Software Engineering 32, 7 (July 2006), 433--453.Google ScholarDigital Library
- Peter Darch, Annamaria Carusi, and Marina Jirotka. 2009. Shared understanding of end-users' requirements in e-Science projects. In 2009 5th IEEE International Conference on E-Science Workshops. 125--128. ISSN: null.Google ScholarCross Ref
- J. Eckhardt, A. Vogelsang, and D. M. Fernández. 2016. Are "Non-functional" Requirements really Non-functional? An Investigation of Non-functional Requirements in Practice. In 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). 832--842.Google Scholar
- Neil A. Ernst and Gail C. Murphy. 2012. Case studies in just-in-time requirements analysis. In 2012 Second IEEE International Workshop on Empirical Requirements Engineering (EmpiRE). 25--32. ISSN: 2329--6356.Google Scholar
- Dror G. Feitelson, Eitan Frachtenberg, and Kent L. Beck. 2013. Development and Deployment at Facebook. IEEE Internet Computing 17, 4 (July 2013), 8--17.Google ScholarDigital Library
- Daniel Mendez Fernandez. 2018. Supporting Requirements-Engineering Research That Industry Needs: The NaPiRE Initiative. IEEE Software 35, 1 (Jan. 2018), 112--116.Google ScholarCross Ref
- Brian Fitzgerald and Klaas-Jan Stol. 2017. Continuous software engineering: A roadmap and agenda. Journal of Systems and Software 123 (2017), 176--189.Google ScholarCross Ref
- Samuel A Fricker, Rainer Grau, and Adrian Zwingli. 2015. Requirements engineering: best practice. In Requirements Engineering for Digital Health. Springer, 25--46.Google Scholar
- M. Glinz. 2007. On Non-Functional Requirements. In 15th IEEE International Requirements Engineering Conference (RE 2007). 21--26.Google Scholar
- Martin Glinz and Samuel A. Fricker. 2015. On Shared Understanding in Software Engineering: An Essay. Comput. Sci. 30, 3--4 (Aug. 2015), 363--376.Google Scholar
- Catarina Gralha, Daniela Damian, Anthony I. (Tony) Wasserman, Miguel Goulão, and João Araújo. 2018. The Evolution of Requirements Practices in Software Startups. In Proceedings of the 40th International Conference on Software Engineering (ICSE '18). ACM, New York, NY, USA, 823--833. event-place: Gothenburg, Sweden.Google ScholarDigital Library
- Egon G Guba, Yvonna S Lincoln, et al. 1994. Competing paradigms in qualitative research. Handbook of qualitative research 2, 163--194 (1994), 105.Google Scholar
- James Herbsleb. 2016. Building a socio-technical theory of coordination: why and how (outstanding research award). In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2--10.Google ScholarDigital Library
- Axel Hoffmann, Eva Alice Christiane Bittner, and Jan Marco Leimeister. 2013. The emergence of mutual and shared understanding in the system development process. In International Working Conference on Requirements Engineering: Foundation for Software Quality. Springer, 174--189.Google ScholarDigital Library
- Martin Gilje Jaatun. 2018. Software Security Activities That Support Incident Management in Secure DevOps. In Proceedings of the 13th International Conference on Availability, Reliability and Security (Hamburg, Germany) (ARES 2018). Association for Computing Machinery, New York, NY, USA, Article 8, 6 pages.Google ScholarDigital Library
- Yujuan Jiang and Bram Adams. 2015. Co-evolution of Infrastructure and Source Code - An Empirical Study. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. 45--55. ISSN: 2160--1860.Google Scholar
- Xiang Li, Yan Fu Li, Min Xie, and Szu Hui Ng. 2011. Reliability analysis and optimal version-updating for open source software. Information and Software Technology 53, 9 (Sept. 2011), 929--936.Google ScholarDigital Library
- Yvonna S Lincoln and Egon G Guba. 1982. Establishing dependability and confirmability in naturalistic inquiry through an audit. (1982).Google Scholar
- Catherine Marshall and Gretchen B Rossman. 2014. Designing qualitative research. Sage publications.Google Scholar
- Gary McGraw, Brian Chess, and Sammy Migues. 2009. Building security in maturity model. Fortify & Cigital (2009).Google Scholar
- Matthew B Miles, Michae Huberman, and Johnny Saldana. 2013. Qualitative data analysis: A methods sourcebook. SAGE Publications, Incorporated.Google Scholar
- Colin Potts. 1993. Software-Engineering Research Revisited. IEEE Softw. 10, 5 (Sept. 1993), 19--28.Google ScholarDigital Library
- Balasubramaniam Ramesh, Lan Cao, and Richard Baskerville. 2010. Agile requirements engineering practices and challenges: an empirical study. Information Systems Journal 20, 5 (2010), 449--480.Google ScholarCross Ref
- Eric Ries. 2011. The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses (first ed.). Currency, New York.Google Scholar
- Eva-Maria Schön, Jörg Thomaschewski, and María José Escalona. 2017. Agile Requirements Engineering: A systematic literature review. Computer Standards & Interfaces 49 (Jan. 2017), 79--91.Google Scholar
- C.B. Seaman. 1999. Qualitative methods in empirical studies of software engineering. IEEE Transactions on Software Engineering 25, 4 (July 1999), 557--572.Google ScholarDigital Library
- Mojtaba Shahin, Mansooreh Zahedi, Muhammad Ali Babar, and Liming Zhu. 2019. An empirical study of architecting for continuous delivery and deployment. Empirical Software Engineering 24, 3 (June 2019), 1061--1108.Google ScholarDigital Library
- A. Sutcliffe and P. Sawyer. 2013. Requirements elicitation: Towards the unknown unknowns. In 2013 21st IEEE International Requirements Engineering Conference (RE). 92--104.Google Scholar
- Stefan Wagner, Daniel Méndez Fernández, Michael Felderer, and Marcos Kalinowski. 2017. Requirements Engineering Practice and Problems in Agile Projects: Results from an International Survey. In Iberoamerican Congress of Software Engineering (CibSE).Google Scholar
- Colin Werner, Ze Shi Li, Neil Ernst, and Daniela Damian. 2020. The Lack of Shared Understanding of Non-Functional Requirements in Continuous Software Engineering: Accidental or Essential?. In 2020 IEEE 28th International Requirements Engineering Conference (RE). 90--101.Google ScholarCross Ref
- Colin Werner, Ze Shi Li, Derek Lowlind, Omar Elazhary, Neil A. Ernst, and Daniela Damian. 2021. Continuously Managing NFRs: Opportunities and Challenges in Practice. IEEE Transactions on Software Engineering (2021), 1--1.Google Scholar
- Karl Wiegers and Joy Beatty. 2013. Software requirements. Pearson Education.Google Scholar
- Robert K. Yin. 2002. Case Study Research: Design and Methods (3rd edition ed.). SAGE Publications, Inc, Thousand Oaks, Calif.Google Scholar
Index Terms
- Towards a theory of shared understanding of non-functional requirements in continuous software engineering
Recommendations
Are "non-functional" requirements really non-functional?: an investigation of non-functional requirements in practice
ICSE '16: Proceedings of the 38th International Conference on Software EngineeringNon-functional requirements (NFRs) are commonly distinguished from functional requirements by differentiating how the system shall do something in contrast to what the system shall do. This distinction is not only prevalent in research, but also ...
The role of informal communication in building shared understanding of non-functional requirements in remote continuous software engineering
AbstractBuilding a shared understanding of non-functional requirements (NFRs) is a known but understudied challenge in requirements engineering, primarily in organizations that adopt continuous software engineering (CSE) practices. During the peak of the ...
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 ...
Comments