Discussion
Development of a software is a considered to be the process related to the conceiving, specifying, designing, programming, documenting, testing and fixing of the bugs. This is done so as to get involved in the creation and maintenance of the different, applications or other software components (1). This is the process which is also defined as the writing and maintenance of the source code. however, from a boarder sense this process would be including all the things that are involved in between the conception of the desired software to the final manifestation of the software of sometimes in the process which are planned and structured.
This is the scenario where a small organization would be involving themselves in the designing and development of cell phone game which would be suitable for any kind of cell phones and this would be done by making use of the programming language Java 2 Micro Edition.
Developing the game firstly involved the designing phase and after completion of the designing phase a specific person is assigned along with is the team is assigned to create all the graphics that are required for the game. This is a time-consuming work (2). After the designing phase is the building phase which is the next most time-consuming phase after the designing phase. In this process of game development, most of the design ideas would be kept constant throughout the building phase. However, most of the plans would not remain intact. After starting the coding process several changes need to be made. Few steps of the designing phase were seen to be useful at the time of building and this mostly included the scenarios of the user and the requirements (3). The design steps are considered to be helpful only if they are associated with providing directions and provide the game with an identity.
The main concept of this game is to provide a ladybug with an assistant so as to help it in moving outside a maze (4). The idea of this game is very much simple and as the ladybug progresses through different levels it would gain the capability of transforming seeds to flowers so as to keep track of the places inside the maze where it has already visited.
Once the flower is created by the ladybug points would be awarded and the final game consisted of two simple levels (5). Users would be offered with different kind of options all through the game along with a viewing of the basic instructions, credits, restarting the current level or the current score and many more. After completion of all the levels, the ladybug would be meeting its princess.
All these levels inside the game would be implemented by making use of two-dimensional array map which would be representing the spaces that can and cannot be interacted by the ladybug. Whenever the ladybug tries to make a new move to some new space then the array would be checked so as to see if the movement of the ladybug was legal or not (6). In order to ensure the occurrence of this events, the graphics presented needs to be updated. Precise creation of the maze graphics is to be done so as to fit all the things together. A subset of Java SE is to be used so as to program the game. Java SE or the Java 2 Micro Edition or J2ME is one of the freely available programming specifications along with several other tools that are available in order to work with the language.
Possible Methodologies
Selection of the proper development process acts as an important factor responsible for the success of any kind of project. There exist many processes which are well known along with some which are less known. Some of the processes that can be used have been discussed in the later section of the report. The development cycle consists of 5 phases and this includes the designing communication, modeling, construction and lastly the deployment phase (7). In the communication phase the project gets initiated and after initiation, the gathering of the requirements is done. Followed by this is the planning phase in which the estimates are done and plans are made by the team so as to complete the project (8). After the estimations are done the three other step that is the modeling of the software, construction of the software and deployment of the project is done.
Three most important development process:
This is the oldest paradigm that is followed for the purpose of developing the software. This model is associated with representing a systematic approach which is linear in nature. The phases included in the waterfall model software development process are described in the later section of the report. The major idea which lies behind this is that the waterfall model is associated with following the processes in a logical order (9). Each phase of the waterfall model would be followed so as to finish the project in a theoretical way after construction gets completed. But despite all these an ongoing support would also be provided to the product even after the completion of the project for a long time.
This type of model is particularly useful whenever the requirements of the project are understood properly and are stable in nature. But this is not applicable for any of the real-life projects. Evolution of most of the software programs generally occurs when the customer is associated with making decisions about the program. The project would be affected disastrously if any kind of changes occurs at the end of the process. In many cases, it is seen that the customers actually don’t have any idea about the actual requirements and are associated with forcing the team in taking the best decision about the way of how the customers would get satisfied. Besides this, a product would also not be available until it reaches close to the end of the process (10). This might be responsible for making the customers get more impatient. This would be initially responsible for making the process of decision taking more difficult (11). However, this does not provide them with much flexibility so as to change the thinking that they are having about the way how the things would look without spending extra money or by expanding it.
Besides this, there is another problem associated with this process that there are high possibilities of occurrence of blocking states. Blocking state generally refers to the situation when a part of the development process is held back due to its dependency on other parts that are not yet completed.
Three Most Important Development Process
This is the process which is associated with the usage of the systematic model of the waterfall model however this is done in such a way that an iterative approach is adopted. Each iteration is associated with representing a pass around the spiral, despite of this each of the spiral models is associated with the usage of the same general framework ideas and this in turn is associated with reducing the risk as well as the uncertainty which is done by the development of the early prototype (12). When the entire development process passes through the iteration the development of the prototype, more complete versions of the actual program occurs. This in turn is associated with helping in keeping the customers in tune with the current state of the project. This is also associated with allowing the team to receive an early feedback from the customer end so as t produce a much desirable program which can produce as the final program. Each of this is made to pass through the planning phase so as to allow the team in making certain adjustments in the schedule and the cost that has been estimated. This model can be applied in the project at any stage or point of time of the development process, in case if an enhancement is proposed for the project that has been completed then it is possible to reapply the spiral model at an entry point in the appropriate phase.
The capability of handling the projects which are evolving acts as an advantage of the spiral model over the spiral model. Despite this advantage, there exist certain problems as well. There exists the possibility that the customers won’t be believing that the revolutionary approach of developing a software is controllable (13). This is the process which would also be requiring the uncovering of the risks along with being addressed with expertise. In the case of the waterfall model if a problem is not covered at the early stage the results obtained would be disastrous.
This is the process which is created so as to address the major assumptions that are made while developing a software. The assumptions mainly include the following:
1.difficuties in predicting in advance the possible changes that are likely to occur in the initial software requirements along with the changes which are not going to occur. Besides this, it is also very much difficult to predict how the priorities that the customers are having are going to change as the project proceeds forward (14).
- Along with the difficulties faced during the first prediction, it is also very difficult to know about how much design is to be done before the construction starts. Design acts as one of the important factors in understanding the program however the construction is very important for testing the design.
- Scheduling, planning, designing, construction, and deployment phases ate are very hard to plan along with which it is also very hard to know how these phases would be carried out as the project progresses.
For all this reason there exists a much amount of uncertainty in developing the software. This is the process which tries to address all these assumptions by providing adaptability to the ever-changing project program and many more (16). In case if a software team want to achieve success then it is essential that they have a common focus along with having competence, try to collaborate with one another, have the capability taking decisions, having the capability of solving fuzzy problems, should have mutual respect as trust amongst one another and lastly should be self-organized.
SPIRAL MODEL |
WATERFALL MODEL |
AGILE MODEL |
1] this is not suitable for small projects. |
1] this is suitable for small projects |
1] this is suitable for small projects |
2] Risk management is better |
2] existence of the High amount of risk along with high rate uncertainty. |
2] faces more amount of risk related to sustainability and maintenance. Minimum rules, documentation easily employed. |
3] this is a complex process |
3] this process is Easy to understand. |
3] very easy to manage. |
4] indefinite progress of the process |
4] consists of clearly defined Stages (17) |
4] Little or no planning required |
5] This is the model which is suitable for projects which are long and ongoing. |
5] This is the model which is not suitable for projects which are long and ongoing |
5] Suitable for small projects. |
6] following the Iterations |
6] following the Sequence |
6] Every iteration is a separate model |
7] Flexible with user requirements |
7] Requirements once fixed cannot be modified |
7] highly Depends on customer interaction |
8]easy possibilities of doing the Refinements |
8] Refinements are not so easy |
8] Agile is the combination of iterative and incremental |
9] Phases are repeated itself |
9] Phases are processed and completed one at a time. |
9] Early delivery of partial working solutions. |
The process that is highly recommended for developing this game is the extreme programming and this is the process which consists of activities that form the four basic phases and this includes the planning phase, designing phase, coding phase, and the testing phase. At the planning phase, the customer is associated with the relation of user stories for the team associated with development. These user stories are very much similar to use case and in this, they are associated with describing the functional feature that is to be included in the product obtained after completion. The customer who would be using the game would be associated with breaking the functionalities in small sections which are known as a story on each of the index card. Followed by this is the designing phase and this step needs to be kept simple. The basic idea lying behind this is t keep all the designs very simple and no new things which are unnecessary should not be added to the current task. Instead of this development team should be associated with the usage of spike solutions. This type of solution is developed whenever a new problem is encountered by the team. After this comes the coding phase which starts with the development of unit tests and once the coding phase completes comes the testing phase which generally focuses upon the unit tests that are created during the designing and coding phase. All these tests are automated and this is done because of the fact that in case if any changes occur in the future then the tests can be rerun so as to check the accuracy. This phase also includes the acceptance test.
Conclusion:
The report discusses some of the key concepts themes and skills that are related to the development of the game software. Some of the major methodologies that are likely to be adopted have been discussed in the report as well along with a comparative analysis which includes the agile, spiral and the waterfall model. Lastly, the report has been associated with recommending the appropriate methodology that is the “extreme programming” can be used for the purpose of developing the game. However, it is to be noted that this is the process that focuses mostly on the programming and tests that are very much important for the software. Along with keeping things simple, this methodology particularly gets straight to the point and some people also believe the fact that not much time is spent upon the designing phase in this type of methodology. Due to this reason spending a very little time in designing phase might result in coding and re-coding and this would be initially leading to reduced productivity. So, it is very much important to have spend sufficient time in the designing phase as well.
References:
- Abrahamsson P, Salo O, Ronkainen J, Warsta J. Agile software development mtheods: Review and analysis. arXiv preprint arXiv:1709.08439. 2017 Sep 25.
- Rus I, Neu H, Münch J. A systematic mtheodology for developing discrete event simulation models of software development processes. arXiv preprint arXiv:1403.3559. 2014 Mar 14.
- Dwarakanath A, Chintala U, Virdi G, Kass A, Chandran A, Sengupta S, Paul S. CrowdBuild: a mtheodology for enterprise software development using crowdsourcing. InProceedings of the Second International Workshop on CrowdSourcing in Software Engineering 2015 May 16 (pp. 8-14). IEEE Press.
- Karambiri AS. A REVIEW OF AGILE MTHEODOLOGY IN SOFTWARE DEVELOPMENT. mtheods. 2016 Mar;3(03).
- Soni D, Kohli PJ. Cost estimation model for web applications using agile software development mtheodology. Pertanika Journ
- Patwardhan A, Kidd J, Urena T, Rajgopalan A. Embracing Agile mtheodology during DevOps Developer Internship Program. arXiv preprint arXiv:1607.01893. 2016 Jul 7.
- Zaina LA, Álvaro A. A design mtheodology for user-centered innovation in the software development area. Journal of Systems and Software. 2015 Dec 31;110:155-77.
- Kuhl JG. Incorporation of Agile Development Mtheodology into a Capstone Software Engineering Project Course. InProceedings of the 2014 ASEE North Midwest Section Conference 2014 (pp. 1-8).
- Mahapatra HB, Goswami B. Selection of software development mtheodology (SDM): a comparative approach. International Journal of Advanced Research in Computer Science and Software Engineering. 2015 Mar;5(3).
- Khan S, Babar M, Khan F, Arif F, Tahir M. Collaboration Methodology for Integrating Non-Functional Requirements in Architecture. the Journal of Applied Environmental and Biological Sciences (JAEBS). 2016;6:63-7.
- Ruiz GA, Napoleão BM, de Souza EF, Felizardo KR, Meinerz GV, da Silva PR, Vijaykumar NL. Using meta-ethnography to synthesize research on knowledge management and agile software development methodology. In Proceedings of the 17th Brazilian Symposium on Software Quality 2018 Oct 17 (pp. 230-239). ACM.
- Rolli F, Parretti C, Citti P, Rinaldi M. Functional Case Test Design to Optimize the Software Development in Italian Tax Processes (Part I): Mtheodology Definition. InMATEC Web of Conferences 2017 (Vol. 127, p. 01005). EDP Sciences.
- Mostafa B. Assessing the applicability of Traditional and Agile methodology to enhance success of software development projects.
- Brhel M, Mthe H, Maedche A, Werder K. Exploring principles of user-centered agile software development: A literature review. Information and Software Technology. 2015 May 1;61:163-81.
- Ko?aczek G, ?wi?tek P, Juszczyszyn K, Grzech A, S?awek A. The Methodology for Software Development to Support Decision Making Processes. InInformation Systems Architecture and Technology: Proceedings of 36th International Conference on Information Systems Architecture and Technology–ISAT 2015–Part III 2016 (pp. 15-24). Springer, Cham.
- Wingo RS, Tanik MM. Using an agile software development methodology for a complex problem domain. InSoutheastCon 2015 2015 Apr 9 (pp. 1-8). IEEE.
- Akbar MA, Sang J, Khan AA, Shafiq M, Hussain S, Hu H, Elahi M, Xiang H. Improving the Quality of Software Development Process by Introducing a New Methodology–AZ-Model. IEEE Access. 2018;6:4811-23.