Font Size: a A A

Web-based Supporting System For Team Programming

Posted on:2012-08-24Degree:MasterType:Thesis
Country:ChinaCandidate:B B A b e b a G e b e r e a Full Text:PDF
GTID:2178330335950182Subject:Software engineering
Abstract/Summary:PDF Full Text Request
The idea of working in team is not a new concept and is also applied in different fields of works for many years as two heads are better than one. It is also applied to software development concept adopting the nomenclature of team programming. It is a strategy of managing software development projects in an efficient way within the time limit by dividing the big project into smaller tasks and sub-tasks. Usually, more than two programmers collaborate with each other on the project development process in order to complete the big project against its constraints.As today's software development is becoming bigger and bigger in scale and its complexity increasing from time to time; developing software individually becomes almost impossible to meet the need of the current software requirement. In effect, knowledge and skills of more than one programmer have to be shared for the purpose of successful completion of the whole project.This concept is also found to be very important to teach software students in an early stage of their undergraduate studies. The main reason to teach team programming in universities while they are in undergraduate level is, the students feel free to make mistakes and as a result they can learn from their mistake. As a result, some recommend this strategy to be included in the curriculum of software colleges to let the students aware of this basic concept and become familiar to the real world software development process.It is believed that if software students become familiar with this best practice, it would be easier for them to work in team so that the challenges encountered in real time team programming today in the software industry will be minimized. As a consequence, the quality and efficiency of software development will increase.In order to get full benefit out of this basic strategy: One, the team programming concept has to be taught in the early stage of undergraduate software studies so that the students can learn by practice while they work programming projects which they will be assigned to afterwards. Two, they have to be familiar with the process of and activities of team programming. For this purpose, there has to be an easy, education-oriented and user-friendly tool that helps them practice the concept of team programming.The aim of this paper is, therefore, to gather and analyze requirements from students; design and implement Web-based System for Team Programming (WBSTP) as per the collected information in order to help students'practice team programming.The main concern of this system is to manage the overall project development process and the activities performed during the development process. This system will enable students to manage their projects in an efficient and easy manner. Moreover, it is expected to assist them in familiarizing themselves with the concept of team leadership and software development process. Among the main functionality of the system are keeping and managing user, project, tasks, team and messages records from the conception to the completion of the project.This system is role-based system and it has three types of user roles viz. administrator, team leader and team member. The system enables the administrator of the system to manage information related to the user, the team, and the project. S/he publishes new projects online, upload samples and templates of a project that help the students as a guidance and post news related to all users. This system also lets the team leader allocate tasks of a given project to specified members and send feed back to every member of the team. Finally, the tool allows the team members to view information of their own, chat with members of that team incase they face problems, download samples and templates and upload their assigned tasks to the system within the specified deadline.The main tasks performed to develop this system are:A. The current status of team programming is studied by taking two cases: software schools and software industry. This paper attempts to clarify the differences between the concepts of team programming and group programming which are mistakenly understood as synonyms from students'perspective and are used interchangeably. However, in real world application the meanings of the terms'group'and'team'are not same and have, in fact, different meanings. This clarification can help the students to work in the right way of team programming and try to achieve what is required from team programming.First, the students need time to form a team as its members should be selected for their complementary skills and interests rather than for their commonality like sameness of background, friendship, etc which are the bases to set up a group but not necessarily an effective team. Second, the overall team's strength is measured by the commonality of purpose and interconnectivity among members of the team. Third, and more importantly, the overall success of the team is measured by the process used to reach the final result and functional interpersonal dynamics among the members as every member has purpose and function within the team. Finally, the members of a team use their individual abilities to arrive at a solid result. Therefore, there is a difference between actual team programming application in the software industry and group works in universities at undergraduate level which is the focus of this paper.Despite the real life project development strategy in the software industry today, less has been done in our university to let software students aware and practice team programming. Actually, as has been discussed in the immediately above section, there is also misunderstanding of the very concept'team programming'in universities, at least, at undergraduate level. What is mostly called'team'programming is'group'programming. In contrast to building a team, forming a group takes relatively short time. Plus, group's strength is measured by the willingness of the members to carry out a single leader's commands and not on the commonality of purpose and interconnectivity between individual members. Furthermore, the overall success of the group is measured by the final result of the project instead of the development process. Finally, the group members depend on group decision to reach conclusions. So because of these reasons, the so-called team-work in universities at undergraduate level does not equal the real team work but merely group work. Therefore, as this creates the gap between the real team programming in software industry and group work in universities, much has to be done in letting the students know the real concept of team programming with the help of team programming tool that lets them practice the concept.This is the way on how project is developed in group in undergraduate level today. As a project is assigned to a group of students, mostly group of friends, they decide together on what to do and how to do. They heavily utilize emails to communicate with each other and to submit their final result to their professor. And this is, most of the time, not different from individual projects except members will be guided by some other member's ideas. In this case the project may be done, but the overall process to reach the final result is not recorded and properly managed. To perform their tasks, students do not follow standard software engineering principles to complete the project. And this does not help the students to practice team work and acquire team programming skills.It is believed in this paper that the main problem lies in lack of understanding the real team programming concept and team programming tool which helps the students work in team. Even though currently different kinds of project management tools are available, they are too expensive to be utilized and very much extended and meant to perform complex tasks at industry level. These softwares are also complex by themselves that need extra training. There are also open sources which are designed for project management purpose but these tools are designed for different purposes with different requirements in mind. Such softwares do not exactly fit with what is needed for students in the early stage of programming to practice.Understanding these problems, this thesis attempts to come up with a solution: develop an easy and practical web-based tool for supporting team programming. Students should learn the real meaning and application of team programming in their early stage of undergraduate level so that the problem they face when they involve in real life projects will be minimized. To this effect, there is a need to design a simple, easy to use, education-oriented tool that can help students clearly understand the concept of team programming and practice during the course of team programming. Once this project is completed, it enables undergraduate students to practice team programming and to achieve common goal in an easy and natural way. To address main subject of this thesis, main thesis works are performed. The main thesisworks include:Perform researches on team programmingDevelop the web-supported team programming system using the software engineering approach. The main activities performed in developing the system include the requirement gathering, analysis, design, implementation, coding and testing. And the main functions of the system developed are:1. Managing the process of doing projects in team in an easy way2. Manage file versions uploaded to the system by members3. Allocate tasks among members4. Allow members to communicate, discuss and upload tasks5. Notify members for important information during the project workCase studies on how to use the system to do team programming projects.Software engineering methodology has been studied and applied for the development of the system. This includes water-fall model as a software process. It includes phases like requirement specification in which the process of understanding the problem is performed by asking the instructor for refinement of the requirement. Moreover, a questionnaire is distributed to some undergraduate students which are the intended users of the system. On top of this, to get an input from relevant non-academic areas; we have conducted an interview with two software experts who have experience in real life team programming. The second phase is the object-oriented analysis which is trying to get the requirements what the users expect from the system. So in this phase, the functional and non-functional requirements of the system are identified and use case diagram is drawn for clarity and use case description is given for the use cases. The third phase is the system design. Here, the system design is performed and there are three design processes. These are: architecture design, system design and database design. The fourth phase is implementation. In this phase, the functionality of the system is expressed in algorithm using the flow chart diagram and lastly coded using java web technologies JSP, Java bean and servlet in MVC architecture. The fifth phase is testing. Here, the system is going to be integrated and tested against the requirement whether the requirements are fulfilled or not. The sixth phase is deployment. Here the system is deployed to the server and will be available for use and will be accessed by clients using web browser. The last phase is maintenance. In this phase, problems not identified during the whole process will be fixed.B. The architecture under which the system is going to be developed is studied. Moreover, the system has been implemented in MVC architecture. The MVC architecture is becoming more popular to implement web applications. Using this architecture web applications become more easily maintainable and help different developers to work together in the task they master. And as this architecture is a way of writing an application with three components of different responsibilities viz. the model, view and controller components; modification, upgrading to new requirements of the system becomes easy.C. The web technologies used to implement the system are studied. This is to understand and use the Java web technologies like servlet, JSP and Java beans. This Java technology is selected because it has all what the Object Oriented methodology has and what the Java language has as an advantage over other web technologies.D. Lastly, case study is written to help the students use the system in an easy way in the early stage of software development to practice working in team by providing them a clue on how to use the system.The overall content of this paper is organized into six chapters.The first chapter is all about the general overview of team programming and it introduces the background, aim and significance, and the main subject of this thesis and current status of team programming. The second chapter is a preliminary of the thesis which describes the methodologies and technologies used to develop the system. In the third, the overview of the team management system is discussed. In this chapter, the requirement analyses, design process, the architecture design, system design and database design are taken up.The fourth chapter is the implementation of the system. Here, the algorithm of the main functionality is written and flow chart diagram is drawn to show the flow of activities. In the fifth chapter, a case study is performed. This chapter shows a step-by-step description on how users involving in team programming can use this system. This helps users to get clue while they try to use it for the first time. In chapter six, the conclusion and recommendation are spelt out. This is the last chapter that sums the overall achieved goals of the thesis and future recommendations to be done to enhance the functionality of the system.In sum, taking today's software development strategy in mind and the fact that current undergraduate software students are not also well aware of and have little skill in team programming. So after designing simple and easy-to-use team programming tool, it helps them to be aware of team programming concept. The significant of this thesis is to enable software students practice team programming and manage their work in an easy and efficient way while they are in their early stage/undergraduate level. As a result, they are expected to acquire the skill of team programming and that will eventually help them address the possible challenges of real life project management in the software industry by minimizing the gap between the industry and university software development strategies.
Keywords/Search Tags:Team programming, Web-based Supporting System for Team Programming, Team management tool, Project management system
PDF Full Text Request
Related items