SlideShare una empresa de Scribd logo
1 de 21
Micro Patterns
in Agile Software

Presented by
Joshi, Ujjwal Kumar
11/27/13

Special Methods and Tools for IT Projects

1
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
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
Evolution of Micro Pattern in Agile
Software Development

11/27/13

Special Methods and Tools for IT Projects

4
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
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
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
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
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
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
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
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
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
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
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
Main phases of development

11/27/13

Special Methods and Tools for IT Projects

16
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
zillesubhan
 
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
SAIL_QU
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
Siddharth Ayer
 
Software engineering
Software engineeringSoftware engineering
Software engineering
faisalwajid
 

La actualidad más candente (20)

Software development methodologies
Software development methodologiesSoftware development methodologies
Software development methodologies
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
 
Software Engineering- Engineering Practice
Software Engineering- Engineering PracticeSoftware Engineering- Engineering Practice
Software Engineering- Engineering Practice
 
Software Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative StudySoftware Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative Study
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...Integrated Analysis of Traditional Requirements Engineering Process with Agil...
Integrated Analysis of Traditional Requirements Engineering Process with Agil...
 
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
 
Making Effective, Useful Software Development Tools
Making Effective, Useful Software Development ToolsMaking Effective, Useful Software Development Tools
Making Effective, Useful Software Development Tools
 
Software engineering note
Software engineering noteSoftware engineering note
Software engineering note
 
Process and Project Metrics-1
Process and Project Metrics-1Process and Project Metrics-1
Process and Project Metrics-1
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
Unit1
Unit1Unit1
Unit1
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
 
Software Development Techniques
Software Development TechniquesSoftware Development Techniques
Software Development Techniques
 
MODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENTMODELS USED IN SOFTWARE DEVELOPMENT
MODELS USED IN SOFTWARE DEVELOPMENT
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 

Similar a Micro patterns in agile software

software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
rajesh199155
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
Arun Nair
 
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
ijseajournal
 

Similar a Micro patterns in agile software (20)

Managing Agile Software Development Projects
Managing Agile Software Development ProjectsManaging Agile Software Development Projects
Managing Agile Software Development Projects
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
Evolvea Frameworkfor SelectingPrime Software DevelopmentProcess
Evolvea Frameworkfor SelectingPrime Software DevelopmentProcessEvolvea Frameworkfor SelectingPrime Software DevelopmentProcess
Evolvea Frameworkfor SelectingPrime Software DevelopmentProcess
 
Unit 1.ppt
Unit 1.pptUnit 1.ppt
Unit 1.ppt
 
DOC
DOCDOC
DOC
 
D017152832
D017152832D017152832
D017152832
 
Software Engineering Process in Web Application Development
Software Engineering Process in Web Application DevelopmentSoftware Engineering Process in Web Application Development
Software Engineering Process in Web Application Development
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
process models- software engineering
process models- software engineeringprocess models- software engineering
process models- software engineering
 
Unit 1 OOSE
Unit 1 OOSEUnit 1 OOSE
Unit 1 OOSE
 
SE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdfSE UNIT-1 Revised.pdf
SE UNIT-1 Revised.pdf
 
Software model
Software modelSoftware model
Software model
 
7 5-94-101
7 5-94-1017 5-94-101
7 5-94-101
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
San se unit
San se unitSan se unit
San se unit
 
Hybrid model for software development
Hybrid model for software developmentHybrid model for software development
Hybrid model for software development
 
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
A PROPOSED HYBRID AGILE FRAMEWORK MODEL FOR MOBILE APPLICATIONS DEVELOPMENT
 
chapter 1.ppt
chapter 1.pptchapter 1.ppt
chapter 1.ppt
 
4 mohammad naderuzzaman_finalpaper--35-40
4 mohammad naderuzzaman_finalpaper--35-404 mohammad naderuzzaman_finalpaper--35-40
4 mohammad naderuzzaman_finalpaper--35-40
 

Más de Ujjwal Joshi

Client Service Executive - Junior Event Manager
Client Service Executive - Junior Event ManagerClient Service Executive - Junior Event Manager
Client Service Executive - Junior Event Manager
Ujjwal Joshi
 
Biogas project report
Biogas project reportBiogas project report
Biogas project report
Ujjwal Joshi
 
PMBOK Risk Management and Safety Health and Environment
PMBOK Risk Management and Safety Health and EnvironmentPMBOK Risk Management and Safety Health and Environment
PMBOK Risk Management and Safety Health and Environment
Ujjwal Joshi
 

Más de Ujjwal Joshi (20)

Client Service Executive - Junior Event Manager
Client Service Executive - Junior Event ManagerClient Service Executive - Junior Event Manager
Client Service Executive - Junior Event Manager
 
Understanding france- Brief overview of Marseille
Understanding france- Brief overview of MarseilleUnderstanding france- Brief overview of Marseille
Understanding france- Brief overview of Marseille
 
Npv and IRR, a link to Project Management
Npv and IRR, a link to Project ManagementNpv and IRR, a link to Project Management
Npv and IRR, a link to Project Management
 
Melamchi Drinking Water Project
Melamchi Drinking Water ProjectMelamchi Drinking Water Project
Melamchi Drinking Water Project
 
Namibia- Project Hope
Namibia- Project HopeNamibia- Project Hope
Namibia- Project Hope
 
Supply chain
Supply chainSupply chain
Supply chain
 
Implementation of SAP BI in Coca Cola
Implementation of SAP BI in Coca ColaImplementation of SAP BI in Coca Cola
Implementation of SAP BI in Coca Cola
 
KANBAN
KANBANKANBAN
KANBAN
 
Project Types and their importance
Project Types and their importanceProject Types and their importance
Project Types and their importance
 
ICB Competence, Project Standards
ICB Competence, Project StandardsICB Competence, Project Standards
ICB Competence, Project Standards
 
Biogas project report
Biogas project reportBiogas project report
Biogas project report
 
PMBOK Risk Management and Safety Health and Environment
PMBOK Risk Management and Safety Health and EnvironmentPMBOK Risk Management and Safety Health and Environment
PMBOK Risk Management and Safety Health and Environment
 
Report on Kotter's Change Model
Report on Kotter's Change ModelReport on Kotter's Change Model
Report on Kotter's Change Model
 
Chad cameroon pipeline project
Chad cameroon pipeline projectChad cameroon pipeline project
Chad cameroon pipeline project
 
Kotter’s 8 step change model
Kotter’s 8 step change modelKotter’s 8 step change model
Kotter’s 8 step change model
 
Knowledge Management- Ernst & Young
Knowledge Management- Ernst & YoungKnowledge Management- Ernst & Young
Knowledge Management- Ernst & Young
 
Communication 1
Communication 1Communication 1
Communication 1
 
Code of conduct_2011
Code of conduct_2011Code of conduct_2011
Code of conduct_2011
 
Niccolo machiavelli
Niccolo machiavelliNiccolo machiavelli
Niccolo machiavelli
 
Knowledge Management in NASA
Knowledge Management in NASAKnowledge Management in NASA
Knowledge Management in NASA
 

Último

Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 

Último (20)

How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 

Micro patterns in agile software

  • 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

Notas del editor

  1. 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.
  2. They investigated if the agile methodologies influence the distribution of micro pattern during software evolution by studying two industrial cases:
  3. 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.
  4. 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.
  5. 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.
  6. 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.