Visualizing Software Architectures. Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Architectural Modeling
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software.
Software Architecture Lecture 2
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture.
Visualization Kenny Inthirath.  Reviewing a Suitable Technique to Use  Scope and Purpose  What types of models can be represented?  Architectural.
Lab 10: Creating a Presentation
1 Modeling Software Architectures. 2 Introduction  Architecture is key to reducing development costs –Development focus shifts to coarse-grained elements.
Visualizing Software Architectures
Introduction to UML Visual modeling Models and its importance
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures, Part 2 Software Architecture.
Russell Taylor Lecturer in Computing & Business Studies.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Visualizing Architectures INF 123 – Software architecture 1.
Introduction to Modeling
Glencoe Digital Communication Tools Create a Web Page with HTML Chapter Contents Lesson 4.1Lesson 4.1 Get Started with HTML (85) Lesson 4.2Lesson 4.2 Format.
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
1 Web Basics Section 1.1 Compare the Internet and the Web Compare Web sites and Web pages Identify Web browser components Describe types of Web sites Section.
An Introduction to Software Architecture
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Chapter 6 - Modeling Eduardo Felipe Zecca da Cruz.
CHAPTER TEN AUTHORING.
Productivity Programs Common Features and Commands.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
Slide 1 Chapter 11 User Interface Structure Design Chapter 11 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman.
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Editors And Debugging Systems Other System Software Text Editors Interactive Debugging Systems UNIT 5 S.Sharmili Priyadarsini.
Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
Common Issues in Visualization Same Symbol, Different Meaning – client and server using a similar representation but, having distinct functionality 1 Server.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture Lecture.
1 Presentation Methodology Summary B. Golden. 2 Introduction Why use visualizations?  To facilitate user comprehension  To convey complexity and intricacy.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
introductionwhyexamples What is a Web site? A web site is: a presentation tool; a way to communicate; a learning tool; a teaching tool; a marketing important.
Visual Language Representation. A programming language that uses a visual representation (such as graphics, drawings, animation or icons, partially or.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-7 in the text book All lecture material through intro to.
Software Architecture Lecture 3
Software Architecture
Visualization Approaches
CSCI 578 Software Architectures
Software Architecture
Software Architecture Lecture 3
Visualizing Software Architectures
Lecture 3 – Designing and Visualizing Software Architecture
Lecture 3 – Designing and Visualizing Software Architecture
Visualizing Software Architectures
Software Architecture Lecture 2
Software Architecture Lecture 3
CSCI 578 Software Architectures
Implementing Architectures
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 3
CSCI 578 Software Architectures
Presentation transcript:

Visualizing Software Architectures

Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations do we use? u Visualizations and views u How can we characterize and evaluate visualizations? Examples u Concrete examples of a diverse array of visualizations

Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations do we use? u Visualizations and views u How can we characterize and evaluate visualizations? Examples u Concrete examples of a diverse array of visualizations

What is Architectural Visualization? Recall that we have characterized architecture as the set of principal design decisions made about a system Recall also that models are artifacts that capture some or all of the design decisions that comprise an architecture An architectural visualization defines how architectural models are depicted, and how stakeholders interact with those depictions u Two key aspects here: Depiction is a picture or other visual representation of design decisions Interaction mechanisms allow stakeholders to interact with design decisions in terms of the depiction

Models vs. Visualizations It is easy to confuse models and visualizations because they are very closely related A model is just abstract information – a set of design decisions Visualizations give those design decisions form: they let us depict those design decisions and interact with them in different ways u Because of the interaction aspect, visualizations are often active – they are both pictures AND tools

Models vs. Visualizations Model DD Our first decision is that the system will have two components, C1 and C2... C1 C2 XML-based visualization Natural language visualization Box-and-arrow visualization

Kinds of Visualizations: Textual Visualizations Depict architectures through ordinary text files u Generally conform to some syntactic format, like programs conform to a language u May be natural language, in which case the format is defined by the spelling and grammar rules of the language u Decorative options Fonts, colors, bold/italics Tables, bulleted lists/outlines

Textual Visualizations <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> Client Architecture <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface inout <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> Client Architecture <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface inout XML visualization Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Textual Visualizations (cont’d) <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> Client Architecture <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface inout <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> Client Architecture <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface inout xArch{ archStructure{ id = “ClientArch” description = “Client Architecture” component{ id = “WebBrowser” description = “Web Browser” interface{ id = “WebBrowserInterface” description = “Web Browser Interface” direction = “inout” } xArch{ archStructure{ id = “ClientArch” description = “Client Architecture” component{ id = “WebBrowser” description = “Web Browser” interface{ id = “WebBrowserInterface” description = “Web Browser Interface” direction = “inout” } XML visualization Compact visualization Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Textual Visualizations: Interaction Generally through an ordinary text editor or word processor Some advanced mechanisms available u Syntax highlighting u Static checking u Autocomplete u Structural folding

Textual Visualizations Advantages u Depict entire architecture in a single file u Good for linear or hierarchical structures u Hundreds of available editors u Substantial tool support if syntax is rigorous (e.g., defined in something like BNF) Disadvantages u Can be overwhelming u Bad for graphlike organizations of information u Difficult to reorganize information meaningfully u Learning curve for syntax/semantics

Kinds of Visualizations: Graphical Visualizations Depict architectures (primarily) as graphical symbols u Boxes, shapes, pictures, clip-art u Lines, arrows, other connectors u Photographic images u Regions, shading u 2D or 3D Generally conform to a symbolic syntax u But may also be ‘free-form’ and stylistic

Graphical Visualizations Abstract, stylized visualization Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Graphical Visualizations Abstract, stylized visualization More rigorous deployment visualization Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Graphical Visualizations: Interaction Generally graphical editors with point-and-click interfaces u Employ metaphors like scrolling, zooming, ‘drill-down’ Editors have varying levels of awareness for different target notations u For example, you can develop UML models in PowerPoint (or Photoshop), but the tools won’t help much More exotic editors and interaction mechanisms exist in research u 3D editors u “Sketching-based” editors

Graphical Visualizations Advantages u Symbols, colors, and visual decorations more easily parsed by humans than structured text u Handle non-hierarchical relationships well u Diverse spatial interaction metaphors (scrolling, zooming) allow intuitive navigation Disadvantages u Cost of building and maintaining tool support Difficult to incorporate new semantics into existing tools u Do not scale as well as text to very large models

Hybrid Visualizations Many visualizations are text-only Few graphical notations are purely symbolic u Text labels, at a minimum u Annotations are generally textual as well Some notations incorporate substantial parts that are mostly graphical alongside substantial parts that are mostly or wholly textual

Hybrid Visualizations (cont’d) context UserInterface inv: new_burn_rate >= 0 Architectural constraints expressed in OCL Primarily graphical UML class diagram Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Views, Viewpoints, & Visualizations Recall that a view is a subset of the design decisions in an architecture And a viewpoint is the perspective from which a view is taken (i.e., the filter that selects the subset) Visualizations are associated with viewpoints Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Effect Visualizations Not all visualizations used in architecture-centric development depict design decisions directly Some depict the results or effects of design decisions u We call these ‘effect visualizations’ May be textual, graphical, hybrid, etc. Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Evaluating Visualizations Scope and Purpose u What is the visualization for? What can it visualize? Basic Type u Textual? Graphical? Hybrid? Effect? Depiction u What depiction mechanisms and metaphors are primarily employed by the visualization? Interaction u What interaction mechanisms and metaphors are primarily employed by the visualization?

Evaluating Visualizations (cont’d) Fidelity u How well/completely does the visualization reflect the information in the underlying model? Consistency u How well does the visualization use similar representations for similar concepts? Comprehensibility u How easy is it for stakeholders to understand and use a visualization Note: this is a function of both the visualization and the stakeholders

Evaluating Visualizations (cont’d) Dynamism u How well does the visualization support models that change over time (dynamic models)? View Coordination u How well the visualization is connected to and kept consistent with other visualizations Aesthetics u How pleasing is the visualization (look and feel) to its users? A very subjective judgment Extensibility u How easy is it to add new capabilities to a visualization?

Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations do we use? u Visualizations and views u How can we characterize and evaluate visualizations? Examples u Concrete examples of a diverse array of visualizations Objectives

Text Visualizations Text visualizations are generally provided through text editors Examples: u Simple: Windows Notepad, SimpleText, pico, joe u For experts: vi, emacs u With underlying language support: Eclipse, UltraEdit, many HTML editors u Free-form text documents: Microsoft Word, other word processors

Text Visualizations (cont’d) Advantages u Provide a uniform way of working with many different underlying notations u Wide range of editors available to suit any need u Many incorporate advanced ‘content assist’ capabilities u Many text editors can be extended to handle new languages or integrate new tools easily Disadvantages u Increasing complexity as models get bigger u Do not handle graph structures and complex interrelationships well

Text Visualizations: Evaluation Scope/Purpose u Visualizing design decisions or effects as (structured) text Basic Type u Textual Depiction u Ordered lines of characters possibly grouped into tokens Interaction u Basic: insert, delete, copy, paste u Advanced: coloring, code folding, etc. Fidelity u In general, it depicts entire model including all detail Consistency u Generally good; depends on underlying notation Comprehensibility u Drops with increasing complexity Dynamism u Depends on editor – model change will update text visualization View coordination u In some integrated env., textual visualization can be coordinated with other visualization Aesthetics u Varies; can be overwhelming or elegant and structured Extensibility u Depends on the editor

General Graphical Visualizations E.g., PowerPoint, OmniGraffle, etc. Provide point-and-click manipulation of graphical symbols, interconnections, and text blocks Advantages u Friendly UI can create nice-looking depictions u Nothing hidden; no information difference between model and depiction Disadvantages u No underlying semantics; difficult to add them Visio is a partial exception This means that interaction mechanisms can offer minimal support u Difficult to connect to other visualizations

General Graphical Example Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

General Graphical: Evaluation Scope/Purpose u Visualizing design decisions as symbolic pictures Basic Type u Graphical Depiction u (Possibly) interconnected symbols on a finite canvas Interaction u Point and click, drag-and-drop direct interactions with symbols, augmented by menus and dialogs Fidelity u Generally canonical Consistency u User is responsible in developing consistent representations Comprehensibility u Depends on skill of the modeler and use of consistent symbols/patterns Dynamism u Some animation capabilities View coordination u Difficult to coordinate with other visualizations Aesthetics u Modeler’s responsibility Extensibility u Adding new symbols is easy, adding semantics is harder