Skip to main content
Log in

System requirements-OSS components: matching and mismatch resolution practices – an empirical study

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

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

    Article  Google Scholar 

  • Ameller D, Ayala CP, Cabot J, Franch X (2013) Non-functional Requirements in Architectural Decision Making. IEEE Softw 30(2):61–67

    Article  Google Scholar 

  • Aminat S, Selamat A, Sahibudin S (2008) Open Source Integration into Business Strategies: A Review. Commun IBIMA 2(17):122–128

    Google Scholar 

  • Aversano L, Tortorella M (2013) Quality Evaluation of FLOSS projects: Application to ERP systems. Inf Softw Technol 55:1260–1276

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Boehm BW (2000) Requirements That Handle IKIWISI, COTS, and Rapid Change. Computer 33(7):99–102

    Article  Google Scholar 

  • Boehm BW, Bhuta J (2008) Balancing Opportunities and Risks in Component-Based Software Development. IEEE Softw 25(6):56–63

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Brownsword L, Oberndorf T, Sledge CA (2000) Developing New Processes for COTS-Based Systems. IEEE Softw 17(4):48–55

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Cruzes DS, Dybå T (2011) Research Synthesis in Software Engineering: A Tertiary Study. Inf Softw Technol 53(5):440–455

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Daneva M, Herrmann A, Buglione L (2015) Coping with Quality Requirements in Large, Contract-Based Projects. IEEE Softw 32(6):84–91

    Article  Google Scholar 

  • 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

    MATH  Google Scholar 

  • Driver M (2013) Hype Cycle for Open-Source Software. Technical Report, Gartner

  • Dybå T (2013) Contextualizing Empirical Evidence. IEEE Softw 30(1):81–83

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Franch X (2004) Do We Need Requirements in COTS-Based Software Development? ICCBSS, p 11–12

    Chapter  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Jarke M, Loucopoulos P, Lyytinen K, Mylopoulos J, Robinson WN (2011) The Brave New World of Design Requirements. Inf Syst 36(7):992–1008

    Article  Google Scholar 

  • 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

    Article  MathSciNet  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Lincoln YS, Guba EG (1985) Naturalistic inquiry. SAGE Publications, Inc., Beverly Hills

    Book  Google Scholar 

  • 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

    Article  Google Scholar 

  • Mahmood S, Lai R, Kim YS (2007) Survey of Component-Based Software Development. IET Softw 1(2):57–66

    Article  Google Scholar 

  • Maiden NAM, Ncube C (1998) Acquiring COTS Software Selection Requirements. IEEE Softw 15(2):46–56

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Ncube C, Oberndorf P, Kark AW (2008) Opportunistic Software Systems Development: Making Systems from What's Available. IEEE Softw 25(6):38–41

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Ross DT, Schoman KE Jr (1977) tructured Analysis for Requirements Definition. IEEE Trans Softw Eng 3(1):6–15

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Scacchi W (2002) Understanding the Requirements for Developing Open Source Software Systems. IEE Proc Softw 149(1):24–39

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Schuwer R, van Genuchten M, Hatton L (2015) On the Impact of Being Open. IEEE Softw 32(5):81–83

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Sen R, Singh SS, Borle S (2012) Open Source Software Success: Measures and Analysis. Decis Support Syst 52(2):364–372

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Torchiano M, Morisio M (2004) Overlooked Aspects of COTS-Based Development. IEEE Softw 21(2):88–93

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Ven K, Verelst J, Mannaert H (2008) Should You Adopt Open Source Software? IEEE Softw 25(3):54–59

    Article  Google Scholar 

  • Wesselius JH (2008) The Bazaar Inside the Cathedral: Business Models for Internal Markets. IEEE Softw 25(3):60–66

    Article  Google Scholar 

  • Wohlin C, Runeson P, Host M, Ohlsson MC, Regnell B, Wesslen A (2012) Experimentation in Software Engineering. Springer, Berlin

    Book  Google Scholar 

  • Yang Y, Bhuta J, Boehm BW, Port DN (2005) Value-Based Processes for COTS-Based Applications. IEEE Softw 22(4):54–62

    Article  Google Scholar 

  • Yin RK (1994) Case Study Research. Design and Methods. Second edition. Sage, Thousand Oaks

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Claudia Ayala.

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.1.

    Current date (dd.mm.yyyy):

  2. 1.2.

    Your company/local business unit:

  3. 1.3.

    Company URL (only used internally):

  4. 1.4.

    Number of company employees, part-time and full-time:

