Upload
ujjwal-joshi
View
248
Download
1
Embed Size (px)
DESCRIPTION
Evolution of Micro Patterns in Agile Software. Brief about Gil and Maman Approach.
Citation preview
Micro Patterns Micro Patterns in Agile in Agile SoftwareSoftware
Presented byJoshi, Ujjwal Kumar
04/11/23 1Special Methods and Tools for IT Projects
Agenda
• Introduction to Agile SoftwareIntroduction to Agile Software• Evolution of Micro Patterns in Agile Software DevelopmentEvolution of Micro Patterns in Agile Software Development• Introduction to Micro PatternsIntroduction to Micro Patterns• Gil and Maman ApproachGil and Maman Approach
– MethodologyMethodology– Bug-linking MethodologyBug-linking Methodology– Survey: CollaborationsSurvey: Collaborations– Main phases of DevelopmentMain phases of Development– ConclusionConclusion
• ReferencesReferences
04/11/23 Special Methods and Tools for IT Projects 2
Introduction to Agile Introduction to Agile SoftwareSoftwareAgile Software development is a Agile Software development is a group of software development group of software development methods based on iterative and methods based on iterative and incremental development, where incremental development, where requirements and solutions evolve requirements and solutions evolve through collaboration between self-through collaboration between self-organizing, cross-functional teams.organizing, cross-functional teams.
It promotes adaptive planning, It promotes adaptive planning, evolutionary development and evolutionary development and delivery and encourages rapid and delivery and encourages rapid and flexible responses to change.flexible responses to change.
04/11/23 Special Methods and Tools for IT Projects 3
Source: http://en.wikipedia.org/wiki/Agile_software_development#Agile_methods
Evolution of Micro Pattern in Agile Software
Development
04/11/23 Special Methods and Tools for IT Projects 4
Introduction to Micro Pattern
• Micro Pattern are similar to design pattern but Micro Pattern are similar to design pattern but are at a lower level of abstraction with respect are at a lower level of abstraction with respect to design pattern, their characteristics is that to design pattern, their characteristics is that they can be identified automatically.they can be identified automatically.
• Gil and Maman defined the micro pattern Gil and Maman defined the micro pattern catalogue that consists of 27 micro patterncatalogue that consists of 27 micro pattern.
04/11/23 Special Methods and Tools for IT Projects 5
Introduction to Micro Pattern
• Gil and Maman stated that Gil and Maman stated that 75% of classes belong to at 75% of classes belong to at least one micro pattern.least one micro pattern.
• Even though the Micro Even though the Micro patterns are correlated to each patterns are correlated to each others, they can be others, they can be categorized.categorized.
• Anti-micro pattern are Anti-micro pattern are associated to poor associated to poor programming and thus, they programming and thus, they are proved to be more fault are proved to be more fault prone.prone.
04/11/23 Special Methods and Tools for IT Projects 6
Fig. Micro Patterns in JAVA CodeSource: http://www.google.de/imgres
04/11/23 Special Methods and Tools for IT Projects 7
Fig. Global Map of the catalog, showing 8 catalogue and placement of 27 Micro Patterns
04/11/23 Special Methods and Tools for IT Projects 8
Non-Micro Pattern(NMP)
Fault-prone Micro Pattern(FMP)
Anti-Micro Patterns(AMP)
Other Micro Pattern
(MP)
Class
Fig. class Categorization using Micro Pattern
Micro Pattern Examples
• ImplementorImplementor– A concrete class, where all the methods override A concrete class, where all the methods override
inherited abstract methods.inherited abstract methods.
• Function PointerFunction Pointer– A class with a single public instance method, but A class with a single public instance method, but
with no fields.with no fields.
04/11/23 Special Methods and Tools for IT Projects 9
Gil and Maman Approach
Gil and Maman conducted their study of Gil and Maman conducted their study of Micro Patterns in following two basis:Micro Patterns in following two basis:
• Floss-ARFloss-AR– Web application for research publications Web application for research publications
management.management.
• jAPSjAPS– Java framework for enterprise portal buildingJava framework for enterprise portal building
04/11/23 Special Methods and Tools for IT Projects 10
Methodology
• At first, they developed a tool to detect the micro pattern At first, they developed a tool to detect the micro pattern present in the class using Arcelli and Maggioni principle. present in the class using Arcelli and Maggioni principle.
• They proposed a survey to the software development They proposed a survey to the software development team to discover which agile methodologies were team to discover which agile methodologies were adopted.adopted.
• They belonged source code repository to link classes to They belonged source code repository to link classes to the bugs in order to find the relationship between the bugs in order to find the relationship between number of faults and anti-micro patterns.number of faults and anti-micro patterns.
• Then, they asses micro pattern fault proneness by the Then, they asses micro pattern fault proneness by the means of faulty classes.means of faulty classes.
04/11/23 Special Methods and Tools for IT Projects 11
Methodology: Bug-Class linking
Source Code and the bug fixes are linked using Source Code and the bug fixes are linked using the Bachmann and Bernstein’s heuristics:the Bachmann and Bernstein’s heuristics: Scan through the change logs for the bug reports in a Scan through the change logs for the bug reports in a
given format (e.g. fix bug, fix issue and so on).given format (e.g. fix bug, fix issue and so on). Exclude all false positive bug numbers (e.g. 2009-06-Exclude all false positive bug numbers (e.g. 2009-06-
07 10:47:39-0400 and so on).07 10:47:39-0400 and so on). Check if there are other potential bug number Check if there are other potential bug number
formats or false positive number formats, add the formats or false positive number formats, add the new formats and scan the change iteratively.new formats and scan the change iteratively.
Check if potential bug numbers exist in the bug-Check if potential bug numbers exist in the bug-tracking database with their status marked as fixed.tracking database with their status marked as fixed.
04/11/23 Special Methods and Tools for IT Projects 12
Survey: Collaborations
Question Very Good
Good Discrete Adequate Not Adequate
How would you describe the collaboration of the team?
4 1 0 0 0
04/11/23 Special Methods and Tools for IT Projects 13
Survey Question on Collaboration
Table 1. floss-AR Developers Survey (5 developers)
Question Yes No
The collaboration inside the team increased the productivity?
5 0
Did you take part in developing the whole system?
3 2
Do you have favorite programming styles? 2 3
Have the project decision been discussed together with the team?
5 0
Did you interact directly with the customer? 4 1
Did you use refactoring? 5 0
04/11/23 Special Methods and Tools for IT Projects 14
Survey Question on Collaboration
Table 2. floss-AR Developers Survey (5 developers)
04/11/23 Special Methods and Tools for IT Projects 15
Question Answer
Which Agile methodologies did you use during software development?
Pair ProgrammingStand up MeetingRefactoringOn Site Customer
How often did you interact with the customer? 1-2 times per month
How often did you use refactoring? 2-3 times per month
Survey Question to the Project Manager
Table 3. floss-AR Project Manager
Main phases of development
04/11/23 Special Methods and Tools for IT Projects 16
Source Code Analysis for jAPSMicro Pattern 1.0 1.2 1.4 1.6 1.6.2 1.8 1.8.2 2.0
Joiner 0 0 0 0 0 0 0 0
Function Pointer
27.1 23.3 27.5 18.7 19.5 18.1 16.7 7.18
Sink 15.3 3.9 15.6 4.14 3.5 2.7 2.78 2.45
Extender 25 27.9 27.5 36.1 35.9 37.2 34.6 23.1
Functionobject 0.71 6.1 0 2.2 2.7 1.89 2.02 1.22
…..
Taxonomy 0 0 0 0 0 0 0 0
Pool 0 0 0 0.55 0.54 0.27 0 0.35
Sampler 0 0 0 0 0 0 0 0
Record 0 0 0 0 0 0 0 0
Overrider 0 0 0.3 0.82 0.82 0.54 0.5 0.87
Total 84 73 85.7 77 76.6 76.4 74.4 72.1
04/11/23 Special Methods and Tools for IT Projects 17
Table showing source code analysis for jAPS
04/11/23 Special Methods and Tools for IT Projects 18
Micro Pattern CA SAR SS OS 2.1.1
Designator 1.5 1.5 1.6 1.38 0.9
Taxonomy 0 0 0 0 0
Pool 0.2 0.2 0.36 0.3 0.76
Joiner 0 0 0 0 0
Extender 28.4 28.8 27.7 28.4 16.58
Function Pointer 20.2 19.7 22.8 17.8 13.31
Functionobject 2.5 2.4 2 4.45 1.53
…..
Overrider 0.33 0.34 0.29 1.07 0.2
Total 85.1 84.8 85.8 75.5 81.6
Table showing source code analysis for floss-AR
Source Code Analysis for floss-AR
ConclusionOS(%) CA(%) SAR(%) SS(%) 2.1.1(%)
Distribution of faulty classes
NMP 63.12 62.41 71.63 70.92 23.4
MP 36.87 37.58 28.36 29.07 76.59
Percentage of MP Faults
Fault % of AMP 12.76 12.05 7.8 7.8 23.4
Fault % of fault-prone MP faults
18.43 14.89 11.34 13.47 23.4
Fault % of other MP 5.67 10.63 9.21 7.8 20.56
04/11/23 Special Methods and Tools for IT Projects 19
Non Micro Pattern are the most faulty Micro Pattern
Both systems respect the Gill and Maman statement. This means the Micro Patterns are good descriptors for the software development.
Micro Patterns such as Function Pointer, Sink and Extender are common to all the releases of Floss-AR and jAPS. So, they have highest value in the distribution. Whereas, Taxonomy, Pool, Sampler and Record are almost absent so, they have minimal value.
References
http://www.japsportal.org ; JAPS: Java Agile Portal Systemhttp://www.japsportal.org ; JAPS: Java Agile Portal System Gil and Maman case studyGil and Maman case study http://veprints.unica.it/859/1/DeStefanis_PHD_Thesis.pdfhttp://veprints.unica.it/859/1/DeStefanis_PHD_Thesis.pdf http://www.cs.technion.ac.il/~imaman/stuff/ip-oopsla05-c.pdfhttp://www.cs.technion.ac.il/~imaman/stuff/ip-oopsla05-c.pdf
04/11/23 Special Methods and Tools for IT Projects 20
04/11/23 Special Methods and Tools for IT Projects 21
There are no significant bugs in our released software that any significant number of users want fixed.
--- Bill Gates