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.
Catalysis includes 'refinement'
techniques for systematically mapping existing software to new models,
and reconciling the models of different components.
complete solutions for Catalysis process adoption
(consultancy, courses, workshops, mentoring, seminars, development)