Are the social smells implemented in Kaiaulu the same as Codeface4Smells? #117
-
@tuejari I'm sharing your question here since this may benefit the others also using the metrics.
The paper you cite uses both data and metrics from Simone's dissertation (https://www.politesi.polimi.it/bitstream/10589/123826/3/2016_07_Magnoni.pdf), In it, you will find both the quality framework metrics and the social smells. The social smells in particular were defined as functions, e.g. primma donna: Lines 204 to 205 in 49d6a55 dissertation. In fact, I'd recommend you use the dissertation as source material also to understand instead of the paper: The dissertation includes one additional diagram to the paper (since it has no space limitation), that makes it easier to understand the underlying implementation to the theory. If you compare the implementation of social smells of the code above to https://github.com/sailuh/kaiaulu/blob/88-add-social-smells/R/smells.R you will This is what is meant by them being the same, but that does not mean I re-implemented everything: Most of them are scattered in the original source Another thing you should consider is whether what goes as input to the functions you see, i.e. the git log network (code.graph), and the mailing list network (mail.graph), along with their respective "clustering. So in this Figure which shows the possible ways you could create the social smells notebook (which is one path of it): You will see the code graph and mail graph could be derived in two ways (temporal or bipartite). The code graph could also be done at file or function granularity. I am not certain which path the TSE paper or Simone's dissertation took. The community detection algorithm is the same, however, which is random walk. At least on the social smells branch. Lastly, @maelstromdat and @fpalomba had some concerns with the Codeface4Smells in the dissertation, so you may want to check with them before using this metric (I don't recall what specifically was the issue). In the diagram above, it also states that primma donna is implemented. So, are the community smells detectable by Kaiaulu limited to organizational silos, missing link, and the radio silence smell (as reported in the showcase)? Or does it also support the primma donna smell? Primma donna is implemented, although there are the concerns above. A few quality framework metrics are also implemented, which I believe both TSE paper and dissertation show: Lines 29 to 37 in 49d6a55 Lines 78 to 105 in 49d6a55 This is because these are defined as actual functions in the original code. There is also a few more that will show up in the final table from the quality framework which I implemented based on the conceptual definition (i.e. number of timezones, number of authors on git log, number of authors on the mailing list, etc).
Yes, black cloud is not implemented. Although the potential black cloud function is: Line 277 in 49d6a55 so implementing it shouldn't take more than a for loop. Note in the original code: Lines 722 to 726 in 49d6a55 I did not finish its implementation, because this metric requires a comparison of current and immediately before time windows after community detection. Org silo, missing link, radio silence and primma donna are single time slice metrics. Also the original results of the metric seemed at a quickly glance to give mostly 0s. You can find them here: https://github.com/maelstromdat/codeface4smells_TR/tree/master/Results (see any project folder/results.csv), e.g.: Note all of the above only applies to the social-smells-branch: The social smells in the |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Accidentally replied in the question post, and Discussions is not letting me edit for some reason 😅 if it ever does I will edit these two. |
Beta Was this translation helpful? Give feedback.
Accidentally replied in the question post, and Discussions is not letting me edit for some reason 😅 if it ever does I will edit these two.