• Home
  • Events
  • About
  • Refactoring Large Software Systems

    December 22nd, 2009

    “Refactoring Large Software Systems” — an article by Sibylle Peter (Canoo Engineering AG) and Sven Ehrke (Canoo Engineering AG), published in Methods & Tools, Winter Edition 2009.

    Refactoring a software system means to refurbish it internally without interfering with its external properties. In his famous book Martin Fowler defines refactoring as follows:

    Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. [Fowl, p. xvi]

    Fowler describes how to refactor code in a controlled and efficient manner. Although we frequently use these techniques to refactor large software systems, this article is not about refactoring techniques. It rather treats large scale refactoring of systems that suffer from being stuck in an infeasibility stage, which means that it is no longer possible to implement new features and that every bug fix leads to several new bugs.

    In this article we describe the different stages of a refactoring project. Before a refactoring project is actually started, an assessment and an in-depth analysis are made which result in a list of findings. Ideally, these findings will be translated into a master plan, which defines WHAT should be refactored. This master plan helps to keep the overall picture of the refactoring project in mind and to divide it into several sub-projects or refactoring parts. Once the master plan is defined we use an iterative approach to tackle the individual refactoring steps.

    Before describing this approach we will first have a look at the life path of applications in general, followed by the prerequisites for refactoring projects. WebInvest, our current refactoring project, will be used as example throughout the article. WebInvest is an advisory tool for investment relationship managers. It enables them to simulate trading and to analyze a customer’s portfolio against investment strategies. Read on!

    .

    The life path of a long-living system

    The life path of a long-living system

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    Groovy & Grails eXchange 2009: Dierk König on Code kata

    December 10th, 2009

    While preparing the second edition of “Groovy in Action”, Canoo Fellow Dierk König once again worked systematically through the language and came across a number of new features that slipped by his attention when they were added. His talk (from Groovy & Grails eXchange 2009, London) presents those features in a workshop-like manner with demos, live coding and lots of interaction with the audience. Watch the video on Skills Matter!

    .

    Dierk with James Gosling during Jazoon 2009

    Dierk with James Gosling during Jazoon 2009

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    css.php