148

Updating old software with UML/Catalysis

Workshop 170 minutes

How to have fewer bugs than you started with

Alan Cameron Wills

There are many "methods" of software development. Most of them tend to assume you are working from scratch --- particularly those that begin with some sort of abstract model. Such is not normally the case.

Modifying software can be quite hard: not only do you have to get a clear idea of what the requirements really are (difficult enough on its own), but --- far more difficult --- you need to understand what the existing (possibly incoherent and undocumented) code already does. Then you have to work out how to economically bend the latter to meet the former.

UML provides useful tools for understanding both requirements and existing software, but the models you make look quite different: it perhaps isn't obvious how they tie up. The key trick is to make a mapping or "retrieval" between them, translating between the language of the new requirements and that of the old code.
 
 

Alan Cameron Wills (alan@trireme.com)

TriReme International Ltd Alan Cameron Wills has been a consultant in software development since 1991, working with a clients in telecoms, finance, and commerce in various parts of Europe and the USA. He is co-author of "Objects, Components and Frameworks in UML -- the Catalysis approach". 

Alan likes taking pictures of people and sailing.

Topics

Benefits

This session will look at techniques, taken from the Catalysis toolbag, for updating existing software with the help of UML.
Session: Workshop 170 minutes Level: advanced
Audience: Software developers concerned with updating existing software, and with some experience of UML.  Max

Material

  • Code for practising abstraction
  • Requirements for practicing modelling
  • Crib sheets for notation and procedures
  • Poster summarising the method
  • Delivery

    The session will record key enlightenments observed by the participants. These will be made available as posters augmenting the method.

    The materials will be made available on the web.

    Format

  • Overview the topic and procedures, then:
  • Each topic:
  • short intro
  • exercise
  • discuss key procedural enlightenments
  • Structure

    Each of the main stages will consist mainly of practice on a small but representative example.

    000 Introduce problem
    010 Sort participants
    020 UML for requirements    --- Abstraction of objects and use-cases
    040 UML for code  ---Depicting existing code
    060 - Non-OO code

    070 BREAK

    090 Mapping models  --- Various levels of formality
    110 Identifying deltas
    130 Patterns for updates
    150 Making it easier next time  ---- reusing the model
    160 Discussion
    u170 END


    148

    148