Skip to main content
Log in

Analogy-based domain analysis approach to software reuse

  • Original Research
  • Published:
Requirements Engineering Aims and scope Submit manuscript

Abstract

Domain analysis is an expansion of conventional requirements analysis. Domain analysis can support effective software reuse. However, domain analysis is time consuming and is limited to a particular application area. Analogical approaches to software reuse, on the other hand, often occur across domains. Analogical problem solving is a process of transferring knowledge from a well-understood base domain to a new target problem area. Analogy can facilitate software reuse for poorly understood problems or new application areas. Analogy shares similar concepts with reuse and some analogy theories have been applied to software reuse. However, current research on software analogy often overlooks the importance of analysis for the base domain and does not consider some critical aspects of analogy concepts. Reuse must be based on high quality artifacts, especially reuse across domains. This paper presents an approach to integrate domain analysis and analogy methods. In our view, domain analysis and software analogy have complementary roles. Domain analysis is regarded as a process to identify and supply necessary information for analogical transfer. Software analogy can provide the analyst with similar problems and solutions to reuse previous domain analysis knowledge or artifacts for a new domain. This paper presents case studies to demonstrate the increase of efficiency in applying the approach. Evaluation of the approach from various perspectives is also reported.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

References

  • Aamodt A, Plaza E (1994) Case-based reasoning: foundational issues, methodological variations, and system approaches. Artif Intell Commun 7(1):39–59

    Google Scholar 

  • Arango G, Schoen E, Pettengill R (1993) A process for consolidating and reusing design knowledge. In: proceedings of the 15th international conference on software engineering, pp 231–242

  • Basili VR, Caldiera G, Cantone G (1992) A reference architecture for the component factory. ACM Trans Softw Eng Meth 1(1):53–80

    Article  Google Scholar 

  • Batory D et al (1994) The GenVoca model of software system generators. IEEE Software, pp 89–94

  • Bejar II, Chaffin R, Embretson S (1991) Cognitive and psychometric analysis of analogical problem solving. Springer, Berlin Heidelberg New York

  • Bhansali S (1993) Architecture-driven reuse of code in KASE. In: proceedings of the 5th conference on software engineering and knowledge engineering, pp 483–490

  • Biggerstaff TJ (1992) An assessment and analysis of software reuse. Adv Comput 34:1–57

    Google Scholar 

  • Borgida A, Greenspan S, Mylopoulos J (1985) Knowledge representation as the basis for requirements specifications. IEEE Comput Mag, pp 82–91

  • Bjornestad S (2003) Analogical reasoning for reuse of object-oriented specifications. In: proceedings of the 5th international conference on case-based reasoning, pp 54–60

  • Chalmers DJ, French RM, Hofstadter DR (1992) High-level perception, representation, and analogy: a critique of artificial intelligence methodology. J Exp Theor Artif Intell 4:185–211

    Google Scholar 

  • Chiang C-C, Neubart D (1999) Constructing reusable specifications through analogy. In: proceedings of symposium on applied computing, pp 586–592

  • Czarnecki K, Eisenecker UW (2000) Generative programming, methods, tools, and applications. Addison-Wesley, Reading, MA, USA

  • Desouza KC, Awazu Y, Tiwana A (2006) Four dynamics for bringing use back into software reuse. Commun ACM 49(1):96–100

    Article  Google Scholar 

  • Falkenhainer B, Forbus KD, Gentner D (1989) The structure-mapping engine: algorithm and examples. Artif Intell 41:1–63

    Article  MATH  Google Scholar 

  • Finkelstein A (1988) Re-use of formatted requirements specifications. Softw Eng J 186–197

  • Forbus KD (2000) Exploring analogy in the large. In: Gentner D, Holyoak K, Kokinov B (eds) Analogy: perspectives from cognitive science, MIT, Cambridge

  • Garot JM, Weathers D, Hawker T (1987) Evaluating proposed architectures for the FAA’s advanced automation system. Computer 20(2):33–46

    Google Scholar 

  • Gennari John H, Altman Russ B, Musen Mark A (1995) Reuse with PROTEGE-II: from elevators to ribosomes. In: proceedings of the symposium on software reusability, pp 72–80

  • Gentner D (1983) Structure-mapping: a theoretical framework for analogy. Cogn Sci 7(2):155–170

    Article  Google Scholar 

  • Gentner D (1989) Mechanisms of analogical learning. In: Vosniadou S, Ortony A (eds) Similarity and analogical reasoning. Cambridge University Press, Cambridge

  • Gentner D, Holyoak KJ, Kokinov BN (eds) (2001) The analogical mind: perspectives from cognitive science. MIT, Cambridge

  • Grosser D et al (2003) Analogy-based software quality prediction. In: proceedings of the 7th workshop on quantitative approach in object-oriented software engineering

  • Hamza HS, Fayad ME (2005) Stable atomic knowledge pattern (SAK)—enabling inter-domain knowledge reuse. In: proceedings of the 17th international conference on software engineering and knowledge engineering, pp 127–132

  • Hanson SJ (1983) Conceptual clustering and categorization. In: Kodratoff Y, Michalski R (eds) Machine learning: an artificial intelligence approach, vol. 3. Morgan Kaufmann Publishers Inc.,USA, pp 235–268

  • Harandi MT (1993) The role of analogy in software reuse. In: proceedings of the symposium on applied computing, pp 40–47

  • Hoffman, Robert R (1995) Monster analogies. AI Mag 16(3):11–35

    Google Scholar 

  • Holyoak KJ, Thagard P (1989) Analogical mapping by constraint satisfaction. Cogn Sci 13:295–355

    Article  Google Scholar 

  • Idri A et al (2002) Estimating software project effort by analogy based on linguistic values. In: proceeding of the 8th symposium on software metrics

  • Jacobson I, Griss M, Jonsson P (1997) Software reuse architecture, process, and organization for business success. Addison-Wesley, Reading, MA, USA

  • Jones C (2000) Software assessments, benchmarks, and best practices. Addison-Wesley, Reading, MA, USA

  • Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (FODA) feasibility study. Technical report CMU/SEI-90-TR-21

  • Kedar-Cabelli S (1988) Analogy—from a unified perspective. In: Helman DH (ed) Analogical reasoning. Kluwer, New York pp 65–104

  • Krueger CW (1992) Software reuse. ACM Comput Surv 24(2):131–183

    Article  MathSciNet  Google Scholar 

  • Liskov BH, Zilles SN (1975) Specification techniques for data abstractions. IEEE Trans Softw Eng 1(SE-1):7–19

    Google Scholar 

  • Lung C-H (2002) Agile software architecture recovery through existing solutions and design patterns. In: proceedings of the 6th IASTED international conference on software engineering and applications, pp 539–545

  • Lung C-H, Urban JE (1993) Integration of domain analysis and analogical approach for software reuse. In: proceedings of the symposium on applied computing, pp 48–53

  • Lung C-H, Urban JE (1995a) An approach to the classification of domain models in support of analogical reuse. In: proceedings of the symposium on software reusability, pp 169–178

  • Lung C-H, Urban JE (1995b) An expanded view of domain modeling for software analogy. In: proceedings of the international computer software and applications conference, pp 77–82

  • Lung C-H, Cochran JK, Mackulak GT, Urban JE, (1994) Computer simulation software reuse by generic/specific domain modeling approach. Int J Softw Eng Knowl Eng 4(3):81–102

    Article  Google Scholar 

  • Lung C-H, Mackulak GT, Urban JE (2002) Software reuse and knowledge transfer through analogy and design patterns. In: proceedings of the international conference on software engineering research and practice, pp 618–624

  • MacLean A et al (1991) Reaching through analogy: a design rationale perspective on roles of analogy. In: proceedings of the conference on human factors in computing systems, pp 167–172

  • Maiden NAM (1991) Analogy as a paradigm for specification reuse. Softw Eng J 6(1):3–15

    Article  Google Scholar 

  • Maiden NAM, Sutcliffe AG (1992) Exploiting reusable specifications through analogy. Commun ACM, 35(4):55–64

    Article  Google Scholar 

  • Maiden NAM, Sutcliffe AG (1993) Requirements engineering by example: an empirical study. In: proceedings of the international symposium on requirements engineering, pp 104–111

  • Massonet P, van Lamsweerde A (1997) Analogical reuse of requirements frameworks. In: proceedings of the 3rd international symposium on requirements engineering, pp 26–37

  • Mineau GW (1990) Browsing through knowledge: learning by comparing generalization. In: proceedings of the international conference on advanced research on computers in education, pp 261–266

  • Mineau GW, Godin R, Missaoui R (1993) Induction of generic data models by conceptual clustering.In: proceedings of the 5th international conference on software engineering and knowledge engineering, pp 554–564

  • Miriyala K, Harandi MT (1989) Analogical approach to specification derivation. In: proceedings of the 5th international workshop on software specification and design, pp 203–210

  • Moore JM, Bailin SC (1991) Domain analysis: framework for reuse. In: Tutorial on domain analysis and software systems modelling. IEEE Computer Society Press, pp 179–204

  • Morrison CT, Dietrich E (1995) Structure-mapping versus high-level perception: the mistaken fight over the explanations of analogy. In: proceedings of the 17th annual conference of the cognitive science society, pp 678–682

  • Neal L (1990) Support for software design, development, and reuse through an example-based environment. In: proceedings of the 5th conference on knowledge-based software assistant, pp 176–182

  • Neighbors JM (1992) The evolution from software components to domain analysis. Int J Softw Eng Knowl Eng 2(3):325–354

    Article  Google Scholar 

  • Opdahl AL, Henderson-Sellers B, Barbier F (2003) Ontological analysis of whole–part relationships in OO-models. Inf Softw Technol 387–399

  • Pisan Y (2000) Extending requirement specifications using analogy. In: proceedings of the international conference on software engineering, pp 69–75

  • Prieto-Diaz R (1991) Implementing faceted classification for software reuse. Commun ACM 34(5):89–97

    Article  Google Scholar 

  • Prieto-Diaz R (1993) Status report: software reusability. IEEE Software 61–66

  • Prieto-Diaz R, Arango G (1991) Introduction and overview: domanin analysis concepts and research directions. In: Tutorial on domain analysis and software systems modeling. IEEE Computer Society Press, pp 9–32

  • Roberts N, Andersen DF, Deal RM, Garet MS, Shafeer WA (1983) Introduction to computer simulation: the system dynamics approach. Addison-Wesley, Reading, MA, USA

  • Silverman BG (1983) A good analogy and how to measure it. Technical report, Institute for Artificial Intelligence. The George Washington University

  • Silverman BG (1985) Software cost and productivity improvements: an analogical view. Comput 18(5):86–96

    Google Scholar 

  • Simos MA (1991) The growing of an organon: a hybrid knowledge-based technology and methodology for software reuse. In: Tutorial on domain analysis and software systems modelling, IEEE Computer Society Press, pp 204–221

  • Sowa JF, Majumdar AK (2003) Analogical reasoning. In: proceedings of international conference on conceptual structures

  • Spanoudakis G Constantopoulos P (1996) Analogical reuse of rquirements specifications: a computational model. Appl Artif Intell Int J 10(4):281–306

    Article  Google Scholar 

  • Sternberg RJ (1977) Intelligence, information processing, and analogical reasoning: the Componential Analysis of Human Abilities. Lawrence Erlbaum Associates, Hillsdale

    Google Scholar 

  • Talavage J, Hannam RG (1988) Flexible manufacturing systems in practice: application design, and dimulation. Marcel Dekker, New York

    Google Scholar 

  • UML (2005) UML resource page, http://www.uml.org/, last accessed date: Oct 17, 2005

  • Vitharana P, Zahemi F, Jain H (2003) Design, retrieval, and assembly in component-based software development. Commun ACM 46(11):97–102

    Article  Google Scholar 

  • Wartik S, Prieto-Diaz R (1992) Criteria for comparing reuse-oriented domain analysis approaches. Int J Softw Eng Knowl Eng 2(3):403–432

    Article  Google Scholar 

  • Yimam-Seid D, Kobsa A (2003) Expert finding systems for organizations: problem and domain analysis and the DEMOIR approach. J Organ Comput Electron Commer 13(1):1–24

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chung-Horng Lung.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Lung, CH., Urban, J.E. & Mackulak, G.T. Analogy-based domain analysis approach to software reuse. Requirements Eng 12, 1–22 (2007). https://doi.org/10.1007/s00766-006-0035-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00766-006-0035-8

Keywords

Navigation