| Design patterns are summary of experience by software developers which describe some effective solutions for recurring problems. Anti-pattern, as an extension of pattern, describes a widely used poor solution which can bring negative influence to application system. Performance anti-pattern, as a kind of anti-pattern, may do great harm to performance of running system. Therefore, it’s particularly important to research the effective performance anti-pattern detection method.This paper studies the performance anti-pattern detection for component-based software system. The following contents are studied:1) Fourteen performance anti-patterns documented in the literature are described by using a simple anti-pattern template, and three of them are analyzed in terms of forms and performance influence for they are common and have great influence on system performance. Then aiming at the shortcomings of the existing anti-pattern descriptions, an anti-pattern description method based on first order predicate is proposed. This method synthesizes the anti-pattern forms and symptoms, which makes the description more accurate and has good scalability and versatility as well.2) Based on analysis of the cause of false negatives and false positives during anti-pattern detection, a probability calculation method of anti-pattern candidate is introduced. With the probability of anti-pattern candidate, one can knows its possibility of a real anti-pattern. In order to improve the accuracy of anti-pattern detection, a Bayesian classification method is applied in validation for detection results, which can reduce false negatives and false positives of anti-pattern detection.3) A performance influence ranking mechanism based on a filtering strategy is proposed, which is helpful to determine those anti-patterns that have larger influence on system when implementing system refactoring.4) The proposed approach in this paper is applied to a small e-commerce system. Finally, the feasibility and effectiveness of the approach is demonstrated further through experiments. |