Advertisement

Software Quality Journal

, Volume 20, Issue 1, pp 229–260 | Cite as

Requirements and constructors for tailoring software processes: a systematic literature review

  • Tomás Martínez-RuizEmail author
  • Jürgen Münch
  • Félix García
  • Mario Piattini
Article

Abstract

Organizations developing software-based systems or services often need to tailor process reference models—including product-oriented and project-oriented processes—to meet both their own characteristics and those of their projects. Existing process reference models, however, are often defined in a generic manner. They typically offer only limited mechanisms for adapting processes to the needs of organizational units, project goals, and project environments. This article presents a systematic literature review of peer-reviewed conference and journal articles published between 1990 and 2009. Our aim was both to identify requirements for process-tailoring notation and to analyze those tailoring mechanisms that are currently in existence and that consistently support process tailoring. The results show that the software engineering community has demonstrated an ever-increasing interest in software process tailoring, ranging from the consideration of theoretical proposals regarding how to tailor processes to the scrutiny of practical experiences in organizations. Existing tailoring mechanisms principally permit the modeling of variations of activities, artifacts, or roles by insertion or deletion. Two types of variations have been proposed: the individual modification of process elements and the simultaneous variation of several process elements. Resolving tailoring primarily refers to selecting or deselecting optional elements or to choosing between alternatives. It is sometimes guided by explicitly defined processes and supported by tools or mechanisms from the field of knowledge engineering. The study results show that tailoring notations are not as mature as the industry requires if they are to provide the kind of support for process tailoring that fulfills the requirements identified, i.e., including security policies for the whole process, or carrying out one activity rather than another. A notation must therefore be built, which takes these requirements into consideration in order to permit variant-rich processes representation and use this variability to consistently support process tailoring.

Keywords

Systematic review Software process Process tailoring Variability Process lines Variant-rich processes Project management 

Notes

Acknowledgments

This work is partially supported by the Program FPU of the Spanish Ministerio de Educación and by the PEGASO/MAGO (Ministerio de Ciencia e Innovación and Fondo Europeo de Desarrollo Regional, TIN2009-13718-C02-01), MEDUSAS (Centro para el Desarrollo Tecnológico e Industrial (Ministerio de Ciencia e Innovación), IDI-20090557), ALTAMIRA (Junta de Comunidades de Castilla-la Mancha, Fondo Social Europeo, PII2I09-0106-2463), and INGENIOSO (Junta de Comunidades de Castilla-la Mancha, PEII11-0025-9533) projects. We would also like to thank Sonnhild Namingha from Fraunhofer IESE for reviewing the first version of this paper.

