Empirical Study of Communication Overhead Using ObjectOriented Software Engineering Approach Amjad Al-Khateeb, Murad Kubabji, Anas Amro, Sari Jabareen Master of Informatics at Palestine Polytechnic University
Abstract— Object-oriented programming is a common approach to develop software. Teamwork with this approach is also common which includes communication between team members to develop software that is affected by several factors. In this paper we studied programming experience and its effect on communication between developers themselves, and communication between developers and software designers. Empirical experiments were conducted to observe quantitative data that measures the communication. In general, the results showed that there is a relation between communication and programming experience. Index Terms—Object-Oriented Overhead, programming experience
1. INTRODUCTION In this study we investigated the effect of communication level on software development for different programmers group with different skill level in object oriented programming language. We used a plan for observing the data that used to test our hypotheses using empirical methods based on observation and monitoring to analyse the output data in different stages and figuring out how much time is needed to complete the project during experiment conducting and measures the communication time for each process to find which process will have more communication time than other processes, also which personnel will be assigned and involved at each stage after generating the groups or sample of the study. The study design has several components; one component is a set of variables that link causes and effects. Typically, there are two kinds of variables which are dependent and independent. Independent variables are attributes that define the study setting. In some cases, especially when comparing two situations, these variables are actively manipulated. Dependent variables are end-process outputs whose values are expected to vary predictably when the values of independent variables change. This study design include a plan for systematically manipulating the independent variables while observing the dependent variables and in our case we chose to manipulate or change the level of experience to observe its effect on the dependent variables which in our case is the communication time between team members. Hypothesis: Communication between software development members affects the software development
(completion) time or time-to-market in Object-Oriented software engineering approach. Objective: to design an experiment to study communication time software development members (take or) spend to communicate between themselves to complete/develop a software product. Scope: the study will only study communication time in the programming or implementation phase of developing the selected software product. This hypothesis must be declarative scientifically and express the relationship between two or more variables that can be empirically tested or in other words, the variables of interest must be measurable. 2. RELATED WORK (K. Stapel, et. al) studied the communication structure in pair programming . Their aim was to get better understanding of the structure of pair programming communication through understanding the aspect level of abstraction of intra-pair communication, and understanding the quality aspect interactivity of intra-pair communication. Level of abstraction refers to the abstractness of the information according to the software development phase. Interactivity is the distribution of the drivers’ and the navigators’ share of communication. The results of their experiments showed that only 7% of the conversations were off-topic (e.g. private), 11% about requirements, 14% about design, and 68% about implementation details (e.g. syntax). 3. OBJECT-ORIENTED APPROACH Object-oriented software design is a design strategy where system designers think in terms of ‘things’ instead of operations or functions. The executing system is made up of interacting objects that maintain their own local state and provide operations on that state information. They hide information about the representation of the state and hence limit access to it. An object-oriented design process involves designing the object classes and the relationships between these classes. When the design is realized as an executing program, the required objects are created dynamically using the class definitions. Object-oriented problem solving approach is very similar to the way a human solves daily problems. It consists of identifying objects and how to use these objects in the correct sequence to solve the problem. In other words, object-oriented
problem solving can consist of designing objects whose behavior solves a specific problem. A message to an object causes it to perform its operations and solve its part of the problem. The object-oriented problem solving approach, in general, can be divided into four steps : 1. Identify the problem. 2. Identify the objects needed for the solution. 3. Identify messages to be sent to the objects. 4. Create a sequence of messages to the objects that solve the problem. 4. METHODOLOGY In order to conduct an empirical study that measures the communication between software development members on the software development time using the object-oriented approach, specific steps were taken in the following order: - Prepare pre-study questionnaire - Distribute developers into groups according to a specific factor. - Conduct the experiments. That included an implementation for pre-designed software. - Observe communication time and direction between developers. - Analyze results to find a relation between factors affect communication and communication time. We distinguished between two types of variables which are dependent variables or those we measured and in our case itâ€™s the effect of communication between development members on the software completion time using the object-oriented approach and the independent variable or those variables that are expected to affect the dependent variable which can be manipulated or neutralize during the conduction of our experiment. The communication between developers working on implementation of the software can be affected by several independent variables; we listed some of them below. 1. Level of experience 2. Gender 3. System complexity 4. Development platform 5. Documentation level of details 6. Developers culture 7. Localization/Distance This study aims to measure the communication time between software development members and its effect on the development process of a software product, and then collect variables data to test our hypothesis using empirical study in which we neutralize all other variables to test its effect on the dependent variables. Selecting the subject of any study and generating hypothesis is vital in any study design experiment and finding the right participant or study sample is especially important in controlled studies situation like ours to determine the eligibility criteria for inclusion and exclusion from the study. When conducting field studies it is important to obtain accurate and reliable information about study subject.
Interviews and questionnaires are the most straightforward instruments, but the data they produce typically present an incomplete picture. To complete the whole picture we designed a questionnaire and carried out a survey electronically before conducting the experiment to collect the root data that we used to build up our experiment on as a first step and planed for conducting a controlled experiment in a certain location and at certain time to collect all the required information needed. The questionnaire asked the participants about their experience level in object-oriented programing. 5. THE CONTROLLED EXPERIMENT In this empirical study we conducted a controlled experiment due to the sample size limitation and experiment type. This enabled us to test our hypothesis by comparing theory to reality in an investigation test where one or more independent variables are manipulated to measure their effect on one or more dependent variables. To empirically investigate the effect of communication between developers during implementation phase on the total completion time, we categorized the factors into a set of input and output variables. The input variables are quantitative like the team size and their member level of experience, on other hand the output variables are the communication time and direction which were observed during the experiments. The data for this study were collected during a controlled experiment. In this paper, we used the experiment data (including the pre and post-test questionnaires) to test our hypothesis. We use the term participants to refer to the all software developers who participated in the experiments. All the factors were mentioned before are important and they can affect communication. But, in this paper we only chose to study the level of experience factor. Other factors were not studied. We provided all the group members with the exact software design document to guarantee an even complexity level is provided for all participants. Each group members worked together in the same place and at the same time. The structure of the four groups was formed to conduct the experiments which are two programmers in each group with the same experience level. So, when conducting the experiment we chose two groups with different experience levels to conduct the experiment and another two groups with the same specification to repeat the experiment in order to emphasize the results. When conducting our experiment we used a stopwatch application designed especially for this experiment and with instruction on how to use it during experiment time by an observer. This stopwatch will calculate the overall development time and communication time between group members. Also by using this application we can divide the development time into periods each consist of 30 minutes length to find out if communication between group members will only take place at the first period or it will continue till the end of experiment and with same or different rate. The role and task allocation of each team member will be pre-set with the same level of complexity and appropriate
measurement method will be developed after data collecting to analyses and evaluate its results. 5.1. Environment To conduct our experiment, the environment was set up and made ready for the participants. The place was the university computer labs. The used development platform was VB.net as an object-oriented programing language. One of the software designers attended the experiments to answer any question related to the software design document. At the beginning time of conducting the experiment, each group of developers was given the software design document which included the following parts: System overview in which contained all functions and features required in the software. Graphical User Interface System Classes Description Rules of Naming Conventions to be used. Sequence and class diagrams. Implementation plan and task allocation. 5.2. Collecting The Experiment Data There was mainly three resources that provided us with the raw data which where the pre-study questionnaire, collected data during conducting the experiment and post-study questionnaire. Participants were given a pre-questionnaire before conducting the experiment in order to classify them according to their level of experience and to arrange them into groups. The questions included were asking about experience in VB.Net language in terms of LOC, years of experience and number of projects. The participants were handed out the software design document at the beginning of the session. That’s because we needed to observe all the communication made in the same session between team members. The communication time and direction were collected during the session of the development. Each communication made by one of the developers was recorded with its duration and direction. The duration was calculated in seconds. The direction of communication was either a communication with the other developer or a communication with the software designer. After each experiment, each group member was given a post-study questionnaire, in which contained two questions asked about the degree of satisfaction about the study design document provided and their opinion in the object-oriented software engineering approach.
TABLE I GROUPS EXPERIENCE DISTRIBUTION
6. RESULTS AND DISCUSSION Our hypothesis that says “Communication between software development members affects the software development (completion) time or time-to-market in ObjectOriented software engineering approach. ” so we are only interested the level of experience and its effect on development time. In order to analyze the system in an efficient way we must first defend the system and all of its input and out puts, in our case its collection of objects that integrates together to generate the whole system with different inputs and outputs as shown in (Figure 1) input variable (level of experiance)
output variables (communication time)
Figure 1: Study framework
After we conducted the experiment, we were able to collect many raw data from different groups with different experience level and different gender. Therefore, we decided to draw a statistical graph that represents these data in order to see what they are presenting and what can we conclude from them. 1- Overall Communication Duration After we classified all groups according to their experience level, we conducted our experience under the supervision and observation of our team member to calculate the communication time between team members and between team member and our design group member. We were able to draw the graph shown in (Figure 2) that shows the percentage of communication period made by each developer with respect to the total development time.
5.3. Groups Distribution The participants were organized in teams according to their experience level. Number of groups were four groups, Figure 2: Communication Direction Percentage each group consist of two developers. The level of We used an equation (Eq. 1) to find the communication period experience for each group is shown in ( percentage as the following TABLE I)
Percentage of Communication
100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0%
61% 39% 21%
27% 15% 3%
6% 3-B Low
Figure 3: Developers communication direction
Particants and their experience in VB.Net Communication with designers
Communication with developers
When analysing the graph above we found that the low level experienced group had more communication time than the high level experienced developer, for instance if we looked at Figure 2 we will find that group three and four (low level of experience) had more communication time than group one and two (high level of experience) and this affected the the software development completion time or the (Total Development Time) 2- Experience in object oriented and communication In (Figure 3) we arranged our developers according to their experience level in object oriented programing and the overall communication time between developer team members and the communication time between the system designer members with the developer team. We found that the high level experience developers usually have more communication time with the system designer that they do have with their team members and on another hand we found that the low experienced developer have a higher communication time with their group members than the communication time with system designer members. 3- Gender effect on development time and communication In our study when we first defined the factors that affect the communication time between the developer team members. We decided to neutralize this factor and in order to make sure that this factor has no effect on development time; we draw (Figure 4) to emphasize our assumptions. We arranged the above graph according to developer gender and with respect to the level of quality. We found that the gender factors have no effect on the level of communication and what affects the communication time is actually the level of experience.
After each experiment, each group member was given a post-study questionnaire, in which contained two questions asked about the degree of satisfaction about the study design document provided and their opinion in the object-oriented software engineering approach. After analysing the questionnaire we found that the answers are heavily affected by the level of experience in object oriented programing and this was reflected on their answers as the following. The participants who have a high level of experience were very satisfied about the documentation and gave it a full mark (5/5) and this also reflected his answer on the second question to be (very good and excellent). On another hand if we looked at the answers of the low level experienced developer in object oriented we will find that he was not satisfied about the provided document as much as the high level programmer and his answer for the second question was ranging between good and bad. In addition, each group was asked to write a test plan that can be used to test the software functionality and see whether it meets the requirements or not.
Percentage with respect to total development time
30% 20% 10%
10% 9% 1%
Communication made by developer Figure 4
7. CONCLUSION As shown in the previous section, no clear conclusion can be made, but in general, low experienced developers had more communication time than the high level experienced developer. In addition, high experienced developers usually have more communication time with the software designer than they do have with their team members. 8. ACKNOWLEDGEMENT It is a real pleasure to thank those people who participated in the experiments and they are: Ahmad Tamimi, Hani Qudsi, Ahlam Bashiti, Bana Sharief, Haneen Tartori, Zekra, Abed Rahman Haddad and Samiha Siaj. Without their participation we could not continue our work. Special thanks to Dr. Adel Taweel for his guidance and feedback. 9. REFERENCES  
K. Stapel, E. Knauss, K. Schneider, and M. Becker, Towards Understanding Communication Structure in Pair Programming. . Khor, Kheng-Khoon, â€œObject-Oriented Problem Solving Approach,â€? IBM Smalltalk Tutorial, 1995. [Online]. Available: http://www.inf.ufsc.br/poo/smalltalk/ibm/tutorial/oop.html#ps_approac h.