4.5 Oral Final

Overview

4.5 Oral Final

The oral final will consist of a one-on-one, 25-30 minute discussion which will assess your knowledge of object-oriented programming. The exam will take place in a meeting room in the southeast area of ITEC, near room A122 on the Wausau campus (or online via Slack and Google Hangouts if you are an online/remote student). Dress professionally (business casual or better), arrive five minutes before your scheduled appointment. If you attend online, notify me via a Slack Direct Message when you are ready. Contact me in your f-channel with alternate arrangements if needed.

Work through the stories in order. Use the acceptance criteria to check each feature, and complete the nested tasks using the specified names, values, and scenarios.

Arrange the oral-final meeting
1.Schedule your Oral Final

Register early, as times are first-come, first-served.

A We will be using Starfish this semester to schedule oral finals. Use the Starfish link in Canvas. Ensure you select the…

We will be using Starfish this semester to schedule oral finals. Use the Starfish link in Canvas. Ensure you select the correct instructor before booking an appointment.

1 In Starfish - select your instructor, then select Teaching, Oral Final, and select a time that works for you.
B Submit a note with your date and time you signed up for to Canvas.
2.Attend the final
A Attend the final
Prepare and explain the required designs
Acceptance Criteria
Acceptance criteria
  • The required diagrams and example solution are prepared before the meeting.
  • You can read or write code from the specified 4.4B class diagram and draw the resulting object relationships.
  • The polymorphism and dependency-inversion exercises below are ready to discuss.
Instructions
3.Study the Class Diagram for the 4.4B IMoneyCollector and Chimpanzee design below. Be prepared to read and/or write code based on it. Be…

Study the Class Diagram for the 4.4B IMoneyCollector and Chimpanzee design below. Be prepared to read and/or write code based on it. Be prepared to draw an Object Diagram based on the code written during the Oral Final.

This question is about the combination of composition, interfaces and inheritance. There will be an emphasis on the "Only talk to your friends" design principle.

The solid black diamond implies that the constructor instantiates it and does not share the reference publicly.

A Study the Class Diagram for the 4.4B IMoneyCollector and Chimpanzee design below. Be prepared to read and/or write code based on it. Be…

Study the Class Diagram for the 4.4B IMoneyCollector and Chimpanzee design below. Be prepared to read and/or write code based on it. Be prepared to draw an Object Diagram based on the code written during the Oral Final.

Chimpanzee implements IMoneyCollector alongside the money collector classes.
Class Diagram: Chimpanzee
4.Create diagrams and solution code for the final.

Diagrams must be proper UML; code can be in any form, e.g. pseudo-code can be used.

You can bring your solutions and any additional notes with you to your final, if you like.

A Given the following class diagram and code, provide a refactored design, without using inheritance. Show the processing of…

Given the following class diagram and code, provide a refactored design, without using inheritance. Show the processing of all possessions in a single loop without any conditionals based on type.

Class Diagram: Magazine and CD; Members and relationships are shown in the editable reference; unrelated members may be omitted.
Class Diagram: Magazine and CD
  • New
  • Changed
  • Removed
public void SortPossessions()
{
foreach (Magazine m in this.magazines)
{
if (m.DateLastRead < DateTime.Today)
{
this.Trash(m);
}
}
foreach (CD cd in this.cds)
{
if (cd.DateLastListened < DateTime.Today)
{
this.Trash(cd);
}
}
}

Create a class diagram and write code or pseudo-code of the refactored loop.

Refer to Module 4.4.

B You are developing your own text editor for editing any text file. Your current design, shown in the class diagram below,…

You are developing your own text editor for editing any text file. Your current design, shown in the class diagram below, requires a text editor class to use TxtDocument class, which represents a document with the .txt file extension. You soon realize that your design is not extensible when you want to be able to edit XML and XAML documents in your text editor.

Class Diagram: Text Editor Dependency; Members and relationships are shown in the editable reference; unrelated members may be omitted.
Class Diagram: Text Editor Dependency
  • New
  • Changed
  • Removed

Create a class diagram of an alternative design that implements the dependency inversion principle so that your text editor can edit .txt, .xml, and .xaml documents.

Refer to the Module 4.4 Readings on the dependency inversion principle.

C A customer class is used in a WPF application. The following code sets the customer's phone number if the value matches the…

A customer class is used in a WPF application. The following code sets the customer's phone number if the value matches the regex pattern. Otherwise, it notifies the user via a message box that the phone number is not valid.

public string Phone
{
get
{
return this.phone;
}
set
{
if (!Regex.IsMatch(value, @"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}"))
{
MessageBox.Show("Phone number is invalid. Ex: 715-555-1234");
}
else
{
this.phone = value;
}
}
}

You are given a requirement that the customer class be used in both a WPF application and a console application, which wouldn't be able to use a message box. Refactor the setter of the Phone property to allow the customer class to be used by two different user interfaces in a way that still validates the phone number. Be prepared to explain how the user interface would use the validation provided by the customer class.

Refer to the Module 4.2 readings.

Completion review
5.Review the feature acceptance criteria
A Confirm the required results

Return to each story and verify its acceptance criteria. Preserve the submission format and destination stated in the activity; a reading, setup guide, lab, video demonstration, and oral final may require different evidence.

Prepare and explain the required designs