Visual Language Representation. A programming language that uses a visual representation (such as graphics, drawings, animation or icons, partially or.

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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Visualizing Software Architectures. Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations.
Domain-Specific Software Architecture and Product Lines
1 Modeling Software Architectures. 2 Introduction  Architecture is key to reducing development costs –Development focus shifts to coarse-grained elements.
Lecture 7 Date: 23rd February
Visualizing Software Architectures
User Interface Design: Methods of Interaction. Accepted design principles Interface design needs to consider the following issues: 1. Visual clarity 2.
Introduction to UML Visual modeling Models and its importance
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures, Part 2 Software Architecture.
CAD/CAM Design Process and the role of CAD. Design Process Engineering and manufacturing together form largest single economic activity of western civilization.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Introduction to Modeling
Meaningful Modeling: What’s the Semantics of “Semantics”? David Harel, Weizmann Institute of Science Bernhard Rumpe, Technische Universität Braunschweig.
Software Architecture Lecture 3
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.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
An Introduction to Software Architecture
CHAPTER FOUR COMPUTER SOFTWARE.
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.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 3rd Edition Copyright © 2009 John Wiley & Sons, Inc. All rights.
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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
1 Muhammed Al-MulhemVisual Languages Visual Programming Languages ICS 539 Introduction & Classification ICS Department KFUPM Sept. 1, 2007.
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.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
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.
Dr. Mohamed Ramadan Saady 314ALL CH1.1 Chapter 1: Introduction to Compiling.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture.
1 INTRODUCTION TO COMPUTER GRAPHICS. Computer Graphics The computer is an information processing machine. It is a tool for storing, manipulating and correlating.
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
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
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
Introduction to PowerPoint
Software Architecture Lecture 3
Software Architecture Lecture 3
CSCI 578 Software Architectures
Presentation transcript:

Visual Language Representation

A programming language that uses a visual representation (such as graphics, drawings, animation or icons, partially or completely) A visual language manipulates visual information or supports visual interaction, or allows programming with visual expressions [Golin 90] Any system where the user writes a program using two or more dimensions [Myers 90] A visual language is a set of spatial arrangements of text- graphic symbols with a semantic interpretation that is used in carrying out communication actions in the world What is a VPL?

What are NOT VPLs? Visual Basic, Visual C++, Delphi, etc. – Still primarily textual languages with a graphical GUI builder – User interface portion of the language is visual, the rest is not

Motivations Many people think in pictures. Textual programming languages have proven to be difficult for many people to learn to use effectively. Some applications are very well suited to graphical development approaches. – Scientific visualization – System simulation

Example 1: Factorial int Factorial(int n) { if(n > 0) return (n*factorial(n-1)); else return (1); }

1.Purely visual languages Icons or other graphical representations are manipulated e.g. Cube, VIPR, Prograph, … 2.Hybrid text and visual systems Programs are created visually and then translated into an underlying textual language Usage of graphical elements in an otherwise textual language e.g. Rehearsal World Classifications

3.Programming-by-example systems Teach a system how to perform a task e.g. Rehearsal World, Pygmalion 4.Constraint-oriented systems Popular for simulation design e.g. ThingLab, ARK 5.Form-based systems Uses a spreadsheet metaphor e.g. Forms/3, NoPumpG Classifications

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

11 Models vs. Visualizations It is easy to confuse models and visualizations because they are very closely related In the previous lectures, we have not drawn out this distinction, but now we make it explicit 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 – Because of the interaction aspect, visualizations are often active – they are both pictures AND tools

12 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

13 Different Relationships ModelViz One (canonical) visualization (common) Model Viz Many visualizations for one model (common) Model Viz One visualization bringing together many models (uncommon)

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

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

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

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

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

19 Graphical Visualizations: Interaction Generally graphical editors with point-and-click interfaces – Employ metaphors like scrolling, zooming, ‘drill-down’ Editors have varying levels of awareness for different target notations – 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 – 3D editors – “Sketching-based” editors

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

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

22 Hybrid Visualizations (cont’d) context UserInterface inv: new_burn_rate >= 0 Architectural constraints expressed in OCL Primarily graphical UML class diagram

23 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

Fewer programming concepts Concreteness Explicit depiction of relationships Immediate visual feedback Eliminates an intermediate step in the process of creating a program Advantages

Deutsch Limit – The problem with visual programming is that you can't have more than 50 visual primitives on the screen at the same time. Some situations in which text has superiority: – documentation, – naming to distinguish between elements that are of the same kind, and – expressing well-known and compact concepts that are inherently textual, e.g. algebraic formulas. Disadvantages