1 Impact Analysis and Refactoring
Milestone ID: 62
Impact analysis and refactoring - the modelling environemnt shall be able to analyse the impact of changes across the various components and propose a strategy to keep the system consistent.
For example modification of an interface parameter shall be reflected automatically in the code.
Impact Analysis and Refactoring are in fact two different things
a. Impact Analysis:
When the user renames, adds or delete an interface on a block (or adds, rename or delete a parameter in an interface), he should be warned about the consequences for his implementation.
What you have to do:
monitor the use of the "Edit Implementation" option in the context menu. As soon as it has been called at least one, there should be a flag set and saved in the XML model. When this flag is set, any renaming should trigger a warning to the user (a dialog box): "You have modified XXXX, it is mandatory that you edit the function implementation and apply the change"
Refactoring consists in applying automatically a patch to the implementation of the function based on the change. I think you suggested that for C and C++ Qt Creator may provide help for that. It has to be done at semantic level (you need the AST of the C/C++ function). If a provided interface was named "Bar" in the IV for a function named "Foo", TASTE generates (the first time "Edit Implementation" is called) a function named "foo_PI_Bar". If the user renames the PI to "Baz", the automatic refactoring would rename the function directly in the source code.
I think the scope has to be defined based on what Qt Creator can provide.
First thing: check if QtC has any functionality you can use to do that and let me know if there is nothing