Abstract
Experience-based approaches to software development promise to capture critical knowledge from software projects that can be used as a basis for continuous improvement of software development practices. Putting these ideas into practice in the quickly evolving discipline of software engineering has proven elusive. Techniques and tools are needed that help software practitioners apply past knowledge to current projects while engaging in knowledge creation processes. This paper outlines the experience factory and organizational learning approaches, both of which explore how experience-based approaches to software development can be used to improve software development practices. A software tool is used to investigate how these two approaches can be integrated to create an approach that addresses many issues of knowledge management in the software engineering field.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aamodt, A., Plaza, E.: Case-Based Reasning: Foundational Issues, methodological Variations, and System Approaches. AI Communications 7(1), 39–52 (1994)
Aha, D.W., Weber, R.: Intelligent Lessons Learned Systems: Papers from the 2000 Workshop. AAAI Press, Menlo Park (2000)
Althoff, K.-D., Birk, A., Hartkopf, S., Müller, W.: Managing Software Engineering Experience for Comprehensive Reuse. In: Ruhe, G., Bomarius, F. (eds.) SEKE 1999. LNCS, vol. 1756, pp. 10–19. Springer, Heidelberg (2000)
Althoff, K.-D., Birk, A., Tautz, C.: The Experience Factory Approach: Realizing Learning from Experience in Software Development Organizations. In: Tenth German Workshop on Machine Learning, University of Karlsruhe (1997)
Althoff, K.-D., Nick, M., Tautz, C.: Improving Organizational Memories through User Feedback. In: 2nd International Workshop on Learning Software Organizations (LSO 2000), Oulu, Finland, pp. 27–44 (2000)
Ambriola, V., Conradi, R., Fuggetta, A.: Assessing Process-Centered Software Engineering Environments. ACM Transactions of Software Engineering and Methodology 6(3), 283–328 (1997)
Bandinelli, S., DiNitto, E., Fuggetta, A.: Supporting Cooperation in the SPADE-1 Environment. Transactions on Software Engineering 22(12), 841–865 (1996)
Basili, V., Caldiera, G., Rombach, D.: Experience Factory. In: Encyclopedia of Software Engineering, pp. 469–476. Wiley & Sons, Chichester (1994)
Basili, V., Lindvall, M., Costa, P.: Implementing the Experience Factory Concepts as a Set of Experience Bases. In: International Conference on Software Engineering and Knowledge Engineering (SEKE 2001), Buenos Aires, Argentina (2001)
Basili, V.R., Caldiera, G., Cantone, G.: A Reference Architecture for the Component Factory. ACM Transactions on Software Engineering and Methodology 1(1), 53–80 (1992)
Basili, V.R., Rombach, H.D.: The TAME Project: Towards Improvement-Oriented Software Environments. IEEE Transactions on Software Engineering 14(6), 758–773 (1988)
Belkhatir, N., Estublier, J., Melo, W.L.: Software Process Model and Work Space Control in the Adele System. In: 2nd International Conference on the Software Process, Berlin, FRG, pp. 2–11 (1993)
Belkin, N.: Helping People Find What They Don’t Know. Comm. of the ACM 43(8), 58–61 (2000)
Ben-Shaul, Z., Kaiser, G.E.: A Paradigm for Decentralized Process Modeling and its Realization in the Oz Environment. In: Proc. Sixteenth International Conference on Software Engineering, Sorrento, Italy, pp. 179–188 (1994)
Birk, A., Kröschel, F.: A Knowledge Management Lifecycle for Experience Packages on Software Engineering Technologies. In: 1st International Workshop on Learning Software Organizations (LSO 1999), Kaiserlautern, FRG, pp. 115–126 (1999)
Boehm, B.: Get Ready for Agile Methods, With Care. Computer 35(1), 64–69 (2002)
Boehm, B., A.W., B., Dincel, D., Port, D.: Guidelines for Model-Based (System) Architecting and Software Engineering (MBASE) v 2.2, Univ. of Southern California (January 2001)
Boehm, B.W.: A Spiral Model of Software Development and Enhancement. Computer 21(5), 61–72 (1988)
Cockburn, A.: Selecting A Project’s Methodology. IEEE Software 14(4), 64–71 (2000)
Conradi, R., Liu, C.: Process Modeling Languages: One or Many? In: 5th European Workshop on Software Process Technology (EWSPT 1995), Noordwijkerhout, The Netherlands, pp. 98–118 (1995)
Cugola, G.: Tolerating Deviations in Process Support Systems via Flexible Enactment of Process Models. IEEE Transactions on Software Engineering 24(11), 982–1000 (1998)
Curtis, B., Kellner, M.I., Over, J.: Process Modeling. Communications of the ACM 35(9), 75–90 (1992)
Decker, B., Althoff, K.D., Nick, M.: Integrating Business Process and Lessons Learned with an Experience Factory. In: 1st German Conference on Professional Knowledge Management (2001)
Devanbu, P., Brachman, R.J., Selfridge, P.G., Ballard, B.W.: LaSSIE: A Knowledge- Based Software Information System. Communications of the ACM 34(5), 34–49 (1991)
Dieters, W., Gruhn, V.: Managing Software Processes in the Environment MELMAC. In: 4th ACM SIGSOFT Symposium on Software Development Environments, Irvine, CA, pp. 193–205 (1990)
Dunbar, S., Goddard, S., Henninger, S., Elbaum, S.: Bootstrapping the Software Design Studio. In: Fifth Annual National Collegiate Inventors and Innovators Alliance Naitonal Conference, Washington, DC, pp. 180–188 (2001)
Dybå, T.: Improvisation in Small Software Organizations. IEEE Software 17(5), 82–87 (2000)
Feldmann, R., Nick, M., Frey, M.: Towards Industrial-Strength Measurement Programs for Reuse and Experience Repository Systems. In: 2nd International Workshop on Learning Software Organizations (LSO 2000), Oulu, Finland, pp. 7–18 (2000)
Fernström, C.: PROCESS WEAVER: Adding Process Support to UNIX. In: 2nd International Conference on the Software Process: Continuous Software Process Improvement, Berlin, FRG, pp. 12–26 (1993)
Fischer, G., Lemke, A., Schwab, T.: Knowledge-Based Help Systems. In: Proc. Human Factors in Computing Systems (CHI 1985), pp. 161–167 (1985)
Garg, P.K., Mi, P., Pham, T., Scacchi, W., Thunquest, G.: The SMART Aproach for Software Process Engineering. In: International Conference on Software Engineering (ICSE 1994), Sorrento, Italy, pp. 341–350 (1994)
Garg, P.K., Pham, T., Beach, B., Deshpande, A., Ishizaki, A., Wentzel, W., Fong, W.: Matisse: A Knowledge-based Team Programming Environment. International Journal of Software Engineering and Knowledge Engineering 4(1), 17–59 (1994)
Golding, A., Rosenbloom, P.S.: Improving Rule-Based Systems Through Case-Based Reasoning. In: Proc. 9th National Conference on Artificial Intelligence, Anaheim, CA, pp. 22–27 (1991)
Grundy, J.C., Hosking, J.G.: Serendipity: Integrated Environment Support for Process Modelling, Enactment and Work Coordination. Automated Software Engineering: An International Journal 5(1), 27–60 (1998)
Henninger, S.: Building an Organization-Specific Infrastructure to Support CASE Tools. Journal of Automated Software Engineering 3(3/4), 239–259 (1996)
Henninger, S.: Case-Based Knowledge Management Tools for Software Development. Journal of Automated Software Engineering 4(3), 319–340 (1997)
Henninger, S.: Software Process as a Means to Support Learning Software Organizations. In: Twenty-fifth Annual NASA Software Engineering Workshop, Greenbelt, MD (2000)
Henninger, S.: Supporting Software Development with Organizational Memory Tools. International Journal of Applied Software Technology 2(1), 61–84 (1996)
Henninger, S.: Tools Supporting the Creation and Evolution of Software Development Knowledge. In: Proceedings of the Automated Software Engineering Conference, Lake Tahoe, NV, pp. 46–53 (1997)
Henninger, S., Baumgarten, K.: A Case-Based Approach to Tailoring Software Processes. In: Aha, D.W., Watson, I. (eds.) ICCBR 2001. LNCS (LNAI), vol. 2080, pp. 249–262. Springer, Heidelberg (2001)
Henninger, S., Lappala, K., Raghavendran, A.: An Organizational Learning Approach to Domain Analysis. In: 17th International Conference on Software Engineering, Seattle, WA, pp. 95–104 (1995)
Kaiser, G.E., Popovich, S.S., Ben-Shaul, I.Z.: A Bi-Level Language for Software Process Modeling. In: Proc. Fifteenth International Conference on Software Engineering, Baltimore, Maryland (1993)
Kolodner, J.L.: Improving Human Decision Making through Case-Based Decision Aiding. AI Magazine 12(1), 52–68 (1991)
Lee, H., Osterweil, L.J.: HI-PLAN and Little-JIL: a Study of Contrast Between Two Process Languages. In: International Conference on Software Theory and Practice (ICS2000), Beijing, PRC, August 21-25 (2000)
Lindvall, M., Rus, I.: Process Diversity in Software Development. IEEE Software 17(4), 14–18 (2000)
March, J.G.: Exploration and Exploitation in Organizational Learning. Organizational Science 2(1), 71–87 (1991)
Mi, P., Scacchi, W.: Modeling Articulation Work in Software Engineering Processes. In: 1st International Conference on the Software Process, Redondo Beach, CA, pp. 188–201 (1991)
Muñoz-Avila, H., Aha, D.W., Breslow, L.A., Nau, D.S., Weber, R.: Integrating Conversational Case Retrieval with Generative Planning. In: Proc. 5th European Workshop on Case Based Reasoning, Trento, Italy, pp. 322–334 (2000)
Nau, D., Cao, Y., Lotem, A., Muñoz-Avila, H.: SHOP: Simple Hierarchical Ordered Planner. In: Proc. 16th International Conference on Case-Based Reasoning, Stockholm, pp. 968–973 (1999)
Nick, M., Althoff, K.-D., Tautz, C.: Systematic Maintenance of Corporate Experience Factories. Computational Intelligence 17(2), 364–386 (2001)
Oivo, M., Basili, V.R.: Representing Software Engineering Models: The TAME Goal Oriented Approach. IEEE Transactions on Software Engineering 18(10), 886–898 (1992)
Osterweil, L.: Software Processes are Software Too. In: Ninth International Conference on Software Engineering, Monterey, CA, pp. 2–13 (1987)
Paulson, L.D.: Adapting Methodologies for Doing Software Right. IT Pro, 13–15 (July/August 2001)
Pearce, M., Goel, A.K., Kolodner, J.L., Zimring, C., Sentosa, L., Billington, R.: Case-Based Design Support: A Case Study in Architectural Design. IEEE Expert 7(5), 14–20 (1992)
Schultz, D., Bachman, J., Landis, L., Stark, M., Meyers, G., Godfrey, S., Tilley, M.: A Matrix Approach to Software Process Definition. In: 25th Annual Software Engineering Workshop (2000)
Sutton, S.M., Heimbinger, D., Osterweil, L.J.: APPL/A: A Language for Software Process Programming. Transactions on Software Engineering and Methodology 4(3), 21–286 (1995)
Tautz, C., Althoff, K.-D.: Using Case-Based Reasoning for Reusing Software Knowledge. In: Leake, D.B., Plaza, E. (eds.) ICCBR 1997. LNCS, vol. 1266, pp. 156–165. Springer, Heidelberg (1997)
Terveen, L.G., Selfridge, P.G., Long, M.D.: Living Design Memory - Framework, Implementation, Lessons Learned. Human-Computer Interaction 10(1), 1–37 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Henninger, S. (2003). Tool Support for Experience-Based Methodologies. In: Henninger, S., Maurer, F. (eds) Advances in Learning Software Organizations. LSO 2002. Lecture Notes in Computer Science, vol 2640. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40052-3_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-40052-3_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20591-3
Online ISBN: 978-3-540-40052-3
eBook Packages: Springer Book Archive