Software Quality Journal

, Volume 21, Issue 2, pp 325–354 | Cite as

Practical experiences in modelling software engineering practices: The project patterns approach

  • Javier García GuzmánEmail author
  • Diego Martín
  • Julián Urbano
  • Antonio de Amescua


Software process improvement in software development organisations is a complex task that can be solved using knowledge management strategies. In this area, the definition and use of process patterns are a proven approach to apply knowledge management strategies in software engineering organisations. One of the main problems for the effective application of process patterns in the software industry is the difficulty of formalising the knowledge about the development process using these approaches. This study presents a framework to manage software project patterns. This framework (which is composed of a metamodel and a platform for patterns modelling and reuse) is able to formalise the knowledge on software development projects including software engineers’ previous experience, development methodologies, references frameworks and lessons learnt. The authors carried out an empirical study at Carlos III University of Madrid, where junior software engineers used the project patterns defined in this research work. The evidences and findings obtained during the empirical study execution indicates that correctness of the pattern depends on relevance of the bibliographic references used to create it, implementation of a knowledge sharing strategy among the personnel involved and previous experience in the business areas related to the information systems being developed. The results obtained from the empirical study also envisage that the usefulness of an sdPP (Software Development Project Pattern) depends on the ease of identifying when and how to apply a specific sdPP in a software project.


