Abstract
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.
Similar content being viewed by others
References
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.
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. http://lemurproject.org Accessed 25 Jan 2011.
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.
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.
Apache Jakarta (2005). Apache Lucene a high performance, full-featured text search engine library. The Apache Software Foundation. http://jakarta.apache.org/ Accessed 25 Jan 2011.
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.
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.
Basili, V., Caldiera, G., & Rombach, H. (2002). Experience factory in Encyclopedia of Software Engineering. doi:10.1002/0471028959.sof110.
Berczuk, S. P., & Appleton, B. (2003). Software configuration management patterns: Effective teamwork, practical integration. Addison-Wesley Professional, ISBN:0201741172.
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.
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 applications–CSITea’2002, pp 227–232. http://www.inf.ufes.br/~falbo/download/pub/CSITeA2002paperKM.pdf Accessed 25 Jan 2011.
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.
Eclipse. (2011). Eclipse process framework composer. The Eclipse Foundation, http://www.eclipse.org/epf/general/description.php Accessed 1 Dec 2011.
Fowler, M. (2003). Patterns of enterprise application architecture. Addison-Wesley Professional, ISBN:0-321-12742-0.
Gamma, E., Johnson, R., Helm, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading, MA: Addison-Wesley.
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.
Garcia, S., & Turner, R. (2006). CMMI® survival guide: just enough process improvement. Addison-Wesley Professional, ISBN:978-0-321-49178-7.
Group Processworks (2011). EzyLib Process Asset Libraries. http://www.processworksgroup.com Accessed 1 Dec 2011.
Ivarsson, M., & Gorschek, T. (2011). Tool support for disseminating and improving development practices. Software Quality Journal. doi:10.1007/s11219-011-9139-6.
Jacobson, I., Wei, P., & Spence, I. (2007). Enough of processes-lets do practices. Journal of Object Technology, 6(6), 41–66. http://www.jot.fm/issues/issue_2007_07/column5/ Accessed 25 Aug 2011.
Jalote, P. (2002). Software project management in practice. Addison-Wesley Longman Publishing Co., Inc. ISBN:0-201-73721-3.
Juristo, N., & Moreno, A. M. (2001). Basics of software engineering experimentation. Kluwer, ISBN:0-7923-7990-X.
Landaeta, J. F., García, J., & Amescua, A. (2008). Practical SPI planning. Software Process Improvement. doi:10.1007/978-3-540-85936-9_8.
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.
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.
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.
May, D., & Taylor, P. (2003). Knowledge management with patterns. Communications of the ACM. doi:10.1145/792704.792705.
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.
Microsoft Corporation. (2010). Visual Studio 2010 Ultimate. http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate Accessed 25 Aug 2011.
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).
Nodder, C., & Nielsen, J. (2008). Agile usability: best practices for user experience on agile development projects. Nielsen Norman Group. http://www.nngroup.com/reports/agile/ Accessed 25 Aug 2011.
Nold, H. A. (2011). Making knowledge management work: Tactical to practical. Knowledge Management Research & Practice. doi:10.1057/kmrp.2010.27.
OMG. (2007). OMG unified modeling language infrastructure, V2.1.2. Object Management Group, Inc. http://www.omg.org/spec/UML/2.1.2/Infrastructure/PDF. Accessed 1 Dec 2011.
OMG. (2008). Software & systems process engineering meta-model specification. Process Engineering. Object Management Group, Inc. http://www.omg.org/spec/SPEM/2.0/. Accessed 1 Dec 2011.
Osellus. (2007). IRIS Process Author. Osellus Inc. http://www.osellus.com/IRIS-PA Accessed 1 Dec 2011.
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.
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.
Rus, I., & Lindvall, M. (2002). Knowledge management in software engineering. IEEE Software. doi:10.1109/MS.2002.1003450.
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.
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.
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.
SEI. (2010). CMMI for Development. Version 1.3 Technical Report (CMU/SEI-2010-TR-033).Software Engineering Institute, Carnegie Mellon University, http://www.sei.cmu.edu/library/abstracts/reports/10tr033.cfm. Accessed 1 Dec 2011.
Select Business Solutions (2011). Select Process Director. Select Business Solutions Inc. http://www.selectbs.com/process-improvement/select-process-director Accessed 25 Aug 2011.
Shalloway, A., & Trott, J. (2005). Design patterns explained: A new perspective on object-oriented design. Addison-Wesley. ISBN:9780321247148.
Sommerville, I. (2004). Software Engineering (7th Edition). Addison Pearson Education. ISBN:9788177585308.
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.
Visaggio, G. (2009). Knowledge base and experience factory for empowering competitiveness. Software Engineering LNCS. doi:10.1007/978-3-540-95888-8_9.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
García Guzmán, J., Martín, D., Urbano, J. et al. Practical experiences in modelling software engineering practices: The project patterns approach. Software Qual J 21, 325–354 (2013). https://doi.org/10.1007/s11219-012-9177-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-012-9177-8