Home | | Software Architectures | Visual Language Representation

Chapter: Software Architectures : Documenting the Architecture

Visual Language Representation

What is a VPL? • A programming language that uses a visual representation (such as graphics, drawings, animation or icons, partially or completely)

Visual Language Representation

What is a VPL?

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

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

}

 



Classifications

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

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

 

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

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


Different Relationships



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

Textual Visualizations: Interaction

      Generally through an ordinary text editor or word processor

      Some advanced mechanisms available

     Syntax highlighting

     Static checking

     Autocomplete

     Structural folding

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

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

Graphical Visualizations



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

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

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



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

Advantages

      Fewer programming concepts

      Concreteness

      Explicit depiction of relationships

      Immediate visual feedback

      Eliminates an intermediate step in the process of creating a program

Disadvantages

      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.

 


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Software Architectures : Documenting the Architecture : Visual Language Representation |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.