A Trace in the Sand
Online Architecture Journal
by Ruth Malan

Ruth Malan also writes at:

- Resources for Architects

- Architects Architecting Architecture Journal

- Trace In the Sand Blog

 

- Follow ruthmalan on Twitter

 


 




 

 

 

Software visualization (images from Lattix, Shrimp, SoftGUESS, XRay and Code City)Software Visualization Tools and Resources

Acknowledgments: Grady Booch and I have been exchanging links to software visualization tools and other resources. I created the list below to collect and organize these, and additional, links.

We'd also like to thank several others who have contributed over time to this collection.

And thanks in advance for letting us know about any visualization techniques, tools and discussions and other resources that are still missing from this collection!!

Image credit: I composed the image (right) with snips from Lattix, Shrimp, SoftGUESS, X-Ray and CodeCity.

Towards a Map of the Software Visualization Zoo

Architecture Decision Frameworks or View Models

Software Architecture

Systems Architecture

Enterprise Architecture

General

Open Source

Proprietary-large company

  • Capgemini’s Integrated Architecture Framework (IAF)
  • IBM’s Architecture Description Standard (ADS)
  • SAP Enterprise Architecture Framework (EAF)
  • Oracle Enterprise Architecture Framework (OEAF)

Thought leaders

  • Gartner Enterprise Architecture Framework
  • VAP Enterprise Architecture Decision Framework
  • Orr’s Business Enterprise Architecture Modeling Framework (BEM)
  • Extended Enterprise Architecture Framework (E2AF)
  • Pragmatic Enterprise Architecture (PeaF)
  • OBASHI

Educational institutions

  • Purdue Enterprise Reference Architecture (PERA)

Government and State Agency

Government--Defense

Notation Standards for (Software, System, EA and Business Process) Visualization

Other Notations for Software and Systems Visualization

Architecture Visualization and Documentation Practices

Architecture Visualization and Documentation Positions

Tools

UML tools

sysML tools

  • A number of the UML tools also support sysML. See the Wikipedia list of UML tools.

  • Visio templates for sysML (by Pavel Hruby)

ArchiMate tools

MDE and Visual DSL tools

Powerpoint (the most used architecture drawing tool?)

Tools for visualizing and managing code structure/dependencies, design rule enforcement, etc.:

"We developed an interactive visual model called the Levelized Structure Map (LSM) which was specifically designed to allow software architects delve into structural problems and to explore solutions by directly manipulating the model in a sandbox environment." -- Chris Chedgey  on Restructure101, 5/11/2011

More on Software Visualization Tools

NDepend

Tools for visualizing metrics

DSM (Design Structure Matrix, also known as Dependency Structure Matrix and Dependency Structure Method) tools with broader application (the set above focus on software systems):

University Projects In Software Visualization:

Shrimp image source: http://www.thechiselgroup.com/shrimp

 

Performance prediction:

  • Cheddar: responsiveness and schedulability assessment using analytical techniques and execution simulation (Cheddar-University of Brest)
  • Lockheed Martin CSIM Event Driven Modeling Tool (described here)

Profilers and Performance Diagnostics

  • JProbe: Memory, performance and coverage analysis
  • Apache JMeter: simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types

Model recognition:

Miscellany (related to software):

Ontology visualization:

Graph visualization (and applications):

Information visualization and visual analysis tools:

General purpose visualization

  • SmartDraw (flowcharts, org charts, graphs, mind maps, etc.)
  • eDraw (UML diagrams, flowcharts, workflows, program structures, web design diagrams, electrical engineering diagrams, and database diagrams, org charts, building floor plans, etc.)

