All too often, modifications to an existing software system are made
in an ad-hoc manner. If the code related to the modification is
well-localized, an ad-hoc approach can be effective. When the relevant
points crosscut the system structure, this approach begins to fall
apart: developers have a difficult time estimating how long it will
take to complete the modification task, the code added and changed as
part of the modification introduces defects into the system, amongst
other problems.
We hypothesize that a developer could perform a modification task more
systematically if the developer can iteratively build up a behavioural
model of the concern that is linked to the source. The developer can
then query the interactions between the source representing different
parts of a concern.
We call this approach Behavioural Concern Modelling (BCM). In this
approach, a developer posits all or part of a finite-state machine
(FSM) representing the behaviour of a concern or concerns, and then
uses the BCM tool to determine how data- and control-flows relate to
the posited state machine. The BCM tool builds on previous work in
conceptual moduless (CMs). Our BCM tool supports CMs for Java. A
developer can represent the states and transitions of an FSM with CMs.
|