Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

Tools for making impossible changes – experiences with a tool for transforming large Smalltalk programs

Tools for making impossible changes – experiences with a tool for transforming large Smalltalk programs

For access to this article, please select a purchase option:

Buy article PDF
£12.50
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Name:*
Email:*
Your details
Name:*
Email:*
Department:*
Why are you recommending this title?
Select reason:
 
 
 
 
 
IEE Proceedings - Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

In a commercial system, performing large, invasive changes, such as changing an entire infrastructure layer, is often impossible because development on a system cannot be halted for any significant amount of time. Performing such changes require tools that can perform mass transformations on the source code. One approach is to use tools that can do global search and replace on the entire program structure. However, simple text-based tools are too simplistic for program text. To make accurate changes in a large program the tool must be based on parsing the program text. The paper describes the requirements for such a tool, the shortcomings of this approach, and describes one such tool for the Smalltalk language. This tool, the Refactoring Browser Rewrite Engine, is based on pattern matching of parse trees. The paper then presents three case studies in the successful application of this tool in commercial settings and discusses the shortcomings of such an approach.“impossible adj. - 1 b felt to be incapable of being done, attained, or fulfiled : insuperably difficult. - Merriam-Webster Dictionary

References

    1. 1)
    2. 2)
      • W. Loew-Blosser . (2002) Transformation of an application data layer, OOPSLA 2002 practitioners reports.
    3. 3)
      • Castor, F., Borba, P.: `A language for specifying Java transformations', Proc. 5th Brazilian Symp. on Programming Languages, May 2001, p. 236—251.
    4. 4)
      • R.W. Bowdidge , W.G. Griswold . Supporting the restructuring of data abstractions through manipulation of a program visualization. Trans. Softw. Eng. Methodol.
    5. 5)
      • Synchrony Systems, Inc. corporate web site. http://sync-sys.com.
    6. 6)
      • Opdyke, W.F.: `Refactoring object-oriented frameworks', 1992, PhD thesis, University of Illinois, Available as Technical Report No. UIUCDCS–R–92-1759. Postscript: /pub/papers/refactoring/opdykethesis.ps.Z on st.cs.uiuc.edu.
    7. 7)
      • Ducasse, S., Lanza, M., Tichelaar, S.: `Moose: an extensible language-independent environment for reengineering object-oriented systems', Proc. 2nd Int Symp. on Constructing Software Engineering Tools (CoSET), June 2000.
    8. 8)
      • M. Fowler . (1999) Refactoring: improving the design of existing code.
    9. 9)
      • Bennett, K.H., Bull, T., Yang, H.A.: `A transformation system for maintenance – turning theory into practice', Proc. IEEE Conf. on Software Maintenance, 1992.
    10. 10)
      • Moore, I.: `Automatic inheritance hierarchy restructuring and method refactoring', Proc. OOPSLA, 1996, p. 235–250.
    11. 11)
      • D. Roberts , J. Brant , R. Johnson . A refactoring tool for smalltalk. Theory Pract. Obj. Syst. , 4 , 253 - 263
    12. 12)
      • Tichelaar, S.: `Modeling object-oriented software for reverse engineering and refactoring', December 2001, PhD thesis, Universität Bern.
    13. 13)
      • (1998) VisualWorks application developer's guide.
    14. 14)
      • Spolsky, J.: ‘Things you should never do, part i’, April 2000, http://www.joelonsoftware.com/articles/fog0000000069.html.
    15. 15)
      • Bowdidge, R.W.: `Supporting the restructuring of data abstractions through manipulation of a program visualization', 1995, PhD thesis, University of California, Department of Computer Science and Engineering, San Diego.
    16. 16)
      • Casais, E.: `Managing evolution in object oriented environments: an algorithmic approach', 1991, PhD thesis, University of Geneva.
    17. 17)
      • Baxter, I., Pidgeon, C.: `Software change through design maintenance', Proc. IEEE Int. Conf. on Software Maintenance, 1997.
    18. 18)
      • Hayes, J.J.: `A method for adapting a program analysis tool to multiple source languages', September 1998, Master's thesis, University of California, Department of Computer Science and Engineering, San Diego, Technical Report CS98-600.
http://iet.metastore.ingenta.com/content/journals/10.1049/ip-sen_20040078
Loading

Related content

content/journals/10.1049/ip-sen_20040078
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address