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.
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
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
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
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
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
Falkenhainer B, Forbus KD, Gentner D (1989) The structure-mapping engine: algorithm and examples. Artif Intell 41:1–63
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
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
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
Holyoak KJ, Thagard P (1989) Analogical mapping by constraint satisfaction. Cogn Sci 13:295–355
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
Liskov BH, Zilles SN (1975) Specification techniques for data abstractions. IEEE Trans Softw Eng 1(SE-1):7–19
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
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
Maiden NAM, Sutcliffe AG (1992) Exploiting reusable specifications through analogy. Commun ACM, 35(4):55–64
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
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
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
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
Sternberg RJ (1977) Intelligence, information processing, and analogical reasoning: the Componential Analysis of Human Abilities. Lawrence Erlbaum Associates, Hillsdale
Talavage J, Hannam RG (1988) Flexible manufacturing systems in practice: application design, and dimulation. Marcel Dekker, New York
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
Wartik S, Prieto-Diaz R (1992) Criteria for comparing reuse-oriented domain analysis approaches. Int J Softw Eng Knowl Eng 2(3):403–432
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-006-0035-8