Personal information:

  1. 1.5.

    First name and last name:

  2. 1.6.

    Email address (only used internally):

  3. 1.7.

    Phone number (only used internally):

  4. 1.8.

    Age (only used internally):

  5. 1.9.

    Degree of highest completed education, and in what area:

  6. 1.10.

    Current job position

  7. 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. 1.12.

    What was the mean annual staff-size of the project (both full- and part-time employees)?

  2. 1.13.

    What part of the staff had previous experience with OSS-based development?

  3. 1.14.

    Did you have previous experience with OSS-based development before joining the project?

  4. 1.15.

    What was the total effort of the project?

  5. 1.16.

    What was (roughly) the starting time of the project?

  6. 1.17.

    Which part of the system do the OSS Components occupy?

  7. 1.18.

    What was the time of the first complete delivery of the project?

  8. 1.19.

    What were the major application domain(s) of the system?

  9. 1.20.

    Please provide a brief description of the chosen project and its main functionalities and architectural environment.

  10. 1.21.

    What was the overall, software development process/environment of the project?

  11. 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]

  12. 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/]

  13. 1.24.

    Which notation was used to describe the requirements?

Part 2. Details of requirement-component matchin process

  1. 2.1.

    In which lifecycle phases were these OSS Components searched, evaluated and decided?

  2. 2.2.

    How was the search process and the evaluation for these OSS Components done?

[Interviewer should provide the following alternatives to promote discussion]

  1. a)

    No real search/evaluation needed, since I have successfully used this component before.

  2. b)

    Consulted with my job colleagues/engineers, or with similar people elsewhere.

  3. c)

    Consulted with the customer about company policies or preferences.

  4. d)

    Read/heard about it in”peer-review” literature: scientific conferences, journals, books etc.

  5. e)

    Read/heard about it in”grey” literature: reports, ads, bulletin boards etc.

  6. f)

    Heard about it in connection with trade fairs, seminars, workshops, courses etc.

  7. g)

    Searched for it in general portals (http://Sourceforge.net) or in domain-specific ones.

  8. h)

    Searched for it using general or specialized search engines: google, google code etc.

  9. i)

    Used a formal method named ________to search for and assess candidate components.

  10. j)

    Used a systematic/documented method named:___________________.

  11. k)

    Some other way (please explain):

  1. 2.3.

    What was decided first – application platform and architecture vs. major components

Part 3: Details of processes to solve potential requirement-component mismatches

  1. 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]

  2. 3.2.

    Which and how the major non-functional requirements were achieved by using OSS components?

Part 4: Problems Experienced

  1. 4.1.

    Did changes in OSS Components by the community or changes in your Requirements create any problems?

  2. 4.2.

    Did you experience problems with licensing issues?

  3. 4.3.

    Did you experience other problems to understand and integrate major OSS components?

Part 5: General summary and reflections

  1. 5.1.

    Which factors influenced your prioritization of Requirements vs. OSS Components?

  2. 5.2.

    What is the influence of integrating OSS components in your software development practices?

  3. 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. 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. 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

  1. 3)

    Use the blue color to highlight the transcripts. Please see the example transcription file in the companion material.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 8)

    Be sure to proofread your transcript from the tapes once it is completed to ensure accuracy.

  7. 9)

    If at all possible, give the respondent an opportunity to review the transcript and make corrections.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-017-9594-1

Keywords

Navigation