researchart / swan17

0 stars 0 forks source link

swan17-contributor: Analyzing Source Code for Automated Design Pattern Recommendation #5

Open timm opened 7 years ago

timm commented 7 years ago

https://github.com/researchart/swan17/blob/master/pdf/swan17-contributor.pdf

ABSTRACT

"Mastery of the idiosyncrasies of object-oriented programming languages is undoubtedly challenging to achieve. In order to improve this situation, various design patterns aim on supporting software designers and developers in overcoming recurring design challenges. However, given that dozens if not hundreds of patterns have emerged so far, it can be assumed that their mastery has become a serious challenge in its own right. In this paper, we propose a recommendation system that aims on detecting those “design smells” in object-oriented systems that can be mitigated by the application of well-known design patterns. We describe a proof of concept for which we mined a significant collection of source code in order to derive a detection rule for identifying a smell that can be rectified by the Strategy pattern. Moreover, we present results from analyzing 25 open source systems with this rule, indicating that developers indeed can benefit from tool support in recognizing design smells, as more than 200 candidates were detected. Finally, we briefly sketch how we are currently extending this work to other patterns."

CCS CONCEPTS

• Software and its engineering -> Software notations and tools -> General programming languages -> Language features -> Patterns

KEYWORDS

"Design Patterns, Recommendation System, Code Analysis"

timm commented 7 years ago

AUTHORS: Important. Do NOT reply till all three reviews are here (until then, we will delete your comments)_.


Reviewer1

Insert reviewer github id here ==> swan17-reviewer4

Recommendation (select one)

Summary (1 para)

The paper presents the initial steps towards an approach for detecting opportunities for the application of design patterns in Object Oriented and recommending such applications to developers. Specifically, the authors have developed an approach for detecting opportunities for the application of the Strategy pattern. This is done using static analysis, by using a detection rule on the AST of java programs. The paper also describes a preliminary evaluation of the approach based on several open source projects as well as a small user study.

Advocacy (accept since, reject since, 1 para)

The paper attempts to tackle an important problem and the preliminary results are very promising. The approach is well researched and related work is reasonably researched. The degree of evaluation is appropriate for a workshop paper. Overall, I think that this would be an interesting addition to the workshop. However, I have some reservations, which I describe at the bottom of the review.

List of "Pros"

List of "Cons"

[a] N. Tsantalis, A. Chatzigeorgiou, G. Stephanides and S. T. Halkidis, "Design Pattern Detection Using Similarity Scoring," in IEEE Transactions on Software Engineering, vol. 32, no. 11, pp. 896-909, Nov. 2006. doi: 10.1109/TSE.2006.112 [b] N. Tsantalis and A. Chatzigeorgiou, "Identification of Move Method Refactoring Opportunities," in IEEE Transactions on Software Engineering, vol. 35, no. 3, pp. 347-367, May-June 2009. doi: 10.1109/TSE.2009.1

Changes needed before I can recommend accept (if any)

timm commented 7 years ago

_AUTHORS: Important. Do NOT reply till all three reviews are here (until then, we will delete your comments)_.


Reviewer2

Insert reviewer github id here ==>

Recommendation (select one)

Summary (1 para)

This paper attempts to find a detection rule for design smells that should be mitigated by refactoring using the Strategy pattern.

Advocacy (accept since, reject since, 1 para)

I started off really liking this paper, but as I read on, some sizable flaws emerged.

List of "Pros"

List of "Cons"

Changes needed before I can recommend accept (if any)

timm commented 7 years ago

_AUTHORS: Important. Do NOT reply till all three reviews are here (until then, we will delete your comments)_.


Reviewer3

Insert reviewer github id here ==> anonymousReviewerX

Recommendation (select one)

Summary (1 para)

The paper describes an approach to detect design smells where applying a design pattern may mitigate the smell. An example of the Strategy design pattern is analyzed in this paper; however, the concepts may generalize to other design patterns.

Advocacy (accept since, reject since, 1 para)

In general, I like the idea of extending PMD to detect deeper design flaws.

List of "Pros"

List of "Cons"

Changes needed before I can recommend accept (if any)

[1] Jaafar et al., Evaluating the Impact of Design Pattern and Anti-pattern Dependencies on Faults and Changes, Empirical Software Engineering (EMSE), 2015.

Typos and Other Minor Concerns

p1:

"aim on supporting" -> "aim to support" "aims on detecting" -> "aims to detect" "tool that it integrates" -> "tool that integrates" "these the opportunity" -> "these opportunities" "mining a large source code collections" -> "mining large source code collections"

p2:

"(admittedly not too many)" <- Please be specific. How many is "not too many"?

p5:

"mini survey" <- What is that and how does it differ from a survey? "On note on" -> "A note on" (?) "distilled their code so that they were as easy to grasp as possible" <- How was "easy to grasp" operationalized?

swan17-reviewer4 commented 7 years ago

Edited Reviewer1 comment above.

ghost commented 7 years ago

First of all, thanks to all reviewers for their valuable comments on how the paper can be improved.

We have already started to incorporate the feedback of reviewer 1 as follows:

Comments on the feedback of the other reviewers will follow as soon as possible.

ghost commented 7 years ago

Please find our feedback to the comments of reviewer 3 in the following:

p2: "(admittedly not too many)" <- Please be specific. How many is "not too many"? -> around 70 refactoring examples, we have added this.

p5: "mini survey" <- What is that and how does it differ from a survey? -> we wanted to underline its small size, but since we mentioned the number of participants, we have removed "mini"

"On note on" -> "A note on" (?) -> Yes, I think we wanted to write "one" initially.

"distilled their code so that they were as easy to grasp as possible" <- How was "easy to grasp" operationalized? -> we have added a sentece explaining that we extracted the relevant switch statements.

ghost commented 7 years ago

Please find our reply to the remarks of reviewer 2 in the following:

ghost commented 7 years ago

We have uploaded a revised version of the paper to our initial repository here: https://github.com/swan17-contributor/paper/blob/master/SWAN17.pdf and created a pull request for the copy here.

Thanks again for all the helpful hints that helped significantly to make the paper more concise and convincing.