Guided Project 2 Introduction
Target Audience: this guided project is geared toward the beginning Java programmer who has some experience with using Eclipse.
A paradigm of good design is to reduce redundancy. You want to have code in one location (it’s easier to maintain) and reuse that code as much as possible. In Guided Project 1, you explored the composition relationship. You could encapsulate code in a single class (e.g.,
Course) providing an abstraction that could be used by other classes (e.g.,
WolfScheduler). The container class
WolfScheduler could then delegate to the contained class
Composition is one type of relationship in object-oriented programs. The other relationship is inheritance. Inheritance is when one class extends or specialized another class. The common code goes in the parent and the extension goes in the child.
Guided Project 2 builds on Guided Project 1 through another iteration of the the phases of the software lifecycle. You will continue to work with software practices and tools that support those practices in Guided Project 2.
After completing this Guided Project, students will be able to…
- Implement and test a multi-class software system from a given set of requirements and design.
- Use inheritance, abstract classes, and interfaces to implement an object hierarchy in an OO system.
- 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 PART of the WolfScheduler system. The WolfScheduler system provides a way for 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 2 will complete the requirements except for checking for conflicts between events and courses.
- 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
You will complete the functionality for handling schedule conflicts in Guided Project 3. There are expectations from the Guided Projects that you must follow. Do NOT attempt to implement any functionality before a Guided Project tells you to do so!
As part of the Guided Project, you are expected to run the provided JUnit tests and acceptance tests to ensure that your implementation meets the requirements and design of the system.
Your Wolf Scheduler Guided Project 2 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. NOTE: The Jenkins servers for CSC216 are self signed and are maintained by the CSC216 teaching staff and CSC IT. Please select the option to accept the signed certificate. Usually, there’s a link for Advanced that will display an option to trust the certificate.