p428.docx

Introduction to Object Oriented Programming

Hotel Booking System

Learning Objectives

· Experience planning and developing software in a team

· Understand how to use the features of Java to implement a maintainable application through object oriented programming (inheritance, polymorphism, encapsulation, ...)

· An ability to analyze a problem, and to identify and define the computing requirements appropriate to its solution

· An ability to design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of object oriented programming

Hotel Management System

Each student is to design a robust customer facing hotel management system to be sold to hotels. The system will be designed to support users who are customers, employees, and management

Customer Uses

· Manage Customer Account

· Manage Reservations by way of a calendar system

· Submit Payments(fake it) and view transaction history

· Perform No Employee or Management Tasks

Employee Uses

· Check In/Out Customers

· Apply Room Discounts

· View Employee Level Reports

· Perform No Management Tasks

Management Uses

· Manage Pricing (Weekday, Weekend, Event)

· Reserve Rooms for Repairs and Relocate Displaced Customers

· View Management Level Reports

· Perform all Employee Tasks

· Load Room Layout File

Classroom Requirements

· Java SE 8 is language to be used. No additional outside Libraries.

· Program needs no installation other than the Java Virtual Machine and .class files(no databases, no servers, etc)

· All data and setting files must be human readable(except passwords). CSV, XML, JSON, or custom.

· Assume your data files have the security of a real database

· Do not worry about concurrency/parallelism

Grading Rubric 100 Points Total.

Program Compiles and Runs

Maximum grade of 70 if program does not run as mentioned in syllabus

PowerPoint Presentation / Demonstration XX Points

· 20 Minute Presentation

· UML Class Diagram of entire system perhaps across multiple slides

· Screen Shots, Embedded Video, or Live Demonstration(If classroom technology allows)

· No walls of text

360 Degree Evaluation XX Points

Each team member will evaluate all others and themselves on participation, professionalism, and growth

Robustness XX Points

· Each Class has a ClassDriver/ClassTest with a main that runs basic tests except for abstract classes and program entry-point.

· Inheritance, Polymorphism, and Encapsulation are used to make the system maintainable and expandable

Javadoc, Comments, Readability XX Points

· All classes and functions must have a Javadoc file. Additional non javadoc comments are also expected in source code.

· All code must be readable and have similar style across member’s contributions. (Use eclipse to format project before submission is easiest)

Meets Minimum Use Requirements XX Points

Successfully implements minimum use requirements listed in project briefing

Swing GUI – XX Points

Entire user experience is from a Swing GUI not just JoptionPane popups.