Abstract
More and more software projects use Commercial-Off-The-Shelf (COTS) components. Although previous studies have proposed specific COTS-based development processes, there are few empirical studies that investigate how to use and customize COTS-based development processes for different project contexts. This paper describes an exploratory study of state-of-the-practice of COTS-based development processes. Sixteen software projects in the Norwegian IT companies have been studied by structured interviews. The results are that COTS-specific activities can be successfully incorporated in most traditional development processes (such as waterfall or prototyping), given proper guidelines to reduce risks and provide specific assistance. We have identified four COTS-specific activities—the build vs. buy decision, COTS component selection, learning and understanding COTS components, and COTS component integration – and one new role, that of a knowledge keeper. We have also found a special COTS component selection activity for unfamiliar components, combining Internet searches with hands-on trials. The process guidelines are expressed as scenarios, problems encountered, and examples of good practice. They can be used to customize the actual development processes, such as in which lifecycle phase to put the new activities into. Such customization crucially depends on the project context, such as previous familiarity with possible COTS components and flexibility of requirements.
Similar content being viewed by others
References
Abts C, Boehm BW, Clark EB (2000) COCOTS: A COTS software integration cost model—model overview and preliminary data findings. Proc. of the 11th ESCOM Conf, Munich, Germany, pp 325–333
Albert C, Brownsword L (2002) Evolutionary process for integrating COTS-based system (EPIC): an overview. SEI, Pittsburgh, Available at: http://www.sei.cmu.edu/publications/documents/02.reports/02tr009.html
Alves C, Fineklstein A (2003) Investigating conflicts in COTS decision-making. JSEKE 13(5):473–493
Basili VR, Boehm BW (2001) COTS-based system top 10 lists. IEEE Computer 34(5):91–93
Boehm B (2000) Requirements that handle IKIWISI, COTS, and rapid change. IEEE Computer 33(7):99–102
Boehm BW, Abts C (1999) COTS integration: plug and pray? IEEE Computer 32(1):135–138
Boehm BW, Port D, Yang Y, Bhuta J (2003) Not all CBS are created equally COTS-intensive project types. Proc. of the 2nd Int Conf on COTS-Based Software Systems (ICCBSS'03), Ottawa, Canada, Springer, LNCS Vol. 2580, pp 36–50
Brownsword L, Oberndorf T, Sledge C (2000) Developing new processes for COTS-based systems. IEEE Software 17(4):48–55
Carney D, Long F (2001) What do you mean by COTS? Finally, a useful answer. IEEE Software 7(2):83–86
Chung L, Cooper K (2002) A knowledge-based COTS-aware requirements engineering approach. Proc. of the 14th Int Conf on Software Engineering and Knowledge Engineering, Ischia, Italy, pp 175–182
ComponentSource (2004) Available at: http://www.componentsource.com/
COTS Lessons Learned Repository (2004) Available at: http://fc-md.umd.edu/ll/index.asp
Crnkovic I, Hnich B, Jonsson T, Kiziltan Z (2002) Specification, implementation, and deployment of components. Communication of the ACM 45(19):35–40
FAA Guide (2003) Federal Aviation Administration, Software Engineering Resource Center. FAA COTS risk mitigation guide: practical methods for effective COTS acquisition and life cycle support. Available at: http://www.faa.gov/aua/resources/cots/Guide/CRMG.htm
FAMILIES Project (2003) Available at: http://www.esi.es/en/Projects/Families
Fowler FJ Jr. (2001) Survey research methods (Applied social research methods). 3rd edition, Thousand Oaks, CA, USA: Sage
Fox G, Lantner K, Marcom S (1997) A software development process for COTS-based information system infrastructure. Proc. of the 5th Int Symposium on Assessment of Software Tools (SAST '97), Pittsburgh, Pennsylvania, USA, pp 133–142
INCO Project (2000) Available at: http://www.ifi.uio.no/~isu/INCO/
Kontio J (1996) A case study in applying a systematic method for COTS selection. Proc. of the 18th Int Conf on Software Engineering, Berlin, Germany, pp 201–209
Kotonya G, Rashid A (2001) A strategy for managing risk in component-based software development. Proc. of the 27th EUROMICRO Conference, Warsaw, Poland, pp 12–21
Lawlis PK, Mark KE, Thomas DA, Courtheyn T (2001) A formal process for evaluating COTS software products. IEEE Computer 34(5):58–63
Leung KRPH, Leung HKN (2002) On the efficiency of domain-based COTS product selection method. Journal of Information and Software Technology 44(12):703–715
MacCrimmon KR (1973) An overview of multiple objective decision making. Proc. of the Multiple Criteria Decision Making, University of South Carolina, pp 18–44
Maiden NAM, Ncube C (1998) Acquiring COTS software selection requirement. IEEE Software 15(2):46–56
Maiden NAM., Kim H, Ncube C (2002) Rethinking process guidance for selecting software components. Proc. of the 1st Int Conf on COTS-Based Software Systems (ICCBSS'02), Orlando, Florida, USA, Springer, LNCS VOL. 2255, pp 151–164
Morisio M, Tsoukias A (1997) IusWare: a methodology for the evaluation and selection of software products. IEE Proceedings—Software Engineering 144(3):162–174
Morisio M, Seaman CB, Parra AT, Basili VR, Kraft SE, Condon SE (2000) Investigating and improving a COTS-based software development process. Proc. of the 22nd Int Conf on Software Engineering, Limerick, Ireland, pp 31–40
Morris E, Albert C, Brownsword L (2003) COTS-based development: taking the pulse of a project. Proc. of the 2nd Int Conf on COTS-Based Software Systems (ICCBSS 2003), Ottawa, Canada, Springer LNCS, VOL. 2580, pp 168–177
NAICS (2004) Available at: http://www.revenue.state.ne.us/tax/current/buscodes.pdf
Ncube C, Dean JC (2002) The limitation of current decision-making techniques in the procurement of COTS software components. Proc. of the 1st Int conf on COTS-Based Software Systems (ICCBSS’02), Orlando, Florida, USA, Springer, LNCS vol. 2255, pp 176–187
Ochs M, Pfahl D, Diening GC, Kolb BN (2001) A method for efficient measurement-based COTS assessment and selection—method description and evaluation results. Proc. of the 7th Int. Software Metrics Symposium, London, England, pp 285–297
Robson C (2002) Real world research: a resource for social scientists and practitioner-researchers (Regional Surveys of the World), 2nd edition. Oxford, Blackwell
Rose LC (2003) Risk management of COTS based systems development. In: Component-Based Software Quality, Springer LNCS, vol. 2693, pp 352–373
Saaty TL (1990) How to make a decision: the analytic hierarchy process (AHP). Eur J Oper Res 48(1):9–26
SPIKE project (2002) Available at: http://www.idi.ntnu.no/grupper/su/spike.html
SEI (Software Engineering Institute) (2004) COTS-based initiative description. Available at http://www.sei.cmu.edu/cbs/cbs_description.html
SSB: Norwegian Census Bureau (2004) Available at: http://www.ssb.no
Strauss A, Corbin JM (1998) Basics of qualitative research: grounded theory procedures and techniques. 2nd edition. Thousand Oaks, CA, USA: Sage
Torchiano M, Morisio M (2004) Overlooked aspects on COTS-based development. IEEE Software 21(2):88–93
Tran V, Liu DB, Hummel B (1997) Component-based systems development: challenges and lessons learned. Proc. of the 8th IEEE Int. Workshop on Software Technology and Engineering Practice, London, UK, pp 452–462
Voas J (1998a) COTS software—the economical choice? IEEE Software 15(2):16–19
Voas J (1998b) The challenges of using COTS software in component-based development. IEEE Computer 31(6):44–45
Acknowledgments
This study is supported by the INCO, SPIKE, and FAMILIES projects. Comments from our colleague Tore Dybå gave valuable input to this study. We thank the colleagues in these projects, and all the participants in this study.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix A. Detailed Information on Process Customization
Comp. ID | Proj. ID | Succ. or failed | Main process | Other activities added | New role added |
C1 | P1 | Failed | Waterfall | Buy vs. build. Selection. Build glueware & addware. | External expert: Hired one person from the vendor as consultant. |
C1 | P2 | Failed | Incremental & prototyping | Customer decided COTS. Learning. Build glueware. | |
C2 | P3 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware & addware. | Internal expert. |
C2 | P4 | Succ. | Waterfall | Buy vs. build. Selection. Learning. Build glueware & addware. | Internal expert. |
C3 | P5 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware. | |
C3 | P6 | Succ. | Incremental & prototyping | Buy vs. build. No selection as it was the only alternative. Learning. Build glueware. | |
C4 | P7 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware & addware. | |
C5 | P8 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Build addware. | Internal expert. |
C6 | P9 | Succ. | Incremental & prototyping | Without build vs. buy decision because using COTS is a company strategy. Selection. Learning. Build glueware & addware. | Internal expert. |
C7 | P10 | Failed | Waterfall | Buy vs. build. Selection. Build glueware Learning. | External expert: The integration was outsourced to a consulting company. |
C8 | P11 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware. | Internal expert to follow COTS evolution. |
C9 | P12 | Succ. | Waterfall & prototyping | Buy vs. build. Selection. Learning. Build glueware. | |
C10 | P13 | Succ. | Waterfall | Buy vs. build Selection. Learning. Build glueware. | Internal expert. |
C11 | P14 | Failed | Waterfall | Buy vs. build. Selection. Learning. Build glueware. | |
C12 | P15 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware. | Internal expert. |
C13 | P16 | Succ. | Incremental & prototyping | Buy vs. build. Selection. Learning. Build glueware. | Internal expert. |
Appendix B. Detailed Information on COTS Component Selection
Proj. ID | COTS ID | Selection process | In which phase was COTS selected |
P1 | 1 | Demo (recommended from external expert). | Implementation |
P1 | 2 | Demo (recommended from external expert). | Implementation |
P2 | 3 | Decided by customer | Design |
P3 | 4 | Experience | Design |
P3 | 5 | Internet search with pilot | Requirements |
P3 | 6 | Experience | Design |
P4 | 7 | Internet search with pilot | Requirements |
P4 | 8 | Experience | Requirements |
P4 | 9 | Experience | Requirements |
P5 | 10 | Experience | Implementation |
P5 | 11 | Internet search with pilot | Implementation |
P6 | 12 | Experience | Requirements |
P7 | 13 | Internet search with pilot | Design |
P8 | 14 | Experience | Implementation |
P8 | 15 | Experience | Implementation |
P9 | 16 | Experience | Design |
P9 | 17 | Experience | Design |
P9 | 18 | Experience | Design |
P10 | 19 | Demo. | Design |
P10 | 20 | Demo. | Design |
P10 | 21 | Demo. | Design |
P11 | 22 | Internet search with pilot | Design |
P11 | 23 | Internet search with pilot | Design |
P12 | 24 | Experience | Design |
P13 | 25 | Experience | Requirements |
P14 | 26 | Demo. | Implementation |
P15 | 27 | Experience | Design |
P15 | 28 | Recommended from external expert | Requirements |
P16 | 29 | Experience | Design |
P16 | 30 | Experience | Design |
Rights and permissions
About this article
Cite this article
Li, J., Bjørnson, F.O., Conradi, R. et al. An empirical study of variations in COTS-based software development processes in the Norwegian IT industry. Empir Software Eng 11, 433–461 (2006). https://doi.org/10.1007/s10664-006-9005-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-006-9005-5