Constructing reusable specifications through analogy

Software reuse should not be limited to code alone. The design rationale of how software should be developed is too often ignored. Software reuse should be engineered as early as possible in the software development life cycle. The earlier reusability considerations are put into software development, the larger the payoff can be obtained from reuse. It has been suggested that successful specification reuse can assist requirements soffware engineers to develop more complete, more consistent, and more clearly defined specifications. Domain analysis has received much attention for effective reuse and is considered an expansion of requirements analysis. However, domain analysis is diffcult to start with problems that are ill understood or with new application domains. Analogy facilitates reuse among the different domains for either poorly understood problems or new applications. In this paper, specification reuse by analogy is proposed as an alternative method for supporting requirements analysis. A formal specification language, called TUG, is presented for writing reusable specifications through analogy. The use of this language to construct reusable specifications by analogy is illustrated with an example. Supporting reuse. through analogy at the specification phase provides several advantages: first, the linkage of analogical reasoning, domain analysis, and requirements and specification modeling are well connected; second, specifiers are encouraged to build specifications for reuse; and third, if the specifications are executable, reusable modules can be written, tested. and stored specifically for the purpose of reuse. With these facilities for reuse, specifiers can write specifications with ease and less effort. Permission to make digital or hard copies of all or part of this work for personal oc classroom use is ganted without fee provided that copies are not made a distributed for profit or commercid advantage and that copies bear this notice and the till citation on the frnt page. To copy otherwise. to republish, to post on servers or to redistribute to lists. requirea pria specific permission and/or a fee. SAC 99, San Antonio, Texas 01998 ACM l-S81 134864’99/0001 $5.00

[1]  Joseph A. Goguen,et al.  Parameterized Programming , 1984, IEEE Transactions on Software Engineering.

[2]  Dedre Gentner,et al.  Structure-Mapping: A Theoretical Framework for Analogy , 1983, Cogn. Sci..

[3]  Guillermo Arango,et al.  A process for consolidating and reusing design knowledge , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[4]  Ted J. Biggerstaff,et al.  An Assessment and Analysis of Software Reuse , 1992, Adv. Comput..

[5]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[6]  José Luiz Fiadeiro,et al.  Reuse of requirements and specifications: a formal framework , 1995, SSR '95.

[7]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Neil A. M. Maiden,et al.  Requirements engineering by example: an empirical study , 1993, [1993] Proceedings of the IEEE International Symposium on Requirements Engineering.

[9]  Will Tracz,et al.  Confessions of a used-program salesman: lessons learned , 1995, SSR '95.

[10]  Anne Elisabeth Haxthausen,et al.  The Raise Specification Language , 1992 .

[11]  Chia-Chu Chiang,et al.  Development of the TUG specification language to support specification reuse , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

[12]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[13]  Sanjay Bhansali Architecture-driven Reuse of Code in KASE , 1993, SEKE.

[14]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

[15]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[16]  Neil A. M. Maiden,et al.  Exploiting reusable specifications through analogy , 1992, CACM.

[17]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

[18]  Chia-Chu Chiang A software development paradigm with the tug specification language for developing reliable programs , 1996 .

[19]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[20]  Alfred V. Aho,et al.  The awk programming language , 1988 .

[21]  Neil A. M. Maiden,et al.  Analogy as a paradigm for specification reuse , 1991, Softw. Eng. J..

[22]  Jan A. Bergstra,et al.  Algebraic specification , 1989 .