Toolsets and libraries for visualization:

  • ilog--graphics libraries for creating complex data visualizations
  • Processing--an open source programming language and environment to program images, animation, and interactions (Universe uses Processing)
  • Collada--enabling digital asset exchange for interactive 3D industry  
  • prefuse information visualization toolkit (Jeff Heer, now at Stanford)
  • ThinkMap SDK
  • Protovis: a graphical toolkit for visualization (Stanford)
  • V3ga Vision factory: relies on several third-party libraries and has numerous facets making it a rich framework for the experimentation and the creation of visuals
  • Raphaël—JavaScript Library (vector graphics)
  • IBM ILOG Visualization for Java

Performance visualization:

Vulnerability analysis:

Visualization in requirements and user interaction design:

BPMN Tools

EA (Visualization) Tools

Interesting developments in interactive (input) devices (supporting team visualization):

Interesting developments in diagramming tools:
(some points of differentiation: i. online apps/diagramming in the browser ii. collaboration iii. you write, the tool draws)

  • LucidChart: collaboratively create and work on flow charts and org charts online
  • Creately: online drawing tool to draw flowcharts, UML diagrams, wireframes and UI mockups, etc., and share them online
  • webSequenceDiagrams: enter interaction description, and tool draws the diagram

Concept Mapping

  • VUE: Visual Understanding Environment from Tufts; import ontologies defined in RDF-S or OWL formats directly into VUE, allowing for the creation of concept maps from pre-defined object and relationship types. Merge maps has nice features for analysis.

Business Process and Workflow Visualization

Mind mapping tools (branching mind map tools can be used for informal concept maps, dependency trees, feature trees, utility trees, system quality refinement/scenarios, etc.; tabular mind maps can be used for brainstorming lists a la Think Better. etc. So not just for Buzan-styled mind maps... though those are great too.)

Collaborative whiteboard tools

Software Infographics

General: Software Visualization

Illustrative Examples

Visualizing the future (roadmaps and projections or forecasts)

Visualizing the past (graphical histories)

Rich Pictures

Affinity Diagrams

Empathy Maps

Visualizing social networks

Neat applications of comics to software/technology

Animation applied to teaching software/related concepts

Visualizing techniques applied to create humor

Relationship visualization (by example)

  • Music maps: The closer two artists are, the greater the probability people will like both artists.

  • Wordle: visualize word density on a web page (size proportional to word count)

Just for fun

Visualization in Collaboration

Graphical facilitation and graphical recording:

Visualization in Business and Competitive Intelligence

Visualization in Other Fields

DSM (Design/Dependency Structure Matrix) applications in other fields:

  • Acclaro DFSS product design (not software specific), from Axiomatic Design

Not software-specific, but interesting:

Interesting developments in visualization:

Visualization in Product Design

Visualizing Social Networks

Visualizing in Government and Social Change

Transportation

Visualization in Climate Change Fields

Visualization in Bio-Informatics

Visualization in Bio-Medical Fields (Anatomy, Physiology, etc.)

 

Visualization in Math and Science

Visualizing Music

Academic Work in Visualization (General Applications, not only software)

Books

Visualization in Engineering Disciplines:

Visualization in Software:

Visualization in Design:

Visualization in Arts, Design and Information:

Information Visualization:

Visualizing in Decision Making, Thinking and Communication (applied to business and life):

Drawing to visualize concepts (used in graphical facilitation and illustration):

Talks and Video Clips on Visual Thinking and Visualizing Systems

Interviews on SE radio related to structure visualization:

Interviews on InfoQ related to modeling:

Source code analysis tools (not really visual, but important):

Visualizing in Software and Systems Development

Visualizing in Business and Society:

Interesting developments in interactive visualization input devices:

Lessons in Making Things Visual:

rawing to visualize concepts:

History

  • George Dyson on the birth of the computer (TED) (not much on visualization, but the early history of binary logic, and some neat illustrations and comments in those old note books!)

Articles, Blogs an Blog Posts on Software Modeling and Visualizing

Presentations on Software Architecture Visualization (.PPT)

Papers on Software Modeling and Visualizing

