Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/1022385.1022403guidebooksArticle/Chapter ViewAbstractPublication PagesBookacm-pubtype
chapter

Support software evolution with abstration rules and programming knowledge patterns

January 2004
Pages 177 - 189
Published: 01 January 2004 Publication History

Abstract

This paper advocates that reengineering is an effective means of legacy system evolution. Extracting formal specification semantically consistent to the original legacy system will facilitate further redesign and forward engineering greatly. The key technology is abstraction, which is often interpreted as the act of hiding irrelevant details.Programming knowledge refers to the "technique" or "convention" that a programmer used to implement an application. The structure of an existing program was heavily affected by this kind of knowledge. A set of programming knowledge patterns are developed to discover the programming knowledge embedded in legacy systems. Implementation details can be eliminated effectively with these patterns and relevant abstraction rules.A unified reengineering approach with a focus on reverse engineering is proposed. The approach is based on three points: the construction of a wide spectrum language based reengineering framework, the development of abstraction rules and programming knowledge patterns.

References

[1]
{1} ARANGO, G., BAXTER, I., FREEMAN, P., AND PIDGEON, C. TMM: Software maintenance by transformation. IEEE Software (May 1986), 27-39.
[2]
{2} BALMAS, F. Prisme: Formalizing programming strategies as a way to understand programs. In Eighth International Conference on Software Engineering and Knowledge Engineering (Lake Tahoe, Nevada, June 1996), IEEE Computer Society.
[3]
{3} BENNETT, K. H., BULL, T., AND YANG, H. A transformation system for maintenance--turning theory into practice. In IEEE Conference on Software Maintenance-1992 (Orlando, Florida, November 1992).
[4]
{4} CAU, A., AND ZEDAN, H. Refining interval temporal logic specifications. In the 4th AMAST Workshop on Real-Time systems, Concurrent, and Distributed Software (ARTS'97) (Mallorca, Spain, May 1997).
[5]
{5} CHENG, B. H. C. Applying formal methods in automated software development. Journal of Computer and Software Engineering 2 (Feburary 1994), 137-164.
[6]
{6} CHENG, B. H. C., AND JENG, J. J. Reusing analogous components. IEEE Transactions on Knowledge and Data Engineering (November 1994).
[7]
{7} DIJKSTRA, E. W. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, New Jersey, 1976.
[8]
{8} DIJKSTRA, E. W., AND SCHOLTEN, C. S. Predicate Calculus and Program Semantics. Springer-Verlag, 1990.
[9]
{9} ENGBERTS, A., KOZACZYNSKI, W., AND NING, J. Concept recognition-based program transformation. In IEEE Conference on Software Maintenance-1991 (Sorrento, Italy, 1991), pp. 73-82.
[10]
{10} HOWDEN, W. E., AND PAK, S. Problem domain, strutural and logical abstractions in reverse engineering. In Proceedings of the International Conference on Software Maintenance 1992 (November 1992), IEEE Computer Society Press, pp. 214-224.
[11]
{11} LIU, X. Abstraction: A notion for reverse engineering. PhD Thesis, De Montfort University (1999).
[12]
{12} LIu, X., YANG, H., AND ZEDAN, H. Formal methods for the re-engineering of computing systems. In the Proceedings of The 21st IEEE International Conference on Computer Software and Application (COMPSAC'97) (Washington, D.C., August 1997), IEEE Computer Society, pp. 409-414.
[13]
{13} MOSZKOWSKI, B. Executing Temporal Logic Programs. Cambridge University Press, Cambridge UK, 1986.
[14]
{14} SCHOLEFIELD, D., ZEDAN, H., AND HE, J. A specification-oriented semantics for the refinement of real-time systems. Theoretical Computer Science 130 (August 1994).
[15]
{15} YANG, H., AND BENNETT, K. H. Aquairing entity-relationship attribute diagrams from code and data through program transformation. In IEEE International Conference on Software Maintenance (ICSM '95) (Nice, France, October 1995).
[16]
{16} YANG, H., LIU, X., AND ZEDAN, H. Tackling the abstraction problem for reverse engineering in a system re-engineering approach. In the proceedings of the IEEE Conference on Software Maintenance (ICSM'98) (Metropolitan, Washington D.C., USA, November 1998), IEEE Computer Society.
[17]
{17} M. GOOSSENS, F. MITTELBACH, AND A. SAMARIN, The LATEX Companion, Addison-Wesley, Reading, MA, 1994.
[18]
{18} N. J. HIGHAM, Handbook of Writing for the Mathematical Sciences, Society for Industrial and Applied Mathematics, Philadelphia, PA, 1993.
[19]
{19} L. LAMPORT, LATEX: A Document Preparation System, Addison-Wesley, Reading, MA, 1986.
[20]
{20} R. SEROUL AND S. LEVY, A Beginner's Book of TEX, Springer-Verlag, Berlin, New York, 1991.

Recommendations

Reviews

Ed Harcourt

Teng and Liu have the ambitious goal of providing a language and methodology for deriving formal specifications from legacy software systems. The language, reengineering wide spectrum language (RWSL), is intended to be a domain independent target language. The authors posit that a translator exists for each legacy programming language (for example, C++). They then propose a process where a legacy system is automatically translated into a RWSL program, and then processed using abstraction rules to derive a specification in a temporal logic. Additionally, the RWSL program is analyzed manually, to extract programmer intent, by applying a set of knowledge patterns that capture how programmers solve common problems. The process is clearly described, and follows the general outline of other reverse engineering methodologies. The unique aspect the chapter introduces is the use of RWSL, and the conversion to temporal logic. It is difficult to ascertain whether the process can be applied to real legacy systems, since no RWSL translators exist, and the translation in the case study was done by hand. Furthermore, the example case study is rather simple, and clearly not indicative of the complexity one would encounter if the process was being applied to a real large-scale legacy system. However, there is anecdotal evidence that these tools can be written, since the object-oriented community has been providing, for quite some time, reverse engineering tools that generate unified modeling language (UML) models from legacy source code. While the use of the temporal logic to capture specification is sound, the set of knowledge patterns that the authors provide seems capricious, especially since the authors don't mention the vast amount of work in reverse engineering that can be found in the program refactoring literature. This more mature refactoring community has identified a wide array of knowledge patterns that do not appear to coincide at all with the authors' patterns. The chapter also suffers from a variety of grammatical problems, and needs editing. Why the chapter appears in a work dedicated to computational neurobiology is unclear. On the whole, a software practitioner interested in reverse engineering legacy systems is probably better served by refactoring research (see http://www.refactoring.com). On the other hand, researchers interested in reverse engineering will find here a general overview of a viable process, but with lots of missing details. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide books
Focus on computational neurobiology
January 2004
217 pages
ISBN:1590339150

Publisher

Nova Science Publishers, Inc.

United States

Publication History

Published: 01 January 2004

Author Tags

  1. abstraction
  2. programming knowledge
  3. reverse engineering
  4. software evolution
  5. system reengineering
  6. time critical systems

Qualifiers

  • Chapter

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media