|
Ruth Malan also writes at:
- Resources
for Architects
- Architects Architecting Architecture Journal
-
Trace In the Sand Blog
-

|
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
ArchiMate tools
MDE and Visual DSL tools
Powerpoint (the most used architecture drawing tool?)
,
Edward Tufte
Don Norman In
Defense of Powerpoint
Tools for
visualizing and managing code structure/dependencies, design rule
enforcement, etc.:
cppDepend
Axivion
Bauhaus
Software Acumen
Bauhaus
SonarJ and
Sotoarc/Sotograph
Structure101
JDepend
IntelliJ IDEA (JetBrains) includes a DSM (Dependency Structure Matrix)
feature
dtangler
Restructure101
XRadar (opensource)
System Grokker,
IBM
Coverity Architecture Analysis
Klockwork Insight
SolidSX (Solid Software Xplorer)
SoftGUESS
(built on
GUESS):
code clone genealogy, encapsulation and dependency browser
SourceInsight (for C, C++,
C# and Java): program editor and can display reference trees, class
inheritance diagrams, and call trees
SciTools: source code analysis
and metrics for large, complex amounts of source code
CrystalFlow from SVGsarc: flow
charts from source code
Level 7 Visualizations: Supermodel
is a 3D animated immersive world;
Superplex is an associative-store navigation network based on mind-mapping
Debugger
Canvas with Code Bubbles in Visual Studio (Ultimate)
Codeprofiles
exhibit for Whitney Museum's CODeDOC exhibit and Bradford Paley's
Codeprofiles
demonstrator in action.
"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:
-
Chisel
projects at the University of Victoria:
Shrimp (visualize "graph based" data formats), Jambalaya (uses Shrimp to
visualize knowledge bases; rides on the
Protégé
ontology editor from Stanford),
Creole (explore Java code
visually; uses Shrimp). Shrimp can be downloaded from
SourceForge.
Other Chisel projects that look interesting include:
ConcernLines,
SequenceExplorer,
Model Driven Visualization (Zest
for Eclipse), and TagSEA (cool
use of social tagging to create "geographical landmarks" in code).
-
MOOSE analysis environment
(Software Composition Group at University
of Berne) supports a number of
research projects such as
Viz: Polymetric views. The
Viz:
distribution map looks like if could be promising, though I'd want to be
clearer what was being color coded (properties? concepts? concerns?
responsibilities?) The whole area of
evolution modeling is worth a look. There are numerous very interesting
visualization tools in the MOOSE set, including
DynaMoose (feature map/analysis),
Enriched DSM,
Chronia (file ownership over time) and
SmallDude (duplication detector).
-
iPlasma projects, at University of Timisoara,
Romania:
MemBrain,
JMondrian (Java
implementation of the Mondrian visualization framework).
-
POLKA
from
GA Tech CS (Algorithm Animation)
-
SeeSoft GA Tech;
Gammatella, GA Tech.
Gammatella does remote monitoring by combining execution metrics,
colored treemaps and SeeSoft-like views
Tarantula (visualization
for fault localization), GA Tech
MORALE (Mission ORiented
Architectural Legacy Evolution)
toolset from GA Tech (vintage 1999)
VizMOOS, (Visualization Methods for Object Oriented Software Systems)
and
J3Brower, University of Dortmund
sv3d from the SEVERE
group at Wayne State
CodeSwarm,
StarGate,
Visualizing Eclipse Bug
Data, Software visualization
projects at UC Davis
Visual Code Navigator
(CVSscan, CVSgrab, CSV, DreamCode), TUE, The Netherlands (vintage 2007)
Alex Telea,
Visual
Gallery, TUE, The Netherlands;
and
papers on
visualization topics including code evolution
Software
Visualization: VALLEY, CACTI, BLOOM, JIVE (visualizes execution history
using interactive UML sequence diagrams), JOVE, VELD, Brown University
The
Software Architecture Visualization and Evaluation (SAVE) tool, UMD
[Very
interesting work
being done at Fraunhofer around the SAVE project]
Codemap
Code Bubbles,
Andrew Bragdon. (Brown U.) See
Debugger Canvas FAQ.
Projects under
Michele Lanza. Presentations:
The Visual Terminator,
Of Code and Change: Beautiful Software,
Visual Exploration of Large-Scale System Evolution,
Visually Localizing Design Problems with Disharmony Maps,
Visual Software Analysis,
Software Evolution
Visualization of execution traces: The
Tracer, The
Weizmann Institute of Science, Rehovot, Israel
Runtime Instrumentation:
FERRARI:
Framework for Exhaustive Rewriting and Advanced Runtime Instrumentation,
University of Lugano, Switzerland
|

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:
Software turns hand-drawn designs into PC files, Computerworld, July 15,
2008
Miscellany (related to software):
Ontology visualization:
Graph visualization (and applications):
Information visualization and visual analysis tools:
Information visualization projects, Innovations in visualizations Lab,
University of Calgary (also doing interesting work in interaction)
PhylloTrees:
Phyllotactic Patterns for Tree Layout (Innovis, U. Calgary)
circos: novel way to visualize tabular data (this
interactive visualization of the democratic/republican debate is fun;
this
visual comparison of the genomes of humans and mice, monkeys and
chickens is revealing, as is this one on "the
rest of the genome"; and this one
visualizing hostile internet
traffic)
schemaball: schema viewer (antecedent to circos, developed by Martin
Krzywinski)
InfoVis Applications: list of applications in infovis wiki
List of Data visualization Tools for Designers and Developers on The
Pearl, and another
on DMOZ
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
LGL (large graph
layout) applications for visualizing large graphs and trees (this
SCOP sunid hierarchy is beautiful, as are these
maps of the internet)
Bluefin tuna--did you know? This
infographic sets one back on one's heels!
Visualization in Bio-Medical Fields (Anatomy, Physiology, etc.)
- David Bolinsky
animates a cell (TED)
Microscopes zoom in on molecules
Interactive visualization in
large scale comparative genomics, Niels Willems, Eindhoven University of
Technology
Circos--visualizing the genome,
Martin Krzywinski
Visualization in Math and Science
in math
and logic, Standford Plato site
Fluoressence poster
NSF Intl Science and Engineering
Visualization Challenge (e.g.,
2008 winners)
Fractals:
Mandelbrot and
3D
Mandelbulb (caution--this site could cost you days! :-)
Visualizing randomness,
Daniel Becker
Using visualization to find
prime numbers
Circos:
Visualizing tabular data,
Martin Krzywinski
Circos applied to
visualizing political debates; roll-over adds context-sensitive text--neat
Other applications of Circos
[neat and fun]
Modern Science Map (subway style), Crispian Jago
Visualizing Music
Academic Work in Visualization (General Applications, not only software)
Books
Visualization in Engineering Disciplines:
On Line and On Paper: Visual
Representations,
Visual Culture, and
Computer Graphics in Design Engineering, 1998
Ferguson, E.
Engineering and the Mind's Eye. Cambridge,
Massachusetts: MIT Press, 1994.
Petroski, H.
Invention by Design: How Engineers Get From Thought to Thing.
Boston, Massachusetts: Harvard University Press, 1996.
Visualization in Software:
- All the UML and sysML books!
- Diehl, Stephen,
Software Visualization - Visualizing the Structure,
Behavoiur, and Evolution of Software. Springer, 2007
- Michele Lanza and Radu Marinescu, Object-Oriented Metrics in
Practice: Using Software Metrics to Characterize, Evaluate, and Improve the
Design of Object-Oriented Systems, Springer, 2006
- Stasko, J. T., Brown, M. H., & Price, B. A.,
Software Visualization:
MIT Press, 1997
Visualization in Design:
Visualization in Arts, Design and Information:
Information Visualization:
Julie Steele and Noah Iliinsky (Eds),
Beautiful Visualization: Looking at Data through the Eyes of Experts,
2010
Colin Ware,
Information Visualization, Second Edition: Perception for Design
(Interactive Technologies), 2004
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
Drawing on the Walls--It's not just for kids! (7/22/08)
--
Visual Modeling (7/16/08)
--
Ban Powerpoint? (5/9/09)
--
Testing on Paper (5/12/09)
--
Hand-rendering your vision (7/15/08)
Wikipedia "Software
Visualization"
Scott Ambler:
-
Artifacts for Agile Modeling: The UML and Beyond
- Use
the Simplest Tools
-
Architecture Envisioning: An Agile Best Practice
Michael Bushe,
IntelliJ IDEA's Dependency Structure Matrix Tool Visualizes
Architecture, InfoQ, 2/12/08
Johan Den Haan,
8 Reasons
Why Model-Driven Approaches (will) Fail, InfoQ, 7/28/08
Sven Efftinge, Peter Friese, Jan Kohnlein,
Best
Practices for Model-Driven Software Development, InfoQ, 6/25/08
Niclas Nilsson,
Is a picture
always worth a thousand words?, InfoQ, 8/11/07
Presentations on Software Architecture Visualization (.PPT)
Papers on Software Modeling and Visualizing
-
Software development: speeding from sketchpad to smooth code, ICT
Results, 7/30/09
-
T. Ball and S. Eick. Software visualization in the large. IEEE Computer,
pages 33–43, 1996.
-
K. Delhi Babu, Dr. P.
Govindarajulu and A.N. Aruna Kumari,
Development of
the Conceptual Tool for Complete Software Architecture Visualization: DArch
(DA), IJCSNS International Journal of Computer Science and Network
Security, VOL.9 No.4, April 2009
-
Dirk Beyer and Ahmed E. Hassan,
Evolution Storyboards: Visualization of Software Structure Dynamics,
2006
-
Byelas, Heorhiy,
Visualization of metrics and areas of interest on software architecture
diagrams, dissertion, 2010
-
Weiwei Cui,
A Survey on Graph
Visualization, 2007
-
Remco C. de Boer, Patricia Lago,
Alexandru Telea, and Hans van Vliet,
Ontology-Driven Visualization of Architectural Design Decisions, WICSA
2009.
-
De Pauw, W., Jensen, E., Mitchell, N., Sevitsky, G., Vlissides, J., and
Yang, J., Software Visualization, State-of-the-Art Survey. LNCS 2269,
Stephan Diehl (ed.), Springer Verlag, 2002
- Duszynski, S.; Knodel, J.; Lindvall, M. , SAVE: Software Architecture
Visualization and Evaluation, 13th European Conference on Software
Maintenance and Reengineering, CSMR 2009. Proceedings : Architecture-Centric
Maintenance of Large-Scale Software Systems, March 24-27, 2009
-
Philippe Dugerdil, Sazzadul Alam.
Execution Trace Visualization in a 3D Space. In Proceedings of ITNG 2008
(5th International Conference on Information Technology: New Generations),
pp. 38 - 43, IEEE Computer Society, 2008.
-
Ghanam, Yaser and Carpendale,
Sheelagh,
A Survey Paper on Software Architecture Visualization, 2008
-
Grundy, J.; Hosking, J. High-Level Static and Dynamic Visualization of
Software Architectures, Proceedings of 2000 IEEE Symposium on Visual
Languages, p.5-12.
-
Izurieta, Clemente and James M.
Bieman, How Software Designs Decay: A Pilot Study of Pattern Evolution,
ESEM’07, September 20–21, 2007
-
Knodel, J.; Popescu, D., A
comparison of static architecture compliance checking approaches, 2007
-
Benjamin Kurtz, SOFTVIZ: A
RUNTIME SOFTWARE VISUALIZATION ENVIRONMENT, masters thesis, 2002
-
Kuhn, A., and Greevy, O., “Exploiting
the Analogy Between Traces and Signal Processing,” Proceedings IEEE
International Conference on Software Maintenance (ICSM 2006), IEEE Computer
Society Press, Los Alamitos CA, September 2006.
-
Adrian Kuhn, David Erni, Peter
Loretan, and Oscar Nierstrasz. Software Cartography: Thematic Software
Visualization with Consistent Layout. In Journal of Software Maintenance and
Evolution (JSME) 22(3) p. 191—210, April 2010
- Gallagher, Keith, Andrew Hatch and Malcolm Munro,
Software Architecture
Visualization: An Evaluation Framework and Its Application, IEEE
Transactions on Software Engineering, vol. 34, no. 2, pp. 260-270,
March/April, 2008.
-
Langelier, Guillaume, Houari Sahraoui and Pierre Poulin,
Visualization-based analysis of quality for large-scale software systems,
Proceedings of the 2003 ACM symposium on Software visualization, 2003
-
Marcus, A., Feng, L., & Maletic, J. I. (2003).
3D representations for software visualization. Paper presented at the Proceedings of the 2003 ACM
symposium on Software visualization, San Diego, California. [Sv3D:
3D software visualization]
-
Marcus, A., Poshyvanyk, D.,
Ferenc, R., Using the Conceptual Cohesion of Classes for Fault Prediction in
Object-Oriented Systems, IEEE Transactions on Software Engineering, Vol. 34,
No. 2, March/April 2008, pp. 287-300
-
S. Maoz, A. Kleinbort, and D.
Harel. "Towards
Trace Visualization and Exploration for Reactive Systems" Proc. IEEE
Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2007), P.
Cox and J. Hosking eds., IEEE Computer Society, September 2007, pages
153-156.
-
Meyer, Michael et al., "Mondrian:
An Agile Information Visualization Framework," Proceedings of ACM
Symposium on Software Visualization (SoftVis 2006)
-
Ogawa, Michael and Kwan-Liu Ma,
StarGate: A Unified, Interactive Visualization of Software Projects,
2008 ?
-
Panas, Thomas, Thomas Epperly,
Daniel Quinlan, Andreas Saebjornsen, Richard Vuduc, "Communicating Software
Architecture using a Unified Single-View Visualization," iceccs, pp.217-228,
12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS
2007), 2007
-
Petre,
Marian and Ed de Quincey,
A
gentle overview of software visualisation, 2006
-
M. Petre, A. F. Blackwell and T.
R. G. Green,
Cognitive Questions in Software Visualisation, 1996
-
Ren, Jie , Richard N. Taylor,
Visualizing Software
Architecture with Off-The-Shelf Components,
-
Sawant, Amit Prakash and Naveen
Bali, MultiVizArch: Multiple Graphical Layouts for Visualizing Software
Architecture, ACM, 2004
-
Sawant, Amit Prakash and Naveen
Bali, SoftArchViz: A Software Architecture Visualization Tool, Appears in
Visualizing Software for Understanding and Analysis, 2007. VISSOFT 2007. 4th
IEEE International Workshop, June 2007
-
Bran Selic,
Unified Modeling Language version 2.0: In support of model-driven
development, IBM developerWorks, 2005.
-
Sensalire, Mariam, Patrick Ogao,
Alexandru Telea,
Classifying Desirable Features of Software Visualization Tools for
Corrective Maintenance, SoftViz08
-
Sillanpää, Matti and Alexandru
Telea,
DEMONSTRATION OF THE SOFTVISION SOFTWARE VISUALIZATION FRAMEWORK, 2004
-
Staples, M. L., & Bieman, J. M. (1999). 3-D Visualization of Software
Structure. In Advances in Computers (Vol. 49, pp. 96–143): Academic Press,
London.
-
Storey, M.-A. D. , D. Cubranic,
and D. M. German. On the use of visualization to support awareness of human
activities in software development: a survey and a framework. In SoftVis
'05: Proceedings of the 2005 ACM symposium on Software visualization, pages
193-202. ACM Press, 2005.
-
Van Rysselberghe, F. (2004). Studying Software Evolution Information By
Visualizing the Change History. Proceedings. 20th International Conference
On Software Maintenance. pp 328–337, IEEE Computer Society Press, 2004
-
Wettel, R., and Lanza, M., Visualizing Software Systems as Cities. In
Proceedings of VISSOFT 2007 (4th IEEE International Workshop on Visualizing
Software For Understanding and Analysis), pp. 92 – 99, IEEE Computer Society
Press, 2007.
-
Wettel, R., and Lanza, M.,
Visually
Localizing Design problems with Disharmony Maps. In Proceedings of
Softvis 2008 (4th International ACM Symposium on Software Visualization),
pp. 155 - 164, ACM Press, 2008.
-
Richard Wettel, Michele Lanza.
Visual Exploration of Large-Scale System Evolution. In Proceedings of
WCRE 2008 (15th Working Conference on Reverse Engineering), pp. 219 - 228,
IEEE Computer Society, 2008.
-
Nenad Medvidovic and David S.
Rosenblum, Domains of
Concern in Software Architectures and Architecture Description Languages,
[See Table 1--vintage '97 I think, but a nice idea]
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
-
Mauro Cherubini, Gina Venolia,
and Rob DeLine,
Building an Ecologically-valid, Large-scale Diagram to Help Developers Stay
Oriented in Their Code, September 2007
-
Mauro Cherubini, Gina Venolia,
Rob DeLine, and Andrew J. Ko,
Let's go to the whiteboard: how and why software developers use drawings,
May 2007
-
Thomas D. LaToza, Gina Venolia,
and Robert DeLine,
Maintaining mental models: a study of developer work habits, May 2006
-
Carl Hinsman, Neeraj Sangal, and
Judith Stafford,
Achieving Agility through Architecture Visibility (LL Bean -- Lattix
case study), QoSA 2009, LNCS 5581, pp. 116–129, 2009.
Papers on Complexity Metrics (with
a visual slant)
,
Micahel Godfrey and Ricahrd Holt,
Reading Beside the Lines: Indentation as a Proxy for Complexity Metrics,
2008
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
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.
gprof:
This 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. :-)
|
|
|