Software process improvement Knowledge management Process patterns Process modelling Empirical study 


  1. Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King, I., & Angel, S. (1978). A pattern language: Towns, buildings, construction. Oxford University Press. ISBN:978-0195019193.Google Scholar
  2. Allan, J., Callan, J., Collins-Thompson, K., Croft, B., Feng, F., Fisher, D., et al. (2003). The lemur toolkit for language modeling and information retrieval. The Lemur Project. Accessed 25 Jan 2011.
  3. Allison, I., & Merali, Y. (2007). Software process improvement as emergent change: A structurational analysis. Information and Software Technology. doi: 10.1016/j.infsof.2007.02.003.Google Scholar
  4. Amescua, A., Bermón, L., García, J., & Sánchez-Segura, M. I. (2010). Knowledge repository to improve agile development processes learning. IET Software. doi: 10.1049/iet-sen.2010.0067.Google Scholar
  5. Apache Jakarta (2005). Apache Lucene a high performance, full-featured text search engine library. The Apache Software Foundation. Accessed 25 Jan 2011.
  6. Ardimento, P., Baldassarre, M. T., Cimitile, M., & Visaggio, G. (2009). Empirical validation of knowledge packages as facilitators for knowledge transfer. Journal of Information & Knowledge Management (JIKM). doi: 10.1142/S021964920900235X.Google Scholar
  7. Aurum, A., Daneshgar, F., & Ward, J. (2008). Investigating knowledge management practices in software development organisations: An Australian experience. Information and Software Technology. doi: 10.1016/j.infsof.2007.05.005.Google Scholar
  8. Basili, V., Caldiera, G., & Rombach, H. (2002). Experience factory in Encyclopedia of Software Engineering. doi: 10.1002/0471028959.sof110.
  9. Berczuk, S. P., & Appleton, B. (2003). Software configuration management patterns: Effective teamwork, practical integration. Addison-Wesley Professional, ISBN:0201741172.Google Scholar
  10. Bjornson, F. O., & Dingsoyr, T. (2008). Knowledge management in software engineering: A systematic review of studied concepts, findings and research methods used. Information and Software Technology. doi: 10.1016/j.infsof.2008.03.006.Google Scholar
  11. Borges, L. da M. S. B., & Falbo, R. de A. (2002). Managing software process knowledge. Proceedings of the international conference on computer science, software engineering, information technology, e-Business and applicationsCSITea’2002, pp 227–232. Accessed 25 Jan 2011.
  12. Buschmann, F., Henney, K., & Schmidt, D. C. (2007). Pattern-oriented software architecture: On patterns and pattern languages. Wiley, Chichester, ISBN:978-0-471-48648-0.Google Scholar
  13. Eclipse. (2011). Eclipse process framework composer. The Eclipse Foundation, Accessed 1 Dec 2011.
  14. Fowler, M. (2003). Patterns of enterprise application architecture. Addison-Wesley Professional, ISBN:0-321-12742-0.Google Scholar
  15. Gamma, E., Johnson, R., Helm, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading, MA: Addison-Wesley.Google Scholar
  16. García, J., Amescua, Antonio, Sánchez, M.-I., & Bermón, L. (2011). Design guidelines for software processes knowledge repository development. Information and Software Technology. doi: 10.1016/j.infsof.2011.03.002.Google Scholar
  17. Garcia, S., & Turner, R. (2006). CMMI® survival guide: just enough process improvement. Addison-Wesley Professional, ISBN:978-0-321-49178-7.Google Scholar
  18. Group Processworks (2011). EzyLib Process Asset Libraries. Accessed 1 Dec 2011.
  19. Ivarsson, M., & Gorschek, T. (2011). Tool support for disseminating and improving development practices. Software Quality Journal. doi: 10.1007/s11219-011-9139-6.Google Scholar
  20. Jacobson, I., Wei, P., & Spence, I. (2007). Enough of processes-lets do practices. Journal of Object Technology, 6(6), 41–66. Accessed 25 Aug 2011.Google Scholar
  21. Jalote, P. (2002). Software project management in practice. Addison-Wesley Longman Publishing Co., Inc. ISBN:0-201-73721-3.Google Scholar
  22. Juristo, N., & Moreno, A. M. (2001). Basics of software engineering experimentation. Kluwer, ISBN:0-7923-7990-X.Google Scholar
  23. Landaeta, J. F., García, J., & Amescua, A. (2008). Practical SPI planning. Software Process Improvement. doi: 10.1007/978-3-540-85936-9_8.Google Scholar
  24. Llorens, J., Morato, J., Genova, G., Fuentes, M., Quintana, V., & Díaz, I. (2004). RHSP: An information representation model based on relationship. Studies in fuzziness and soft computing, 159, 221–253.CrossRefGoogle Scholar
  25. Martín, D., García, J., Amescua, A., & Llorens, J. (2007). Reusable project patterns to enhance software process improvement. EuroSPI 2007 Industrial Proceedings, 3.25–3.34.Google Scholar
  26. Maurer, F., & Holz, H. (2002). Integrating process support and knowledge management for virtual software development teams. Annals of Software Engineering. doi: 10.1023/A:1020505708326.Google Scholar
  27. May, D., & Taylor, P. (2003). Knowledge management with patterns. Communications of the ACM. doi: 10.1145/792704.792705.Google Scholar
  28. Medina-Dominguez, F., Sanchez-Segura, M.-I., Mora-Soto, A., & Amescua, A. (2010). Reverse engineering and software products reuse to teach collaborative web portals: A case study with final-year computer science students. IEEE Transactions on Education. doi: 10.1109/TE.2009.2037313.Google Scholar
  29. Microsoft Corporation. (2010). Visual Studio 2010 Ultimate. Accessed 25 Aug 2011.
  30. Mora-Soto, A., Sanchez-Segura, M.-I., Medina-Dominguez, F., & Amescua, A. (2010). Transactive memory system proposal to foster collaborative learning and knowledge sharing into organizations. In International conference on computer supported education (CSEDU 2010).Google Scholar
  31. Nodder, C., & Nielsen, J. (2008). Agile usability: best practices for user experience on agile development projects. Nielsen Norman Group. Accessed 25 Aug 2011.
  32. Nold, H. A. (2011). Making knowledge management work: Tactical to practical. Knowledge Management Research & Practice. doi: 10.1057/kmrp.2010.27.Google Scholar
  33. OMG. (2007). OMG unified modeling language infrastructure, V2.1.2. Object Management Group, Inc. Accessed 1 Dec 2011.
  34. OMG. (2008). Software & systems process engineering meta-model specification. Process Engineering. Object Management Group, Inc. Accessed 1 Dec 2011.
  35. Osellus. (2007). IRIS Process Author. Osellus Inc. Accessed 1 Dec 2011.
  36. Pino, F., García, F., & Piattini, M. (2008). Software process improvement in small and medium software enterprises: A systematic review. Software Quality Journal. doi: 10.1007/s11219-007-9038-z.Google Scholar
  37. Rosendaal, B. (2009). Sharing knowledge, being different and working as a team. Knowledge Management Research & Practice, Operational Research Society Ltd. doi: 10.1057/kmrp.2008.32.
  38. Rus, I., & Lindvall, M. (2002). Knowledge management in software engineering. IEEE Software. doi: 10.1109/MS.2002.1003450.Google Scholar
  39. Sanchez-Segura, M. I., Medina-Dominguez, F., De Amescua, A., & Mora-Soto, A. (2010). Improving the efficiency of use of software engineering practices using product patterns. Information Sciences. doi: 10.1016/j.ins.2010.03.028.Google Scholar
  40. Sanchez-Segura, M.-I., Medina-Dominguez, F., Mora-Soto, A., & Amescua, A. (2011). Enhancing productivity through products and knowledge reuse. EuroSPI 2011 Industrial Proceedings (pp 9.1–9.10). DELTA, Denmark.Google Scholar
  41. Scott, L., Carvalho, L., & Jeffery, R. (2002). A process-centred experience repository for a small software organisation. Ninth Asia-Pacific software engineering conference, 2002. doi: 10.1109/APSEC.2002.1183096.
  42. SEI. (2010). CMMI for Development. Version 1.3 Technical Report (CMU/SEI-2010-TR-033).Software Engineering Institute, Carnegie Mellon University, Accessed 1 Dec 2011.
  43. Select Business Solutions (2011). Select Process Director. Select Business Solutions Inc. Accessed 25 Aug 2011.
  44. Shalloway, A., & Trott, J. (2005). Design patterns explained: A new perspective on object-oriented design. Addison-Wesley. ISBN:9780321247148.Google Scholar
  45. Sommerville, I. (2004). Software Engineering (7th Edition). Addison Pearson Education. ISBN:9788177585308.Google Scholar
  46. Verma, A., & Tiwari, M. K. (2009). Role of corporate memory in the global supply chain environment. International Journal of Production Research. doi: 10.1080/00207540801918570.Google Scholar
  47. Visaggio, G. (2009). Knowledge base and experience factory for empowering competitiveness. Software Engineering LNCS. doi: 10.1007/978-3-540-95888-8_9.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Javier García Guzmán
    • 1
    Email author
  • Diego Martín
    • 1
  • Julián Urbano
    • 1
  • Antonio de Amescua
    • 1
  1. 1.Computer Science DepartmentUniversidad Carlos III de MadridMadridSpain

Personalised recommendations