SlideShare a Scribd company logo
1 of 75
Download to read offline
Visually Localizing Design Problems with

Disharmony Maps


            Richard Wettel and Michele Lanza
                 REVEAL @ Faculty of Informatics,
                 University of Lugano, Switzerland
Overview




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   2
Overview




  Software
   design

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   2
Overview




  Software                         Code
   design                          cities

Richard Wettel and Michele Lanza      Visually Localizing Design Problems with Disharmony Maps   2
Overview




  Software                         Code             Disharmony
   design                          cities              maps

Richard Wettel and Michele Lanza      Visually Localizing Design Problems with Disharmony Maps   2
Overview




  Software                         Code             Disharmony   Tool
   design                          cities              maps    support

Richard Wettel and Michele Lanza      Visually Localizing Design Problems with Disharmony Maps   2
On software design
Research around software design




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   4
Research around software design
 Concepts
        heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al.
        1995], design harmony [Lanza & Marinescu 2006]




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   4
Research around software design
 Concepts
        heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al.
        1995], design harmony [Lanza & Marinescu 2006]

        bad smells [Fowler et al. 1998], design flaws [Marinescu 2002]




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   4
Research around software design
 Concepts
        heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al.
        1995], design harmony [Lanza & Marinescu 2006]

        bad smells [Fowler et al. 1998], design flaws [Marinescu 2002]

 Techniques
        detection strategies [Marinescu 2002, Lanza & Marinescu 2006]




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   4
Research around software design
 Concepts
        heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al.
        1995], design harmony [Lanza & Marinescu 2006]

        bad smells [Fowler et al. 1998], design flaws [Marinescu 2002]

 Techniques
        detection strategies [Marinescu 2002, Lanza & Marinescu 2006]

 Visualizations
        quality [Panas et al. 2005], principle violations [Langelier et al. 2005]
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   4
Design disharmony




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   5
Design disharmony                                            God Class
                                                             Brain Class
1.Identity
                                                             Data Class
                                   How do I
                                    define                    Brain Method
                                   myself?
                                                             Feature Envy




Richard Wettel and Michele Lanza     Visually Localizing Design Problems with Disharmony Maps   5
Intensive Coupling
Design disharmony                                          God Class
                                                                  Dispersive Coupling
                                                           Brain Class
1.Identity                                                        Shotgun Surgery
                                                           Data Class
                                     How do I
2.Collaboration                    interact with           Brain Method
                                      others?
                                                           Feature Envy




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   5
Intensive Coupling
Design disharmony                                     God Class
                                                              Dispersive Coupling
                                                      Brain Class
1.Identity                                                    Shotgun Surgery
                                     How do I define Data Class
2.Collaboration                     myself with respect  Futile Hierarchy
                                   to my ancestors andBrain Method
                                      descendants?       Tradition Breaker
3.Classification                                       Feature Envy
                                                         Refused Parent Bequest




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   5
Intensive Coupling
Design disharmony                                          God Class
                                                                   Dispersive Coupling
                                                           Brain Class
                                                                   Shotgun Surgery
                                                           Data Class
                                                              Futile Hierarchy
                                                           Brain Method
                                                              Tradition Breaker
                                                           Feature Envy
                                                              Refused Parent Bequest




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   5
Definition of God Class

             “In a good object-oriented design
             the intelligence of a system is
             uniformly distributed among the
             top-level classes.”
                                                                     [Riel 1996]




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   6
Characteristics of a God Class




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   7
Characteristics of a God Class
                 Heavily accesses data
                 of other “lightweight”
                 classes,either
                 directly or using
                 accessor
                 methods.




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   7
Characteristics of a God Class
                 Heavily accesses data
                 of other “lightweight”
                 classes,either
                 directly or using                                  Is large
                 accessor
                 methods.




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   7
Characteristics of a God Class
                 Heavily accesses data
                 of other “lightweight”
                 classes,either
                 directly or using                                    Is large
                 accessor
                 methods.


                                   Has a lot of
                                   non-communicative
                                   behavior

