Guided Project 2 WolfScheduler - Activity and Event

Guided Project 2 Introduction

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 Course.

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.

Learning Outcomes

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.

WolfScheduler System

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.

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.

Tasks

Task
Time Estimate
Description
10 minutes
Add your project from GP1 to your new GitHub repository for GP2.
10 minutes
Create a design for the Activity hierarchy to add Events to the WolfScheduler.
45 minutes
Use Eclipse refactoring tools to create a super class for the Activity hierarchy.
45 minutes
Create the Event class for holding information about other events on a student's schedule.
45 minutes
Use the Eclipse debugger to find and fix the fault behind a test failure.
45 minutes
Create an IO file to support the new Activity hierarchy.
120 minutes
Update `WolfScheduler` to incorporate behavior for the new `Activity` hierarchy.
90 minutes
Update WolfSchedulerGUI and run the system tests to ensure everything works together.
30 minutes
Double check your implementation to ensure that you're meeting all expectations.
Total Estimated Time*:
7 hours 20 minutes
* Times are only estimates. It may take you less time or more time depending on how much debugging effort is required for your specific implementation. Use the relative numbers to help guide you: for example, a task labeled as "5 minutes" should not require as much effort as a task labeled "20 minutes", regardless of how much time it takes to actually complete the task.

Grading Rubric

Your Wolf Scheduler Guided Project 2 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

Jenkins Server

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.