Abstract
Developing systems by integrating Open Source Software (OSS) is increasingly gaining importance in the software industry. Although the literature claims that this approach highly impacts Requirements Engineering (RE) practices, there is a lack of empirical evidence to demonstrate this statement. To explore and understand problems and challenges of current system requirement–OSS component matching and mismatches resolution practices in software development projects that integrate one or more OSS components into their software products. Semi-structured in-depth interviews with 25 respondents that have performed RE activities in software development projects that integrate OSS components in 25 different software development companies in Spain, Norway, Sweden, and Denmark. The study uncovers 15 observations regarding system requirements-OSS components matching and mismatch resolution practices used in industrial projects that integrate OSS components. The assessed projects focused mainly on pre-release stages of software applications that integrate OSS components in an opportunistic way. The results also provide details of a set of previously unexplored scenarios when solving system requirement–OSS component mismatches; and clarify some challenges and related problems. For instance, although licensing issues and the potential changes in OSS components by their corresponding communities and/or changes in system requirements have been greatly discussed in the RE literature as problems for OSS component integration, they did not appear to be relevant in our assessed projects. Instead, practitioners highlighted the problem of getting suitable OSS component documentation/information.
Similar content being viewed by others
References
Alspaugh TA, Scacchi W (2013) Ongoing Software Development without Classical Requirements. RE, p 165–174
Alves CF, Finkelstein A (2003) Investigating Conflicts in Cots Decision-Making. Int J Softw Eng Knowl Eng 13(5):473–493
Ameller D, Ayala CP, Cabot J, Franch X (2013) Non-functional Requirements in Architectural Decision Making. IEEE Softw 30(2):61–67
Aminat S, Selamat A, Sahibudin S (2008) Open Source Integration into Business Strategies: A Review. Commun IBIMA 2(17):122–128
Aversano L, Tortorella M (2013) Quality Evaluation of FLOSS projects: Application to ERP systems. Inf Softw Technol 55:1260–1276
Ayala CP, Hauge Ø, Conradi R, Franch X, Li J (2011) Selection of Third-Party Software in Off-The-Shelf-based Software Development - An interview Study with Industrial Practitioners. J Syst Softw 84(4):620–637
Badampudi D, Wohlin C, Petersen K (2016) Software Component Decision-Making: In-house, OSS, COTS or Outsourcing - A Systematic Literature Review. J Syst Softw 121:105–124
Berntsson-Svensson R, Gorschek T, Regnell B, Torkar R, Shahrokni A, Feldt R (2012) Quality Requirements in Industrial Practice - An Extended Interview Study at Eleven Companies. IEEE Trans Softw Eng 38(4):923–935
Boehm BW (2000) Requirements That Handle IKIWISI, COTS, and Rapid Change. Computer 33(7):99–102
Boehm BW, Bhuta J (2008) Balancing Opportunities and Risks in Component-Based Software Development. IEEE Softw 25(6):56–63
Bonaccorsi A, Rossi C (2006) Comparing Motivations of Individual Programmers and Firms to take part in the Open Source Movement. Knowl Technol Policy 18(4):40–64
Brownsword L, Oberndorf T, Sledge CA (2000) Developing New Processes for COTS-Based Systems. IEEE Softw 17(4):48–55
Capra E, Francalanci C, Merlo F (2008) An Empirical Study on the Relationship between Software Design Quality, Development Effort and Governance in Open Source Projects. IEEE Trans Softw Eng 34(6):765–782
Carvallo JP, Franch X, Quer C (2006) Managing Non-technical Requirements in COTS Components Selection. RE, p 323–326
Chen W, Li J, Ma J, Conradi R, Ji J, Liu C (2008) An Empirical Study on Software Development with Open Source Components in the Chinese Software Industry. Softw Process Improv Pract 13(1):89–100
Ciokolwski M, Soto M (2008) Towards a Comprehensive Approach for Assessing Open Source Projects. IWSM/Metrikon/Mensura, p 316–330
Crowston K, Wei K, Howison J, Wiggins A (2012) Free/Libre Open-Source Software Development: What We Know and What We Do Not Know. ACM Comput Surv 44(2):7
Cruzes DS, Dybå T (2011) Research Synthesis in Software Engineering: A Tertiary Study. Inf Softw Technol 53(5):440–455
Cruzes DS, Dybå T, Runeson P, Höst M (2015) Case Studies Synthesis: a Thematic, Cross-case, and Narrative Synthesis Worked Example. Empir Softw Eng J 20(6):1634–1665
Dagdeviren H, Juric R, Kassana TA (2005) An Exploratory Study for Effective COTS and OSS Product Marketing. ITI, p 644–649
Daneva M, Damian D (2014) A. marchetto, O. Pastor: Empirical Research Methodologies and Studies in Requirements Engineering: How Far Did We Come? J Syst Softw 95:1–9
Daneva M, Herrmann A, Buglione L (2015) Coping with Quality Requirements in Large, Contract-Based Projects. IEEE Softw 32(6):84–91
Data Mining Software in Java, ver 3 (n.d.) Available at: http://www.cs.waikato.ac.nz/ml/weka/
Del Bianco V, Lavazza L, Morasca S, Taibi D (2009) Quality of Open Source Software: The QualiPSo Trustworthiness Model. OSS, p 199–212
Dillon WR, Goldstein M (1984) Multivariate Analysis Methods and Applications. Wiley, Hoboken
Driver M (2013) Hype Cycle for Open-Source Software. Technical Report, Gartner
Dybå T (2013) Contextualizing Empirical Evidence. IEEE Softw 30(1):81–83
Dybå T, Sjøberg DIK, Cruzes DS (2012) What Works for Whom, Where, When, and Why?: On the Role of Context in Empirical Software Engineering. ESEM, p 19–28
Erdogmus H (2010) How important is evidence, really? IEEE Softw 27(3):2–5
Franch X (2004) Do We Need Requirements in COTS-Based Software Development? ICCBSS, p 11–12
Golden B (2004) Succeeding with Open Source, Addison-Wesley Professional
Hand DJ (1996) Statistics and Theory of Measurements. J Royal Stat Soc 159(3):445–492
Hansen S, Lyytinen K (2010) Challenges in Contemporary Requirements Practice. HICSS, p 1–11
Hauge Ø, Ayala CP, Conradi R (2010) Adoption of Open Source Software in Software-Intensive Organizations - A Systematic Literature Review. Inf Softw Technol 52(11):1133–1154
Hoving R, Slot G, Jansen S (2013) Python: Characteristics Identification of a Free Open Source Software Ecosystem. DEST, p 13–18
IBM developerWorks tutorial (n.d.): http://www.ibm.com/developerworks/library/os-weka2/
International Organization for Standarization (2001) ISO Standard 9126: Software Engineering – Product Quality, part 1. International Organization for Standarization
Jadhav AS, Sonar RM (2009) Evaluating and Selecting Software Packages: A Review. Inf Softw Technol 51(3):555–563
Jansen S, Brinkkemper S, Hunink I, Demir C (2008) Pragmatic and Opportunistic Reuse in Two Innovative start-up Companies. IEEE Softw Spec Issue Oppor Softw Syst Dev 25(6):42–49
Jarke M, Loucopoulos P, Lyytinen K, Mylopoulos J, Robinson WN (2011) The Brave New World of Design Requirements. Inf Syst 36(7):992–1008
Kitchenham BA, Dyba T, Jorgensen M (2004) Evidence-Based Software Engineering. ICSE, p 273–281
Kohl RJ (2005) Requirements Engineering Changes for COTS-Intensive Systems. IEEE Softw 22(4):63–64
Kusumo DS, Staples M, Zhu L, Zhang H, Jeffery R (2012) Risks of Off-The-Shelf-based Software Acquisition and Development: A Systematic Mapping Study and A Survey. EASE, p 233–242
Land R, Sundmark D, Lüders F, Krasteva I, Causevic A (2009) Reuse with Software Components - A Survey of Industrial State of Practice. ICSR p 150–159
Li J, Conradi R, Slyngstad OPN, Torchiano M, Morisio M, Bunse C (2008) A State-of-the-Practice Survey of Risk Management in Development with Off-the-Shelf Software Components. IEEE Trans Softw Eng 34(2):271–286
Li J, Conradi R, Bunse C, Torchiano M, Slyngstad OPN, Morisio M (2009) Development with Off-The-Shelf Components: 10 Facts. IEEE Softw 26(2):80–87
Lincoln YS, Guba EG (1985) Naturalistic inquiry. SAGE Publications, Inc., Beverly Hills
López L, Costal D, Ayala C, Franch X, Annosi M, Glott R, Haaland C (2015) Adoption of OSS components: a Goal-Oriented Approach. Data Knowl Eng 99:17–38
Mahmood S, Lai R, Kim YS (2007) Survey of Component-Based Software Development. IET Softw 1(2):57–66
Maiden NAM, Ncube C (1998) Acquiring COTS Software Selection Requirements. IEEE Softw 15(2):46–56
Majchrowski M, Deprez JC (2008) An Operational Approach for Selecting Open Source Components in a Software Development Project. EuroSPI, p 176-188
Méndez-Fernández D, Wagner S, Lochmann K, Baumann A, de Carne H (2012) Field Study on Requirements Engineering: Investigation of Artefacts, Project Parameters, and Execution Strategies. Inf Softw Technol 54(2):162–178
Merilinna J, Matinlassi M (2006) State of the Art and Practice of Open-Source Component Integration. EUROMICRO, p 170–177
Mockus A, Fielding RT, Herbsleb JD (2002) Two Case Studies of Open Source Software Development: Apache and Mozilla. ACM Trans Softw Eng Methodol 11(3):309–346
Mohamed A, Ruhe G, Eberlein A (2007) COTS Selection: Past, Present and Future. ECBS, p 103–114
Mohamed A, Ruhe G, Eberlein A (2011) Mismatch Handling for COTS Selection: a Case Study. J Softw Maint 23(3):145–178
Morad S, Kuflik T (2005) Conventional and Open Source Software reuse at Orbotech – an Industrial Experience. SWSTE, p 110–117
Morisio M (ed) (2006) Reuse of Off-The-Shelf Components. ICSR2006
Ncube C, Oberndorf P, Kark AW (2008) Opportunistic Software Systems Development: Making Systems from What's Available. IEEE Softw 25(6):38–41
Nguyen AD, Cruzes DS, Conradi R, Höst M, Franch X, Ayala CP (2012) Collaborative Resolution of Requirements Mismatches When Adopting Open Source Components. REFSQ, p 77–93
Noll J (2008) Requirements Acquisition in Open Source Development: Firefox 2.0. OSS, p 69–79
Noll J, Beecham S, Seichter D (2011) A Qualitative Study of Open Source Software Development: The Open EMR Project. ESEM, p 30–39
Nvivo (2017) tool, further information: http://www.qsrinternational.com/product
Open Source (2005) Initiative: https://opensource.org
OpenBRR (2005) Business Readiness Rating for Open Source a Proposed Open Standard to Facilitate Assessment and Adoption of Open Source Software. http://www.openbrr.org/wiki/images/d/da/BRR_whitepaper _2005RFC1.pdf, Request for Comments
Paech B, Reuschenbach B (2006) Open Source Requirements Engineering. RE, p 252-259
Perrone V (2004) A Wish List for Requirements Engineering for COTS-Based Information Systems. ICCBSS, p 146–158
Raw data from this study (n.d.) is available at: http://www.essi.upc.edu/~cayala/DatosForWEKA2.csv
Robson C (2002) Real World Research: A Resource for Social Scientists and Practitioner-researchers. Second Edition. Blackwell Publishers Inc, Oxford
Ross DT, Schoman KE Jr (1977) tructured Analysis for Requirements Definition. IEEE Trans Softw Eng 3(1):6–15
Rubython A, Maiden N (2014) The Effect of Variability Modeling on Requirements Satisfaction for the Configuration and Implementation of Off-The-Shelf Software Packages. RE, p 394–401
Runeson P, Höst M (2009) Guidelines for Conducting and Reporting Case Study Research in Software Engineering. Empir Softw Eng 14(2):131–164
Scacchi W (2002) Understanding the Requirements for Developing Open Source Software Systems. IEE Proc Softw 149(1):24–39
Scacchi W, Feller J, Fitzgerald B, Hissam SA, Lakhani K (2006) Understanding Free/Open Source Software Development Processes. Softw Process Improv Pract 11(2):95–105
Schuwer R, van Genuchten M, Hatton L (2015) On the Impact of Being Open. IEEE Softw 32(5):81–83
Semeteys R, Pilot O, Baudrillard L, Le Bouder G, Pinkhardt W (2006) Method for Qualification and Selection of Open Source software (QSOS) version 1.6, Technical report, Atos Origin
Sen R, Subramaniam C, Nelson ML (2011) Open Source Software Licenses: Strong-Copyleft, Non-Copyleft, or Somewhere in Between? Decis Support Syst 52(1):199–206
Sen R, Singh SS, Borle S (2012) Open Source Software Success: Measures and Analysis. Decis Support Syst 52(2):364–372
ISO/IEC TR 19759 (2005) Software Engineering - Guide to the Software Engineering Body of Knowledge (SWEBOK). Available at: https://www.iso.org/standard/33897.html
Spinellis D, Giannikas V (2012) Organizational Adoption of Open Source Software. J Syst Softw 85(3):666–682
Stewart KJ, Ammeter AP, Maruping LM (2006) Impact of License Choice and Organizational Sponsorship on Success in Open Source Software Development Projects. Inf Syst Res 17(2):126–144
Stol K, Ali Babar M (2010) Challenges in Using Open Source Software in Product Development: a Review of the Literature. Workshop on Emerging Trends in FLOSS Research and Development, p 17–22
Stol K-J, Fitzgerald B (2015) Inner Source- Adopting Open Source Development Practices in Organizations: A Tutorial. IEEE Softw 32(4):60–67
Torchiano M, Morisio M (2004) Overlooked Aspects of COTS-Based Development. IEEE Softw 21(2):88–93
Vale T, Crnkovic I, Santana de Almeida E, da Mota Silveira Neto PA, Cerqueira Cavalcanti Y, Romero de Lemos Meira S (2016) Twenty-eight years of Component-Based Software Engineering. J Syst Softw 111:128–148
Ven K, Verelst J, Mannaert H (2008) Should You Adopt Open Source Software? IEEE Softw 25(3):54–59
Wesselius JH (2008) The Bazaar Inside the Cathedral: Business Models for Internal Markets. IEEE Softw 25(3):60–66
Wohlin C, Runeson P, Host M, Ohlsson MC, Regnell B, Wesslen A (2012) Experimentation in Software Engineering. Springer, Berlin
Yang Y, Bhuta J, Boehm BW, Port DN (2005) Value-Based Processes for COTS-Based Applications. IEEE Softw 22(4):54–62
Yin RK (1994) Case Study Research. Design and Methods. Second edition. Sage, Thousand Oaks
Acknowledgments
We would like to thank all of the people who participated in piloting an early version of the interview guide and the interview participants who took time from their workdays to participate in our interviews. This work has been partially supported by the Spanish project ref. TIN2016-79269-R.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Daniel M. Berry
Appendices
Appendix 1
Semi-structured Interview-Guide.
Part 1.A: Background Questions on Company and Person (Completed by the respondent before the meeting)
-
1.1.
Current date (dd.mm.yyyy):
-
1.2.
Your company/local business unit:
-
1.3.
Company URL (only used internally):
-
1.4.
Number of company employees, part-time and full-time:
Personal information:
-
1.5.
First name and last name:
-
1.6.
Email address (only used internally):
-
1.7.
Phone number (only used internally):
-
1.8.
Age (only used internally):
-
1.9.
Degree of highest completed education, and in what area:
-
1.10.
Current job position
-
1.11.
Describe your experience with software development and with OSS (tasks, products, duration etc.)
Part 1.B: Background Questions on Project and System (Completed by the respondent before the meeting).
The study object for this survey is a software development project, with at least one release of the corresponding product, and with reuse of one or more OSS components. If you have experience with several such projects, please select the one that you are most familiar with and motivated to discuss.
-
1.12.
What was the mean annual staff-size of the project (both full- and part-time employees)?
-
1.13.
What part of the staff had previous experience with OSS-based development?
-
1.14.
Did you have previous experience with OSS-based development before joining the project?
-
1.15.
What was the total effort of the project?
-
1.16.
What was (roughly) the starting time of the project?
-
1.17.
Which part of the system do the OSS Components occupy?
-
1.18.
What was the time of the first complete delivery of the project?
-
1.19.
What were the major application domain(s) of the system?
-
1.20.
Please provide a brief description of the chosen project and its main functionalities and architectural environment.
-
1.21.
What was the overall, software development process/environment of the project?
-
1.22.
Where did the requirements come from? [Interviewer should provide the following alternatives: there is an external client who paid for the project and “supervise” the requirements / there is no a specific client that paid for the project but it is the own company who “supervise” the requirements]
-
1.23.
How were the functional requirements described with regard to level of detail? [Interviewer should provide the following alternatives: very sketchy/ coarsely-grained/ medium/ detailed/ very fine-grained/]
-
1.24.
Which notation was used to describe the requirements?
Part 2. Details of requirement-component matchin process
-
2.1.
In which lifecycle phases were these OSS Components searched, evaluated and decided?
-
2.2.
How was the search process and the evaluation for these OSS Components done?
[Interviewer should provide the following alternatives to promote discussion]
-
a)
No real search/evaluation needed, since I have successfully used this component before.
-
b)
Consulted with my job colleagues/engineers, or with similar people elsewhere.
-
c)
Consulted with the customer about company policies or preferences.
-
d)
Read/heard about it in”peer-review” literature: scientific conferences, journals, books etc.
-
e)
Read/heard about it in”grey” literature: reports, ads, bulletin boards etc.
-
f)
Heard about it in connection with trade fairs, seminars, workshops, courses etc.
-
g)
Searched for it in general portals (http://Sourceforge.net) or in domain-specific ones.
-
h)
Searched for it using general or specialized search engines: google, google code etc.
-
i)
Used a formal method named ________to search for and assess candidate components.
-
j)
Used a systematic/documented method named:___________________.
-
k)
Some other way (please explain):
-
2.3.
What was decided first – application platform and architecture vs. major components
Part 3: Details of processes to solve potential requirement-component mismatches
-
3.1.
What did you do when the functional requirement-component mismatches ocurred? [Interviewer should inquiry about the following: OSS component is affected/ System requirement is affected / Any other approach and let the respondent provide details and examples of the most usual approach followed in each of these cases]
-
3.2.
Which and how the major non-functional requirements were achieved by using OSS components?
Part 4: Problems Experienced
-
4.1.
Did changes in OSS Components by the community or changes in your Requirements create any problems?
-
4.2.
Did you experience problems with licensing issues?
-
4.3.
Did you experience other problems to understand and integrate major OSS components?
Part 5: General summary and reflections
-
5.1.
Which factors influenced your prioritization of Requirements vs. OSS Components?
-
5.2.
What is the influence of integrating OSS components in your software development practices?
-
5.3.
Other comments?
Appendix 2
English Report Transcript Guidelines.
Here are the format requirements for the transcript of the audio interviews. Please read these very carefully. Although they are detailed, they represent the information required to make your transcript fully useable for other researchers. This information is vital for the long-term effectiveness of our survey. Begin work on the transcript early. It is an essential and time-consuming task that must be completed as soon as possible after each interview.
-
1)
The transcripts will be typed directly on each interview form in the language that it was conducted in the interview. In the analysis phase, we will determine how to conduct the analysis with the different languages.
-
2)
Include the following information on the first page of the word document containing the interview:
Process: | Record details of the process followed in the interview (e.g. we completed first the Part 1 and 2 and we then interviewed him by phone). |
---|---|
Interview Time: | X minutes |
Interview Date: | dd/mm/year |
Interviewee: | XXXX |
Interviewers: | XXX and XXXX |
Media: | Phone/Face to face/Skype |
Language: | English |
Comments: | Please provide as much detail as possible |
-
3)
Use the blue color to highlight the transcripts. Please see the example transcription file in the companion material.
-
4)
Try to put the transcription related to each question in the appropriate place, if possible, so that it will be easier to perform the analysis. If there are conversations that do not follow the question order, just leave the block of transcription, in the part where you are doing the interview. We will try to link to the question later on the analysis.
-
5)
The speakers should be identified. On the first page, respondents and interviewers should be identified in parentheses following their name. Indicate what abbreviations will be used to identify the various speakers on the transcript. For example, you can use initials for speakers present, e.g., “MD” for Marion Doe.
-
6)
Indicate any non-verbal responses in parentheses such as (narrator weeping), (laughter), (narrator very agitated) and so forth. However, do not reproduce irrelevant sounds such as “Ahhh, let me see…” Do not, correct the interviewee’s grammar or syntax. Faithfully transcribe slang expressions, exclamations (“Gosh!”) and fragmentary sentences. Do not use quotation marks unless the speaker is quoting someone else or reading from a document.
-
7)
The explanatory remarks you add for clarity should be in [square brackets], e.g., [inaudible in 00:19:15]. Then, we will know that there were some inaudible parts at that specific time in the audio.
-
8)
Be sure to proofread your transcript from the tapes once it is completed to ensure accuracy.
-
9)
If at all possible, give the respondent an opportunity to review the transcript and make corrections.
Rights and permissions
About this article
Cite this article
Ayala, C., Nguyen-Duc, A., Franch, X. et al. System requirements-OSS components: matching and mismatch resolution practices – an empirical study. Empir Software Eng 23, 3073–3128 (2018). https://doi.org/10.1007/s10664-017-9594-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-017-9594-1