Skip to content

Sprint 2: OOP Principles and File I/O Integration

Expand your Sprint 1 project using inheritance hierarchies, polymorphism, and abstract classes to create flexible, maintainable designs. Integrate robust error handling with exceptions and persistent data storage using file I/O to build a professional-grade application.

Sprint 2

Master Advanced OOP: Design with inheritance and interfaces, implement polymorphic behavior, enforce encapsulation with access modifiers, and handle real-world challenges through exception handling and file persistence.

Key Elements

Element Details
Topics covered Inheritance, Polymorphism, Abstract Classes, Interfaces, Exception Handling, File I/O
Teams Same teams as Sprint 1 (2–4 students per team)
Points Sprint 2: 10 points
Deadline December 16 (end of day)
Submission One team submission: repository link (or ZIP) containing updated requirements, revised class diagram (PNG/PDF), exception handling documentation, and source code

What to Deliver

You must deliver one zipped folder per group that contains all Sprint 2 materials. The zipped folder must include:

  • Updated document: Revise your Sprint 1 requirements to reflect new scope. Include a discussion of your inheritance hierarchy (parent/child classes, abstract classes, or interfaces), the exception handling strategy employed, and the file I/O design (what data is persisted, file format, and how it integrates with your application). Embed an updated UML class diagram showing inheritance relationships, abstract classes/interfaces, and associations.

  • Exception handling documentation: Make sure your document explains

  • What exceptions your application throws and catches

  • Which situations trigger exceptions (file not found, invalid input, etc.)
  • How your application recovers gracefully

  • Source code: Extend your Sprint 1 code with:

  • At least one abstract class or interface defining shared behavior across related classes

  • At least two concrete subclasses that extend/implement the abstract parent
  • Polymorphic method calls demonstrating runtime behavior selection
  • Exception handling with try-catch blocks for at least two distinct error scenarios
  • File I/O operations (read and write) using try-with-resources or appropriate resource management
  • Clean, professional code with proper access modifiers (private, protected, public) enforcing encapsulation

Project Scope

Expand your Sprint 1 project by:

  • Identifying opportunities for inheritance (e.g., different types of users, items, or entities that share common behavior)
  • Creating an abstract parent class or interface that captures shared functionality
  • Implementing at least two specialized subclasses with unique behavior
  • Adding user input validation and file operations with robust exception handling
  • Persisting core data to a file and restoring it on application restart

Grading Rubric

Category Points Criteria
Project Defense 3 Team presents design decisions, explains inheritance strategy, demonstrates exception handling in action
Design & Implementation 3 Updated code shows inheritance hierarchy, interfaces, proper associations; design rationale documented
Exception Handling & File I/O 2 At least 2 distinct exceptions caught and handled gracefully; File I/O with try-with-resources; data persists and restores correctly
Code Quality & Documentation 2 Clean code with proper access modifiers; comments explain non-obvious logic; documentation is professional and complete
Total 10

Submission Checklist

Make sure to check the following before you submit

  • Same team as Sprint 1
  • Updated requirements document (3-5 pages)
  • Revised UML class diagram with inheritance and relationships
  • Fully functional source code with inheritance, polymorphism, exceptions, and file I/O
  • All files compressed into one ZIP folder
  • Submitted by December 16