Software Systems as Complex Networks
description
Transcript of Software Systems as Complex Networks
![Page 1: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/1.jpg)
Software Systems as Complex NetworksbyHema Jayaprakash
![Page 2: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/2.jpg)
Software Systems as Complex Networks - Outline
Introduction Software UML Class Diagram Graphs by Sergi
Valverde and Richard V.Sole Software Object Graphs by Alex Potanin Software Coupling Graphs by Richard Wheeldon
and Steve Counsell Software Collaboration Graphs by Christopher
R.Myers Software Coding Graphs by Michele Marchasi Conclusion
![Page 3: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/3.jpg)
Introduction
Software systems represent another important class of complex networks.
Organized to be highly functional. Components of a large software application
are very well connected. Organized to be highly evolvable. Design is a central element of software
construction. Software systems need better ways of
characterizing and controlling macroscopic properties.
![Page 4: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/4.jpg)
Software UML Class Diagram Graphs by Sergi Valverde and Richard V.Sole – Software Graph Representation
Source: Hierarchical Small Worlds in Software Architecture, Sergi Valverde and Richard V.Sole
![Page 5: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/5.jpg)
Software UML Class Diagram Graphs by Sergi Valverde and Richard V.Sole - Analysis
Static Analysis on Five UML Class Diagrams: ProRally 2002 – UbiSoft Entertainment Striker – UbiSoft Entertainment JDK-A JDK-B Mudsi – Distributed Java Application
29 Class Diagrams
![Page 6: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/6.jpg)
Software UML Class Diagram Graphs by Sergi
Valverde and Richard V.Sole – Topological Measurements
Source: Hierarchical Small Worlds in Software Architecture, Sergi Valverde and Richard V.Sole
![Page 7: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/7.jpg)
Software UML Class Diagram Graphs by Sergi
Valverde and Richard V.Sole – software Cost and Size
Source: Hierarchical Small Worlds in Software Architecture, Sergi Valverde and Richard V.Sole
![Page 8: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/8.jpg)
Software UML Class Diagram Graphs by Sergi Valverde and Richard V.Sole – Evolution of mean degree, mean path length and clustering Coeffcient of Prorally 2002
Source: Hierarchical Small Worlds in Software Architecture, Sergi Valverde and Richard V.Sole
![Page 9: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/9.jpg)
Software Object Graphs by Alex Potanin– Simple object graph of linked list
Source: Scale-Free Geometry in OO Programs, Alex Potanin, James Noble, Marcus Frean and Robert Biddle
![Page 10: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/10.jpg)
Software Object Graphs by Alex Potanin – OO Analysis
Heap Profiler Library and JVM Profiler – 60 object graphs from 35 programs.
Java Heap Analysis Tool – Properties of the program’s object graphs.https://hat.dev.java.net/ HAT is a program that analyzes a heap dump file for Java
programs. This tool can help a developer to debug and analyze the objects in a running Java program. It is particularly useful when debugging unintentional object
retention.
![Page 11: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/11.jpg)
Software Object Graphs by Alex Potanin – Power Laws in Object Graphs
Source: Scale-Free Geometry in OO Programs, Alex Potanin, James Noble, Marcus Frean and Robert Biddle
![Page 12: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/12.jpg)
Software Coupling Graphs by Richard Wheeldon and Steve Counsell – Software coupling and their graphs
Source: Power Law Distributions in Class Relationships, Richard Wheeldon and Steve Counsell
![Page 13: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/13.jpg)
Software Coupling Graphs by Richard Wheeldon and Steve Counsell - Analysis
Autocode – index java code Three Large Java Systems
JDK – Version 1.4 has 1,400,000 lines of code spread over 6000 classes
Apache Ant – Version 1.5.3 has 1,45,000 lines of code apread over 500 classes
Tomcat – Version 4.0 has 1,50,000 lines spread over 370 classes
![Page 14: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/14.jpg)
Software Coupling Graphs by Richard Wheeldon and Steve Counsell - Methods, Fields and Constructors
No strong Correlation.
Number of methods can’t be found by using number of fields or constructors.
Source: Power Law Distributions in Class Relationships, Richard Wheeldon and Steve Counsell
![Page 15: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/15.jpg)
Software Coupling Graphs by Richard
Wheeldon and Steve Counsell – Coupling Power Laws for JDK, Tomcat and Ant
Source: Power Law Distributions in Class Relationships, Richard Wheeldon and Steve Counsell
![Page 16: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/16.jpg)
Software Collaboration Graphs by Christopher R.Myers – Class Collaboration Graph
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
![Page 17: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/17.jpg)
Software Collaboration Graphs by Christopher R.Myers - Analysis
Doxygen - an automatic document generation tool that parses C++ header files to describe classes, their methods, inheritance, and collaborations.
Six open-source software systems VTK visualization library Digital Material AbiWord Linux MySQL XMMS.
![Page 18: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/18.jpg)
Software Collaboration Graphs by Christopher
R.Myers – Connected Components
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
(a) number of nodes in each graph, (b) number of edges in each graph, (c) number of WCCs, (d) number of nodes in the largest WCC, (e) number of edges in the largest WCC, (f) number of SCCs, (g) number of nodes the largest SCC, (h) number of edges in the largest SCC, and (i) the fraction of nodes belonging to any SCC.
![Page 19: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/19.jpg)
Software Collaboration Graphs by Christopher
R.Myers – Degree Distributions
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
(a) VTK (b) Digital Material(c) AbiWord(d) Linux (e) MySQL(f) XMMS.
![Page 20: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/20.jpg)
Software Collaboration Graphs by Christopher
R.Myers – Clustering Coefficients
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
(a) VTK (b) Digital Material(c) AbiWord(d) Linux (e) MySQL(f) XMMS.
![Page 21: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/21.jpg)
Software Collaboration Graphs by Christopher
R.Myers – Complexity Measures
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
![Page 22: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/22.jpg)
Software Collaboration Graphs by Christopher
R.Myers – Evolution History of VTK System
Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers
![Page 23: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/23.jpg)
Software Coding Graphs by Michele Marchasi – Code and its graph
![Page 24: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/24.jpg)
Software Coding Graphs by Michele Marchasi – CK Software OO Metics
Source: Power-Laws in a Large Object-Oriented Software System, Giulio Concas, Michele Marchasi, Sandro Pinna and Nicola Serra
![Page 25: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/25.jpg)
Software Coding Graphs by Michele Marchasi – OO Systems Studied
Source: Agile Group – DIEE, Università degli studi di Cagliari
![Page 26: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/26.jpg)
Software Coding Graphs by Michele Marchasi - Results
Source: Power-Laws in a Large Object-Oriented Software System, Giulio Concas, Michele Marchasi, Sandro Pinna and Nicola Serra
![Page 27: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/27.jpg)
Software Coding Graphs by Michele Marchasi - Results
Source: Power-Laws in a Large Object-Oriented Software System, Giulio Concas, Michele Marchasi, Sandro Pinna and Nicola Serra
![Page 28: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/28.jpg)
Topology Representation of Networked Software Architecture – Partial Kernel Functions of Linux V0.12
![Page 29: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/29.jpg)
Topology Representation of Networked Software Architecture – All Kernel Functions of Linux V0.12
![Page 30: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/30.jpg)
Topology Representation of Networked Software Architecture – Apache Tomcat Version 6.0.13
![Page 31: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/31.jpg)
Conclusion
Hierarchical Small Worlds in Software Architecture using UML Class Diagrams
Scale-Free Geometry in OO Programs using Object Graphs
Power Law distributions in Class Relationships using Software Coupling Graphs
Structure, Function and Evolvability of Software Collaboration Graphs
Power-Laws in a Large Object-Oriented Software System using the Code Graphs.
Topological Representation of Software Architecture Networks.
![Page 32: Software Systems as Complex Networks](https://reader036.fdocuments.us/reader036/viewer/2022062501/56815dc0550346895dcbe9e3/html5/thumbnails/32.jpg)
Questions?