Guided Project 3 Introduction
Target Audience: this guided project is geared toward the beginning Java programmer who has some experience with using Eclipse, inheritance, and running test cases.
An important practice for ensuring that software works correctly is to test it and run other verification and validation tools to minimize programmer mistakes. Since no one practice can identify all faults, developers work with a suite of practices and tools to help find problems in their code.
One practice that developers frequently use is test driven development (TDD). In TDD, a developer starts by writing tests, then uses those test to drive forward development of the implementation. By writing system and unit tests before writing the implementation, a developer can better understand the context of the problem and the area of the solution.
Guided Project 3 builds on Guided Project 1 and Guided Project 2 through another iteration of the the phases of the software lifecycle, with an emphasis on using TDD to implement the new features. You will continue to work with software practices and tools that support those practices in Guided Project 3.
After completing this Guided Project, students will be able to…
- Use test driven development to solve a software problem.
- Revise and write system level tests.
- Write unit level tests.
- Use coverage metrics to identify and cover unexecuted paths.
- Use software engineering best practices like test-driven development, code coverage, static analysis, version control, continuous integration, and documentation with supporting tooling to implement and test object-oriented systems.
You will implement and test the remainder of the WolfScheduler system, with an emphasis on conflict identification and resolution. The WolfScheduler system enables a student to determine which course schedule may be best for them in an upcoming semester.
You will develop the WolfScheduler project over the course of the three guided projects. The WolfScheduler requirements describe the fully implemented system. Guided Project 3 will focus the [Schedule Conflict] subflows of Use Cases 4 & 6 around time (with an assumption of no regression in functionality on the already implemented requirements):
- Use Case 1: Load Course Catalog
- Use Case 2: Rename Schedule
- Use Case 3: View Course Information
- Use Case 4: Add Course to Schedule
- Use Case 5: Remove Course from Schedule
- Use Case 6: Add Event to Schedule
- Use Case 7: Remove Event from Schedule
- Use Case 8: Reset Schedule
- Use Case 9: Display Final Schedule
- Use Case 10: Export Schedule
As part of earlier Guided Projects, you were provided with a suite of unit and system tests. You will now be adding new tests for the time conflict functionality. You may have to update the provided tests. Some may fail due to the addition of the new time conflict functionality.
Your Wolf Scheduler Guided Project 3 will be evaluated on the following items:
|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!|
|Item||Strong - 3 points||Adequate - 2 points||Inadequate - 1 point|
We are using the Jenkins Continuous Integration system to automatically evaluate your work and provide feedback on your submission. Go to the [Guided Project and Project Jenkins Server by using https://csc216-jenkins.csc.ncsu.edu.