1 / 32

Software Systems as Complex Networks

Software Systems as Complex Networks. by Hema Jayaprakash. 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

toya
Download Presentation

Software Systems as Complex Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Systems as Complex Networks by Hema Jayaprakash

  2. 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 Software Systems as Complex Networks - Outline

  3. 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.

  4. 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 Graph Representation

  5. 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

  6. 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

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

  8. 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

  9. 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

  10. 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.

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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.

  18. Software Collaboration Graphs by Christopher R.Myers– Connected Components (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. Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers

  19. Software Collaboration Graphs by Christopher R.Myers– Degree Distributions (a) VTK (b) Digital Material (c) AbiWord (d) Linux (e) MySQL (f) XMMS. Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers

  20. Software Collaboration Graphs by Christopher R.Myers– Clustering Coefficients (a) VTK (b) Digital Material (c) AbiWord (d) Linux (e) MySQL (f) XMMS. Source: Software Systems as Complex Networks: structure, function and evolvability of software collaboration graphs, Christopher R.Myers

  21. 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

  22. 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

  23. Software Coding Graphs by Michele Marchasi – Code and its graph

  24. 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

  25. Software Coding Graphs by Michele Marchasi – OO Systems Studied Source: Agile Group – DIEE, Università degli studi di Cagliari

  26. 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

  27. 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

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

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

  30. Topology Representation of Networked Software Architecture – Apache Tomcat Version 6.0.13

  31. 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.

  32. Questions?

More Related