SlideShare uma empresa Scribd logo
1 de 155
Baixar para ler offline
Package Dependencies
               Analysis and Remediation
             in Object-Oriented Systems

                        Jannik Laval




Friday, June 17, 2011                     1 / 65
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
(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
Package Granularity
             ‣     Reuse and release unit




Friday, June 17, 2011                       4 / 65
Package Granularity
             ‣     Reuse and release unit
             ‣     Group of classes
                • > Complex entity




Friday, June 17, 2011                       4 / 65
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Challenges

                    ‣   Identifying cycles between packages




Friday, June 17, 2011                                         9 / 65
Challenges

                    ‣   Identifying cycles between packages


                    ‣   Selecting unwanted dependencies




Friday, June 17, 2011                                         9 / 65
Challenges

                    ‣   Identifying cycles between packages


                    ‣   Selecting unwanted dependencies


                    ‣   Assessing changes at structural level
                          •



Friday, June 17, 2011                                           9 / 65
eCOO: Paradigm



                          model


                        source code




              •                   Package Cycle Remediation
Friday, June 17, 2011                                         10 / 65
eCOO: Paradigm


                                         identifying
                                           cycles


                          model


                        source code




              •                   Package Cycle Remediation
Friday, June 17, 2011                                         10 / 65
eCOO: Paradigm


                                         identifying
                                           cycles


                          model
                                                         selecting
                                                         unwanted
                                                       dependencies
                        source code




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                 10 / 65
eCOO: Paradigm


                                         identifying
                                           cycles


                          model
                                                         selecting
                                                         unwanted
                                                       dependencies
                        source code


                                         assessing
                                          changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                 10 / 65
eCOO: Paradigm


                                         identifying
                                           cycles


                          model
                                                         selecting
                                                         unwanted
                                                       dependencies
                        source code


                                         assessing
                                          changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                 10 / 65
eCOO: Contribution


                                          identifying
                                            cycles


                          model
                                         eCOO             selecting
                                                          unwanted
                                                        dependencies
                        source code


                                          assessing
                                           changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                  11 / 65
eCOO: Contribution

                                                eDSM


                                          identifying
                                            cycles


                          model
                                         eCOO             selecting
                                                          unwanted
                                                        dependencies
                        source code


                                          assessing
                                           changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                  11 / 65
eCOO: Contribution

                                                eDSM
                                                CycleTable
                                          identifying
                                            cycles


                          model
                                         eCOO              selecting
                                                           unwanted
                                                         dependencies
                        source code


                                          assessing
                                           changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                   11 / 65
eCOO: Contribution

                                                eDSM
                                                CycleTable
                                          identifying
                                            cycles


                          model
                                         eCOO              selecting
                                                           unwanted
                                                         dependencies
                        source code
                                                                  oZone

                                          assessing
                                           changes




              •                   Package Cycle Remediation
Friday, June 17, 2011                                                     11 / 65
eCOO: Contribution

                                                eDSM
                                                CycleTable
                                          identifying
                                            cycles


                          model
                                         eCOO              selecting
                                                           unwanted
                                                         dependencies
                        source code
                                                                  oZone

                                          assessing
                                           changes
                                              Orion



              •                   Package Cycle Remediation
Friday, June 17, 2011                                                     11 / 65
Contribution: eDSM

                                            eDSM
                                            CycleTable
                                      identifying
                                        cycles


                          model
                                      eCOO             selecting
                                                       unwanted
                                                     dependencies
                        source code
                                                              oZone

                                      assessing
                                       changes
                                          Orion




Friday, June 17, 2011                                                 12 / 65
Identifying cyclic dependencies?
                                     PB

           PA                            B1     B2

            A3        A1       A2
                                                          PC

                                                               C1

                PE
                                    PD
                 E2            E1
                                         D1    D2



                                                     PF

                     PH                                   F1
                                    PG

                          H1              G1




Friday, June 17, 2011                                               13 / 65
Identifying cyclic dependencies?
                                     PB

           PA                            B1     B2

            A3        A1       A2
                                                          PC



                PE
                                                               C1
                                                                    Graph abstraction
                                    PD
                 E2            E1
                                         D1    D2



                                                     PF

                     PH                                   F1
                                    PG

                          H1              G1




Friday, June 17, 2011                                                                   13 / 65
Identifying cyclic dependencies?
                                     PB

           PA                            B1     B2

            A3        A1       A2
                                                          PC



                PE
                                                               C1
                                                                    Graph abstraction
                                    PD
                 E2            E1
                                         D1    D2



                                                     PF                       PB
                     PH                                   F1
                                    PG

                          H1              G1
                                                                    PA
                                                                                        PC




                                                                         PE        PD             PF




                                                                                   PH        PG




Friday, June 17, 2011                                                                                  13 / 65
Identifying cyclic dependencies?
                                     PB

           PA                            B1     B2

            A3        A1       A2
                                                          PC



                PE
                                                               C1
                                                                    Graph abstraction
                                    PD
                 E2            E1
                                         D1    D2



                                                     PF                       PB
                     PH                                   F1
                                    PG

                          H1              G1
                                                                    PA
                                                                                        PC




                                                                         PE        PD             PF




                          Strongly Connected Components                            PH        PG
                             (SCC) detection [Tarjan, 1972]

Friday, June 17, 2011                                                                                  13 / 65
A large software application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Settings-Graphics




                                                                                                                                                                                                                                          Tests-Bugs                                                                                                                                                                                                                                                                                                                                                                                                                                 FixUnderscores




                                                                                                                                                                                                                                                                                                                                                                                                                 Settings-Network   Network-MailSending   KernelTests                                                                                                                                                                                                                    Tools




                                                                                                                                                     Tests-PrimCallController                                                                                                                                                                                          Collections-Strings                                                                                                                                                                                                                                                                            MorphicTests                                                                                                          Tests-SystemChangeNotification          GraphicsTests            System-Hashing




                                                      Settings-Kernel                                                                                                           Settings-Monticello           Settings-FreeType                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Settings-System        Settings-Compiler             Collections-Sequenceable




                                                                                                                                            Kernel




                                                                                                                                                                                                                                                                                                                                        System-Clipboard




Tests-VM                                                                                                                                                                                                                                                             FreeTypeTests                                                                                                                                                                                                    Morphic-TrueType   FreeTypeSubPixelAntiAliasing                                                                                                                                                                                GraphicsResources




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Graphics




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         System-FileRegistry




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Morphic




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 MenuRegistration




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Polymorph-TaskbarIcons




                                                                                                                                                                                                                                               SUnitGUI




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Collections-Text




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ST80




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Multilingual




                                                                                                                                                                                                                                                                                     Network-Kernel




                                                                                                                                                                                                                                                                                                              Collections-Weak




                                                                                                                                                                                                                                                                                                                                                              System-Finalization




                               Collections-Abstract




                                                                                                                                                                                                                                                                                                                  Collections-Support




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 System-Object Storage




                                                                                                                                                                                                                                                                                                      Tests-Release                Balloon




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              System-Support




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Polymorph-Widgets




                                                                                                                            MonticelloGUI                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Morphic-Balloon




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ScriptLoader




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Monticello




                                                                         Tests                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           MonticelloMocks




           CompilerTests                                                                                                                                                                     ScriptLoader11                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              System-Digital Signatures                                                                                                                                                                                   CollectionsTests




                Network-UUID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Collections-Stack




                                                                                                                                                                                                                                                          FreeType                                                                                                                           Network-Protocols                                                                                                                                                                                                                                          PackageInfo                                                                                                                                                                                                                                       Settings-Polymorph




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Polymorph-Tools-Diff




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 System-FilePackage




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         System-Changes




                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Network-Url




                                                                                                                  Network-RemoteDirectory




                                                                                                System-Download




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     System-Applications




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ToolBuilder-Kernel




                                                                                                                                                                                                                                  Files




                                                                                                                                                                                                                                                                                                                                                           System-Pools




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Compiler




                                                                             Exceptions




                                                                        Collections-Unordered




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Collections-Arrayed




                                                                                 •                                                                                                                                                                                                                                                                                          Pharo Core 1.1, 115 packages

                                                                                                                  ‣                                    Graph is not scalable.

                                                                                  Friday, June 17, 2011                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 14 / 65
Packages in SCC
                                                                                                                                                                                                                                                                                                                                     MonticelloMocks                                                                                                                                                                                                                                                                                                                                                                                                                 FixUnderscores                   FreeTypeSubPixelAntiAliasing




                                                                                                                                                                                                                                                                                                                                        Monticello




                                                                                                                                                                                          Tests




               VB-Regex                                                                         CollectionsTests                                                                                    Gofer-Core                                                                                                                                         Network-Url




                                                                                                                                                                                                                                                                                                                                                 Kernel




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Morphic




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      MenuRegistration




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Polymorph-TaskbarIcons




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 DeprecatedPreferences




                                                                                                                                                                                                                                                                   System-Text                                                                                                                                                                 Settings-Polymorph




                                                                                                                                                                                                                                                                                                                                                                                                                        System-Clipboard                                                                                                                                                                        Polymorph-Tools-Diff




                                                                                                                                                                                                                                                                                                                           System-Platforms                                                                  SUnitGUI                                                                                                                                                                                                                    Polymorph-Geometry




                                                                                                                                                                                                                                                                                                                                                                               Graphics




                                                                                                                                                                                                                                                                                                                                                           Network-Protocols




                                                                                                                                                                                                                                                                                                                                                                                                  Network-Kernel                                                                                                                                                                                                                                                                                                                                                                      Announcements




                                                                                                                                                                                                                                                                                                                                                                                                                           Network-RFC822                                                                                                                                                  ToolBuilder-Kernel




                                                                                                                                                                                                  Polymorph-EventEnhancements                                                                        Collections-Streams




                                                                                                                                                                                   ST80




                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Polymorph-Widgets




                                                                                                                     MonticelloGUI                                                                                                                                                                                                                                                                                                                                                                                                              Morphic-Balloon                                                               FreeType




                                                       SUnit   PackageInfo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               MonticelloConfigurations                  Balloon




                                 ToolBuilder-Morphic                                                                                                                                                                                                           Collections-Arrayed




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Collections-Strings




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Network-MIME




                                                                                                                                                                                                                                                                                                                                                                                          Files




                                                                                                                                                                                                                                                                               System-FileRegistry




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Collections-Sequenceable




                                                                                                                                                                                                                                                                                                                                                                                                                                            Collections-Abstract




                                                                                                                                                                                                                                Collections-Support




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        System-Object Storage




                                                                                                                                     Compiler




                                                                                                                                                                                                                                       System-Support




               System-Digital Signatures                                     Network-UUID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   TrueType




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Tools




                                                                                                                                                Traits   Network-RemoteDirectory                                                                                                                                                                                                                                                                                                System-FilePackage




                                                                                                                                                                                                                                             System-Download                                                                                                                                                                                                                                          System-Changes




System-Tools                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Compression




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  System-Pools




               System-Finalization




                                                                     •                                                                                                                                     Pharo Core 1.1, 78 packages in cycle

                                                                                            ‣                      Cycles are not visible.

                                                                      Friday, June 17, 2011                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              15 / 65
Packages in SCC
                                                                                                                                                                                   What are the differences between these dependencies ?                                                                                              MonticelloMocks                                                                                                                                                                                                                                                                                                                                                                                                                 FixUnderscores                   FreeTypeSubPixelAntiAliasing




                                                                                                                                                                                                                                                                                                                                         Monticello




                                                                                                                                                                                           Tests




               VB-Regex                                                                         CollectionsTests                                                                                     Gofer-Core                                                                                                                                         Network-Url




                                                                                                                                                                                                                                                                                                                                                  Kernel




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Morphic




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       MenuRegistration




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Polymorph-TaskbarIcons




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  DeprecatedPreferences




                                                                                                                                                                                                                                                                    System-Text                                                                                                                                                                 Settings-Polymorph




                                                                                                                                                                                                                                                                                                                                                                                                                         System-Clipboard                                                                                                                                                                        Polymorph-Tools-Diff




                                                                                                                                                                                                                                                                                                                            System-Platforms                                                                  SUnitGUI                                                                                                                                                                                                                    Polymorph-Geometry




                                                                                                                                                                                                                                                                                                                                                                                Graphics




                                                                                                                                                                                                                                                                                                                                                            Network-Protocols




                                                                                                                                                                                                                                                                                                                                                                                                   Network-Kernel                                                                                                                                                                                                                                                                                                                                                                      Announcements




                                                                                                                                                                                                                                                                                                                                                                                                                            Network-RFC822                                                                                                                                                  ToolBuilder-Kernel




                                                                                                                                                                                                   Polymorph-EventEnhancements                                                                        Collections-Streams




                                                                                                                                                                                    ST80




                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Polymorph-Widgets




                                                                                                                     MonticelloGUI                                                                                                                                                                                                                                                                                                                                                                                                               Morphic-Balloon                                                               FreeType




                                                       SUnit   PackageInfo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                MonticelloConfigurations                  Balloon




                                 ToolBuilder-Morphic                                                                                                                                                                                                            Collections-Arrayed




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Collections-Strings




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Network-MIME




                                                                                                                                                                                                                                                                                                                                                                                           Files




                                                                                                                                                                                                                                                                                System-FileRegistry




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Collections-Sequenceable




                                                                                                                                                                                                                                                                                                                                                                                                                                             Collections-Abstract




                                                                                                                                                                                                                                 Collections-Support




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         System-Object Storage




                                                                                                                                     Compiler




                                                                                                                                                                                                                                        System-Support




               System-Digital Signatures                                     Network-UUID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    TrueType




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Tools




                                                                                                                                                Traits   Network-RemoteDirectory                                                                                                                                                                                                                                                                                                 System-FilePackage




                                                                                                                                                                                                                                              System-Download                                                                                                                                                                                                                                          System-Changes




System-Tools                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Compression




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   System-Pools




               System-Finalization




                                                                     •                                                                                                                                      Pharo Core 1.1, 78 packages in cycle

                                                                                            ‣                      Cycles are not visible.

                                                                      Friday, June 17, 2011                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               15 / 65
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis
Phd thesis

Mais conteúdo relacionado

Ú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
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
QucHHunhnh
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
ssuserdda66b
 

Último (20)

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
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
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Ữ Â...
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
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
 
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
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
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
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
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
 
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...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
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
  • 4. Package Granularity ‣ Reuse and release unit Friday, June 17, 2011 4 / 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
  • 25. eCOO: Paradigm identifying cycles model selecting unwanted dependencies source code • Package Cycle Remediation Friday, June 17, 2011 10 / 65
  • 26. eCOO: Paradigm identifying cycles model selecting unwanted dependencies source code assessing changes • Package Cycle Remediation Friday, June 17, 2011 10 / 65
  • 27. eCOO: Paradigm identifying cycles model selecting unwanted dependencies source code assessing changes • Package Cycle Remediation Friday, June 17, 2011 10 / 65
  • 28. eCOO: Contribution identifying cycles model eCOO selecting unwanted dependencies source code assessing changes • Package Cycle Remediation Friday, June 17, 2011 11 / 65
  • 29. eCOO: Contribution eDSM identifying cycles model eCOO selecting unwanted dependencies source code assessing changes • Package Cycle Remediation Friday, June 17, 2011 11 / 65
  • 30. eCOO: Contribution eDSM CycleTable identifying cycles model eCOO selecting unwanted dependencies source code assessing changes • Package Cycle Remediation Friday, June 17, 2011 11 / 65
  • 31. eCOO: Contribution eDSM CycleTable identifying cycles model eCOO selecting unwanted dependencies source code oZone assessing changes • Package Cycle Remediation Friday, June 17, 2011 11 / 65
  • 32. eCOO: Contribution eDSM CycleTable identifying cycles model eCOO selecting unwanted dependencies source code oZone assessing changes Orion • Package Cycle Remediation Friday, June 17, 2011 11 / 65
  • 33. Contribution: eDSM eDSM CycleTable identifying cycles model eCOO selecting unwanted dependencies source code oZone assessing changes Orion Friday, June 17, 2011 12 / 65
  • 34. Identifying cyclic dependencies? PB PA B1 B2 A3 A1 A2 PC C1 PE PD E2 E1 D1 D2 PF PH F1 PG H1 G1 Friday, June 17, 2011 13 / 65
  • 35. Identifying cyclic dependencies? PB PA B1 B2 A3 A1 A2 PC PE C1 Graph abstraction PD E2 E1 D1 D2 PF PH F1 PG H1 G1 Friday, June 17, 2011 13 / 65
  • 36. Identifying cyclic dependencies? PB PA B1 B2 A3 A1 A2 PC PE C1 Graph abstraction PD E2 E1 D1 D2 PF PB PH F1 PG H1 G1 PA PC PE PD PF PH PG Friday, June 17, 2011 13 / 65
  • 37. Identifying cyclic dependencies? PB PA B1 B2 A3 A1 A2 PC PE C1 Graph abstraction PD E2 E1 D1 D2 PF PB PH F1 PG H1 G1 PA PC PE PD PF Strongly Connected Components PH PG (SCC) detection [Tarjan, 1972] Friday, June 17, 2011 13 / 65
  • 38. A large software application Settings-Graphics Tests-Bugs FixUnderscores Settings-Network Network-MailSending KernelTests Tools Tests-PrimCallController Collections-Strings MorphicTests Tests-SystemChangeNotification GraphicsTests System-Hashing Settings-Kernel Settings-Monticello Settings-FreeType Settings-System Settings-Compiler Collections-Sequenceable Kernel System-Clipboard Tests-VM FreeTypeTests Morphic-TrueType FreeTypeSubPixelAntiAliasing GraphicsResources Graphics System-FileRegistry Morphic MenuRegistration Polymorph-TaskbarIcons SUnitGUI Collections-Text ST80 Multilingual Network-Kernel Collections-Weak System-Finalization Collections-Abstract Collections-Support System-Object Storage Tests-Release Balloon System-Support Polymorph-Widgets MonticelloGUI Morphic-Balloon ScriptLoader Monticello Tests MonticelloMocks CompilerTests ScriptLoader11 System-Digital Signatures CollectionsTests Network-UUID Collections-Stack FreeType Network-Protocols PackageInfo Settings-Polymorph Polymorph-Tools-Diff System-FilePackage System-Changes Network-Url Network-RemoteDirectory System-Download System-Applications ToolBuilder-Kernel Files System-Pools Compiler Exceptions Collections-Unordered Collections-Arrayed • Pharo Core 1.1, 115 packages ‣ Graph is not scalable. Friday, June 17, 2011 14 / 65
  • 39. Packages in SCC MonticelloMocks FixUnderscores FreeTypeSubPixelAntiAliasing Monticello Tests VB-Regex CollectionsTests Gofer-Core Network-Url Kernel Morphic MenuRegistration Polymorph-TaskbarIcons DeprecatedPreferences System-Text Settings-Polymorph System-Clipboard Polymorph-Tools-Diff System-Platforms SUnitGUI Polymorph-Geometry Graphics Network-Protocols Network-Kernel Announcements Network-RFC822 ToolBuilder-Kernel Polymorph-EventEnhancements Collections-Streams ST80 Polymorph-Widgets MonticelloGUI Morphic-Balloon FreeType SUnit PackageInfo MonticelloConfigurations Balloon ToolBuilder-Morphic Collections-Arrayed Collections-Strings Network-MIME Files System-FileRegistry Collections-Sequenceable Collections-Abstract Collections-Support System-Object Storage Compiler System-Support System-Digital Signatures Network-UUID TrueType Tools Traits Network-RemoteDirectory System-FilePackage System-Download System-Changes System-Tools Compression System-Pools System-Finalization • Pharo Core 1.1, 78 packages in cycle ‣ Cycles are not visible. Friday, June 17, 2011 15 / 65
  • 40. Packages in SCC What are the differences between these dependencies ? MonticelloMocks FixUnderscores FreeTypeSubPixelAntiAliasing Monticello Tests VB-Regex CollectionsTests Gofer-Core Network-Url Kernel Morphic MenuRegistration Polymorph-TaskbarIcons DeprecatedPreferences System-Text Settings-Polymorph System-Clipboard Polymorph-Tools-Diff System-Platforms SUnitGUI Polymorph-Geometry Graphics Network-Protocols Network-Kernel Announcements Network-RFC822 ToolBuilder-Kernel Polymorph-EventEnhancements Collections-Streams ST80 Polymorph-Widgets MonticelloGUI Morphic-Balloon FreeType SUnit PackageInfo MonticelloConfigurations Balloon ToolBuilder-Morphic Collections-Arrayed Collections-Strings Network-MIME Files System-FileRegistry Collections-Sequenceable Collections-Abstract Collections-Support System-Object Storage Compiler System-Support System-Digital Signatures Network-UUID TrueType Tools Traits Network-RemoteDirectory System-FilePackage System-Download System-Changes System-Tools Compression System-Pools System-Finalization • Pharo Core 1.1, 78 packages in cycle ‣ Cycles are not visible. Friday, June 17, 2011 15 / 65