Therefore, companies are seeking high potential students in universities who have ... Exercise for Software Development, Genetic Algorithm, Web Application System .... Java. JUDE [2], a system design support system, is to be used in analysis ...
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
A System for Supporting Group Exercise in Software Development with Facilities to Create an Optimal Plan of Student Grouping and Team Formation of Each Group HIROAKI HASHIURA†, TORU KUWABARA*, YUMEI QIU*, KOUTAROU YAMASHITA† TATSUYA ISHIKAWA†, KIYOMI SHIRAKAWA†, SEIICHI KOMIYA† Graduate School of Engineering†, Department of Information Science and Engineering* Shibaura Institute of Technology Komiya Lab, 13F, Kenkyu-to, 3-7-5 Toyosu, Koto-ku, Tokyo JAPAN Abstract: In the recent years, software development has become larger in scale and more complicated. Furthermore, development with faster delivery and lower cost is required, thus the software development environment is becoming more and more critical. Therefore, companies are seeking high potential students in universities who have a practical sense. The information science and engineering department of Shibaura Institute of Technology provides group exercise classes that adopt a more practical approach to software development such that students can obtain the knowledge and skills necessary for software development (strictly it is a team exercise in the sense that each member of the group shares the tasks for software development). However, as the class hours assigned for learning software engineering are not sufficient, EtUDE (Environment for Ultimate software Development Exercise), the support system that learners can collectively practice at any time anywhere was developed, and introduced to the exercise classes. However, as the skills of software development differ from one student to another, the problem that some teams are not able to accomplish the assignment by the deadline often occurs. Therefore, the authors developed EtUDE/GO, which automatically generates the best plan for team formation. Optimizing team formation with this system, we can solve the problem attributable to difference in students’ software development skills. This paper discusses the system overview of EtUDE/GO as well as the consequence of applying the system.
Key-Words: Optimizing Project Team Formation, Exercises in Units of Groups, Exercise for Software Development, Genetic Algorithm, Web Application System to those problems, companies seek such students that have a practical sense and high potential. In the real world, it is common to form a project team for software development. For this reason, universities and other institutes often have students experience practical software development through quasi projects of software development exercise worked on by several groups. The students can learn practical skills for software development by voluntarily solving various problems using the software engineering knowledge they obtain from lectures. The information science and engineering department of Shibaura Institute of Technology has carried out a practical software development exercise (the “exercise”) which was performed by several project teams made up of juniors in order to learn about the knowledge and skills for software development since 2003. In the exercise, to do assignments, each member of the same group shares various responsibilities for developing software. In this sense, strictly speaking, it is not group exercise but rather team exercise. Software engineering is a constrained subject in the sense that it is based on the assumption that learners have already obtained programming knowledge and
1 Introduction In recent years, software development in the real world has become larger in scale and more complicated due to high level technology and diversified system forms. Consequently, the development with faster delivery and lower cost is desired, and the software development environment is becoming more and more critical. Because of these factors, it is becoming more important to develop manpower with more practical knowledge and skills necessary for software development. However, although companies in the IT industry fully acknowledge that it is imperative to nurture such manpower, their daily work loads force them to assign practical tasks to new workers who have not spent enough time for training or ask tie-up companies for temporary engineers for a software development projects. The same situation occurs to the tie-up companies; those temporary engineers are not trained enough; in some cases even the temporary engineers cannot make up for manpower shortages and more engineers have to be provided by sub-subsidiaries. In reality, software engineers learn skills through experience, but not through in-company training. Due
ISSN: 1790-5117
149
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
skills and are able to utilize them to some degree. However, programming education is not offered in junior high schools and high schools. Therefore, even information engineering students in university have to start from learning programming before learning software engineering. However, it is not easy to make even information engineering students master programming skills and software engineering in four years at university. As the information engineering students have so many requirements they do not have enough time for classes to learn programming skills and software engineering. Therefore, to make up for the shortage of class hours and to accomplish assignments a support system is required for learners to use even after class or outside school. The support system should enable the members belonging to the same group to do work collectively just like in the classroom (i.e., the group-work support system). To solve these problems, we developed the software development group exercise support system, EtUDE (Environment for Ultimate software Development Exercise), and introduced it to the exercise class. The functions of EtUDE consist of the four functions: “communication support,” “deliverable management support,” “project management support,” and “software development support.” It also features the log acquiring function to automatically collect the data showing the students’ activity status without troubling the students. However, as the skills of software development differ from one student to another, the problem that some teams are not able to accomplish the assignment by the deadline may occur. Therefore, the authors developed EtUDE/GO, which automatically generates the best plan for team formation. Optimizing team formation with this system, we could solve the problem attributable to the difference in students’ software development skills. This paper discusses the system overview of EtUDE/GO as well as the consequence of applying the system. The following are the contents of this paper. Chapter 2 describes the overview of the functions of EtUDE that has been developed to solve the problem of class hour shortages, and presents the evaluation of the exercise with EtUDE. Based on the result of the evaluation, we discuss the need to develop EtUDE/GO. Chapter 3 discusses the related work of EtUDE as well as EtUDE/GO. Chapter 4 explains the best methods of team formation. Chapter 5 explains how to realize EtUDE/GO by introducing genetic algorithm. Chapter 6 presents the result and the evaluation of the software development exercise which is carried out after team formation according to the best plan generated by EtUDE/GO. Chapter 7 is the summary of this paper.
2.1 Overview of the Functions of EtUDE We built EtUDE as a Web application system, because we figured out that such a support system that each learner can use without time or location restriction would be necessary in order to solve the problem of insufficient class hours. In addition, EtUDE is made to provide a “communication support function” so that the members of the same group can do the work collectively even if they are remote or use the system at different times. Also, EtUDE is provided with “deliverable management support function” and “project management support function” so that several members can collectively produce one deliverable even if they do the work separately. (1) Communication Support Function We figured out from the observation of the exercise that there are the following three forms of communication taking place during the exercise. (i) Question and answer (ii) Suggestion and discussion (iii) Notification from the instructor and confirmation We set up the bulletin board function to support the above three communication patterns. There are two types of bulletin board on this system: one for each group and one for question and memorandum for all learners. Both are the thread-type bulletin boards with tree view. The thread-type bulletin board has a merit that comments can be made by the thread, the related subject. Also, the tree view makes it possible to visually grasp to which comment the replay is made. The group bulletin board shows the deliverables uploaded in the “deliverable management function” which is described later. This is the difference from the bulletin board for question. The bulletin board function has also the feature of sending notice e-mail to participants as soon as a message is posted. This is the function designed for awareness. (2) Deliverable Management Function In software development, various kinds of tasks are done, including development planning, analysis, design, coding, and testing, and as a result, such deliverables as plan documents, requirement specific documents, specifications, test cases, source code, and minutes are produced. Among these deliverables, there is a (intermediate) deliverable which determines the relationship between pre-ceding tasks and following tasks (that is, the process order of these tasks), for example, the following task is performed by referring to the (intermediate) deliverable produced by the preceding task. Not only should such a (intermediate) deliverable should definitely be shared within the group that produces or uses it, but it also should be shared by the instructor who refers to the (intermediate) deliverable to grasp the progress of the exercise and give proper advice to the students. Furthermore, in the case where
2 Overview of EtUDE ISSN: 1790-5117
150
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
there are many groups, it is a quite burden for the instructor to receive all deliverables from the students and manage them for progress reviewing and evaluating. Therefore, such a system that electronically consolidates all the deliverables to which both the students and the instructor have access at any time from anywhere is necessary. As a result, the three functions, “deliverable management function,” “module management function,” and “source codes management function,” were developed. (3) Project Management Support Function “Project management support function” and “failure management function” were developed for project management support. (i) Report Preparation Support Function Report preparation support function provides the templates with the items to be reported to help the students who are not sure what to report to the instructor. The students can fill in information according to the template so that they can provide the information the instructor needs. This also makes it possible to consolidate the information. There are five kinds of reports: development plan, work item management, work report, minutes, and development completion report. Work item management is a report that helps to know the progress of work items, and the most important in managing a project. (ii) Failure Management Function Failure management function (Issue tracking function) manages bugs in coding in the implementation phases and the test phase. Bugs will occur most of the time in proper test after coding. To deal with this problem it is fundamental to create a list of bugs occurring at the time and debug according to the priority. Creating the bug list helps to clarify the role-sharing of debugging as well as manage the progress of debugging. (4) Software Development Support For software development support, such a function that an individual needs in developing software is provided The exercise class is targeted to analyze and design Web application system for “conference room reservation system” using OOSE [1] (Object-Oriented Software Engineering) and develop a program using Java. JUDE [2], a system design support system, is to be used in analysis and evaluation process by OOSE, and Eclipse, programming development environment, in programming process.
At the same time, we found new issues to discuss by applying it to the exercise. (1) Communication Support Table 2 shows the question regarding what communication tools the students used other than the EtUDE bulletin board and the responses to it. The responses are “mail,” “instant messaging,” and even “mix,” which is not included in the answer choices. Considering that the efficiency of the bulletin board is not rated so well, it is assumed that the students prefer the communication tool which they are familiar with. As the instructors are required to use EtUDE in order to properly understand the progress of the project, it is necessary to provide the communication tools which are easier to use for the students. Table 1 Evaluation of fulfillment of the exercise Responses (%) Responses (%) Very fulfilled. 7 (13%) Fulfilled. 36 (68%) Not very fulfilled. 9 (17%) Not fulfilled. 1 (2%) Table 2 Communication tools on EtUDE other than bulletin board (Multiple answers allowed) Communication tools Responses Mail 13 Instant Messaging 12 Telephone 5 Other BBS 1 Conversation only 10 Others 6
(2) Deliverable Production Support in Each Process EtUDE has made it possible to some degree to understand the progress of the exercise, and the instructor has been able to spend more time for teaching the students. This also helped to obtain better ratings towards the exercise. However, human resource is still insufficient, especially the instructor has to spend a lot of time teaching for deliverable production. Therefore, if there is a function which automatically picks up errors that would often occur in deliverable production, the students can fix the errors by themselves, or if the instructor can guide those students in person, even the group exercise would improve the quality of learning. (3) Accomplishment Status of Exercise Assignment In the exercise in 2004, three teams out of fifteen could not submit the final deliverables. We analyzed that this was caused by poor team formation. Therefore, we developed the system that automatically generates the best plan for team formation in the exercise.
2.2 Evaluation of the Exercise with EtUDE We evaluated the effectiveness of the EtUDE applied exercise based on the question, “Did you feel the exercise was fulfilled?” As table 1 shows that more than 80 % of the students responded that it was “very fulfilled” or “fulfilled,” it is obvious that the exercise was very meaningful to the students. We are assured of the effectiveness of the exercise using EtUDE.
ISSN: 1790-5117
3 Related Work A group exercise of software development, unlike a normal lecture, requires frequent communications between the students and the teachers (including teaching assistants), so the teacher’s burden is heavy.
151
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
So, until now people have made many proposals of exercise support systems [3][4][5]. Among the exercise support systems until now, many are focused on support for communications during exercise, management of deliverables, support for evaluations of deliverables, and so on. Even in our exercise, we also offer such supports by development and operation of a group exercise support system for software development, which is named as EtUDE[6][7]. Whatsoever, among those group exercise support systems for software development, few of them support the team formation for group exercises. Iwasaki et al. [8] developed a system which helps to form a learning group as the basis of class level study in the primary school. Iwasaki et al. compared the solution obtained with genetic algorithm and that obtained with round-robin method, made sure that the solution obtained with genetic algorithm is close enough to the upper-bound value so effective enough in practice, and reported that the merit of using genetic algorithm in group formation is the sharp reduction of process time. Besides, Hazeyama et al. [9] pointed out that since for a highly knowledge-intensive activity like software development individual ability difference is easily to appear, whether the groups are well-organized or not will directly influence the education effect, so it is necessary to form optimized groups with each student’s individual characteristic taken into consideration. In addition, Hazeyama et al., as for skill-related attribute information, collected by questionnaires system analysis ability, level of interest to system development, career path in future, leadership ability, communication ability, regarded them as the students’ skill-related attribute information, and while checking with such attribute information they experimented formation project teams based upon the strategy of minimizing the ability difference between teams. In the above studies, because no concept exists of role that is necessary to accomplish the subject, nothing is considered about individual role division inside one team. And, since the individual attributes use evaluated values (subjective values) which are obtained by questionnaires with interval scales, the formation result will be influenced by the students’ own evaluations (subjective). In our study, we introduced the concept of role when formation teams and evaluated each student’s individual aptitude to his/her role quantitatively by his/her score, so we solved the above questions.
exercise where the members of the project team share the responsibility and work on it collaboratively. Compared to the individual exercise, the project exercise is larger in scale and allows the students to work more freely. Therefore, if the skills of the team member are not similar, the deliverables by the teams will not be the same. Also, there should be at least one person who can assign a role to each member; otherwise, the team could hardly accomplish the assignment by the deadline. Therefore, we considered it necessary to optimize team formation in software development exercise in order to make the exercise effective, and defined the conditions (constraints) of optimized team formation as follows: (C1) Appoint one or more students to every duty who is capable of carrying out the duty. (C2) Minimize the difference of the skills among the teams. (C3) Do not make the difference of the number of members among the teams more than one. In addition, we added the following condition in consideration of offering an educational opportunity to the students who are incapable of carrying out any duty. (C4) Appoint those students who are incapable of carrying out any duty to a team. Now it is necessary to check the students’ human factors (or human characters) to determine whether they are capable of a given duty. We figured out that there are two human factors that would influence team formation. 4.1.1 Real Factor The real factor refers to the factor that would directly influence the skills of the students who carry out each duty required for software development. As the real factor is hardly measurable, it can be considered a latent variable. 4.1.2 Alternative Characteristics The alternative characteristics refer to the directly measurable factor that would indirectly influence the skills of the students who carry out each duty required for software development. As the alternative characteristics are directly measurable, it can be considered an observed variable. If the real factor is directly measurable, it is possible to determine whether a student is capable of carrying out a given duty using the value. However, the real factor is seldom measurable. Therefore, the values of directly measurable alternative characteristics are used to control the alternative characteristics, resulting in controlling the real factor indirectly. The relation of the real factor and the alternative characteristics has to be given a relational expression. In other words, the real factor is considered an objective variable and the alternative characteristics are considered an explanatory variable, and the objective variable should be expressed in the formula using the explanatory variable.
4 Method of Team Formation 4.1 Optimized Team Formation An individual exercise refers to the form of exercise where all the students in the class are given the same assignment and each student works on it individually. On the contrary, a project exercise refers to the form of
ISSN: 1790-5117
152
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
When we could express the objective variable (real factor) in the explanatory variable formula, we used the formula to develop EtUDE/GO that automatically generates the best plan for team formation.
As for whether the student is able to fulfill his/her role or not, it is judged by whether his/her ability necessary to fulfill his/her role is above a certain level. Fundamentally, the evaluation of whether one is able to fulfill his/her role or not can be judged by whether formula 1 mentioned in 4.2 is above a certain level or not. But in our experiment, as we simplified the models before applying them, without discrimination we assume all the roles’ weights to be the same and perform the evaluation. For this reason, in our experiment when we evaluate whether one is able to fulfill his/her role or not, we prepared equivalent alternative characteristics for each assigned role before judgment. With the above process being formulated, we apply Chronicler's delta (formula 3) in formula 1 and suppose the constant to be 0, then we can get formula 4 which is used in our experiment to judge whether one is able to fulfill his/her role or not.
Table 3 Role-Aptitude-Alternative Characteristics Relationship (Examples) Role Leader
Aptitude Ability for Project Management Ability for Software Analysis Ability for Programming Ability for Software Testing
Analyst Coder QA
Alternative Characteristics The Score of Problems on Project management The Score of Problems on Software Analysis The Score of Problems on Programming The Score of Problems on Software Testing
4.2 Individual Ability Evaluation We use the above-mentioned alternative characteristics to indirectly evaluate whether an individual has the ability (aptitude) to fulfill a certain role or not. Between the required ability to fulfill a certain role and the alternative characteristics which represent whether one has that ability or not, the relationship is not necessarily 1-to-1. The ability of a student (suppose that his/her enrollment number is l) to fulfill role i can be illustrated by the relationship with his/her score in subject j (j = 1,…,p ). Accordingly, it can be illustrated like formula 1. In our experiment, as for the relationship between the response variable and the alternative characteristics, as well as how to appropriately assign a weight value to each role, because there is no data for beforehand evaluation, we simplified such models before applying them. Specifically, about the student’s ability value, we suppose coefficient to be 1, constant to be 0, the sum of the alternative characteristics to be the student’s ability, then we can get formula 2. It is used in our experiment.
1 ⎧ =@ 0 ⎩ =@
α ij = δ ij ⎨ @
Individual abilities worked out as mention in 4.2 are used to calculate the team ability. Basically, the team ability can be represented by the sum of the abilities of its members. However, cases should also be considered like that “with an excellent leader, the team is likely to succeed”. To consider such cases, we introduced a weight for each role in a team. In this way, in order to obtain the ability of team k, multiply each individual’s ability in team k with the weight of his/her role and then get the sum, divide it by the number of all alternative characteristics that have been used in individual ability calculation, use the result to represent the team ability. It is formulated as follows:
j =1
Role Number
Objective Variable a ij Coefficients Students' Score Student Number
j
Ci
p
Subject Number
Ok =
Constants
1 p ⋅ nk
nk
∑ wiYilk = i =1
1 p ⋅ nk
nk
p
i =1
j =1
(
∑ wi ∑ α ij x jlk + Ci
i Role Number k Team Number O k Ability of Team k Average l k Student Number in Team k n k Number of Students in Team k
Number of Subjects
p
yil = ∑ x jl ….. 2 j =1
wi
r
4.3 Evaluation of Whether One Is Able to Fulfill His/Her Role or Not
Importance of Role i in Team k
Number of Roles
p Number of Subjects
In our experiment as we assumed the weights for all roles to be the same, all roles’ weights are supposed to be 1 during evaluation.
On assigning roles to students, it is necessary to meet the condition that (a) in every team, at least one student is assigned who is able enough to fulfill his/her role, as mentioned in 4.1.
ISSN: 1790-5117
….. 3
4.4 Team Ability Evaluation
yil = ∑α ij x jl + ci ….. 1 i
j)
(i≠ j)
yil = x jl …. 4
p
y il x jl l
(i
4.5 Team Formation Optimization
153
ISBN: 978-960-6766-42-8
)
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
As for the optimization of team formation, we form a team with the condition of whether one is able to fulfill his/her role or not mentioned in 4.3 being satisfied, calculate the ability gap between teams mentioned in 4.4, and perform the optimization by minimizing the gap as much as possible. Specifically, at first draft a team-formation plan with the restriction of whether one is able to fulfill his/her role or not being satisfied. Secondly, calculate each team’s ability and evaluate their variance. Repeat the above evaluation until the variance reaches the minimum, and the arrangement of students at that time, in our opinion, is considered as the most optimized team formation. Below is illustrated the response function in order to obtain an optimized team formation. m
O = min
∑ (o k =1
restrictions, it is possible to obtain an approximate solution rapidly. In addition, as genetic algorithm gives the necessary conditions for any solution to satisfy with format of the problem’s restrictions, given knowledge in the target domain, even without knowledge about how to solve the problem, an approximate solution can easily be obtained, which is another merit.
5.2 Why Genetic Algorithm Is Introduced In the exercise, based upon the actual results by 2004, we supposed that 100 students have taken this course. And, in the exercise there were 5 members in each team. Given such conditions, to obtain the number of all possible team formation solutions we found that there would be so many as 1.0E+98 combinations. To evaluate all of them so as to choose an optimized one from them is impractical. On manual operation of team formation, the operator would follow such a procedure that first consider how to meet the above restrictions and work out drafts carefully, thus get plans and choose from them an optimized one. For this reason, if many restrictions exist, the combination of conditions to be considered would increase so much that it becomes difficult even to draft a plan with all restrictions being satisfied, so it is almost impossible to reach an optimized one. Compared with that, genetic algorithm would generate one by one formation plans (candidate solutions) and single out from the generated candidate solutions only those which would meet the restrictions (such method is called generate-and-inspect method). From those obtained solutions the fittest one is granted as an optimized solution (the evaluation function is adopted for aptitude evaluation). Since the generate-and-inspect method is absolutely advantageous to optimize the combination with too many restrictions, we introduced genetic algorithm into team formation.
−o)
2
k
m n o m
Number of All the Students Average Ability of All the Students Number of Teams
5 System Implementation with Genetic Algorithm 5.1 About Genetic Algorithm Genetic algorithm is an algorithm that simulate in the meaning of engineering the procedure how a creature adapts himself to the environment so as to evolve. In order to deal with the target solution using genetic algorithm, the coding is practiced in the format of chromosomes represented by forming lines of character strings. A set of such chromosomes is called a parent population. With genetic algorithm, from the parent population of the prior generation choose 2 individuals to be the parents, on the chosen individuals perform genetic operations including crossover or mutation and generate an individual (one child) of the next generation. Repeat such operations until the parent population of the next generation reaches a certain number. At last, make a choice of solutions according to the aptitude from the parent population of the next generation. By performing such operations repeatedly, find out the solution of the highest aptitude. As mentioned above, genetic algorithm is such an algorithm that generates candidate solutions one after another and then applies aptitude function (response function) to those candidate solutions for evaluations so as to make a choice from the solutions. Accordingly, if the combination of the chromosome pairs increases, the calculation time will increase exponentially. However, as far as the team-formation problem is concerned, because only quite a few solutions might meet all the
ISSN: 1790-5117
5.3 Coding On making use of genetic algorithm to optimize team formation, coding (create meaning of each gene in the chromosome) and deciding the genetic operation algorithm are necessary. In our system, we adopted the roulette wheel algorithm for selection, uniform-crossover for crossover, the algorithm of 2-point-permutation for mutation. Such algorithms would never generate fatal genes during team formation, which makes team formation efficient. The coding of the genetic algorithm adopted in our system is illustrated in Fig. 1. Here the chromosomes represent arrangement of the students, and in genes the students’ IDs are stored. The length of the gene means how many students are taking the exercise course, so it is a fixed length. On each gene locus is assigned the student’s team number and his/her role, so from the location of a gene
154
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
(gene locus) the student’s team and his/her role can be known. In addition, for each student respectively, the data of his/her corresponding alternative characteristics is stored in other areas for reference while evaluating individual ability and team ability.
No Role QA Coding
PM
Chromosome 23 103 31 73 1 96 2 51 47 19
Team n Analysis and Design
No Role QA Coding
Analysis and Design
PM No Role QA Coding
PM
Team 2
Analysis and Design
Meaning of Gene Locus
Team 1
certain value. And as his/her score of problems on project management is 84 while at present this level is defined to be available so long as the score is above 60, we can conclude that he is able to fulfill the role of a leader. However, if arranging students in this way, it might happen that some student of low ability could not be assigned to any team. Considering this, we prepared a role called “no role” so that even a student who is not able to fulfill any role could also be assigned to a team. To evaluate the ability of a member who is not assigned any role, consider the average of all alternative characteristics to be the supposed alternative characteristics. Besides, the supposed alternative characteristics are not used to judge whether one is able to fulfill his/her role or not.
42 93 28 65 8
Each student has alternative characteristics.
Alternative Characteristics (AC)
Student 31 AC1 98 AC2 65 AC3 88 AC4 30 AC5 80
Evaluate a student‘s ability with meaning of gene locus and his/her alternative characteristics.
5.4 System Implementation The core of our system, EtUDE/GO is implemented as a Web application scripted in Java language [10]. Being a Web application, it can be run independent of the platform on the client side and it is also easy to accomplish a system upgrade. In addition, EtUDE/GO is based upon Java Servlet 2.4 [11] specification, as well as JSP 2.0 [12] specification. Not limited to our operation environment this time our system can be run on any Web application server given that it supports Java Platform Enterprise Edition [13] based upon the above specifications. Besides, on implementation of our system, except the core system of EtUDE/GO, we have made positive use of open source software. Recently, open source software has been improved in both functionality and reliability, its technical gap with software on the market is being narrowed, and its introduction and operation are remarkably economic. Considering such merits as above, we adopted open source software. In our experiment we used Winstone [14] as the Web application server, which is suitable for embedded applications and brings little overhead when being run. For the same reason, we chose MySQL[15] as the database. As for the client side, since it can be accessed using a Web browser (Internet Explorer, Firefox, Safari etc.) contained in a standard OS, it is not necessary to install any special software. On making use of this system, the user should enter plenty of score data into the system, in order to reduce the teacher’s work we adopted the Microsoft Excel file as the interface file. In this way, the necessary data could be imported into the system collectively in one time. As score data is handled in this system, full attention should be paid to its security. For this purpose, once score data is entered, it remains only inside memory and should never be saved in DB. Besides, team formation information exported from this system is
Fig. 1 Coding Table 4 Ability Calculation Examples
Examples of ability calculation adopted in our experiment are given in Table 4. About calculation method, as mentioned in 4.2, the individual ability value is represented by the sum of the alternative characteristics. About whether one is able to fulfill his/her role or not, as mentioned in 4.3, it is judged by whether the alternative characteristics, supposedly the most related with the role, is above a certain level or not (shadow-masked in Table 4). Specifically, the ability value of the student with the register number of 001 and the role of the leader in Table 4 is equal to 276. Furthermore, since this student plays the role of a leader, the alternative characteristics supposedly the most related with the role, i.e. the score of problems on project management, must be above a ISSN: 1790-5117
155
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
restricted only to be identification IDs and group numbers of the students, while the students’ score data can not be known from team formation information.
6.2 Exercise Result and Evaluation Now let us talk about the result after the exercise is finished. Although in 2004, among all the 15 teams, there are 3 teams who could not submit their final results, in 2005 among all the 24 teams there is no such case. After the exercise is finished we conducted a questionnaire investigation about the exercise. As for the students’ satisfaction to the whole exercise, more than 80% students commented about the contents of the exercise, answering “very substantial” or ”substantial” (Fig. 2). From such result, it is confirmed that the students’ satisfaction to the exercise is extremely high and as a whole the exercise has provided the students with exercises of really high quality.
6 Evaluation 6.1 Team Formation Result and Evaluation We entered actual score data into EtUDE/GO and built teams, applied the result to the exercise of the Institute. Table 5 is an outline of the exercise. As for the year 2004, with the restriction of team scale, we assigned the students into teams in random practiced the exercise and got the result. Table 6 shows the result of team formation using EtUDE/GO. Team abilities in Table 6 were calculated according to the team ability evaluation formula as mentioned in 4.4 and then normalized. It means that the greater is the value in Table 6, the team ability is higher; if the value is above 0, it means that the team has the higher ability than the average of all the students (for, of normalized data, the average is 0 and the variance is 1). From the above result, both the average and the variance of the teams’ abilities are small values, so we can conclude that with our system the team formation has been appropriately accomplished.
In 2005
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
Very Substantial
Substantial
NotVery Substantial
NotSubstantial
100%
Table 5 Outline of the Exercise Course Period Subject
Coursework
In 2004 In 2005 Advanced Exercises on Computer and Information Science 2B 12/9 ~ /1/13 11/24 ~ 1/12 55 Students, 15 Teams 98 Students, 24 Teams The team consists of 3 or 4 The team consists of 4 or 5 students students Development of a meeting room reservation system
Fig. 2 Substantiality of the Whole Exercise
In 2005 In 2004 0%
Table 6 Team Formation Result
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Every M em bers Cooperated Som e M em bers Cooperated Few M em bers Cooperated Any M em bers Not Cooperated
Fig. 3 Team Questionnaire
In addition, in order to find out the students’ actual feeling about the team formation, we asked how well they were cooperated by other members of the same team, and more than 90% answered, “every members cooperated” or “some members cooperated”. For comparison, the percentage answered in 2004 to the same question is but 55%. Obviously, the satisfaction to the group formation has been greatly improved (Fig. 3). From this result it is known that the effect of an optimized team formation has also emerged in the students’ actual feeling. Also, in order to perform a quantitative evaluation toward the exercise result, we counted the numbers of the deliverables and evaluated the unevenness of the students’ modelling abilities. The “class” here is the unit for software modules in the domain of objectoriented software design. During this exercise the ISSN: 1790-5117
156
ISBN: 978-960-6766-42-8
7th WSEAS Int. Conf. on SOFTWARE ENGINEERING, PARALLEL and DISTRIBUTED SYSTEMS (SEPADS '08), University of Cambridge, UK, Feb 20-22, 2008
students are required to decide how many classes to create and how to assign necessary functions to each class. As it is rather difficult for a beginner to complete such tasks appropriately, within this exercise it is the very place where difference easily appears because the level of understanding varies. The result is illustrated in Table 7.
restrictions, and, using GA, developed EtUDE/GO, the system that automatically generates the best plan for team formation. Software exercise with optimized team formation has been practiced since 2005, and thanks to the optimization of team formation, there were no team that could not accomplish the assignment by the deadline in 2005.
Table 7 Numbers of Final Result Classes
References: [1] Ivar Jacobson, Magnus Christerson, Patrik Jonsson, Gunnar Overgaard, “Object-Oriented Software Engineering: A Use Case Driven Approach,” Addison-Wesley, 1992. [2] Change Vision, Inc., “JUDE Community Site - UML Model ling Tool,” http://jude-users.com/en/ [3] Kunihiko Chiken, Atsuo Hazeyama, “Awareness Support in Group-based Software Engineering Education,” System Pro ceedings of the 10th Asia-Pacific Software and Applications Conference (APSEC2003), IEEE Computer Society Press, 2003, pp.280-289. [4] Chyng-Yang Jang, Charles Steinfield, Ben Pfaff, “Virtual gr oup awareness and groupware support: an evaluation of the TeamSCOPE system,” International Journal of Human-Co mputer Studies, Volume 56, Issue 1, Academic Press, 2002, pp.109-126. [5] Saeko Matsuura, “Software Engineering Education Based o n Practical Software Development Experiments,” Transacti ons of Information Processing Society of Japan, Vol.48, No. 8, 2007, pp. 2578-2595. (In Japanese) [6] Tatsuya Ishikawa, Hiroaki Hashiura, Koutarou Yamashita, Tooru Kuwabara, Yumei Qiu, Seiichi Komiya, "Environme nt for Ultimate software Development Exercise(EtUDE)," T echnical report of IEICE. KBSE, vol.105, no.653, KBSE200 5-48, 2006, pp.7-12. (In Japanese) [7] Yuka Isozaki , Koutarou Yamashita, Tatsuya Ishikawa, Hiro aki Hashiura, Seiichi Komiya, “Environment for Ultimate s oftware Development Exercise(EtUDE),” Proceedings of th e 67th National Convention of IPSJ, vol.4, 2005, 4D-4. (In J apanese) [8] Akinori Iwasaki, Isao Miyaji, Takayuki Oue, "Comparison between Exact Solution and Solution by GA in the Learning Group Composition," IEICE technical report. Education te chnology, vol.102, no.330, ET2002-40, pp.47-52, 2002. (In Japanese) [9] Atsuo Hazeyama, Naota Sawabe, Seiichi Komiya, “Group Organization System for Software Engineering Group Learn ing with Genetic Algorithm,” IEICE Transactions on Infor mation and Systems, Vol. E85-D, No. 4, pp.666-673, 2002. [10] Sun Microsystems Inc., “Java Technology,” http://java.sun. com/ [11] Sun Microsystems, Inc., “JSR-000154 Java Servlet 2.4 Spec ification,” http://jcp.org/aboutJava/communityprocess/final /jsr154/ [12] Sun Microsystems, Inc., “JSR-000152 Java Server Pages 2. 0 Specification,” http://jcp.org/aboutJava/communityproces s/final/jsr152/ [13] Sun Microsystems, Inc., “Java EE at a Glance, 2006,” http:/ /java.sun.com/javaee/ [14] Rick Knowles, “Winstone Servlet Container,” http://winsto ne.sourceforge.net/ [15] MySQL AB, “MySQL Community Server,” http://www.my sql.com/
Comparing the result with that of the year 2004, we could realize that in 2005 the variance has become smaller and the unevenness between teams has been smoothed. From such results, according to the students’ actual feelings and final results, it is confirmed that our system has realized the optimized team formation for software development exercise courses.
7 Summary The information science and engineering department of the institute has carried out software development exercises in which junior students are divided into several project teams. However, as the students’ skills for software development differ from each other, some teams could not accomplish the given assignment by the deadline. To solve this problem, it is necessary to make up teams so that the difference of skills among the teams is minimized and it is also necessary to have one or more students in a team who is capable of carrying out a given duty required for software development. Thus, we considered the optimization of team formation to be the matter of combination with
ISSN: 1790-5117
157
ISBN: 978-960-6766-42-8