discipline banner.gif (11841 bytes)

Visual Architecting ProcessAction Guides
- Init/Commit
- Meta-architecture
  - Requirements
  - Specification
- Conceptual Architecture
  - Requirements
  - Specification
- Logical Architecture
- Execution Architecture
- Architecture Deployment

 

Other Columns

i. Architecture Teams   (.pdf)

ii. Minimalist Architecture   (.pdf)

Related White Papers

i. Software Architecture (.pdf)

ii. Visual Architecting Process   (.pdf)

iii. Architecture as Business Competency (.pdf)

For more on Architecture Action Guides see

i. Downloads

ii. Software Architecture Workshop

For more on Architecting see

Architecting Process

Book List

 

 

 

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

Thanks to all who 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!!

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

Architecture Decision Frameworks or View Models

Software Architecture

Systems Architecture

Enterprise Architecture

General

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 and System 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.:

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:

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)

Performance visualization:

Visualization in requirements and user interaction design:

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

Collaborative whiteboard tools

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.

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

  • List of mind mapping tools on wikipedia
  • Mindmeister: collaborative online mindmapping (limited edition is free)
  • Mind42: free collaborative online mindmapping
  • XMind: open source, free download; public sharing is free

General: Software Visualization

Illustrative Examples

Visualizing the future (roadmaps and projections or forecasts)

  • Roadmap to Secure Control Systems in the Energy Sector (One of the best roadmap examples I've found, combining plan and projection, scenarios and visuals to support the visualization of the future.)
  • Future of Software and Systems Engineering (This was done in 2005, and it is interesting in providing an example of looking back to provide context for looking forward, as well as interesting in how quickly the landscape and forces have shifted even from the projections in 2005.)
  • Unmanned Aerial Vehicles Roadmap: 2002-2027.  (Done in 2002, but looking 25 years out! This is a dependencies and planning kind of roadmap. Heavily textual, but I like the diagrams on page 35-37, and the subsequent discussion of enablers/capabilities provides a good illustration of architectural forward-thinking.)

Visualizing the past (graphical histories)

Rich Pictures

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:

  • visualcomplexity -- super-awesome collection of visualization projects, styles, and resources. WOW! It is stunning to see what people are doing!
  • Information Aesthetics spotlights info visualization sites
  • Sankey Diagrams--specific type of flow diagram, in which the width of the arrows is shown proportionally to the flow quantity
  • SimpleComplexity.net: surveys information visualization techniques and sites
  • "periodic table" of visualization
  • Visual Think Map's assorted collection visualizations (gives an impression of the gamut of ideas)
  • The visualizations on GOOD.is are really phenomenal/disturbing! If TED is the place to go to see exemplary speeches, GOOD.is the place to go to see data visualization and meaning making through visuals! Actually there are some cool data visualization talks on TED (Gosling included).
  • Wolfram (of A New Kind of Science fame) Demonstrations Project: over 5000 interactive visualizations! For example, experiment with Amdahl's Law.
  • 50 Great examples of InfoGraphics
  • A new graphic visualization of the periodic table.

Interesting developments in visualization:

Visualization in Product Design

  • Fluent: CFD (Computation fluid dynamics)

Visualizing Social Networks

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:

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:

Drawing 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

  • Visualizing Software Architectures: Part I and Part II, Richard Taylor, Nenad Medvidovic and Eric Dashovy, USC

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 Information Visualization

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

 

YOUR Input Needed

What other tools, papers, blogs, etc. should we include on this resources page? Please let us know by emailing me (Ruth) at Bredemeyer.com.

I keep the current version of this list in my online architects architecting architecture journal, so by all means check in on it here.

Copyright © 2009 Bredemeyer Consulting
URL: http://www.bredemeyer.com
Page author: Ruth Malan
Created: July 16, 2009
Last Modified: October 25, 2010