Practical experiences in modelling software engineering practices: The project patterns approach
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.
KeywordsSoftware process improvement Knowledge management Process patterns Process modelling Empirical study
- 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
- 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.
- 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.
- 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.Google Scholar
- 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.Google Scholar
- 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.Google Scholar
- Gamma, E., Johnson, R., Helm, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading, MA: Addison-Wesley.Google Scholar
- Garcia, S., & Turner, R. (2006). CMMI® survival guide: just enough process improvement. Addison-Wesley Professional, ISBN:978-0-321-49178-7.Google Scholar
- Group Processworks (2011). EzyLib Process Asset Libraries. http://www.processworksgroup.com Accessed 1 Dec 2011.
- Jalote, P. (2002). Software project management in practice. Addison-Wesley Longman Publishing Co., Inc. ISBN:0-201-73721-3.Google Scholar
- Juristo, N., & Moreno, A. M. (2001). Basics of software engineering experimentation. Kluwer, ISBN:0-7923-7990-X.Google Scholar
- 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
- 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).Google Scholar
- 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.
- 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.
- 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.
- 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
- 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.Google Scholar
- Sommerville, I. (2004). Software Engineering (7th Edition). Addison Pearson Education. ISBN:9788177585308.Google Scholar