Software Engineering Process Models Strengths and Limitations with SimSE

Background/Objectives: This work mainly focuses on how game-based learning approch can improve the understanding of the software engineering courses content. Methods/Statistical Analysis: This study introduced SimSE in our software engineering course. We used it for explaining three different process models to students and we also compare these models and tried to explain the come up with a point that which model is better in a specific situation. Findings: Our results found a significant variance in the selection of the three different process model (F=6.1, 0.05), whereas, the Agile model was found to be more efficient as compare to the rest of two. Application/Improvements: A modern learning approach such as game-based learning can make more interest of students in the theoretical conceptual computer science courses such as software engineering. *Author for correspondence


Introduction
Information technology is extensively impacting on our daily lives today, it impacts how we did our work, communicate and collaborate 1 . The requirement of skilled IT professional is continuously increasing as required more effective higher education. In the 21 centuries, the computer science discipline necessitates to attract quality students and make them be capable and competent IT professionals 2 . However, computer science education has been multifaceted and complex nowadays due to rapidly change and advancement in technology. In 3-4 the past years, most computer science courses are taught in traditional ways which may not be adequate to keep up with modern concerns. A modern learning approach such as game-based learning can make more interest of students in the theoretical conceptual computer science courses such as software engineering 5 . Game-based learning uses games which define learning outcomes [6][7] . They are designed in a way to balance course content with game play. Games are considered a powerful instructional rule for an objective such as winning 6 they can provide a wide range of benefits such as increasing learning effectiveness, interest, motivation, and persistence [7][8][9][10] . Therefore, game-based learning provides a promising alternative to teach computing in higher education.
Keywords: Game-based Learning, Process Model, SimSE, Software Engineering In software Engineering, process models are used to developed quality software in a systematic manner and improved the chance of completing the software on time. They provide a sequence of activities for software development. They are divided into different logical stages that allow organizing the development work efficiently. According to the latest research, there are about 12 to 15 process models and most of the software engineering graduates and undergraduate students find it difficult to follow any one of them for their project. Due to the vast variety in models, it is quite difficult to understand that which model is best for which domain or which model is feasible to follow. In the industrial practices, the selection of the process model is depending on the type of software but most of the cases the choice of a software engineering team. If the team access the software accurately then they choose the right process model. Each process model has strengths and limitations and provides better performance in some situation than the others. It is a prime challenge for every software development team to choose an appropriate model that covers all aspect of the software development. It is a crucial point which decide the success or failure of the software. Therefore, deciding the process model according to the software is a very important skill which must be built in the software engineering students. On the other side, software engineering courses are taught in the universities in a theoretical way without any support of real-life examples that why mostly students complain about the dryness of the subject and proper skills regarding process model has not been developed in the students. It is very important that the students properly understand how the process model implement and they must be familiar with the advantages and limitation of each model. That is why in the previous semester we changed our strategy to teaching process models. We used a game SimSE to teach students about the process models and tried to explain the way of artifacts development in various process models. One of the most significant factor behind the use of SimSE in the classroom is the explanation of how various tasks of software engineering are accomplished in different process models some time it become very difficult to explain in front of students theoretically because in all models' tasks are mostly common. Due to the vast variety of process models, it was quite difficult for us to select models for comparisons. After a lot of research, we have selected: Waterfall Model, Incremental Model, Agile Mode (Extreme Programming).

Background and Related Work
Computer games are promising method to teach software engineering courses. This method can accomplish high learning outcomes in difficult field of study. Two types of game-based methods are practiced for teaching software engineering: (1) game-based learning systems and (2) the game development process.
Programming languages and software process model are most significant areas of software engineering. Games of which teaching programming based areon visualization of program code e.g. turtle graphics [11][12] , Karel The Robot 13-15 , BlueJ 16 , DrJava 17 and Alice [18][19] . They are used to creation of object world through frameworks such as Karel. Current process model teaching games are simulators such as Software Engineering Simulation by Animate Models (SESAM) 20 , Role Playing Game for Software Engineers (RPGSE), Second Life 21 , Value-Based Software Engineering (SimVBSE) 22 , web simulator Simjava SP 23 and others. Many academicians have been used gaming simulator in their lectures such as Alex Baker and educational card game Problems and Programmers which simulates the software engineering process and teach process issues which are not sufficiently clarified in the lectures. They also performed an experiment in the lectures and note the improvement in the understanding of the software process 24 .
In 25 authors presented an inwards-class game for teaching software engineering. The proposed game is a simulation of a real software engineering project. He also evaluated the game results through a survey. In the survey, they focused on issues related to the 4 P's model. In 26 authors experimented with 3D virtual world Second Life in their classes, (1) Ohio University, (2) University of Mary Washington. Additionally, they built an educational game in Second Life, and in SimSE. In 27,28 authors addressed the issues which faced by teacher in the software engineering teaching. They developed two game-based simulation tools for teaching software engineering: (1) Problems and Programmers and (2) SimSE.
The SIMSE software engineering educational game that simulatessoftware engineering environment according to the chosen process model. It has 6 different process models, each process model has a different scenario and different method. SimSE is an interactive, fully graphical educational game, it is developed specifically to improve the skill of students in circumstances which are required for handling and understanding of software process issues. In the gameplay, at the starting of the game, a detailed description of software engineering task which will be expected to be performed is presented to the player. Usually, the description contains about goal of the game, the budget, availabletime to finish the project, some informative hints to guide about the game and the detail of how the score will be calculated. It provides a fully graphical user interface, as shown in Figure 1. The central part of GUI is a virtual office where the software engineering activities are performed, containing typical office environment and team members. The team members communicate with the project manager (player) via over the head speech bubbles. These speech bubbles are used to inform the player about important information for example when the job was initiated or when it was finished, the occurrence of random events, and response to one of the player's actions.

