Skip to main content
Log in

Patterns as objects to manage knowledge in software development organizations

Knowledge Management Research & Practice

Abstract

The application of knowledge management strategies is essential to solve several process improvement problems in software engineering organizations. In this area, the definition and use of process patterns is an approach that several authors have extensively discussed. Nevertheless, one of the problems is the difficulty of formalizing the knowledge about the development process using patterns. This article presents the sdPP (Software Development Project Pattern) to support the management of knowledge objects that encapsulate information about the recommended practices to develop specific software projects, including explicit and tacit knowledge on software engineering effective practices. The proposal comprises a data model to define the sdPPs as knowledge objects and a tool to manage their life cycle. The authors carried out an experimental validation where 48 junior software engineers applied the sdPP framework. From the results obtained, we discuss the factors that facilitate the correct creation of sdPPs and the improvement of software product quality using the sdPP proposal. We also analyse the effort to implement the sdPP proposal to introduce knowledge management practices in software development projects and determine usefulness of the knowledge assets to adapt the sdPP framework for effective knowledge sharing in software engineering organizations.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10

References

  • Alexander C, Ishikawa S, Silverstein M, Jacobson M, Fiksdahl-King I and Angel S (1978) A Pattern Language: Towns, Buildings, Construction. Oxford University Press, Oxford.

    Google Scholar 

  • Allan J et al (2003) The Lemur toolkit for language modelling and information retrieval. The Lemur Project. [WWW document] http://lemurproject.org (accessed 25 January 2012).

  • Allison I and Merali Y (2007) Software process improvement as emergent change: a structurational analysis. Information and Software Technology 49 (6), 668–681.

    Article  Google Scholar 

  • Amescua A, Bermon L, García J and Sánchez-Segura MI (2010) Knowledge repository to improve agile development processes learning. IET Software 4 (6), 434–444.

    Article  Google Scholar 

  • Apache Jakarta (2005) Apache Lucene a high performance, full-featured text search engine library. The Apache Software Foundation [WWW document] http://jakarta.apache.org/ (accessed 12 March 2012).

  • Ardimento P, Baldassarre MT, Cimitile M and Visaggio G (2009) Empirical validation of knowledge packages as facilitators for knowledge transfer. Journal of Information & Knowledge Management 8 (3), 229–240.

    Article  Google Scholar 

  • Aurum A, Daneshgar F and Ward J (2008) Investigating knowledge management practices in software development organisations – an Australian experience. Information and Software Technology 50 (6), 511–533.

    Article  Google Scholar 

  • Basili VR, Caldiera G and Rombach HD (2002) Experience factory. In Encyclopaedia of Software Engineering, Vol. 1 (MARCINIAK JJ, Ed), pp 511–518, John Wiley & Sons, New York.

    Google Scholar 

  • Beck K (1999) Extreme Programming Explained: Embrace Change. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.

    Google Scholar 

  • Becker CH (2010) Using eXtreme Programming in a Student Environment. GRIN Publishing GmbH, Munich.

    Google Scholar 

  • Berczuk SP and Appleton B (2003) Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.

    Google Scholar 

  • Birkinshaw J and Sheehan T (2002) Managing the knowledge life cycle. MIT Sloan Management Review 44 (1), 75–83.

    Google Scholar 

  • BjØrnson FO and DingsØyr T (2008) Knowledge management in software engineering: a systematic review of studied concepts, findings and research methods used. Information and Software Technology 50 (11), 1055–1068.

    Article  Google Scholar 

  • Boehm B, Abts C, Brown AW, Chulani S, Clark BS, Horowitz E, Madachy R, Reifer DJ and Steece B (2000) Software Cost Estimation with Cocomo II. Prentice-Hall PTR, Upper Saddle River, NJ.

    Google Scholar 

  • Borges LMS and Falbo RA (2002) Managing software process knowledge. In Proceedings of the International Conference on Computer Science, Software Engineering, Information Technology, e-Business and Applications CSITea’2002, (DEBNATH N, Ed), pp 227–232, Foz do Iguazu, Brazil.

  • Buschmann F, Henney K and Schmidt DC (2007) Pattern-oriented Software Architecture: A System of Patterns. John Wiley & Sons, Inc., New York, NY.

    Google Scholar 

  • Calvo-Manzano JA, Cuevas G, Feliu TS and Serrano A (2008) Process asset library to support software process improvement in small settings. In Proceedings of the 15th European Systems and Software Process Improvement and Innovation (EuroSPI) (O'CONNOR RV, BADOO N, SMOLANDER K, MESSNARZ R, Eds), Software Process Improvement, 3–5 September, 16, pp 25–35, Dublin, Ireland; Springer, Berlin, Heidelberg.

  • DingsØyr T, BjØrnson FO and Shull F (2009) What do we know about knowledge management? Practical implications for software engineering. IEEE Software 26 (3), 100–103.

    Article  Google Scholar 

  • Eclipse (2011) EPF composer. [WWW document] http://www.eclipse.org/epf/general/description.php (accessed 12 March 2012).

  • Feinerer I and Hornik K (2011) WordNet: WordNet interface. [WWW Document] http://cran.r-project.org/package=wordnet (accessed 12 March 2012).

  • Fowler M (2003) Patterns of Enterprise Application Architecture. Addison-Wesley Professional, Boston, MA.

    Google Scholar 

  • Freeze TR and Kulkarni U (2011) Understanding the composition of knowledge management capability. In Ubiquitous Developments in Knowledge Management: Integrations and Trends. (JENNEX ME, Ed), pp 88–104, IGI Global, San Diego.

    Google Scholar 

  • Gamma E, Johnson R, Helm R and Vlissides J (1995) Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley, Reading, MA.

    Google Scholar 

  • García J, Amescua A, Sánchez M-I and Bermón L (2011) Design guidelines for software processes knowledge repository development. Information and Software Technology 53 (8), 834–850.

    Article  Google Scholar 

  • Group Processworks (2011) EzyLib process asset libraries. [WWW Document] http://www.processworksgroup.com (accessed 12 March 2012).

  • Ivarsson M and Gorschek T (2012) Tool support for disseminating and improving development practices. Software Quality Journal 20 (1), 173–199.

    Article  Google Scholar 

  • Jalote P (2002) Software Project Management in Practice. Addison-Wesley Professional, New York.

    Google Scholar 

  • Kroll P and Kruchten P (2003) The Rational Unified Process Made Easy: A Practitioner's Guide to the Rational Unified Process. Addison Wesley, Reading, MA.

    Google Scholar 

  • Kneuper R. (2002) Supporting software processes using knowledge management. In Handbook of Software Engineering and Knowledge Engineering, Vol. 2 (CHANG SK, Ed), World Scientific Publishing Company, Singapore.

    Google Scholar 

  • Landaeta JF, García J and Amescua A (2008) Practical SPI planning. Software process improvement. Communications in Computer and Information Science 16 (3), 82–93.

    Article  Google Scholar 

  • Larman C (2004) Agile and Iterative Development: A Manager's Guide. Addison Pearson Education, Boston, MA.

    Google Scholar 

  • Llorens J, Morato J and Genova G (2004) RHSP: an information representation model based on relationship. In Studies in Fuzziness and Soft Computing, Soft Computing in Software Engineering (DAMIANI E, JAIN LG and MADRAVIO M, Eds), pp 221–253, Springer-Verlag, Berlin Heidelberg.

    Google Scholar 

  • Martín D, García J, Amescua A and Llorens J (2007) Reusable project patterns to enhance software process improvement. In EuroSPI’2007 Industrial Proceedings (European Systems and Software Process Improvement and Innovation Conference), 2007, pp 3.25–3.34, ASQF, Potsdam, Germany.

  • Mathiassen L, Ngwenyama OK and Aaen I (2005) Managing change in software process improvement. IEEE Software 22 (6), 84–91.

    Article  Google Scholar 

  • Maurer F and Holz H (2002) Integrating process support and knowledge management for virtual software development teams. Annals of Software Engineering 14 (1–4), 145–168.

    Article  Google Scholar 

  • May D and Taylor P (2003) Knowledge management with patterns. Communications of the ACM 46 (7), 94–99.

    Article  Google Scholar 

  • Medina-Dominguez F, Sanchez-Segura M-I, Mora-Soto A and 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 53 (4), 595–607.

    Article  Google Scholar 

  • Merrill MD (2000) Knowledge objects and mental models. In Proceedings of the International Workshop on Advanced Learning Technologies, pp 244–246, doi: 10.1109/IWALT.2000.890621.

  • Microsoft Corporation (2010) Visual Studio 2010 Ultimate. [WWW Document] http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate (accessed 12 March 2012).

  • Nold HA (2011) Making knowledge management work: tactical to practical. Knowledge Management Research & Practice 9 (1), 84–94.

    Article  Google Scholar 

  • Nonaka I and Takeuchi H (1995) The Knowledge Creating Company. Oxford University Press, New York, NY.

    Google Scholar 

  • Nonaka I, von Krogh G. and Voelpel S (2006) Organisational knowledge creation theory: evolutionary paths and future advances. Organisation Studies 27 (8), 1179–1208.

    Article  Google Scholar 

  • OMG (2007) OMG unified modelling language (OMG UML), infrastructure, V2.1.2. [WWW document] http://www.omg.org/spec/UML/2.1.2/Infrastructure/PDF (accessed 25 January 2012).

  • Osellus (2011) IRIS process author. [WWW document] http://www.osellus.com/IRIS-PA (accessed 12 March 2012).

  • Pino F, García F and Piattini M (2008) Software process improvement in small and medium software enterprises: a systematic review. Software Quality Journal 16 (2), 237–261.

    Article  Google Scholar 

  • Rus I and Lindvall M (2002) Knowledge management in software engineering. IEEE Software 19 (3), 26–38.

    Article  Google Scholar 

  • Sanchez-Segura MI, Medina-Dominguez F, De Amescua A and Mora-Soto A (2010) Improving the efficiency of use of software engineering practices using product patterns. Information Sciences 180 (14), 2721–2742.

    Article  Google Scholar 

  • Schwaber K and Beedle M (2008) Agile Software Development with Scrum. Pearson Education, Ltd., Upper Saddle River, NJ.

    Google Scholar 

  • Scott L, Carvalho L and Jeffery R (2002) A process-centred experience repository for a small software organisation. In Ninth Asia-Pacific Software Engineering Conference, 2002, pp 603–609. doi: 10.1109/APSEC.2002.1183096.

  • Select Business Solutions (2011) Select process director. [WWW document] http://www.selectbs.com/process-improvement/select-process-director (accessed 12 March 2012).

  • Shalloway A and Trott J (2005) Design Patterns Explained: A New Perspective on Object-oriented Design. Addison-Wesley, Boston, MA.

    Google Scholar 

  • Software Engineering Institute, SEI (2006) CMMI for development. Version 1.2. Pittsburgh, USA, Technical Report CMU/SEI-2006-TR-008.

  • Sommerville I (2004) Software Engineering, 7th edn, Addison Pearson Education, Edinburgh Gate, Harlow, England.

    Google Scholar 

  • Verma A and Tiwari MK (2009) Role of corporate memory in the global supply chain environment. International Journal of Production Research 47 (19), 5311–5342.

    Article  Google Scholar 

  • Visaggio G (2009) Knowledge base and experience factory for empowering competitiveness. In Software Engineering (DE LUCIA A and FERRUCCI F, Eds), pp 223–256, Springer, Berlin/Heidelberg.

    Chapter  Google Scholar 

  • Wei P, Jacobson I and Spence I (2007) Enough of processes – let's do practices. Journal of Object Technology 6 (6), 41–66.

    Article  Google Scholar 

  • Yin RK (2003) Case Study Research: Design and Methods, 3rd edn, Sage Publications, Thousand Oaks, CA.

    Google Scholar 

  • Zack M.H. (1999) Developing a knowledge strategy. California Management Review 41 (3), 125–145.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Diego Martín.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Martín, D., Guzmán, J., Urbano, J. et al. Patterns as objects to manage knowledge in software development organizations. Knowl Manage Res Pract 10, 252–274 (2012). https://doi.org/10.1057/kmrp.2012.15

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1057/kmrp.2012.15

Keywords

Navigation