CS 6/73902 Software Evolution Project

The course project will be substantial and can include development of a software prototype, empirical experiments, in-depth surveys, etc. Projects must reflect the theme of the course and topics will be developed in conjunction with the instructor. Projects can be developed in small groups or by individuals.

Possible topics:
  • Construct a clone detector (using srcML).
  • Construct a call graph and/or PDG (using srcML).
  • Construct an incremental call graph geenerator. Only updates an existing call rather than regenerating the whole thing
  • Determine authorship or attribution of a token in source code. Who added this identifier name?
  • Develop a method for summarizing source code.
  • srcMetric, collect major code metrics using static analysis on srcML (e.g. LOC, CC, etc)
  • AutoCompletion using srcML, IDE plug-in
  • Collect association rules and study what is the correlation among interestingness measures, including confidence
  • Among developers, who is the cloner? Does that correlate with developer experience level?
  • How call-graph or PDG evolve over time using complex network measures (gcc has 20+ archive)
  • Coupling and Cohesion meters at class or function level, an IDE plug-in.
  • How serious it is changing that line or statement? A Line or a statement complexity measure. Using metrics and dependency information, define a line or a statement complexity measure. A developer changing a line or a statement can be well informed about any statement or line before doing any change. And what is the new complexity after the change made. Is it up or down?
  • What type of code-change that all developers try to avoid?
Research Project Presentations (~20 min):
  • Describe the topic of your research project
  • Motivation for why you are investigating the topic
  • Present related literature
  • Describe how you intend to extend the topic (what are you doing the adds to the body of research)
  • Describe any preliminary results
  • Describe how you will evaluate the work
Final Research Paper:
  • Due: May 6 (email - pdf)
  • Results of your project work are required to be presented in a 10 page paper (IEEE proceedings two-column format.)
  • Paper should clearly describe the topic and motivate the problem.
  • Describe and contrast related literature.
  • Describe how this adds to the body of research.
  • Describe any preliminary results.
  • Describe how you will evaluate the work.
  • References MUST be complete and in IEEE format. All related literature must be correctly cited.
  • You will be graded on the above issues, the quality of the writing and presentation, along with the novelty and technical merit of the research.
  • Plagiarism of any type will not be tolerated and will result in a failing grade for the project.

Last update: Mon Apr 13 13:41:18 2020 EST