Final Project Presentation Restaurant Management System 2 Team: SE13S10 Team: SE13S10 Thursday 25 Jan 2007
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Introduction Project Sponsor Organization Project Sponsor Organization Straits Chinese Restaurant Straits Chinese Restaurant Belongs to Guan Hoe Soon group of Restaurants Belongs to Guan Hoe Soon group of Restaurants 3 restaurants & a catering business in Singapore 3 restaurants & a catering business in Singapore Business Objectives Business Objectives Streamline and automate end-to-end business processes using IT for Streamline and automate end-to-end business processes using IT for Staff Management, Staff Management, Reservation Reservation Cash flow Cash flow Reporting Reporting With Multi language support & User authentication With Multi language support & User authentication Built on top of Phase1 Project done by SE12E04 Built on top of Phase1 Project done by SE12E04
RMS Solution Stack – Phase1 & 2 Adjusted Function Point Count RMS Phase1 – 211RMS Phase1 – 211 RMS Phase2 – 292RMS Phase2 – 292
Project Organization Client Client Mr Kevin Yap Mr Kevin Yap ISS Project Advisor ISS Project Advisor Mr Heng Boon Kui Mr Heng Boon Kui
Requirements Overview Central Server Module Daily database synchronization Daily database synchronization Incremental Incremental Central DB backup Central DB backup For all Restaurants For all Restaurants Restaurant DB Restore Restaurant DB Restore Reservations & Scheduling Module Reserve Tables by “Table Type” for Tour Groups and Individual customers Reserve Tables by “Table Type” for Tour Groups and Individual customers Table Info Table Info Duration of dine-in by “Tour Group Type” (Nationality) Duration of dine-in by “Tour Group Type” (Nationality) Staff Management Module Employee Master Employee Master Leave Management Leave Management Annual Annual Medical Medical AWOL AWOL Time offs Time offs Cash flow Module Salary Payment to employees Salary Payment to employees
Requirements Overview Reporting Module Central Server Central Server Tour Agent Performance by Quarter for a given year (Report & Chart) Tour Agent Performance by Quarter for a given year (Report & Chart) Top Tour Agents by year (Report & Chart) Top Tour Agents by year (Report & Chart) Comparison of Tour Agent Performance Comparison of Tour Agent Performance Average Turnover by Tour Agent / Tour Groups Average Turnover by Tour Agent / Tour Groups Restaurant Level Restaurant Level Year End Closing Year End Closing Revenue by Menu Revenue by Menu Multi Language Support Toggle Language (English / Chinese/ Bahasa) Toggle Language (English / Chinese/ Bahasa) For Ordering & Billing User Interface For Ordering & Billing User Interface Bug Fix for Phase1 24 major / minor bugs from Phase1 resolved 24 major / minor bugs from Phase1 resolved Enhancements to Phase1 Report enhancements (void bills to be added) Report enhancements (void bills to be added) New Reports pertaining to Phase 1 modules New Reports pertaining to Phase 1 modules New Cash Register model qualification New Cash Register model qualification Other minor enhancements Other minor enhancements
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Development Strategy Rational Unified Process Rational Unified Process OO Language - Java OO Language - Java Eclipse IDE Eclipse IDE mySQL DB mySQL DB CVS CVS Phase1 Bug fix / enhancements Phase1 Bug fix / enhancements Phase2 Phase2 Bugzilla Bugzilla Excel Reporting Excel Reporting
Hardware Architecture
Software Architecture - Restaurant Application
Software Architecture - Central Server
Software Architecture Client-server communications Client-server communications Via RMI Via RMI Required to satisfy need for 2-way communication Required to satisfy need for 2-way communication Access to database Access to database Data Access (DAO pattern) Data Access (DAO pattern) JDBC JDBC Data Synchronization between Restaurants and Central Server Data Synchronization between Restaurants and Central Server Windows Scheduled Task triggers Restaurant Sync Job. The job initiates data-sync request to central server Windows Scheduled Task triggers Restaurant Sync Job. The job initiates data-sync request to central server Java Servlet deployed in web server at central server listens to synchronization request Java Servlet deployed in web server at central server listens to synchronization request
Use case model survey
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Technical Challenges / Resolution Work based on RMS Phase1 Module & Code structure Work based on RMS Phase1 Module & Code structure Resolution: In depth study & analysis of RMS Phase1 Resolution: In depth study & analysis of RMS Phase1 Bug fixes in RMS Phase1 came in handy Bug fixes in RMS Phase1 came in handy Some team members not familiar with database programming Some team members not familiar with database programming Consult Java Guru within SE13S10 team (Mr Andy Wenas who works for Barclays) Consult Java Guru within SE13S10 team (Mr Andy Wenas who works for Barclays) Design carefully before coding Design carefully before coding Simplify Report Generation & Report scheduling procedure (RMS1 reports involve Java, Excel Macro execution) – very difficult considering non IT savvy restaurant staff Simplify Report Generation & Report scheduling procedure (RMS1 reports involve Java, Excel Macro execution) – very difficult considering non IT savvy restaurant staff Resolution: Direct Excel ODBC link to mySQL Resolution: Direct Excel ODBC link to mySQL Reports always live. No java + excel macro Reports always live. No java + excel macro Minimal excel macro used Minimal excel macro used Canned reports saved as pdf files Canned reports saved as pdf files Taught client how to fish Taught client how to fish Trained client on report generation Trained client on report generation
Technical Challenges / Resolution Implement high-performance file upload capability in servlet which parses HTTP request and supports Form-based POST method to automate file uploading to central server. Implement high-performance file upload capability in servlet which parses HTTP request and supports Form-based POST method to automate file uploading to central server. Resolution: To cut development time, researched on available open source solutions. Resolution: To cut development time, researched on available open source solutions. Commons FileUpload package from Apache was chosen because just a single method can be called to parse the servlet request, and flexibility to process the list of items later on. Commons FileUpload package from Apache was chosen because just a single method can be called to parse the servlet request, and flexibility to process the list of items later on. For data security, SSL should be implemented in the central server. Restaurant client program should be able to send data in secured protocol. For data security, SSL should be implemented in the central server. Restaurant client program should be able to send data in secured protocol. Resolution: Build the code on top of open source Jakarta Common HttpClient components as java.net package doesn't provide the full flexibility or functionality needed Resolution: Build the code on top of open source Jakarta Common HttpClient components as java.net package doesn't provide the full flexibility or functionality needed java.net Consult expert within the SE13S10 team on Java Application Server and SSL area (Mr Tay Chung Boon, who works for IBM) Consult expert within the SE13S10 team on Java Application Server and SSL area (Mr Tay Chung Boon, who works for IBM)
Technical Challenges / Resolution Daily Synchronization of Restaurant & Central Server data Daily Synchronization of Restaurant & Central Server data Resolution: Incremental update Resolution: Incremental update Transaction logs to keep DB operations Transaction logs to keep DB operations Everyday a new transaction log is sent from Restaurant to Central Server for synchronization Everyday a new transaction log is sent from Restaurant to Central Server for synchronization Restoring Restaurant DB (say restaurant 2) from Central Server DB that contains data for restaurants 1,2,3 Restoring Restaurant DB (say restaurant 2) from Central Server DB that contains data for restaurants 1,2,3 Resolution:Use reverse procedure as above Resolution:Use reverse procedure as above Transaction logs for a restaurant picked up from central server & uploaded to restaurant Transaction logs for a restaurant picked up from central server & uploaded to restaurant
Technical Challenges / Resolution Simplify the GUI screen implementation Simplify the GUI screen implementation Resolution: Create a DataMaintainScreen framework, so all static table maintain screens can use it. Resolution: Create a DataMaintainScreen framework, so all static table maintain screens can use it. Extend the system to support multi-language. Extend the system to support multi-language. Resolution: Resolution: Learn and understand Java's way on supporting multi-language Fonts (Abstract Font Types that support this task). Learn and understand Java's way on supporting multi-language Fonts (Abstract Font Types that support this task). Use UTF8 character set to store and present multi- language message. Use UTF8 character set to store and present multi- language message. Use resource bundle to support static multi- language message (such as label, button text) on the screen. Use resource bundle to support static multi- language message (such as label, button text) on the screen. Use UTF8 supported MySQL database and special tables to support dynamic multi-language message (such as menus). Use UTF8 supported MySQL database and special tables to support dynamic multi-language message (such as menus). Use Observer Design Pattern to monitor and switch screen languages. Use Observer Design Pattern to monitor and switch screen languages. Change printing method from text mode to graphic mode to print multi-language fonts. Change printing method from text mode to graphic mode to print multi-language fonts.
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Acceptance Process Unit Testing (SE13S10) Unit Testing (SE13S10) System / Integration Testing (SE13S10) System / Integration Testing (SE13S10) User Acceptance Test (Kevin Yap) User Acceptance Test (Kevin Yap) System installed at client’s place for UAT in 1 st week December’06 System installed at client’s place for UAT in 1 st week December’06 UAT passed as of 1 st week Jan’07 UAT passed as of 1 st week Jan’07 System live planned by 31 st Jan System live planned by 31 st Jan Warranty / Support committed till 28 th Feb’07 Warranty / Support committed till 28 th Feb’07 Maintenance release for any new bugs found Maintenance release for any new bugs found
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Project Milestones – Plan vs. Actual
Project Indices
Effort Spent by Phase 3295 Man hours, ~52 man days per person
Effort Spent – Pie Chart
Effort Spent - Pareto
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Management Issues
Real Project, Real Client Real Project, Real Client Bug fixing of existing code (RMS1) Bug fixing of existing code (RMS1) Unforeseen tasks Unforeseen tasks Source, procure, qualify, test different cash register vendor (current cash register model – no stock) Source, procure, qualify, test different cash register vendor (current cash register model – no stock) Source, procure, test printer for 2 nd restaurant Source, procure, test printer for 2 nd restaurant Dedicated resources to maintain RMS1, fix bugs, liaise with client / vendor Dedicated resources to maintain RMS1, fix bugs, liaise with client / vendor Team Members’ tight schedule, business travel Team Members’ tight schedule, business travel 4 members changed jobs 4 members changed jobs 3 members traveling 3 members traveling Team have to allocate time for exam, assignment and daytime work. Team have to allocate time for exam, assignment and daytime work. Short, crisp Weekly meetings Short, crisp Weekly meetings Focused separate small-group discussions when needed Focused separate small-group discussions when needed Offline Discussions conducted using yahoo online chat, s, telephone Offline Discussions conducted using yahoo online chat, s, telephone
RMS Phase1 Bugs Fixed
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Recommendations for further work PDA Ordering Module PDA Ordering Module Graphical Scheduling Module Graphical Scheduling Module Table Layout & attributes (window table, table with a view etc) Table Layout & attributes (window table, table with a view etc) Opened to Tour Agents, optionally for individual customers Opened to Tour Agents, optionally for individual customers Attendance Tracking System Attendance Tracking System Auto Salary, Overtime Computation Auto Salary, Overtime Computation B2B with Tour Agents B2B with Tour Agents Offload business process to reduce workload on Straits Chinese staff; Fix quotas to avoid overbooking & depriving others Offload business process to reduce workload on Straits Chinese staff; Fix quotas to avoid overbooking & depriving others More efficient reservation system More efficient reservation system Strategic Sourcing / Procurement Strategic Sourcing / Procurement Reverse Auction Reverse Auction Forward Auction Forward Auction
What’s on the menu Introduction Introduction Development Strategy Development Strategy Technical Challenges / Resolution Technical Challenges / Resolution Live Demo Live Demo Acceptance Process Acceptance Process Project Progress – Plan vs. Actual Project Progress – Plan vs. Actual Management Problems Management Problems Recommendations for further work Recommendations for further work Lessons Learnt Lessons Learnt Q&A Q&A
Lessons Learnt
Importance of Requirements Engineering Importance of Requirements Engineering Elicitation/Discovery, Classification & Organization, Prioritization & Negotiation, URS Documentation Elicitation/Discovery, Classification & Organization, Prioritization & Negotiation, URS Documentation Peel it until it becomes fully clear Peel it until it becomes fully clear Teamwork works ! Teamwork works ! Even when not under one roof Even when not under one roof Part time, Multi tasking, Juggling work / family/ study Part time, Multi tasking, Juggling work / family/ study Using RUP methodology in a live project Using RUP methodology in a live project Most team members did not have full fledged RUP experience Most team members did not have full fledged RUP experience Importance of documentation, signoff Importance of documentation, signoff Specs, Minutes etc especially with client Specs, Minutes etc especially with client Otherwise results in a perpetual requirements phase Otherwise results in a perpetual requirements phase