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

skip to main content
10.5555/581506.581517acmotherconferencesArticle/Chapter ViewAbstractPublication PageshtConference Proceedingsconference-collections
Article

Software restructuring: implementing a code abstraction transformation

Published: 16 September 2002 Publication History

Abstract

Software restructuring is a form of perfective maintenance that modifies the structure of a program's source code. Its goal is increased maintainability to better facilitate other maintenance activities, such as adding new functionality to, or correcting previously undetected errors within a software system. Changes to the structure are introduced through the application of transformations. Manually transforming the source code may introduce undesirable as well as undetectable changes in the system's behaviour. It is very difficult to ensure that manual restructuring preserves functionality and guaranteeing it is almost impossible. The problems associated with manual restructuring can be addressed by using a restructuring tool to automatically apply transformations. The majority of restructuring tools apply transformations by manipulating abstract program representations and specify the conditions of the transformation in terms of the representation structure. The context entity graph as program representation was developed to support specific language constructs, but can be adapted to support a variety of programming languages. The implementation of a code abstraction transformation in terms of this structure is examined and various improvements are also suggested.

References

[1]
Aho, A. V., Sethi, R., and Ullman, J. D. 1986. Compilers: Principles, Techniques and Tools. Addison-Wesley.
[2]
Arnold, R. S. 1989. Software Restructuring. Proceedings of the IEEE 77, 4 (April), 607-617.
[3]
Baxter, I. D. 1999. Scaling for the Design Maintenance System. In Proceedings of the 1999 Conference on Software Transformation Systems. Los Angeles, California, 14-19.
[4]
Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., and Bier, L. 1998. Clone Detection Using Abstract Syntax Trees. In Proceedings of the International Conference on Software Maintenance. 368-377.
[5]
Bowdidge, R. W. 1995. Supporting the restructuring of data abstractions through manipulation of a program visualization. Ph.D. thesis, Department of Computer Science and Engineering, University of California, San Diego.
[6]
Burch, J. G. 1992. Systems Analysis, Design and Implementation. boyd and fraser publishing company.
[7]
Burstall, R. and Darlington, J. 1977. A Transformation System for Developing Recursive Programs. Journal of the ACM 24, 1 (January), 44-67.
[8]
Eloff, J. J. 2001. A Software Restructuring Tool for Oberon. M.S. thesis, Department of Computer Science, University of Stellenbosch.
[9]
Feather, M. S. 1982. A System for Assisting Program Transformation. ACM Transactions on Programming Languages and Systems 4, 1 (January), 1-20.
[10]
Fowler, M. 2000. Refactoring: Improving the Design of Existing Code. Object Technology Series. Addison Wesley.
[11]
Gallagher, K. 1991. Conditions to Assure Semantically Consistent Software Merges in Linear Time. In Third Conference on Configuration Management.
[12]
Griswold, W. G. 1991. Program restructuring as an aid to software maintenance. Ph.D. thesis, Department of Computer Science and Engineering, University of California, San Diego.
[13]
Harrold, M. J. and Malloy, B. 1993. A Unified Interprocedural Program Representation for a Maintenance Environment. IEEE Transactions on Software Engineering 19, 6 (June), 584-593.
[14]
Jorgensen, P. C. 1995. Software Testing: A Craftsman's Approach. CRC Press.
[15]
Kang, B.-K. and Bieman, J. M. 1999. A Quantitive Framework for Software Restructuring. Journal of Software Maintenance 11, 245-284.
[16]
Korman, W. F. 1998. Elbereth: Tool Support for Refactoring Java Programs. M.S. thesis, Department of Computer Science and Engineering, University of California, San Diego.
[17]
Lamb, D. A. and Putman, D. 1989. SPRUCE: A Framework for Software Restructuring. Tech. Rep. 1989-244, Department of Computing and Information Science, Queen's University. February. Revised November 20, 1997.
[18]
Malloy, B. A., Mcgregor, J. D., Krishnaswamy, A., and Medlkonda, M. 1994. An extensible program representation for object-oriented software. ACM SIGPLAN Notices 29, 12, 38-47.
[19]
Morgenthaler, J. D. 1997. Static analysis for a software transformation tool. Ph.D. thesis, Department of Computer Science and Engineering, University of California, San Diego.
[20]
Morgenthaler, J. D. 1998. Building an Efficient Software Manipulation Tool. Tech. Rep. HKUST-CS98-02, Department of Computer Science, The Hong Kong University of Science & Technology, Clear Water Bay, Kowloon, Hong Kong. January.
[21]
Myers, G. J. 1979. The Art of Software Testing. John Wiley and Sons, Inc.
[22]
Opdyke, W. F. 1992. Refactoring object-oriented frameworks. Ph.D. thesis, Graduate College of the University of Illinois at Urbana-Champaign.
[23]
Roberts, D. B. 1999. Practical analysis for refactoring. Ph.D. thesis, Graduate College of the University of Illinois at Urbana-Champaign.
[24]
Schach, S. R. 1999. Classical and Object-Oriented Software Engineering, Fourth ed. McGraw-Hill.
[25]
van den Brand, M., Klint, P., and Verhoef, C. 1998. Term Rewriting for Sale. Electronic Notes in Theoretical Computer Science 15. Elsevier Science B.V.

Cited By

View all
  • (2007)Software reengineering with architecture decompositionProceedings of the 2007 ACM symposium on Applied computing10.1145/1244002.1244320(1489-1493)Online publication date: 11-Mar-2007
  • (2006)Instruction-coated translationACM SIGPLAN Notices10.1145/1163566.116357441:8(29-33)Online publication date: 1-Aug-2006

Index Terms

  1. Software restructuring: implementing a code abstraction transformation

    Recommendations

    Reviews

    Timothy R. Hopkins

    The implementation of a software transformation tool that allows the safe replacement of a chosen sequence of statements by a procedure is described in this paper. Such modifications are claimed to be useful during the maintenance phase of the software life cycle. The algorithm for performing this transformation is based on the context entity graph, which is described in some detail. The tool has been developed for the Oberon programming language, although the author claims that the techniques described could be extended to Java and C++. 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 ACM Other conferences
    SAICSIT '02: Proceedings of the 2002 annual research conference of the South African institute of computer scientists and information technologists on Enablement through technology
    September 2002
    540 pages
    ISBN:1581135963

    Sponsors

    • P E TECHNIKON
    • UNISA
    • NRF
    • Microsoft: Microsoft
    • ORACLE: ORACLE

    Publisher

    South African Institute for Computer Scientists and Information Technologists

    South Africa

    Publication History

    Published: 16 September 2002

    Check for updates

    Author Tags

    1. program representation
    2. software maintenance

    Qualifiers

    • Article

    Conference

    SAICSIT '02
    Sponsor:
    • Microsoft
    • ORACLE
    SAICSIT '02: Enablement through technology
    September 16 - 18, 2002
    Port Elizabeth, South Africa

    Acceptance Rates

    Overall Acceptance Rate 187 of 439 submissions, 43%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)9
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 26 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2007)Software reengineering with architecture decompositionProceedings of the 2007 ACM symposium on Applied computing10.1145/1244002.1244320(1489-1493)Online publication date: 11-Mar-2007
    • (2006)Instruction-coated translationACM SIGPLAN Notices10.1145/1163566.116357441:8(29-33)Online publication date: 1-Aug-2006

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media