Your SlideShare is downloading. ×
0
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Micro patterns in agile software
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Micro patterns in agile software

247

Published on

Evolution of Micro Patterns in Agile Software. Brief about Gil and Maman Approach.

Evolution of Micro Patterns in Agile Software. Brief about Gil and Maman Approach.

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
247
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • shows a global map of the catalog, including the 8 categories, and the
    placement of the 27 micro patterns into these. The X dimension corresponds to class
    behavior. The Y dimension of the figure correspond to class state: categories at the upper portion
    of the map are of patterns restricting the class state more than patterns which belong
    to categories at the bottom of the map.
  • They investigated if the agile methodologies influence the distribution of micro pattern during software evolution by studying two industrial cases:
  • Arcelli and Maggioni suggested an operative definition to automate micro pattern detection. On that basis, they developed a tool to detect the micro pattern present in the class.
  • Based on these heuristics, they connected the source code in order to fix a bug by taking into account the associated Micro pattern and the times a class have been debugged and then, they evaluated the fault proneness of the micro patterns.
  • Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. In simple way, Refactoring means making code simple, clear and elegant.
  • This suggest that the constant application of the Agile methodologies during the software development across different releases may impact positively the software quality, carrying as side effect the reduction in the use of bad programming practices.
  • Transcript

    • 1. Micro Patterns in Agile Software Presented by Joshi, Ujjwal Kumar 11/27/13 Special Methods and Tools for IT Projects 1
    • 2. Agenda • • • • Introduction to Agile Software Evolution of Micro Patterns in Agile Software Development Introduction to Micro Patterns Gil and Maman Approach – – – – – Methodology Bug-linking Methodology Survey: Collaborations Main phases of Development Conclusion • References 11/27/13 Special Methods and Tools for IT Projects 2
    • 3. Introduction to Agile Software Agile Software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between selforganizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery and encourages rapid and flexible responses to change. Source: http://en.wikipedia.org/wiki/Agile_software_development#Agile_methods 11/27/13 Special Methods and Tools for IT Projects 3
    • 4. Evolution of Micro Pattern in Agile Software Development 11/27/13 Special Methods and Tools for IT Projects 4
    • 5. Introduction to Micro Pattern • Micro Pattern are similar to design pattern but are at a lower level of abstraction with respect to design pattern, their characteristics is that they can be identified automatically. • Gil and Maman defined the micro pattern catalogue that consists of 27 micro pattern. pattern 11/27/13 Special Methods and Tools for IT Projects 5
    • 6. Introduction to Micro Pattern • Gil and Maman stated that 75% of classes belong to at least one micro pattern. • Even though the Micro patterns are correlated to each others, they can be categorized. • Anti-micro pattern are associated to poor programming and thus, they are proved to be more fault prone. 11/27/13 Fig. Micro Patterns in JAVA Code Source: http://www.google.de/imgres Special Methods and Tools for IT Projects 6
    • 7. Fig. Global Map of the catalog, showing 8 catalogue and placement of 27 Micro Patterns 11/27/13 Special Methods and Tools for IT Projects 7
    • 8. Non-Micro Pattern (NMP) Anti-Micro Patterns (AMP) Class Fault-prone Micro Pattern (FMP) Other Micro Pattern (MP) Fig. class Categorization using Micro Pattern 11/27/13 Special Methods and Tools for IT Projects 8
    • 9. Micro Pattern Examples • Implementor – A concrete class, where all the methods override inherited abstract methods. • Function Pointer – A class with a single public instance method, but with no fields. 11/27/13 Special Methods and Tools for IT Projects 9
    • 10. Gil and Maman Approach Gil and Maman conducted their study of Micro Patterns in following two basis: • Floss-AR – Web application management. for research publications • jAPS – Java framework for enterprise portal building 11/27/13 Special Methods and Tools for IT Projects 10
    • 11. Methodology • At first, they developed a tool to detect the micro pattern present in the class using Arcelli and Maggioni principle. • They proposed a survey to the software development team to discover which agile methodologies were adopted. • They belonged source code repository to link classes to the bugs in order to find the relationship between number of faults and anti-micro patterns. • Then, they asses micro pattern fault proneness by the means of faulty classes. 11/27/13 Special Methods and Tools for IT Projects 11
    • 12. Methodology: Bug-Class linking Source Code and the bug fixes are linked using the Bachmann and Bernstein’s heuristics:  Scan through the change logs for the bug reports in a given format (e.g. fix bug, fix issue and so on).  Exclude all false positive bug numbers (e.g. 2009-0607 10:47:39-0400 and so on).  Check if there are other potential bug number formats or false positive number formats, add the new formats and scan the change iteratively.  Check if potential bug numbers exist in the bugtracking database with their status marked as fixed. 11/27/13 Special Methods and Tools for IT Projects 12
    • 13. Survey: Collaborations Survey Question on Collaboration Question Very Good Good Discrete Adequate Not Adequate How would you describe the collaboration of the team? 4 1 0 0 0 Table 1. floss-AR Developers Survey (5 developers) 11/27/13 Special Methods and Tools for IT Projects 13
    • 14. Survey Question on Collaboration 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 Table 2. floss-AR Developers Survey (5 developers) 11/27/13 Special Methods and Tools for IT Projects 14
    • 15. Survey Question to the Project Manager Question Answer Which Agile methodologies did you use during software development? Pair Programming Stand up Meeting Refactoring On 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 Table 3. floss-AR Project Manager 11/27/13 Special Methods and Tools for IT Projects 15
    • 16. Main phases of development 11/27/13 Special Methods and Tools for IT Projects 16
    • 17. Source Code Analysis for jAPS Micro 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 6.1 0 2.2 2.7 1.89 2.02 1.22 Functionobject 0.71 ….. 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 Table showing source code analysis for jAPS 11/27/13 Special Methods and Tools for IT Projects 17
    • 18. Source Code Analysis for floss-AR 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 11/27/13 Special Methods and Tools for IT Projects 18
    • 19. Conclusion OS(%) Distribution of faulty classes CA(%) SAR(%) SS(%) 2.1.1(%) 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 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. 11/27/13 Special Methods and Tools for IT Projects 19
    • 20. References     http://www.japsportal.org ; JAPS: Java Agile Portal System Gil and Maman case study http://veprints.unica.it/859/1/DeStefanis_PHD_Thesis.pdf http://www.cs.technion.ac.il/~imaman/stuff/ip-oopsla05-c.pdf 11/27/13 Special Methods and Tools for IT Projects 20
    • 21. There are no significant bugs in our released software that any significant number of users want fixed. --- Bill Gates 11/27/13 Special Methods and Tools for IT Projects 21

    ×