Android Chess: a Real Time Collaborative Software Application for Multiple Mobile Clients
Total Page:16
File Type:pdf, Size:1020Kb
CALIFORNIA STATE UNIVERSITY, NORTHRIDGE Android Chess: A Real Time Collaborative Software Application for Multiple Mobile Clients A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering By Eduard S. Sarkisov December 2011 The thesis of Eduard S. Sarkisov is approved: Shan Barkataki, Ph. D. Date Jack Alanen, Ph.D. Date Richard Covington, Ph. D., Chair Date California State University, Northridge ii Table of Contents Signature Page .................................................................................................................... ii Abstract .............................................................................................................................. vi Chapter 1: OBJECTIVE AND GOALS ............................................................................. 1 Chapter 2: PROBLEM DESCRIPTION ............................................................................. 3 Chapter 3: BACKGROUND............................................................................................... 5 3.1 Why Chess................................................................................................................. 5 3.2 Why Aandroid & Java. .............................................................................................. 5 3.3 Initial Research .......................................................................................................... 6 3.4 Starting Point ............................................................................................................. 7 Chapter 4: CONTRIBUTION ............................................................................................. 8 4.1 Contribution to the Field of Software Engineering ................................................... 8 4.2 Contribution to Android Community ...................................................................... 10 Chapter 5: DEVELOPMENT PROCESS ......................................................................... 13 5.1 Requirements & Specifications ............................................................................... 13 5.1.1 General Description .......................................................................................... 14 5.1.2 Functional Requirements .................................................................................. 17 5.1.3 External Interface Requirements ...................................................................... 20 5.1.4 Performance Requirements............................................................................... 34 5.1.5 Design Constraints ............................................................................................ 34 5.1.6 Attributes .......................................................................................................... 35 5.2 Development Model ................................................................................................ 43 5.3 Development Milestones ......................................................................................... 43 5.4 Testing Process ........................................................................................................ 45 5.4.1 Conversion Testing ........................................................................................... 45 5.4.2 Job Stream Testing ........................................................................................... 45 5.4.3 Interface Testing ............................................................................................... 45 5.4.4 Security Testing ................................................................................................ 46 5.4.5 Recovery Testing .............................................................................................. 46 5.4.6 Performance Testing ......................................................................................... 46 iii 5.4.7 Regression Testing ........................................................................................... 46 5.4.8 Integration Testing (System Testing) ............................................................... 46 5.4.9 Acceptance Testing ........................................................................................... 46 Chapter 6: IMPLEMENTATION .................................................................................... 47 6.1 High Level Summary .............................................................................................. 47 6.2 State Diagram .......................................................................................................... 47 Chapter 7: LESSONS LEARNED .................................................................................... 53 7.1 Summary of Issues .................................................................................................. 53 7.2 Management and Auality Processes ........................................................................ 56 7.2.1 Unimplemented Requirements ......................................................................... 56 7.2.2 Lack of Available Resources ............................................................................ 59 7.2.3 Successful Resolutions ..................................................................................... 59 7.3 Unexpected Events .................................................................................................. 62 7.3.1 Abnormal Proxy Issues with Android Emulator. ............................................. 63 7.3.2 Frequent loss of connectivity by Android Emulator. ....................................... 64 7.4 Technical Issues ...................................................................................................... 65 7.4.1 What Went Badly ............................................................................................. 65 7.4.2 What Was Lacking ........................................................................................... 68 7.4.3 What Went Well ............................................................................................... 69 7.5 Project Issues ........................................................................................................... 76 7.5.1. Top 10 Issues faced by this Project and their impact. ..................................... 76 7.5.2 Ability of the Project to identify Issues ............................................................ 79 7.5.3 Ability of the Project to close Issues. ............................................................... 79 7.5.4 Areas of the project suffered the most/least issues. .......................................... 80 7.5.5 Areas of the project suffered the most high priority issues. ............................. 82 Chapter 8: CONCLUSION ............................................................................................... 83 Chapter 9: FUTURE WORK ............................................................................................ 86 9.1 Recommendations for Future research. ................................................................... 86 9.2 Working toward unfulfilled goals. .......................................................................... 86 9.3 Real live applications. ............................................................................................. 87 DEMO ............................................................................................................................... 88 iv REFERENCES ................................................................................................................. 89 APENDIX A – Use Cases................................................................................................. 98 APENDIX B – Interfaces................................................................................................ 120 v ABSTRACT Android Chess: A Real Time Collaborative Software Application for Multiple Mobile Clients By Eduard S. Sarkisov Master of Science in Software Engineering This project explores the feasibility of effective and stable implementation of a paired client/web-based software package that is integrated among multiple mobile and stationary computing devices with such devices utilizing various operating systems. It takes an existing software application, adds collaborative web-server driven capabilities while exploring porting it to various platforms and operating systems using a single development approach. In pursuit of the goals outlined above a large reverse engineering effort has been undertaken to understand existing open source software, setup the necessary development environments, add additional development libraries to have the software compatible with Android OS 2.2, create all of the necessary design and requirement documentation from scratch to support software development, and reprogram existing code base while also adding new functionalities which in total amounted to an increase in the code base by about 75%. Proper documentation has been provided turning this project into a case study of software engineering processes within a realm of small open source projects. The creation of the necessary design and requirements documentation is discussed in detail and the project now provides elements of a case study of software engineering processes within a realm of small open source projects. Collaboration features added to existing open source software provide a practical implementation of real