Important dates

Lab Quiz Friday, March 17th (30 min)
Final lab report due: 15.06.2017

  • Pre-quiz

  • 2015 Massimiliano di Penta's slides: Commands to crawl pages and mine bugzilla alike repositories file

    Overall Goal of the projects (check first lecture slides for further details)

    Project SZZ:
    Develop a Java version of the SZZ algorithm and mine Eclipse JDT core commits. The goal here is more on maintenance and reliability. A software engineer needs to find out bugs the earliest possible.
    Research Question:
    Which commit did introduce a bug?
    The final output will be:
    1. Apply your Java version of SZZ  on a predefined number of bugs of Eclipse JDT core and identify the commits that possible cause the bugs
    2. Sample bugs to validate this claim: the commits found with SZZ are indeed the ones that cause the bugs. 

    Project Motifs:
    Integrate three different tools  to mine motifs in software dependency graphs and detect design patterns - mine Eclipse JDT core commits. The testing goal here is to understand the input and the output of the different applications you need to integrate. The integration of black box tools is one typical operation of a software engineer.
    Research Question: Are motifs intentional designed structures?
    The final output will be:
    1. Integrate the three tools suggested at the lecture and apply it on a sample of jar files to discuss your findings
    2. Apply your tool to a sample of commits to answer the research question and sample motifs to discuss your findings

    Tasks 1

    Project SZZ:
    - Write the steps of your work. Per each step describe what you concretely will do to complete it.
    For example: Step 1: Find the bug ID in the commit message. Pre-conditions: To find the ID I must have downloaded a commit message and a identified the BUG ID. Parse the commit comment to search the ID of the BUG (regular expressions?) Post condition: store the pair commit sha number and BUG ID
    - Write the algorithm of your future tool
    Project Motifs:
    - Write the the Input Output of each tool and describe how you can convert each output into the next input.

    Task 2

    Project SZZ:
    Download the Eclipse JDT core commits. Select a suitable time window. Apply the algorithm for the syntactic part
    Project Motifs:
    Download the Eclipse JDT core commits. Apply java-call graph. Describe what types of dependency you find between classes

    Task 3

    Apply your tool(s) to your sample commits or jar files

    Task 4

    Analyze the findings and interpret the results in terms of your research goals (see them in OLE).

    In particular, 

    Final analysis, project SZZ: Report the demographic of your data and discuss the cumulative occurrence of the induced commits vs. the fix commits.

    Final analysis, project Motifs: Discuss the master regulator. the middle managers, and the workhorses classes of your project with respect to the distribution of patterns instances: how are the design pattern instances distributed across the three categories?

    Projects: see Ole portal