Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

1 Purpose The primary purpose of this assignment is to help you review (and demonstrate that you have acquired) the knowledge and skills required to

1 Purpose

The primary purpose of this assignment is to help you review (and demonstrate that you have acquired) the knowledge and skills required to program in Java. From a language and algorithms perspective, there is nothing new in this assignment. There is also nothing new from a software engineering perspective.

This assignment will also help you gain some experience with the integrated development environment that you will be using this semester in this course. Some of the tools you will be using this semester will be new to some of you, and we will discuss them as the semester progresses. Regardless of whether you have used them in the past, at this point, you should be able to figure out everything that you need for this assignment.

2 Overview

SagaciousMedia is a (fictitious) company that develops educational hardware, software, and content for both the formal and informal education markets. SagaciousMedia's products are designed to excite and educate students, and to inspire and assist teachers/instructors.

They are in the process of developing a suite of products for working with grading assignments of various kinds (e.g., exams, homework assignments, labs, programming assignments). They have hired you to construct several interfaces/classes that will, ultimately, become part of these products.

These classes/interfaces might be used by the first application they are creating (called Gradient) to calculate the numerical grade for a course that has 6 programming assignments (with the lowest dropped) that account for 40% of the course grade, 5 homework assignments that account for 10% of the course grade, one midterm exam that accounts for 20% of the course grade, and a final exam that accounts for 30% of the course grade. For example, assuming the the programming assignments and homework assignments are each graded on a 20-point scale and the exams are each graded on a 100-point scale, the following grades

 20.0 18.0 5.0 15.0 20.0 20.0 20.0 5.0 0.0 10.0 15.0 80.0 75.0

should result in a PA grade of 20.0+18.0+15.0+20.0+20.0=93.0, a homework grade of 20.0+5.0+0.0+10.0+15.0=50.0 and a course grade of 0.493.0+0.150.0+0.280.0+0.375.0=37.2+5.0+16.0+22.5=80.7.

3 Preparatory Tasks

Before you do anything else you should:

Install the latest version of Eclipse on your computer. (Using other IDEs should be OK for this assignment. But since later in the semester we will practice using Eclipse for debugging, static analysis, and working with Git, it would be better to start using it now.)

Read all policies related to homework assignments in the syllabusimage text in transcribed.

4 Documents

Sagacious Media uses a software process called Scrum. As a result, the documents they have created are organized in a particular way.

The terms that Sagacious Media uses when discussing Gradient and its functionality are described in the following document.

Product Domain Glossaryimage text in transcribed

The requirements of the first product they are building, Gradient, have been organized into what are called stories. Epics are abstract stories that might take several releases (developed over the course of many months) to completely realize. Each release has its own set of sprintable stories that describe its features. Both the epics and the sprintable stories (which are what you are concerned with for this assignment) for Gradient have been collected in the following document.

Stories for Gradientimage text in transcribed

The existing team at Sagacious Media used the sprintable stories to create a set of tasks for this assignment. They completed some of the tasks and have left others for you to complete. The complete set of tasks is contained in the following document.

Tasks for Gradientimage text in transcribed

The tasks that are "checked" have already been completed by other team members, the evidence for which is contained in the following documents (which are listed in alphabetical order).

Engineering Design for Gradientimage text in transcribed

Implementation of the Gradient classimage text in transcribed

Specification of the DropFilter classimage text in transcribed

Specification of the the Grade classimage text in transcribed

Specification of the Missing classimage text in transcribed

Specification of the SizeException classimage text in transcribed

Specification of the TotalStrategy classimage text in transcribed

Specification of the WeightedTotalStrategy classimage text in transcribed

System/Integration Tests for Gradientimage text in transcribed

You must complete the tasks that have not been "checked-off".

5 A Recommended Process

The tasks that were identified by the team at Sagacious Media are organized by story. Hence, though they are numbered so that they can be referred to in documents and conversations, the numbers should not, in any way, influence the order in which you complete them. I would suggest you sequence your activities as follows.

Read all of the documents carefully. (This is utterly important, which is often ignored, unfortunately.)

Review the source code for the Gradient class so that you understand how the classes you are implementing will be used.

Implement the Grade class.

Test and debug the Grade class.

Implement the Missing class.

Test and debug the Missing class.

Implement the SizeException class.

Implement the GradingStrategy interface.

Think about how the WeightedTotalStrategy and TotalStrategy classes should be related (if at all).

Implement the WeightedTotalStrategy or TotalStrategy class (whichever one you think should be implemented first).

Test and debug the class you just implemented.

Implement the WeightedTotalStrategy or TotalStrategy class (whichever one you think should be implemented second).

Test and debug the class you just implemented.

Implement the Filter interface.

Implement the DropFilter class.

Test and debug the DropFilter class.

Test and debug the complete system.

Note that, you will need to have a stubbed-out version of all of the classes for your code to compile. This will, hopefully, encourage you to create and use stubs (i.e., pieces of code that stand in for the code that would be needed to provide full functionality) as part of your development process.

6 Getting Help

If you need help with UML syntax, please refer to the following ebook chapters:

Object and Classes (Links to an external site.)Links to an external site.

Packages and Namespaces (Links to an external site.)Links to an external site.

The Static Model (Links to an external site.)Links to an external site.

7 Submission

Please create a zip file including all your source code, and submit the zip file through Canvas. By default, your latest submission will be graded.

8 Grading

Partial credit will be awarded. Your grade will be based on the percentage of the system tests (worth 7*10 = 70 points) that your classes pass and on the quality of your code (30 points), as determined by our grader.

Since we have not discussed unit testing yet you will not be penalized now if your classes do not conform to the specifications (as long as your system passes the system tests). However, you will be penalized for such defects in the future. Hence, you should strive to write code that conforms to the specifications (and test it as best you can). Also, you should strive to write code that is clear, elegant, and well-documented.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Principles Programming And Performance

Authors: Patrick O'Neil, Elizabeth O'Neil

2nd Edition

1558605800, 978-1558605800

More Books

Students also viewed these Databases questions

Question

10-3 How has e-commerce transformed marketing?

Answered: 1 week ago

Question

Ty e2y Evaluate the integral dy

Answered: 1 week ago