Guided Project 1 - Software Development Practices and Tools

Guided Task - Conclusion

Guided Task: Conclusion

A common software engineering practice is continuous integration. That means developers are continuously committing/pushing their code to version control and evaluating the code by running tests and other analysis tools against their code. The evaluation of the code is typically completed by a continuous integration system, which is a software system that will automatically build, test, run analysis tools (like static analysis), and deploy software. Since this is what the teaching staff does when evaluating your work, we can use a continuous integration system to evaluate your work every time you push to GitHub. That means you should be able to estimate your grade on an assignment from the feedback from Jenkins, the continuous integration server we use for CSC216. On future assignments, Jenkins will also run hidden teaching staff tests and provide you feedback on how well you meet the teaching staff’s design!

Check Jenkins Results

You can access the Guided Project and Project Jenkins via https://csc216-jenkins.csc.ncsu.edu/jenkins/. (Labs will have their own Jenkins servers.) When you log in, your Jenkins job will be listed using the pattern of GP1-<repository-name>. If you don’t see a project, then email the teaching staff!

Learn more about the Jenkins continuous integration system and how to use it to for feedback and to estimate your grade by reading the Jenkins tutorial. Your goal is a green check (no test failures and no static analysis notifications).

The Jenkins build for Guided Project 1 will copy the provided teaching staff test cases into your project, overwriting the ones that you were provided. This is to make sure that you don’t accidentally modify the teaching staff tests through an Eclipse QuickFix. If you did modify a test, that will likely lead to a red X on Jenkins, which means code didn’t compile. You’ll want to use the console output (as described in the Jenkins tutorial) on the build to help you find the compiler error.

Estimate Your Grade Against the Rubric

All assignments have a rubric that you can use to estimate your grade. Use the Jenkins feedback and your black box test results to estimate the grade for Guided Project 1.

Final Tasks

Before you complete your final submission to GitHub, you should ensure the following:

Make sure that all code is pushed to GitHub by the assignment deadline. There are deductions for any late work up to 48 hours.

Grading Rubric

Your Wolf Scheduler Guided Project 1 will be evaluated on the following items:

Overall Rubric

Phase Grade Item Points Details
  Total Points 0  

Deductions

Grade Item Points Details
Misnamed file or incorrect project structure -5 Incorrect names of files or incorrect project structure. This can include problems when importing the project to Eclipse for acceptance testing, incorrect location of the system test file, incorrect file extension, etc.
Other deductions -5 If the project has to be manually graded due, you will receive a 5 point deduction. Make sure that your project builds on Jenkins!

Javadoc Rubric

Item Strong - 3 points Adequate - 2 points Inadequate - 1 point

Reference: Staging and Pushing to GitHub

GitHub Resources:

Submit!

Use the feedback from Jenkins to make changes to your code. Any time you make a change, push to GitHub and check the Jenkins results.

  • Make sure that all fields, methods, and constructors are commented.
  • Resolve all static analysis notifications.
  • Fix test failures.
  • Commit and push your code changes with a meaningful commit message. Label your commit with “[Implementation]” for future you!
  • Check Jenkins results for a green check! Fix any Jenkins issues.

Congratulations!

You’ve finished the first Guided Project and a good portion of the WolfScheduler requirements. Great work on reviewing prerequisite materials and using the new suite of development tools for CSC 216/217! You’re off to a great start. Take time to celebrate your accomplishment!

Now, onwards to Guided Project 2. [Note: Don’t start Guided Project 2 until you’re assigned a repository by the teaching staff.]