How can I observe ripple effect using coupling attributes alone?
I first find the common coupling metrics for a set of deprecated classes in a project, like CBO(Coupling Between Objects), RFC(Response For Classes), Import/Export coupling, Afferent coupling(Total no. of incoming edges to a deprecated package), Efferent coupling(Total no. of outgoing edges from a deprecated package ), etc.
How can all this be interlinked to Ripple Effect?
Can Abstractness and Instability of a class be a result of Ripple effect associated with it?
Background: This is for a Reengineering project that we are doing by trying to go through the coupling that exists across all deprecated classes/APIs in around 20 projects.
Instability (I) metric measures the instability of packages, where stability is measured by calculating the effort to change a deprecated package without impacting other packages within the application.
Metric measures the ratio between CE(Efferent Coupling) and CE+CA(Afferent Coupling). Instability I = Ce / (Ca + Ce)
Abstractness (A) is the linear unit metric that measures how abstract a package is, in that it will calculate the ratio between the number of abstract classes or interfaces and the total number of classes inside a package. One can measure the abstractness of a package (A) using the following formula: A = Na / Nc
Where: Na is the number of abstract classes and interfaces in the package
Nc is the number of concrete classes and interfaces in the package
Deprecated API remains in the software, its use may raise warning messages recommending alternative practices; deprecated status may also indicate the feature will be removed in the future. Features are deprecated rather than immediately removed, to provide backward compatibility, and to give programmers time to bring affected code into compliance with the new standard.