Richard Wettel and Michele Lanza     Visually Localizing Design Problems with Disharmony Maps   7
Characteristics of a God Class
                 Heavily accesses data
                 of other “lightweight”
                 classes,either
                 directly or using                                    Is large
                 accessor
                 methods.           God
                                            Class
                                   Has a lot of
                                   non-communicative
                                   behavior

Richard Wettel and Michele Lanza     Visually Localizing Design Problems with Disharmony Maps   7
The God Class detection strategy




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   8
Software systems as cities
The city metaphor




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




                                           number of methods (NOM)                height

                                           number of attributes (NOA)             base size

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




                    nesting level   color


                                               number of methods (NOM)                height

                                               number of attributes (NOA)             base size

Richard Wettel and Michele Lanza       Visually Localizing Design Problems with Disharmony Maps   10
The city metaphor
   domain mapping

   class              building

   package            district

   system             city




                    nesting level   color


                                               number of methods (NOM)                height
[Wettel & Lanza, ICPC 2007]
[Wettel & Lanza, VISSOFT 2007]                 number of attributes (NOA)             base size

Richard Wettel and Michele Lanza       Visually Localizing Design Problems with Disharmony Maps   10
“Reading” a code city (ArgoUML)




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   11
“Reading” a code city (ArgoUML)
                 skyscrapers
                  (NOM, NOA)




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   11
“Reading” a code city (ArgoUML)
                 skyscrapers
                  (NOM, NOA)




parking lots
 (NOM, NOA)
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   11
“Reading” a code city (ArgoUML)
                 skyscrapers
                  (NOM, NOA)




                                                                       office buildings
parking lots
                                                                        (NOM, NOA)
 (NOM, NOA)
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   11
Cities of the Java case studies




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Cities of the Java case studies
                                                           System           NOP         NOC         LOC

                                                           ArgoUML             144        2,542     137,000

                                                           JHotDraw             72            998    30,000

                                                           iText               149        1,250      80,000

                                                           Jmol                105        1,032      85,000

                                                           JDK 1.5             137        4,715     160,000




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps               12
Disharmony maps
Inspired by health maps




                                   World distribution of Myxobolus cerebralis

Richard Wettel and Michele Lanza      Visually Localizing Design Problems with Disharmony Maps   14
Disharmony map: focus+context




God classes
 of JDK 1.5
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   15
JDK’s disharmony map




      12 Brain classes
 16
      65 God classes
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map
Component
NOA 88, NOM 280




      12 Brain classes
 16
      65 God classes
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map
                                                                       Security
                                                                       NOA 3, NOM 30




      12 Brain classes
 16
      65 God classes
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map




      12 Brain classes
 16
      65 God classes
      109   Data classes
                                            java.awt.event
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map




      12 Brain classes
 16
      65 God classes                                     KeyEvent
                                                         NOA 205, NOM 18
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map




                                                                      InputEvent
      12 Brain classes                                                NOA 21, NOM 14
 16
      65 God classes
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
JDK’s disharmony map




java.awt.geom




      12 Brain classes
 16
      65 God classes
      109   Data classes

Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   16
ArgoUML’s disharmony map
       8 Brain classes
  9
      24 God classes
      17 Data classes




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   17
ArgoUML’s disharmony map
       8 Brain classes             FacadeMDRImpl                              Facade
  9                                NOA 3, NOM 349                             NOA 1, NOM 337
       24 God classes
      17 Data classes




      GeneratorPHP4
      NOA 4, NOM 33
      GeneratorCPP
      NOA 34, NOM 100                                                             JavaRecognizer
                                                                                  NOA 79, NOM 176
      CPPParser
      NOA 85, NOM 204                                                 Modeller
                                                                      NOA 15, NOM 52
Richard Wettel and Michele Lanza    Visually Localizing Design Problems with Disharmony Maps        17
Granularity of representation

        class C
                                       NOM = 7
                                   2
                              A=




            NOA
                            NO




                  =2
                          coarse
