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