The Internet has brought a lot of revolutions on the way games are being played. With the advent of Macromedia Flash, the games have had a different dimension all together. There are games which are played online, thanks to Macromedia flash. Two or more players can be playing a game even if they are miles apart from each other. This brings out
1.1. Project milestones
The project will be assessed in different phases for analysis of the project.
1.1.1 User interface
The first milestone will be the development of the user interface. The user interface should be as professional as possible so that users will find it easy to find controls within the user interface unlike other interfaces which are complicated for no reason.
1.1.2 Coding
The other phase will be the coding phase. This will be involved with writing all the code for the project. The coding will be considered complete if all the modules and the parts of the system are coordinating well. The coding will be based on the programming languages used will be Java and CS4. The two languages make a good option for developing the system because they work optimally for graphics and game animations. Java is the open source programming that is commonly used for Internet applications.
1.1.3 Documentation
The documentation of the project will be done for the various reasons. This forms one of the other milestones that need to be considered. There are two important documents which must be written which include research specification document and the user manual. The completion of these will be an important milestone since they guide the student in developing the system.
1.2 Project deliverables
After the system is complete I expect that I have a system which is working. There will be a gaming program that will allow students to play together in different places in the college.
Another deliverable is that of documentation for the project. The documentation will contain a description of the work done to come up with the project. It will also contain some sample code for the project. The security measures taken to protect intrusion of the system by unauthorized access will also be explained in the documentation. These measures will be handy to those who will be handling security of the system.
Security is crucial because the system might be hijacked by other patrons with ill motives and show unwanted videos like pornographic videos. Without proper security measures taken, safe system will be difficult to attain. The documentation will also include the tools that were used to develop the system. This will be handy when the system will be further improved. The coders will use the documentation to look for the appropriate software to develop and improve the system. This is especially important when the original coders will not be there to improve the system (DeLoura, 2000).
The other deliverable will be the user manual. This is the document that will explain all the procedures of using the system. It will explain how the modules work and how they are integrated with each other.
1.3 Evolution of project management plan
The scheduled tasks will be followed and if there are changes to be made, it will be adjusted in the Work breakdown structure. There will be provisions for changes and this is well taken care of in the Work Breakdown Structure.
2.1 Risk assessments
There is a lot of risk management in game development. As a student there are some risks I face in executing this project. Right from domestic issues to academic issues, these issues could have been detrimental to my project development if careful consideration and control could not have been taken. The risk factors are discussed in the sections that follow
2.1.1 Work overload
This semester has been a little bit trick and cumbersome on my side as a student. This semester alone, I have had six assignments, three presentations to make and one exam for the end of semester. All these require equal concentration. To make it even harder is the fact that I am a family. My wife is a full time student. I am therefore required, naturally to work hard for her fee and upkeep of the entire family. I am therefore forced to keep a full time job so that my family will get basic needs. I am therefore forced to budget for the family, fees for both my wife and I and also for the family upkeep. This is straining for me. But I have no option but to go for it because it is the right thing to do at the moment. The children need me as their father and this has also forced me to dedicate some few hours everyday for their care. What is more, I have the bills to pay and the exam to write at the end of the semester. What is required of me is the skill of time management and financial management managing to the last coin. I have had to learn these at the course of this project. It has put my project at the highest risk ever. Time is my hardest asset to manage given all these tasks and obligations.
2.1.2 Technical requirements and tools
Given that this is an online system that is to be developed, I have a challenge and equal risk that I need to manage very well being for the good of this project. I have little knowledge on the web programming. I have limited knowledge on scripting languages like PHP and JavaScript. I also have limited knowledge on publishing the website and AJAX. This added the constraints I already have on my time management. This means that I have to learn these technologies first. I have had to schedule some time to learn these new technologies. There are sometimes that have forced me to get an expert in these areas of programming because some need explanations. This is especially true for some technologies like PHP and web publishing and more recently, AJAX. This forced me to sleep less hours, as minimal as 2 hours a day. This is risk because I will lose concentration in class. In developing games, technical risks fluctuate because even changing the jumping distance of a game can greatly affect the fun of it altogether. This is because we are dealing with the psychological interactions of the customer. This type of risk may occur if the programming language used changes or is updated so that I will be forced to learn the new features. This will lower the quality of the project to be produced in the sense that the new techniques that I should know may be too complicated to comprehend. Poor understanding of any technology will lead to production of low quality products.
2.1.3 Deadline constraints
From the risks discussed above, it is clear that I have more than enough risks to manage. I have had a problem in meeting deadlines that have been set by others like my lecturers in the other subjects and those that have been set by me. The deadline dates for submitting the proposal for example found me still contemplating on the project I was suppose to do. There are other instances that I have had to attend some other classes but in those classes, I do other tasks for my project this is the far it has gone for me. I have had to carry some other assignments home so that I am able to finish and submit them on time. This is challenging to my family who also need undivided attention. This has gone to the verge of affecting my relationships with those that are dear to me.
2.1.4 Language barrier
The other constraint that has been detrimental for me is the fact that English is not my first language. This has been a barrier to me. Most of the tools that I used needed configurations to b e made. The language for the configuration was to be in English. This proved to be a daunting risk that I found it hard to overcome it. Learning a technical skill using a language that is foreign to you is a tale that you will leave to tell it some time later. It is even harder if the task you are performing is to be submitted in that very foreign language. I have had to strive to know some technical skills using English and learn writing my reports. Some short language courses I had done before were handy in the completion of this project.
3.0 Technical process
There a number of techniques that will be employed to finish the product. These techniques are critical to project completion and project quality achievement.
3.1 Methods, Tools and Techniques
3.1.1 Tools and Techniques
ToolTechniqueDescriptionGanchatt Project Tool
The development of scheduling will be done through the use of Gantt project software. This software generates the tasks and their time of start and end dates. Ganchatt is software used to automate task scheduling and assigning the resources in the project. The screen shot below show the use of resources in the project.
Java
Java is an open source programming language from Sun Microsystems. This language is platform independent and is stable in developing large computer systems. The development of this project will use this language because of a wide range of techniques that will be available in the use of this language. These techniques will include the following
Java Database Connectivity (JDBC)
This is a technique which will allow me to connect with the database. These techniques will be handy especially because the application will require the use of database as one of the modules. The technique required here is that of connecting to MySQL database in Java.
MySQL
MySQL is database management software that is also open source. This database is stable and can be used to store large amount of data. MySQL blend well with Java programming language to come up with a strong application which will be stable in many of its uses.
Macromedia flashIt is a software application from the Macromedia company that is used to develop web applications that are interactive in nature 3.2 Work product documentation
This project will have to come up with many documents before its completion.
Software Requirements Specification (SRS)
This is a document which will give a detailed description of all the requirements that is needed for the project. The SRS is normally prepared by the system analyst. It will define the functionalities required of the system and the operating environment and parameters for the system.
3.3 Quality Assurance
A number of software activities will be performed to ensure that all the requirements are met. The activities to be performed include the following
3.3.1 Unit testing
To ensure that the individual units are working, all code will be unit tested to check if individual units are working as per required by the programmer. They should be able to give the correct results are output. Proper results will be determined by use of the design limits of the client (the calling function) as specified in the design specification defining the server function. Unit testing is more or less equivalent to box testing and sometimes may require use of symbolic debuggers and software stubs. The main purpose of this testing is to ensure that the modules are working correctly given the fact that the internal working of the modules are already known.
3.3.2 Integration testing
This type of testing has two levels of testing. The first type of testing is that of testing the capability of the software. This is being able to send a message through a DMA port or being in a position to acquire a row of CCD. At this level of testing, all modules are treated as a black box and it is at this level that all classes and functions that are conflicting are resolved. Test cases must provide unexpected parameter values when the design documentation does not explicitly specify calling requirements and client functions. The second level of testing is arrived at when enough modules have been tested to arrive at a scenario, for example the ability to receive and to issue some certain command. During this phase, the modules and the composite builds are integrated with the engineering hardware. This will enable us to evaluate the performance of the system with the hardware that will be working from.
3.3.3 System testing
The purpose of the system testing is to make sure that the hardware and software are rightly working together. The purpose of system testing will be to make sure that the whole gaming system is working rightly well. The system should be said to have completed after the results from the tests are as specified in the STP.
3.3.3 Validation testing
The purpose of validation testing is to ensure that the hardwaresoftware system meets the scienceinterface requirements that are allocated to the software just as identified by the requirements Traceability method. It is the work of the engineers to make sure that the hardware and the software are working well and that the hardware is available for the testing to take place.
A Software Test Plan (STP) will be created to meet all the requirements that are stipulated in the documentation of the system. The STP will contain sections that are separate from each of the Software Sub-Section (SSS). This plan will provide insights on how to manage the software and the testing function with a summary of the testing activities that will be carried out, and the resources that will be required so that testing can be performed. This plan will contain the procedure of the testing specifications found in the sections that are discussed in the sections that follow.
4.0 Data collection methodologies
The techniques that will be used for data collection will be secondary. This will include the use of the websites of games and online journals that will be available online. The use of primary methods is not ideal because the system is supposed to be international. The use of the website is international because it will be played internationally. The secondary data collection methods are indicated below
4.1 Primary data research methods
To get enough data for this project to roll out, both primary and secondary methods of research will be used. The primary tools of data research are given below
Questionnaires
Questionnaires will be used to get the first-hand reactions and views from the user himself. The questionnaires will be distributed in the computer science department and the faculty of science if enough copies are made. The questionnaire structure is presented in Appendix D.
Interviews
This will be done by getting the students face-to-face to get their views on this new system. This is necessary because they are the users and getting the user requirements right is the first strategy in winning loyal users.
Online chatrooms
This is the newest method of getting views from people. Many students and game players use the Internet most of their free time. It is here that I target to get them and their views.
4.2 Secondary methods
Online journals
These are journals about gaming systems that have been developed and the extent in which these games have been existing. This will give more understanding of what to avoid in the development of the new system.
Social networking sites
This will be used to get the views of what users want with online games. Most players are normally young Turks and they are the people who will help get a clear understanding of the requirements that they want.
Games websites
I will also strive to get information from the websites of online games so that I get the insight of the same. They will also give updates of the new features that are being added to the system.
Online web forums
These are forums which will be used to get the views of the use of other systems on the Internet. These views will help the student to get the preferences of the system and help in improving the online game system.
1.1. Project milestones
The project will be assessed in different phases for analysis of the project.
1.1.1 User interface
The first milestone will be the development of the user interface. The user interface should be as professional as possible so that users will find it easy to find controls within the user interface unlike other interfaces which are complicated for no reason.
1.1.2 Coding
The other phase will be the coding phase. This will be involved with writing all the code for the project. The coding will be considered complete if all the modules and the parts of the system are coordinating well. The coding will be based on the programming languages used will be Java and CS4. The two languages make a good option for developing the system because they work optimally for graphics and game animations. Java is the open source programming that is commonly used for Internet applications.
1.1.3 Documentation
The documentation of the project will be done for the various reasons. This forms one of the other milestones that need to be considered. There are two important documents which must be written which include research specification document and the user manual. The completion of these will be an important milestone since they guide the student in developing the system.
1.2 Project deliverables
After the system is complete I expect that I have a system which is working. There will be a gaming program that will allow students to play together in different places in the college.
Another deliverable is that of documentation for the project. The documentation will contain a description of the work done to come up with the project. It will also contain some sample code for the project. The security measures taken to protect intrusion of the system by unauthorized access will also be explained in the documentation. These measures will be handy to those who will be handling security of the system.
Security is crucial because the system might be hijacked by other patrons with ill motives and show unwanted videos like pornographic videos. Without proper security measures taken, safe system will be difficult to attain. The documentation will also include the tools that were used to develop the system. This will be handy when the system will be further improved. The coders will use the documentation to look for the appropriate software to develop and improve the system. This is especially important when the original coders will not be there to improve the system (DeLoura, 2000).
The other deliverable will be the user manual. This is the document that will explain all the procedures of using the system. It will explain how the modules work and how they are integrated with each other.
1.3 Evolution of project management plan
The scheduled tasks will be followed and if there are changes to be made, it will be adjusted in the Work breakdown structure. There will be provisions for changes and this is well taken care of in the Work Breakdown Structure.
2.1 Risk assessments
There is a lot of risk management in game development. As a student there are some risks I face in executing this project. Right from domestic issues to academic issues, these issues could have been detrimental to my project development if careful consideration and control could not have been taken. The risk factors are discussed in the sections that follow
2.1.1 Work overload
This semester has been a little bit trick and cumbersome on my side as a student. This semester alone, I have had six assignments, three presentations to make and one exam for the end of semester. All these require equal concentration. To make it even harder is the fact that I am a family. My wife is a full time student. I am therefore required, naturally to work hard for her fee and upkeep of the entire family. I am therefore forced to keep a full time job so that my family will get basic needs. I am therefore forced to budget for the family, fees for both my wife and I and also for the family upkeep. This is straining for me. But I have no option but to go for it because it is the right thing to do at the moment. The children need me as their father and this has also forced me to dedicate some few hours everyday for their care. What is more, I have the bills to pay and the exam to write at the end of the semester. What is required of me is the skill of time management and financial management managing to the last coin. I have had to learn these at the course of this project. It has put my project at the highest risk ever. Time is my hardest asset to manage given all these tasks and obligations.
2.1.2 Technical requirements and tools
Given that this is an online system that is to be developed, I have a challenge and equal risk that I need to manage very well being for the good of this project. I have little knowledge on the web programming. I have limited knowledge on scripting languages like PHP and JavaScript. I also have limited knowledge on publishing the website and AJAX. This added the constraints I already have on my time management. This means that I have to learn these technologies first. I have had to schedule some time to learn these new technologies. There are sometimes that have forced me to get an expert in these areas of programming because some need explanations. This is especially true for some technologies like PHP and web publishing and more recently, AJAX. This forced me to sleep less hours, as minimal as 2 hours a day. This is risk because I will lose concentration in class. In developing games, technical risks fluctuate because even changing the jumping distance of a game can greatly affect the fun of it altogether. This is because we are dealing with the psychological interactions of the customer. This type of risk may occur if the programming language used changes or is updated so that I will be forced to learn the new features. This will lower the quality of the project to be produced in the sense that the new techniques that I should know may be too complicated to comprehend. Poor understanding of any technology will lead to production of low quality products.
2.1.3 Deadline constraints
From the risks discussed above, it is clear that I have more than enough risks to manage. I have had a problem in meeting deadlines that have been set by others like my lecturers in the other subjects and those that have been set by me. The deadline dates for submitting the proposal for example found me still contemplating on the project I was suppose to do. There are other instances that I have had to attend some other classes but in those classes, I do other tasks for my project this is the far it has gone for me. I have had to carry some other assignments home so that I am able to finish and submit them on time. This is challenging to my family who also need undivided attention. This has gone to the verge of affecting my relationships with those that are dear to me.
2.1.4 Language barrier
The other constraint that has been detrimental for me is the fact that English is not my first language. This has been a barrier to me. Most of the tools that I used needed configurations to b e made. The language for the configuration was to be in English. This proved to be a daunting risk that I found it hard to overcome it. Learning a technical skill using a language that is foreign to you is a tale that you will leave to tell it some time later. It is even harder if the task you are performing is to be submitted in that very foreign language. I have had to strive to know some technical skills using English and learn writing my reports. Some short language courses I had done before were handy in the completion of this project.
3.0 Technical process
There a number of techniques that will be employed to finish the product. These techniques are critical to project completion and project quality achievement.
3.1 Methods, Tools and Techniques
3.1.1 Tools and Techniques
ToolTechniqueDescriptionGanchatt Project Tool
The development of scheduling will be done through the use of Gantt project software. This software generates the tasks and their time of start and end dates. Ganchatt is software used to automate task scheduling and assigning the resources in the project. The screen shot below show the use of resources in the project.
Java
Java is an open source programming language from Sun Microsystems. This language is platform independent and is stable in developing large computer systems. The development of this project will use this language because of a wide range of techniques that will be available in the use of this language. These techniques will include the following
Java Database Connectivity (JDBC)
This is a technique which will allow me to connect with the database. These techniques will be handy especially because the application will require the use of database as one of the modules. The technique required here is that of connecting to MySQL database in Java.
MySQL
MySQL is database management software that is also open source. This database is stable and can be used to store large amount of data. MySQL blend well with Java programming language to come up with a strong application which will be stable in many of its uses.
Macromedia flashIt is a software application from the Macromedia company that is used to develop web applications that are interactive in nature 3.2 Work product documentation
This project will have to come up with many documents before its completion.
Software Requirements Specification (SRS)
This is a document which will give a detailed description of all the requirements that is needed for the project. The SRS is normally prepared by the system analyst. It will define the functionalities required of the system and the operating environment and parameters for the system.
3.3 Quality Assurance
A number of software activities will be performed to ensure that all the requirements are met. The activities to be performed include the following
3.3.1 Unit testing
To ensure that the individual units are working, all code will be unit tested to check if individual units are working as per required by the programmer. They should be able to give the correct results are output. Proper results will be determined by use of the design limits of the client (the calling function) as specified in the design specification defining the server function. Unit testing is more or less equivalent to box testing and sometimes may require use of symbolic debuggers and software stubs. The main purpose of this testing is to ensure that the modules are working correctly given the fact that the internal working of the modules are already known.
3.3.2 Integration testing
This type of testing has two levels of testing. The first type of testing is that of testing the capability of the software. This is being able to send a message through a DMA port or being in a position to acquire a row of CCD. At this level of testing, all modules are treated as a black box and it is at this level that all classes and functions that are conflicting are resolved. Test cases must provide unexpected parameter values when the design documentation does not explicitly specify calling requirements and client functions. The second level of testing is arrived at when enough modules have been tested to arrive at a scenario, for example the ability to receive and to issue some certain command. During this phase, the modules and the composite builds are integrated with the engineering hardware. This will enable us to evaluate the performance of the system with the hardware that will be working from.
3.3.3 System testing
The purpose of the system testing is to make sure that the hardware and software are rightly working together. The purpose of system testing will be to make sure that the whole gaming system is working rightly well. The system should be said to have completed after the results from the tests are as specified in the STP.
3.3.3 Validation testing
The purpose of validation testing is to ensure that the hardwaresoftware system meets the scienceinterface requirements that are allocated to the software just as identified by the requirements Traceability method. It is the work of the engineers to make sure that the hardware and the software are working well and that the hardware is available for the testing to take place.
A Software Test Plan (STP) will be created to meet all the requirements that are stipulated in the documentation of the system. The STP will contain sections that are separate from each of the Software Sub-Section (SSS). This plan will provide insights on how to manage the software and the testing function with a summary of the testing activities that will be carried out, and the resources that will be required so that testing can be performed. This plan will contain the procedure of the testing specifications found in the sections that are discussed in the sections that follow.
4.0 Data collection methodologies
The techniques that will be used for data collection will be secondary. This will include the use of the websites of games and online journals that will be available online. The use of primary methods is not ideal because the system is supposed to be international. The use of the website is international because it will be played internationally. The secondary data collection methods are indicated below
4.1 Primary data research methods
To get enough data for this project to roll out, both primary and secondary methods of research will be used. The primary tools of data research are given below
Questionnaires
Questionnaires will be used to get the first-hand reactions and views from the user himself. The questionnaires will be distributed in the computer science department and the faculty of science if enough copies are made. The questionnaire structure is presented in Appendix D.
Interviews
This will be done by getting the students face-to-face to get their views on this new system. This is necessary because they are the users and getting the user requirements right is the first strategy in winning loyal users.
Online chatrooms
This is the newest method of getting views from people. Many students and game players use the Internet most of their free time. It is here that I target to get them and their views.
4.2 Secondary methods
Online journals
These are journals about gaming systems that have been developed and the extent in which these games have been existing. This will give more understanding of what to avoid in the development of the new system.
Social networking sites
This will be used to get the views of what users want with online games. Most players are normally young Turks and they are the people who will help get a clear understanding of the requirements that they want.
Games websites
I will also strive to get information from the websites of online games so that I get the insight of the same. They will also give updates of the new features that are being added to the system.
Online web forums
These are forums which will be used to get the views of the use of other systems on the Internet. These views will help the student to get the preferences of the system and help in improving the online game system.