Richard Wettel and Michele Lanza                 Visually Localizing Design Problems with Disharmony Maps   18
Granularity of representation

        class C
                                       NOM = 7
                                   2
                              A=




            NOA
                            NO




                  =2
                          coarse                                                         fine-grained
Richard Wettel and Michele Lanza                 Visually Localizing Design Problems with Disharmony Maps   18
Granularity of representation

        class C
                                       NOM = 7




                                                                                          las sC
                                                                                        c
                                   2
                              A=




            NOA
                            NO




                  =2
                          coarse                                                         fine-grained
Richard Wettel and Michele Lanza                 Visually Localizing Design Problems with Disharmony Maps   18
Granularity of representation

        class C
                                                                                       m6
                                       NOM = 7
                                                                               m5                  m7
                                                                                       m2

                                                                        m1
                                                                                                   m3
                                                                                       m4

                                                                                          las sC
                                                                                        c
                                   2
                              A=




            NOA
                            NO




                  =2
                          coarse                                                         fine-grained
Richard Wettel and Michele Lanza                 Visually Localizing Design Problems with Disharmony Maps   18
Feature envy map of Jmol
        Feature envy




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   19
Feature envy map of Jmol
        Feature envy




   1,500 methods (25 %)
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   19
Shotgun surgery map of ArgoUML
 Facade                                                         AggregationKind               VisibilityKind
 NOM 140/337                                                    NOM 3/3                       NOM 4/4




           PseudostateKind
           NOM 6/6

                                        Model
                                        NOM 28/44
    Shotgun surgery
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps                    20
Tool support
The toolchain




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   22
The toolchain




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   22
The toolchain



                                        Moose

                         parsing




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   22
The toolchain

                          iPlasma

               parsing


                                         Moose

                         parsing




Richard Wettel and Michele Lanza    Visually Localizing Design Problems with Disharmony Maps   22
The toolchain

                                      model
                          iPlasma
                                    exchange
               parsing


                                               Moose

                         parsing




Richard Wettel and Michele Lanza         Visually Localizing Design Problems with Disharmony Maps   22
The toolchain

                                      model
                          iPlasma
                                    exchange
               parsing


                                               Moose

                         parsing
                                                                            OpenGL rendering



                                                                 CodeCity
Richard Wettel and Michele Lanza         Visually Localizing Design Problems with Disharmony Maps   22
Demo time!




Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   23
Closing remarks




 Design disharmonies overview actual design
 problems in context.



www.inf.unisi.ch/phd/wettel/codecity.html
Richard Wettel and Michele Lanza   Visually Localizing Design Problems with Disharmony Maps   24
Closing remarks

                                   +                                   =


 Design disharmonies overview actual design
 problems in context.



www.inf.unisi.ch/phd/wettel/codecity.html
Richard Wettel and Michele Lanza       Visually Localizing Design Problems with Disharmony Maps   24
Closing remarks

                                   +                                   =


 Design disharmonies overview actual design
 problems in context.

  Acknowledgments:

www.inf.unisi.ch/phd/wettel/codecity.html
Richard Wettel and Michele Lanza       Visually Localizing Design Problems with Disharmony Maps   24
Richard Wettel
http://www.inf.unisi.ch/phd/wettel




 http://creativecommons.org/licenses/by/3.0/

More Related Content

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 

Featured

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 HubspotMarius Sescu
 
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 ChatGPTExpeed Software
 
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 EngineeringsPixeldarts
 
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 HealthThinkNow
 
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.pdfmarketingartwork
 
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 2024Neil Kimberley
 
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)contently
 
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 2024Albert Qian
 
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 InsightsKurio // The Social Media Age(ncy)
 
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 2024Search Engine Journal
 
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 summarySpeakerHub
 
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 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 Tessa Mero
 
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 IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
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 managementMindGenius
 
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...RachelPearson36
 

