Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 23 Next »

Sonar is the ultimate open source platform to manage code quality.

Title

Implement a fully new COPY/PASTE detector algorithm

Keywords

CPD, Algorithm, Simian

Description

The current COPY/PASTE detector is based on PMD/CPD. CPD is pretty good open source implementation but which has two main drawbacks : there isn't too much activity on this library and it requires lot of memory to work so it can't be used to analyse millions of lines of code

Most COPY/PAST detector requires first to lex the source code in order to work with a list of tokens. This lexing mechanism is not part of this project which is really focused on the algorithm and CPU/Memory performances of this algorithm.
With this new algorithm, some new very valuable features could be implemented into Sonar : 

  • Find duplications across projects
  • Find code duplicated from Open Source projects

Mentor(s)

Freddy Mallet, Evgeny Mandrikov

Constraint

It should be possible to analyse any amount of source code with a limited amount of memory.

Materials


Below is a list of links to some materials, which can be very useful during preparation of proposal , so we decided to share them with you :

  • Big list of different papers about CPD : http://students.cis.uab.edu/tairasr/clones/literature/
  • Really good comparison made in 2009 year : Comparison and Evaluation of Code Clone Detection Techniques and Tools : A Qualitative Approach
  • Solution made in 2009 year with database index, which is able to analyse JDK 1.7 (build 42 of 2008-12-19 with 2.5 MLOC in 7378 files) in 24 minutes : Syntax Tree Fingerprinting for Source Code Similarity Detection
  • Conceived about how to modify suffix-arrays in 2009 year - Dynamic Extended Suffix Arrays and detector - RTF
  • Solution based on generalized suffix-tree - Incremental Clone Detection
  • Russian paper created in 2010, which describes CPD for IntelliJ IDEA, mentor of this work is a guy from JetBrains, so it's on-line solution for environment which changes frequently, but not contains MLOCs - http://se.math.spbu.ru/SE/YearlyProjects/2010/YearlyProjects/2010/445/Kudelevsky_report.pdf
  • Index and hash based detection - Index-Based Code Clone Detection: Incremental, Distributed, Scalable

---

Title

Implement a Sonar Wallboard

Keywords

Report, Wallboard, Widgets

Description

Sonar is well-known for its user-friendly interface but doesn't yet provide any mechanism to configure and display a Wallboard.

Mentor(s)

Simon Brandhof

Constraint

Reuse the Sonar widget/dashboard mechanism

---

Title

Implement a plugin to cover a new language like Scala, Pyton, ...

Keywords

Plugin, Language

Description

Through its plugin ecosystem, Sonar is already able to analyse C, Java, COBOL, Flex, Groovy, ... source code. But lot of exiting languages are not yet covered.

Mentor(s)

Simon Brandhof, Freddy Mallet

---

Title

Make the C Rules engine a popular Open Source rule engine for C source code

Keywords

Plugin, AST, C, Rule

Description

The C Rules engine is still a pretty young plugin which is based on the SonarSource C Plugin. This plugin doesn't yet contain lot of rules/checks but is ready to grow in order to embed best practices and market standards.

Mentor(s)

Freddy Mallet

---

Title

Create Sonarpedia.org

Keywords

Community, Social, Descriptions

Description

Stackoverflow is a good example of a social community which let you get answer on any kind of questions about programming. Sonarpedia could be similar but dedicated to Quality and Security questions.

Mentor(s)

Freddy Mallet

  • No labels