Process Models
The waterfall model was the first process model. In it, each stage must be fully complete before the next stage and there is not allowed to parallel execution of development stages. In the incremental model product is designed, implemented incrementally until the product is finalized. It combines the elements of the waterfall model with the iterative development. Agile methodology improves the quality of software and its provides ability to adapt the changes in requirement during the development. It provides iterative and frequent small releases throughout the development.

Methodology
The course in which we used SimSE was CSC202, a onesemester introductory software engineering course at SMI University. We used SimSE in two classes. In the 4 th weeks of the semester after completely discussed different process models, we gave a short fifteen minutes tutorial about how to play SimSE, and gave assignment to the 68 students of two classes. They played three SimSE models waterfall, incremental, and agile at least five times or until they got above 90% points and note the final score of each play. In the end, we also conducted the student's interview and asked questions about each process model and finally, we compare the process model from students' point of view.

Result and discussion
97% of the students attempted the SimSE extra credit assignment, so the interest was significant. The students' scores in the first attempted of waterfall model was very low due to their complex nature. Table 1 shows the score of the first attempt of water fall model the result shows that no student got above 50% and 70% did not complete the project on time in the first play and in the last attempts they could not cross 70% and 60% finish the project on time.
In the interview we found that student faced too many problems in the waterfall due to the sequential execution of the phases such as: single activity, requirement gathering, and design required too much of time, difficulty inteam management, and very poor resource management. In the end, students realized that waterfall model is not suitable for long and ongoing project and a very high level of risk and uncertainty and where requirements are at risk of changing. It is used where requirements are clear and there will be no changes in the development of time such as defense projects, migration projects: where   (Table 2). Students' scores of the first attempt of the incremental model also low in the incremental model. As shown in Table 2, the score of the first attempt of incremental model no student got above 60% and 50% did not complete the project on time in the first paly and in the last attempts, they could not cross 90% and 75% finish the project on time. Because, in the incremental model, a module or small group of modules are constructed in a single increment and in the one increments the rules of waterfall are followed. In this experiment students already play the SimSE in waterfall model therefore, their results are better than the waterfall. In the interview we found that student also faced some problems with the incremental model such as a lot of advanced planning, clear and complete specification of the system required to properly divide the project into the increment, each phase of an increment is fixed and cannot be overlap. The incremental model can be used in the situation where requirements are clear and can implement phase wise. It is suitable for web site and product line software.
Finally, students played the Agile module in SimSE and got above 90% score in the first attempt as shown in Table 3. In interview we found that students faced very few problems in agile model such as difficult to measure progress because progress depends across various cycles, it requires more energy and time due to software engineers and customer constantly communicate with each other and its short cycle not leave enough time for the design review therefore, designers face so many redevelop, the requirements and procedure which are developed in each iteration should be independent and not have dependencies with other requirements outside of the iteration. It is used in small and medium-sized projects, where multiple variantsis required and when major deliverable can be broken down and produced in the incremental discrete package.
We also applied F-test between and within the three different software models to check the significance difference among the three (waterfall model, Incremental Model, Extreme Programming Model). A significant variance found among the three software models (F=6.1,

Score
No   Table 4, which is highly suggestive and in favor of the Agile.

Conclusion
In this paper we have compared three major software development life cycle models with the help of SimSE Simulator. Selection of appropriate development life cycle model is very important, software must be delivered to the client within timeframe and must have desired quality.
In this regard, we applied F-test between and within the three different software models to check the significance difference among the three groups. A significant variance found among the three software models. This study makes software development model selection process easy which improves the quality of software and decreases the software failure rate.   Table 4. F-distribution between and within three different software models