Software Systems as Complex Networks by Hema Jayaprakash

Preview:

Citation preview

Software Systems as Complex Networksby

Hema Jayaprakash

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

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.

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

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

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

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

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

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

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.

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

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

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

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

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

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

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.

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.

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.

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.

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

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

Software Coding Graphs by Michele Marchasi – Code and its graph

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

Software Coding Graphs by Michele

Marchasi – OO Systems Studied

Source: Agile Group – DIEE, Università degli studi di Cagliari

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

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

Topology Representation of Networked Software Architecture – Partial Kernel Functions of Linux V0.12

Topology Representation of Networked Software Architecture – All Kernel Functions of Linux V0.12

Topology Representation of Networked Software Architecture – Apache Tomcat Version 6.0.13

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.

Questions?