Midterm Project: Software Complexity Measurements |
|
|
Due Date
See the
calendar for due date.
Objectives
Use and analyze multiple software complexity metrics
Directions
For this project, you need to use existing tools to calculate software complexity metrics discuss in class (
i.e., LOC, Cyclomatic Complexity, Halstead's metrics, Information Flow metrics, Maintainability Index (MI)).
You need to use at least three different complexity metrics and apply them to the source code of at least three different Java programs.
github.com has both software complexity projects that you may consider using and Java source code.
Additionally,
JHawk provides a demo version.
After analyzing the code, write a one-page report summarizing your findings.
Introduce each program analyzed and instructions on how to obtain it (or if you wrote them, post them or include them with your submission).
Include graphs and/or charts in your report to help present your results.
Be sure to discuss any unintuitive results (
e.g., a single class Java program having a value higher than a major open source project).
Finally, include a copy the rubric portion (see below) at the end of your report (which does not count towards the one-page requirement).
Assign points to each item in the grading rubric to verify that you've completed all the necessary requirements.
Submission
Submit your report (and possibly source code) to the appropriate Assignment tab/folder in
CougarVIEW.
(Note: Do not submit files with spaces in their names.)
Rubric:
Points Item
---------- --------------------------------------------------------------
_____ / 10 Included source code or instructions to obtain the 3 programs analyzed
_____ / 30 Complexity metrics reported
_____ / 10 Graphs and/or charts used
_____ / 48 Report
_____ / 2 Completed rubric (estimates for each line including hours spent)
_____ / 100 Total
_____ Approximate number of hours spent