UCOSPUmplificatrix

Kevin Brightwell edited this page Aug 26, 2015 · 1 revision
Clone this wiki locally

Overview

The umple project has a tool to 'umplify' arbitrary java projects. As best it can, automatically converting the projects into Umple. Unfortunately it use is limited to manual execution against locally stored projects, limiting the number of projects we can test against. My semester's project will to build up automation infrastructure surrounding the umplifier, the umplificatrix. It will automatically download, track, umplify, and report on various projects hosted on GitHub. Allowing potential users to see umple in action on existing projects, and giving us more detailed information on how well popular projects can be Umplified and why.

The umplificatrix will consist of several independent components: the project downloader, the umplifier, the scheduler, the orchestrator, and the web interface (umplificatorOnline). The downloader and umplifier will be doing the work for the project, getting java projects and trying to umplify them. The scheduler will be pushing commands down to the umplifier and the downloader. The orchestrator will be the go-between for the users and the rest of the project, and will also be responsible for feeding data back up the web interface. The web interface will take the various metrics it sees and compile them into useful statistics allowing quick comparisons between versions and projects.

Tasks

1. Collect a list of 100 Java projects, some of which with releases, "script" the downloading

  • Bash script with ~100 projects hard-coded in
  • Have a decent mix of projects, some with multiple released versions
  • Deadline: Feb 17 ## 2. Umplify one of the projects at each level and gather the pass/failure (jhotdraw)
  • Figure out how to use the Umplificator: how to Umplify a project, how to interpret the success/failure
  • Deadline: Feb 17 ## 3. Umplify any project for our stats needs, and that could be a similar dir structure
  • Figure out if any modifications need to be made to the Umplificator in order to have it work with a our project (e.g. changing output, wrapping it, etc..)
  • Deadline: Feb 17 ## 3.5 'Bake-in' the Dlproj dependencies
  • The jopt, jsch, and jgit jar's in the dlproj's lib directory need to be baked into the dlproj.jar file for better portability
  • Do this with a solution like onejar ## 4. Umplify our 100 projects and get the stats
  • Run the modified Umplificator against the projects we have downloaded, check the results. File issues as necessary
  • Get the results into the web interface
  • Deadline: ## 5. Update the results table for the X versions
  • Show results across multiple versions of projects
  • Deadline: ## 6. Google Charts, bar chart for spread, # that applied, versus max #
  • Start aggregating and displalying the Umplificator results
  • Deadline: ## 7. Collect 100s more project
  • Find more projects and versions to download
  • Deadline: ## 8. WEB UI understands "versions" of Umplificator
  • Show results against multiple versions of the umplificator
  • Deadline: ## 9. Google Charts on trending
  • Show the 'trends' from the umplified projects, i.e. "Over each new iteration of the Umplificator we're able to Umplify X more projects to level 1"
  • Deadline: ## 10. Auto download of Java projects
  • Scheduler and more 'hands-off' method of getting projects
  • Deadline: