Guided Project 3 WolfScheduler - Conflict

Guided Project 3 Introduction

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.

Learning Outcomes

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.

WolfScheduler System

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):

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.

Tasks

Task
Time Estimate
Description
10 minutes
Add your project from GP2 to your new GitHub repository for GP3.
45 minutes
Update the system test plan to incorporate the conflict functionality for the full WolfScheduler requirements.
20 minutes
Create an interface to support the new time conflict checks.
30 minutes
Create a ConflictException to support your new Conflict interface.
40 minutes
Practice test driven development to improve the tests in the WolfScheduler project for the new conflict functionality.
60 minutes
Incorporate the Conflict interface in the Activity hierarchy.
45 minutes
Run your coverage tool and create high quality test cases to consider uncovered flows.
90 minutes
Update WolfScheduler to incorporate behavior for the new Conflict functionality.
45 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*:
6 hours 55 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 3 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.