Featured (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...
 

Visually Localizing Design Problems with Disharmony Maps

  • 1. Visually Localizing Design Problems with Disharmony Maps Richard Wettel and Michele Lanza REVEAL @ Faculty of Informatics, University of Lugano, Switzerland
  • 2. Overview Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 2
  • 3. Overview Software design Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 2
  • 4. Overview Software Code design cities Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 2
  • 5. Overview Software Code Disharmony design cities maps Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 2
  • 6. Overview Software Code Disharmony Tool design cities maps support Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 2
  • 8. Research around software design Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 4
  • 9. Research around software design Concepts heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al. 1995], design harmony [Lanza & Marinescu 2006] Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 4
  • 10. Research around software design Concepts heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al. 1995], design harmony [Lanza & Marinescu 2006] bad smells [Fowler et al. 1998], design flaws [Marinescu 2002] Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 4
  • 11. Research around software design Concepts heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al. 1995], design harmony [Lanza & Marinescu 2006] bad smells [Fowler et al. 1998], design flaws [Marinescu 2002] Techniques detection strategies [Marinescu 2002, Lanza & Marinescu 2006] Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 4
  • 12. Research around software design Concepts heuristics [Riel 2000], principles [Martin 2002], patterns [Gamma et al. 1995], design harmony [Lanza & Marinescu 2006] bad smells [Fowler et al. 1998], design flaws [Marinescu 2002] Techniques detection strategies [Marinescu 2002, Lanza & Marinescu 2006] Visualizations quality [Panas et al. 2005], principle violations [Langelier et al. 2005] Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 4
  • 13. Design disharmony Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 5
  • 14. Design disharmony God Class Brain Class 1.Identity Data Class How do I define Brain Method myself? Feature Envy Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 5
  • 15. Intensive Coupling Design disharmony God Class Dispersive Coupling Brain Class 1.Identity Shotgun Surgery Data Class How do I 2.Collaboration interact with Brain Method others? Feature Envy Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 5
  • 16. Intensive Coupling Design disharmony God Class Dispersive Coupling Brain Class 1.Identity Shotgun Surgery How do I define Data Class 2.Collaboration myself with respect Futile Hierarchy to my ancestors andBrain Method descendants? Tradition Breaker 3.Classification Feature Envy Refused Parent Bequest Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 5
  • 17. Intensive Coupling Design disharmony God Class Dispersive Coupling Brain Class Shotgun Surgery Data Class Futile Hierarchy Brain Method Tradition Breaker Feature Envy Refused Parent Bequest Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 5
  • 18. Definition of God Class “In a good object-oriented design the intelligence of a system is uniformly distributed among the top-level classes.” [Riel 1996] Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 6
  • 19. Characteristics of a God Class Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 7
  • 20. Characteristics of a God Class Heavily accesses data of other “lightweight” classes,either directly or using accessor methods. Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 7
  • 21. Characteristics of a God Class Heavily accesses data of other “lightweight” classes,either directly or using Is large accessor methods. Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 7
  • 22. Characteristics of a God Class Heavily accesses data of other “lightweight” classes,either directly or using Is large accessor methods. Has a lot of non-communicative behavior Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 7
  • 23. Characteristics of a God Class Heavily accesses data of other “lightweight” classes,either directly or using Is large accessor methods. God Class Has a lot of non-communicative behavior Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 7
  • 24. The God Class detection strategy Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 8
  • 26. The city metaphor Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 27. The city metaphor domain mapping class building package district system city Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 28. The city metaphor domain mapping class building package district system city Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 29. The city metaphor domain mapping class building package district system city Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 30. The city metaphor domain mapping class building package district system city Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 31. The city metaphor domain mapping class building package district system city number of methods (NOM) height number of attributes (NOA) base size Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 32. The city metaphor domain mapping class building package district system city nesting level color number of methods (NOM) height number of attributes (NOA) base size Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 33. The city metaphor domain mapping class building package district system city nesting level color number of methods (NOM) height [Wettel & Lanza, ICPC 2007] [Wettel & Lanza, VISSOFT 2007] number of attributes (NOA) base size Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 10
  • 34. “Reading” a code city (ArgoUML) Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 11
  • 35. “Reading” a code city (ArgoUML) skyscrapers (NOM, NOA) Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 11
  • 36. “Reading” a code city (ArgoUML) skyscrapers (NOM, NOA) parking lots (NOM, NOA) Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 11
  • 37. “Reading” a code city (ArgoUML) skyscrapers (NOM, NOA) office buildings parking lots (NOM, NOA) (NOM, NOA) Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 11
  • 38. Cities of the Java case studies Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 39. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 40. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 41. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 42. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 43. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 44. Cities of the Java case studies System NOP NOC LOC ArgoUML 144 2,542 137,000 JHotDraw 72 998 30,000 iText 149 1,250 80,000 Jmol 105 1,032 85,000 JDK 1.5 137 4,715 160,000 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 12
  • 46. Inspired by health maps World distribution of Myxobolus cerebralis Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 14
  • 47. Disharmony map: focus+context God classes of JDK 1.5 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 15
  • 48. JDK’s disharmony map 12 Brain classes 16 65 God classes 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 49. JDK’s disharmony map Component NOA 88, NOM 280 12 Brain classes 16 65 God classes 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 50. JDK’s disharmony map Security NOA 3, NOM 30 12 Brain classes 16 65 God classes 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 51. JDK’s disharmony map 12 Brain classes 16 65 God classes 109 Data classes java.awt.event Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 52. JDK’s disharmony map 12 Brain classes 16 65 God classes KeyEvent NOA 205, NOM 18 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 53. JDK’s disharmony map InputEvent 12 Brain classes NOA 21, NOM 14 16 65 God classes 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 54. JDK’s disharmony map java.awt.geom 12 Brain classes 16 65 God classes 109 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 16
  • 55. ArgoUML’s disharmony map 8 Brain classes 9 24 God classes 17 Data classes Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 17
  • 56. ArgoUML’s disharmony map 8 Brain classes FacadeMDRImpl Facade 9 NOA 3, NOM 349 NOA 1, NOM 337 24 God classes 17 Data classes GeneratorPHP4 NOA 4, NOM 33 GeneratorCPP NOA 34, NOM 100 JavaRecognizer NOA 79, NOM 176 CPPParser NOA 85, NOM 204 Modeller NOA 15, NOM 52 Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 17
  • 57. Granularity of representation class C NOM = 7 2 A= NOA NO =2 coarse Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 18
  • 58. Granularity of representation class C NOM = 7 2 A= NOA NO =2 coarse fine-grained Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 18
  • 59. Granularity of representation class C NOM = 7 las sC c 2 A= NOA NO =2 coarse fine-grained Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 18
  • 60. Granularity of representation class C m6 NOM = 7 m5 m7 m2 m1 m3 m4 las sC c 2 A= NOA NO =2 coarse fine-grained Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 18
  • 61. Feature envy map of Jmol Feature envy Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 19
  • 62. Feature envy map of Jmol Feature envy 1,500 methods (25 %) Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 19
  • 63. Shotgun surgery map of ArgoUML Facade AggregationKind VisibilityKind NOM 140/337 NOM 3/3 NOM 4/4 PseudostateKind NOM 6/6 Model NOM 28/44 Shotgun surgery Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 20
  • 65. The toolchain Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 66. The toolchain Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 67. The toolchain Moose parsing Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 68. The toolchain iPlasma parsing Moose parsing Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 69. The toolchain model iPlasma exchange parsing Moose parsing Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 70. The toolchain model iPlasma exchange parsing Moose parsing OpenGL rendering CodeCity Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 22
  • 71. Demo time! Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 23
  • 72. Closing remarks Design disharmonies overview actual design problems in context. www.inf.unisi.ch/phd/wettel/codecity.html Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 24
  • 73. Closing remarks + = Design disharmonies overview actual design problems in context. www.inf.unisi.ch/phd/wettel/codecity.html Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 24
  • 74. Closing remarks + = Design disharmonies overview actual design problems in context. Acknowledgments: www.inf.unisi.ch/phd/wettel/codecity.html Richard Wettel and Michele Lanza Visually Localizing Design Problems with Disharmony Maps 24