References

  1. Armbrust, O., Ebell, J., Hammerschall, U., Münch, J., & Thoma, D. (2008). Experiences and results from tailoring and deploying a large process standard in a company. Software Process Improvement and Practice, 13, 301–309. doi: 10.1002/spip.CrossRefGoogle Scholar
  2. Balasubramaniam, D., Morrison, R., Greenwood, R. M., & Warboys, B. (2007). Flexible software development: From software architecture to process. In Proceedings of software architecture, 2007. Wicsa ‘07. IEEE Computer Science, 14 pp.Google Scholar
  3. Baldassarre, M. T., Caivano, D., Visaggio, C. A., & Visaggio, G. (2002). Promise: A framework for process models customization to the operative context. In International symposium on empirical software engineering (ISESE ‘02), pp. 103–110.Google Scholar
  4. Batista, J. (2000). SPI in a very small team: A case with CMM. Software Process Improvement and Practice, 5(4), 243–250.CrossRefGoogle Scholar
  5. Biffl, S., Winkler, D., Höhn, R., & Wetzel, H. (2006). Software process improvement in Europe: Potential of the new v-modell xt and research issues. Software Process Improvement and Practice, 11, 229–238.CrossRefGoogle Scholar
  6. Biolchini, J., Gomes, P., Cruz, A., & Travassos, G. (2005). Systematic review in software engineering. Rio de Janeiro, Brazil: Systems Engineering and Computer Science Department, UFRJ.Google Scholar
  7. Brinkkemper, S. (1996). Method engineering: Engineering of information systems development method and tools. Information and Software Technology, 38(4), 275–280.CrossRefGoogle Scholar
  8. Budgen, D., Turner, M., Brereton, P., & Kitchenham, B. A. (2008). Using mapping studies in software engineering. In PPIG 2008, Lancaster, UK, pp. 195–204.Google Scholar
  9. Cass, A., Volcker, C., Sutter, P., Dorling, A., & Stienen, H. (2002). Spice in action—Experiences in tailoring and extension. In Euromicro, pp. 352–360.Google Scholar
  10. Chou, S.-C., & Chen, J.-Y. J. (2000). Process program change control in a process environment. Software: Practice Experience, 30, 175–197.CrossRefGoogle Scholar
  11. Chrissis, M. B., Konrad, M., & Shrum, S. (2006). CMMI: Guidelines for process integration and product improvement (Vol. 1, The SEI series in software engineering). Boston: Pearson.Google Scholar
  12. Clements, P., & Northrop, L. (2002). Software product lines. Practices and patterns. Boston: Addison-Wesley.Google Scholar
  13. Dai, F., & Li, T. (2007). Tailoring software evolution process. In Eighth ACIS international conference on software engineering, artificial intelligence, networking, and parallel/distributed computing, Qingdao, pp. 782–787.Google Scholar
  14. Demirors, O., Demirors, E., Tarhan, A., & Yildiz, A. (2000). Tailoring ISO/IEC 12207 for instructional software development. In Proceedings of the 26th Euromicro conference, pp. 2300-2307.Google Scholar
  15. Fuggetta, A. (2000). Software process: A roadmap. In A. Finkelstein (Ed.), The future of software engineering (pp. 25–34). Limerick, Ireland: ACM.Google Scholar
  16. Giese, C., Schnieders, A., & Weiland, J. (2007). A practical approach for process family engineering of embedded control software. In Proceedings of the 14th annual IEEE international conference and workshops on the engineering of computer-based systems (ECBS ‘07), pp. 229–239.Google Scholar
  17. Hanssen, G. K., Westerheim, H., & Bjørnson, F. O. (2005). Tailoring RUP to a defined project type: A case study. In F. Bomarius, & S. Komi-Sirviö (Eds.), PROFES (Vol. LNCS 3547, pp. 314–327). New York: Springer.Google Scholar
  18. Hausen, H.-L. (1998). A rule-based process model for cooperative software projects: Tailoring and testing a software process to be used on the web. Knowledge-Based Systems, 11, 105–113.CrossRefGoogle Scholar
  19. Hesse, W., & Noack, J. (1999). A multi-variant approach to software process modelling. In M. Jarke, & A. Oberweis (Eds.), CAiSE ‘99, 1999 (Vol. LNCS 1626, pp. 210–224). New York: Springer.Google Scholar
  20. Huang, L., Hu, H., Ge, J., Boehm, B., & Lü, J. (2006). Tailor the value-based software quality achievement process to project business cases. In Software process change (Vol. LNCS 3966, pp. 56–63). Heidelberg: Springer.Google Scholar
  21. Ibargüengoitia, G., Salazar, J. A., Sánchez, M. G., & Ramírez, A. Y. (2006). A procedure for customizing a software process. In Proceeding of ENC ‘03 proceedings of the 4th Mexican international conference on computer science (pp. 68–72). IEEE Computer Society.Google Scholar
  22. ISO. (2002). ISO/IEC 12207:2002. Information technology—Software life cycle processes. Geneva: International Organization for Standardization.Google Scholar
  23. ISO. (2004). ISO/IEC 15504-2:2003/cor.1:2004(e). Information technology—Process assessment—Part 2: Performing an assessment. Geneva: International Organization for Standardization.Google Scholar
  24. ISO. (2006). ISO/IEC 15504-5:2006(e). Information technology—Process assessment—Part 5: An exemplar process assessment model. Geneva: International Organization for Standardization.Google Scholar
  25. ISO. (2008). ISO/IEC 12207:2008. Systems and software engineering—Software life cycle processes. Geneva: International Organization for Standardization.Google Scholar
  26. Jaccheri, M. L., & Conradi, R. (1993). Techniques for process model evolution in EPOS. IEEE Transactions on Software Engineering, 19(2), 1145–1156.CrossRefGoogle Scholar
  27. Jaufman, O., & Münch, J. (2005). Acquisition of a project-specific process. In F. Bomarius, & S. Komi-Sirviö (Eds.), PROFES 2005 (Vol. LNCS 3547, pp. 328–342). New York: Springer.Google Scholar
  28. Johansson, E., Nedstam, J., Wartenberg, F., & Höst, M. (2005). A qualitative methodology for tailoring spe activities in embedded platform. In Product focused software process improvement (Vol. LNCS 3547, pp. 39–53). Heidelberg: Springer.Google Scholar
  29. Kitchenham, B. (2004). Procedures for performing systematic reviews (pp. 1–28). Australia: Keele University and ICT Australia Ltd.Google Scholar
  30. Kitchenham, B., Pfleeger, S. L., Pickard, L. M., Jones, P. W., Hoaglin, D. C., El Emam, K., et al. (2002). Preliminary guidelines for empirical research in software engineering. IEEE Transactions on Software Engineering, 28(8), 721–734.CrossRefGoogle Scholar
  31. Krutchen, P. (2000). The rational unified process: An introduction (2nd ed.). New York: Addison Wesley.Google Scholar
  32. Lazovik, A., & Ludwig, H. (2007). Managing process customizability and customization: Model, language and process. In B. Benatallah et al. (Ed.), Wise 2007, Vol. LNCS 4831, pp. 373–384.Google Scholar
  33. Lobsitz, R. M. (1996). A method for assembling a project-specific software process definition. In Proceedings of the 1996 Hawaii international conference on system sciences (HICSS-29).Google Scholar
  34. Madhavji, N. H., & Schafer, W. (1991). Prism-methodology and process-oriented environment. IEEE Transactions on Software Engineering, 17(12), 1270–1283.CrossRefGoogle Scholar
  35. Martínez-Ruiz, T., García, F., & Piattini, M. (2008). Towards a SPEM v2.0 extension to define process lines variability mechanisms. In R. Lee (Ed.), SERA (Vol. SCI 150, pp. 115–130). Praga: Springer.Google Scholar
  36. Martínez-Ruiz, T., García, F., & Piattini, M. (2009). Enhanced variability mechanisms to manage software process lines. In EUROSPI 2009 (pp. 12.13–12.23). Alcalá de Henares, Madrid: Publizon.Google Scholar
  37. Ocampo, A., Bella, F., & Münch, J. (2005). Software process commonality analysis. Software Process – Improvement and Practice, 10(3), 273–285.CrossRefGoogle Scholar
  38. Osterweil, L. (1987). Software processes are software too. Paper presented at the 9th ICSE, Monterey, CA, March 1987.Google Scholar
  39. Park, S., Na, H., Park, S., & Sugumaran, V. (2006). A semi-automated filtering technique for software process tailoring using neural network. Expert Systems with Applications, 30, 179–189.CrossRefGoogle Scholar
  40. Pedreira, Ó., Piattini, M., Luaces, M. R., & Brisaboa, N. (2007). A systematic review of software process tailoring. ACM SIGSOFT Software Engineering Notes, 32(3), 1–6.CrossRefGoogle Scholar
  41. Pino, F., García, F., & Piattini, M. (2008). Software process improvement in small and medium software enterprises: A systematic review. Software Quality Journal, 16(2), 237–261.CrossRefGoogle Scholar
  42. Plögert, K. (1996). The tailoring process in the german v-model. Journal of Systems Architecture, 42, 601–609.CrossRefGoogle Scholar
  43. Rombach, D. (2005). Integrated software process and product lines. In M. Li, B. Boehm, & L. Osterweil (Eds.), ISPW (Vol. LNCS 3840, pp. 83–90). Beijing, China: Springer.Google Scholar
  44. Sandelowski, M., Barroso, J., & Voils, C. I. (2007). Using quantitative metasummary to synthesize qualitative and quantitative descriptive findings. Research in Nursing and Health, 30(1), 99–111.CrossRefGoogle Scholar
  45. Schnieders, A. (2006). Variability mechanism centric process family architectures. In I. C. Society (Ed.), ECBS ‘06: Proceedings of the 13th annual IEEE international symposium and workshop on engineering of computer based systems, 2006, pp. 289–298. doi: 10.1109/ECBS.2006.72.
  46. Sechser, B. (2009). The marriage of two process worlds. Software Process Improvement and Practice, 14(2), 349–354.CrossRefGoogle Scholar
  47. SEI. (2001). Standard CMMI® appraisal method for process improvement (SCAMPI), version 1.1: Method definition document (CMU/SEI-2001-HB-001). Pittsburgh: Software Engineering Institute (SEI).Google Scholar
  48. SEI. (2004). Capability maturity model integration (CMMI), version 1.1 CMMI (CMMI-SE/SW/IPPD/SS, v1.1) staged representation. Pittsburgh: Software Engineering Institute (SEI).Google Scholar
  49. Seo, J., & Choi, B. (2000). Tailoring test process by using the component-based development paradigm and the xml technology. In Proceeding APSEC ‘00 proceedings of the seventh Asia-Pacific software engineering (pp. 356–363). IEEE Computer Society.Google Scholar
  50. Sheard, S. A., & Lake, J. (1998). Systems engineering standards and models compared. In Proceedings of the 8th international symposium on systems engineering (INCOSE), pp. 589–605.Google Scholar
  51. Simidchieva, B. I., Clarke, L. A., & Osterweil, L. (2007). Representing process variation with a process family. In Q. Wang, D. Pfahl, & D. M. Raffo (Eds.), ICSP 2007, Minneapolis, USA, 2007 (Vol. LNCS 4470, pp. 121–133). New York: Springer.Google Scholar
  52. Sjoeberg, D. I. K., Hannay, J. E., Hansen, O., Kampenes, V. B., Karahasanovic, A., Liborg, N.-K., et al. (2005). A survey of controlled experiments in software engineering. IEEE Transactions on Software Engineering, 31(9), 733–753.CrossRefGoogle Scholar
  53. Sutton, S., & Osterweil, L. J. (1996). PDP: Programming a programmable design process. In 8th International workshop on software specification and design, 1996, pp. 186–190.Google Scholar
  54. Szyperski, C., Bosch, J., & Weck, W. (1998). Component-oriented programming. In A. Moreira, & S. Demeyer (Eds.), Object-oriented technology ECOOP ‘99 workshop reader (Vol. LNCS 1743, pp. 184–192). Berlin: Springer.Google Scholar
  55. Xu, P., & Ramesh, B. (2008). Using process tailoring to manage software development challenges. IT Professional, 10(4), 39–45.CrossRefGoogle Scholar
  56. Yoon, I.-C., Min, S.-Y., & Bae, D.-H. (2001). Tailoring and verifying software process. Paper presented at the 8th APSEC, Macao, China.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Tomás Martínez-Ruiz
    • 1
    Email author
  • Jürgen Münch
    • 2
  • Félix García
    • 1
  • Mario Piattini
    • 1
  1. 1.Alarcos Research Group, Department of Information Technologies and Systems, Escuela Superior de InformáticaUniversity of Castilla-La ManchaCiudad RealSpain
  2. 2.University of HelsinkiHelsinkiFinland

Personalised recommendations