Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Phd thesis
1. Package Dependencies
Analysis and Remediation
in Object-Oriented Systems
Jannik Laval
Friday, June 17, 2011 1 / 65
2. Package Maintenance
‣ Big software applications
• Pharo (+100 packages), Moose (+100 packages),
• Eclipse (+250 packages)
‣ Complexity grows with evolution
‣ Maintenance and evolution may take more
than 60% of the overall budget
• => Difficulties to maintain
Friday, June 17, 2011 2 / 65
3. (Re)modularization
• Improving the package structure
• to support evolution
i. Understanding the structure
ii. Understanding the structural problems
iii. Taking decisions for restructuring
Friday, June 17, 2011 3 / 65
5. Package Granularity
‣ Reuse and release unit
‣ Group of classes
• > Complex entity
Friday, June 17, 2011 4 / 65
6. Package Granularity
‣ Reuse and release unit Package A
A1 A2
Other package
A3
‣ Group of classes A4 A5
• > Complex entity
Other package
Package B
B1 B2
‣ Multiple dependencies B3
• > Inheritance, invocation, reference, extension
Friday, June 17, 2011 4 / 65
7. Package Granularity
‣ Reuse and release unit Package A
A1 A2
Other package
A3
‣ Group of classes A4 A5
• > Complex entity
Other package
Package B
B1 B2
‣ Multiple dependencies B3
• > Inheritance, invocation, reference, extension
‣ Different organizations of the system [Abreu 2001]
• > Feature containment
A1 B1 C1 D1 A1 B1 C1 D1
• > Deployment unit P1 P1 P2 P3
A2 B2 C2 D2 A2 B2 C2 D2
• > Team organization A3 A3
(a) P4 (c) P4
Friday, June 17, 2011 4 / 65
8. Package Modularity is Crucial
‣ A good package organization ease the evolution of the
system. [De Remer 1976, Myers 1978,Yourdon 1979, Pressman
1994, Ponisio 2006]
Friday, June 17, 2011 5 / 65
9. Package Modularity is Crucial
‣ A good package organization ease the evolution of the
system. [De Remer 1976, Myers 1978,Yourdon 1979, Pressman
1994, Ponisio 2006]
‣ Acyclic Dependency Principle:
• “The dependencies between packages
must not form cycles” [Martin 1996, 2000]
Friday, June 17, 2011 5 / 65
10. Package Modularity is Crucial
‣ A good package organization ease the evolution of the
system. [De Remer 1976, Myers 1978,Yourdon 1979, Pressman
1994, Ponisio 2006]
‣ Acyclic Dependency Principle:
• “The dependencies between packages Layer A pC pD pE
must not form cycles” [Martin 1996, 2000]
Layer B pA pB
‣ Packages should form a layered structure
[Bachmann, 2000; Demeyer, 2002] Layer C Kernel
Friday, June 17, 2011 5 / 65
11. Package Modularity is Crucial
‣ A good package organization ease the evolution of the
system. [De Remer 1976, Myers 1978,Yourdon 1979, Pressman
1994, Ponisio 2006]
‣ Acyclic Dependency Principle:
• “The dependencies between packages Layer A pC pD pE
must not form cycles” [Martin 1996, 2000]
Layer B pA pB
‣ Packages should form a layered structure
[Bachmann, 2000; Demeyer, 2002] Layer C Kernel
• => Undesired cycles should be removed
Friday, June 17, 2011 5 / 65
12. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 6 / 65
13. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 6 / 65
14. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 6 / 65
15. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 7 / 65
16. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 7 / 65
17. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 7 / 65
18. Cyclic dependency problem
Modifying a package impacts the dependent packages.
D B Change
Possible Impact
C E
A
• [Martin 2002: Agile Software Development, Principles, Patterns, and Practices]
Friday, June 17, 2011 7 / 65
19. Thesis
• In large software architectures, we need to
identify dependencies between packages causing
structural problems and help proposing solutions to
avoid problems for modularity.
Friday, June 17, 2011 8 / 65
20. Challenges
‣ Identifying cycles between packages
Friday, June 17, 2011 9 / 65
21. Challenges
‣ Identifying cycles between packages
‣ Selecting unwanted dependencies
Friday, June 17, 2011 9 / 65
22. Challenges
‣ Identifying cycles between packages
‣ Selecting unwanted dependencies
‣ Assessing changes at structural level
•
Friday, June 17, 2011 9 / 65
23. eCOO: Paradigm
model
source code
• Package Cycle Remediation
Friday, June 17, 2011 10 / 65
24. eCOO: Paradigm
identifying
cycles
model
source code
• Package Cycle Remediation
Friday, June 17, 2011 10 / 65