Papers on Model Driven Performance/QoS Analysis

  • Sohel Aziz, Gaurav Caprihan, Kingshuk Dasgupta, and Stephen Lane, Performance Engineering and Global Software Development, Infosys white paper, Jan 2007 

  • Gabriel A. Moreno and Paulo Merson, "Model-Driven Performance Analysis," Fourth International Conference on the Quality of Software Architectures (QoSA 2008). Germany, October 14-17, 2008.

  • Assel Akzhalova, Assel Altayeva and Nurzhan Duzbayev, Model Driven Prediction and Control, Journal of Object Technology, December 2007.

  • Simonetta Balsamo, Antinisca Di Marco, Paola Inverardi, and Marta Simeoni. Model-based performance prediction in software development: A survey. IEEE Transactions On Software Engineering, 30(5):295{310, May 2004.

  • Balsamo, S. and M. Marzolla. Performance Evaluation of UML Software Architectures with Multiclass Queueing Network Models. in WOSP 2005. 2005. Palma de Mallorca: ACM.

  • Bass, L., Ivers, J., Klein, M., Merson, P.: Reasoning frameworks. Technical Report CMU/SEI-2005-TR-007, Software Engineering Institute (2005)

  • Kenneth Chan and Iman Poernomo, QoS-aware model driven architecture through the UML and CIM. Information Systems Frontiers, 9(2-3):209{224, 2007.

  • Luiz Marcio Cysneiros and Julio Cesar Sampaio do Prado Leite. Nonfunctional requirements: From elicitation to conceptual models. IEEE Transactions On Software Engineering, 30(5):328{350, MAY 2004.

  • D'Ambrogio, A. A Model Transformation Framework for the Automated Building of Performance Models from UML Models. in Proc. 2005 Workshop on Software and Performance. 2005. Palma de Mallorca: ACM Press.

  • Ivers, J., Moreno, G.A.: Model-driven development with predictable quality. In: Companion to the OOPSLA'07 Conference. (2007)

  • López-Grao, J.P., J. Merseguer, and J. Campos. From UML Activity Diagrams to Stochastic Petri Nets: Application to Software Performance Engineering. in Proc. Workshop on Software and Performance. 2004. Redwood Shores, CA: ACM.

  • Liu, V., I. Gorton, and A. Fekete, Design-level performance prediction of component-based applications. IEEE Trans. on Software Engineering, 2005. 31(11): p. 928-941.

  • Hissam, S.A., G.A. Moreno, and K.C. Wallnau, Using containers to enforce smart constraints for performance in industrial systems. 2005, Software Engineering Institute - Carnegie Mellon University: Pittsburgh, PA.

  • Ivers, J. and G.A. Moreno. Model-driven development with predictable quality. in SIGPLAN Conference on Object Oriented Programming Systems and Applications (OOPSLA07). 2007. Montreal, Quebec, Canada: ACM.

  • Gabriel A. Moreno, Connie U. Smith, and Lloyd G. Williams, Performance Analysis of Real-Time Component Architectures: A Model Interchange Approach, WOSP’08, June 24–26, 2008, Princeton, New Jersey, USA.

  • Liangzhao Zeng, Boualem Benatallah, Anne H.H. Ngu, Marlon Dumas, Jayant Kalagnanam, and Henry Chang. Qos-aware middleware for web services com- position. IEEE Transactions On Software Engineering, 30(5):311{327, MAY 2004.

Papers on Software Visualization Practices

 

Papers on Complexity Metrics (with a visual slant)

 

Papers on Information Visualization

 

Papers on Visual Thinking

  • Larkin, J. and Simon, H.A., "Why a Diagram is (Sometimes) Worth Ten Thousand Words", Cognitive Science, Vol. 11, No. 1, pp. 65-99, 1987.

Trade Press

Conferences in Software Visualization

Alternatives to Visual Language Approaches in Software

  • Sculptor: express your design intent in a textual DSL specification, from which Sculptor generates high quality Java code and configuration (open source)
  • Xtext: a framework for developing textual DSLs (based on Eclipse)

Visual Modeling of Business Processes

Graphical Language/Notation Standards

  • IDEF0: method designed to model the decisions, actions, and activities of an organization or system
  • BPMN: Business Process Modeling Notation--OMG standard; subsumes BPMI (Business Process Modeling Management Initiative)

Visual Language in other Disciplines

  • Orchesography by Thoinot Arbeau: annotation for drum beats on the music score and an annotation for the dance steps, as well pictures of dancers showing the costumes and footwork
  • labanotation: visual language for dance
  • Akira Yoshizawa created an instructional language for origami. (Robert Lang on origami on TED)

Papers and Collections of Papers on Visualization and Visual Thinking

Visualizing (and Illustrating) Quotes

"The eye can process information in the ratio of 12:3 times faster than the ear." -- structured visual thinking

(You do see the humor in that, right? 12:3 times is so much more compelling a visualization than 4 times... :-)

Hemmingway coined the term "illustrating the iceberg" in reference to his writing, but as a principle it is applicable to visually illustrating a system:

"In The Old Man and the Sea, Hemingway uses a technique of writing in which only the necessary information is provided. He called it illustrating the iceberg." -- Ryan Bredemeyer, 5th Grade Book report on A Sea of Change, May 2009

"If a writer knows enough about what he is writing about, he may omit things that he knows. The dignity of movement of an iceberg is due to only one ninth of it being above water." -- Ernest Hemingway, Death in the Afternoon, 1932 

On drawing:

"...John Ruskin. His mission was not to teach people how to draw, but how to see." Niamh Sharky, Everyone Can Draw

For Fun: Visualizing Abstract Concepts

For Fun (and my own moral support): Bringing Back Hand-Drawn Designs

Performance Testing

Load testing: "There are open source tools like JMeter that work pretty well. They are not suited for really high volume load tests, but they work pretty well for testing as you go and checking to see when you introduce a performance regression. It is possible to do more of that on a continuous basis." Michael Nygard, InfoQ

JMX

Code Spelunking (some visual, some not)

Here is George Neville-Neil's take on several spelunking resources (circa 2003):

"Global: Global is really a pair of tools: gtags and htags. The first, gtags, builds a database of interesting connections based on a source tree in C, C++, Java, or Yacc. Once the database is built, you can use your editor (both Emacs and vi are supported) to jump around within the source. Want to know where the function you're calling is defined? Just jump to it. The second tool is htags, which takes the source code and the database generated by gtags and creates an HTML-browsable version of the source code in a subdirectory. This means that, even if you don't use Emacs or vi, you can easily jump around the source code finding interesting connections. Building the database is relatively speedy, even for large code bases, and should be done each time you update your sources from your source-code control system.

Cscope: Cscope was originally written at AT&T Bell Labs in the 1970s. It answers many questions, such as: Where is this symbol? Where is something globally defined? Where are all the functions called by this function? Where are all the functions that call this function? Like Global, it first builds a database from your source code. You can then use a command-line tool, Emacs, or one of a few GUIs written to work with the system to get your questions answered.

gprofThis is the standard profiling tool on most open source Unix systems. Its output is a list of routines ordered by how often they were called and how much of the program's CPU time was spent executing them. This can be useful in figuring out where to start looking for security holes in a program.

code spelunking: This Web site contains a TWiki collaboration page dedicated to code spelunking"

-- George V. Neville-Neil, Code Spelunking: Exploring Cavernous Code Bases , ACM Queue, September, 2003

See also Code Spelunking Redux, by George V. Neville-Neil, January 8, 2009

Feedback: If you want to add a resource, I can be reached using the obvious (my name!) traceinthesand.com handle. If you want to rant or spam, it is ruth@traceinthesand.ru.cz.  :-) 
 

 

Copyright © 2009-2011 by Ruth Malan
URL: http://www.ruthmalan.com
Page Created: July 6, 2009
Last Modified: December 01, 2011