Presentation is loading. Please wait.

Presentation is loading. Please wait.

ACM International Conference on Software Engineering (ICSE) T.H. Ng, S.C. Cheung, W.K. Chan, Y.T. Yu Presented by Jason R. Beck and Enrique G. Ortiz.

Similar presentations


Presentation on theme: "ACM International Conference on Software Engineering (ICSE) T.H. Ng, S.C. Cheung, W.K. Chan, Y.T. Yu Presented by Jason R. Beck and Enrique G. Ortiz."— Presentation transcript:

1 ACM International Conference on Software Engineering (ICSE) T.H. Ng, S.C. Cheung, W.K. Chan, Y.T. Yu Presented by Jason R. Beck and Enrique G. Ortiz

2  Research Questions  Participant Descriptions  Hotel Example  Question Formalization and Null Hypothesis  Target Programs  Required Changes  Experiment / Subjects / Procedure  Results  Pros / Cons

3  Will maintainers use design patterns?  How likely are maintainers to perform specific tasks (i.e. T1, T2, and T3)?  Is the maintainer more likely to use specific tasks over others?  Is the code produced of higher quality using the design patterns? Research Questions

4  Participant that is subclass of another participant T1 – Concrete Participants

5  Participant that is superclass of another participant T2 – Abstract Participants

6  Participant that is not a subclass or superclass, but statically binds to abstract participant (superclass) T3 – Client Partcipants

7  Focus on Perfective Maintenance (adding new capabilities to program) Hotel Example

8  New Local Setting: Hong Kong ◦ Must implement new class that implements locale settings to inherit Locale (abstract) class T1 – Adding new class as a concrete participant

9  Display currently selected country in the user interface ◦ Add a new method to the Locale class hierarchy T2 – Modifying the existing interfaces of a participant

10  Add support for console-based user interface ◦ Introduce new client codes for Locale inheritance hierarchy T3 – Introducing a new client

11  Q1: What proportion of maintainers utilize the relevant design patterns in completing the required anticipated change? ◦ What proportion of them perform T1? ◦ What proportion of them perform T2? ◦ What proportion of them perform T3? ◦ Are the above proportions significantly different? Question Formalization

12  Q2: Comparing the codes delivered by maintainers who utilize the relevant design patterns in completing the required anticipated change to those delivered by maintainers who do not utilize patterns, are they equally faulty? ◦ Comparing those who perform T1 with those who do not, are their codes equally faulty? ◦ Comparing those who perform T2 with those who do not, are their codes equally faulty? ◦ Comparing those who perform T3 with those who do not, are their codes equally faulty? Question Formalization

13  HA 0 ◦ Maintainers have same tendency to perform each task  HB 0 ◦ Maintainers who perform tasks and those who do not provide same code quality  HC 0 ◦ “No strong correlation between the number of faults in the delivered codes and whether or not a task is performed to complete the anticipated change” Null Hypothesis

14  JHotDraw ◦ Open-source drawing editor ◦ Java based ◦ GUI  MCM ◦ Multiple-user calendar manager ◦ Edit individual appointments ◦ Console-based  HMS ◦ Hotel management system prototype ◦ Edit room usage (check-in and check-out) ◦ Console-based Target Programs

15  Different applications  Different sizes (few hundred LOC to ten- thousands LOC)  Defined anticipated changes  Created design patterns Target Program Analysis

16 Required Changes  Perfective changes (most frequent maintenance)

17  Must spend at least three hours performing changes (ensures effort) Required Changes

18  215 Undergraduate Java course students.  Grouped and individually assigned to tasks ◦ 27 students  Image modification ◦ 28 students  Language modification ◦ 100 students  Group appointments and Undo ◦ 60 students  GUI-based HMS and Search Experiment Subjects

19  Briefed the students in a two hour information session.  Covered ◦ Requirements and specification and demo of correctly operating program. ◦ Presented the source code. ◦ Documentation (API and UML) ◦ Also covered general object-oriented concepts  Given a month to work on the assignment Experimental Procedure

20  Subjects more likely to perform tasks T1-T3 than not use them at all.  Maintainers were more likely to perform task T1 (adding a concrete participant).  Followed by T3 (introduce a new client) and then T2 (modify existing interface). Results

21  Yes, they do use them more often than not. Do maintainers utilize deployed design patterns?

22

23  Functional correctness measured in number of faults on the submitted programs.  Means compared between those that used one of T1 – T3 in each program and those who did not.  Fewer faults for those who used one of T1 – T3; results statistically significant at 5% level. Do maintainers who utilize deployed design patterns deliver better code?

24  Internal (Authors opinion) ◦ Plagiarism ◦ Wide variety of student expertise (all approaches feasible even if no design pattern used)  External ◦ Only used a few target applications. ◦ Design patterns used were not exhaustive ◦ Only used finite number of perfective changes Threats to validity

25  Others have researched maintenance, but not also how design patterns factor in.  Other experiments had result that conflicted between each other regarding design pattern ease of maintenance.  Experiment to see if additional design patterns in code is beneficial regardless or work experience. (By the authors) Related Work

26  When design patterns are initially implemented in anticipation of maintenance work, they are more often used than not by maintainers.  Conclude that T1 is most always recognized and utilized, but work is needed to “raise the maintainers’ awareness to perform” T2 and T3. Conclusion

27  Good goals. Maintainers should make use of existing design.  Statistical significance of the fault results helped strengthen the argument.  Good variety of maintenance tasks and applications. Covered a good variety of design pattern tasks. Pros

28  Are student representative of maintenance programmers? ◦ Undergraduates in a Java class. (likely very new to programming) ◦ Covered “general object-oriented concepts” when giving them the assignment. ◦ Showed the students how the final results should look, showed them the requirements, and original source code. (probably not the hand holding a real maintainer gets). ◦ A month to complete these tasks. Cons

29  Results showed those which used patterns in the tasks had fewer faults.  Students who recognize design patterns are probably more skilled in the language.  The statistical significance is not between using patterns and not using patterns but between students who are skilled to use patterns and those who are not. Cons

30  None of this confronted in the threats to validity, instead they thought plagiarism was more of a threat. Cons

31  Take out the student factor and perform an experiment on professionals who perform maintenance on a regular basis. ◦ Gain insight on decisions made by professionals. ◦ Creates a less bias fault statistic.  Choosing not to utilize the pattern only makes things worse. ◦ Mismatched documentation ◦ Ruining the designers intent ◦ Likely to cause problems for future maintainers Areas to Improve / Comments

32 Questions?


Download ppt "ACM International Conference on Software Engineering (ICSE) T.H. Ng, S.C. Cheung, W.K. Chan, Y.T. Yu Presented by Jason R. Beck and Enrique G. Ortiz."

Similar presentations


Ads by Google