Lecture 3 – Designing and Visualizing Software Architecture

Slides:



Advertisements
Similar presentations
Architectural Modeling
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software.
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.
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
Visualizing Software Architectures
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures, Part 2 Software Architecture.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
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
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.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
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 TEN AUTHORING.
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.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
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.
ICT EMMSAD’05 13/ Assessing Business Process Modeling Languages Using a Generic Quality Framework Anna Gunhild Nysetvold* John Krogstie *, § IDI,
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.
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.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
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
Tools Of Structured Analysis
Visualization Approaches
CSCI 578 Software Architectures
Software Architecture
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Unified Modeling Language
Abstract descriptions of systems whose requirements are being analysed
Software Architecture Lecture 3
Visualizing Software Architectures
Lecture 3 – Designing and Visualizing Software Architecture
Design, prototyping and construction
Visualizing Software Architectures
Software Architecture Lecture 2
Object-Oriented Design
Software Architecture Lecture 3
CSCI 578 Software Architectures
InnovationQ Plus Quick Start Guide
Software Architecture Lecture 20
Implementing Architectures
Analysis models and design models
Software Architecture Lecture 3
Software Connectors.
An Introduction to Software Architecture
Teaching slides Chapter 6.
Software Architecture Lecture 3
Visual Modeling Using Rational Rose
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
Design, prototyping and construction
Software Architecture Lecture 6
CSCI 578 Software Architectures
Presentation transcript:

Lecture 3 – Designing and Visualizing Software Architecture Software Engineering Lecture 3 – Designing and Visualizing Software Architecture Slides inspired by Richard Taylor, University of California

Last time The context of Architecture How it fits into the Software Development Lifecycle

How do you communicate code/design?

Objectives Concepts What is visualization? Differences between modeling and visualization What kinds of visualizations do we use? Visualizations and views How can we characterize and evaluate visualizations? Constructing visualizations Guidelines for constructing new visualizations Pitfalls to avoid when constructing new visualizations Coordinating visualizations

Objectives Concepts What is visualization? Differences between modeling and visualization What kinds of visualizations do we use? Visualizations and views How can we characterize and evaluate visualizations? Constructing visualizations Guidelines for constructing new visualizations Pitfalls to avoid when constructing new visualizations Coordinating visualizations

Models vs. Visualizations Models and visualizations 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 Because of the interaction aspect, visualizations are often active – they are both pictures AND tools

Models vs. Visualizations XML-based visualization <?xml version=“1.0”> <model> <decision num=“1”…/> <decision num=“2”…/> </model> Model DD C1 C2 Box-and-arrow visualization Our first decision is that the system will have two components, C1 and C2... Natural language visualization

Visualizations Some notations are textual Natural language, XML-based ADLs …or graphical PowerPoint-style …or a little of both UML

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

Kinds of Visualizations: Textual Visualizations Generally conform to some syntactic format, like programs conform to a language Decorative options Fonts, colors, bold/italics Tables, bulleted lists/outlines

Textual Visualizations <instance:xArch xsi:type=”instance:XArch”> <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> <types:description xsi:type=”instance:Description”> Client Architecture </types:description> <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface <types:direction xsi:type=”instance:Direction”> inout </types:direction> </types:interface> </types:component> </types:archStructure> </instance:xArch> 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) <instance:xArch xsi:type=”instance:XArch”> <types:archStructure xsi:type=”types:ArchStructure” types:id=”ClientArch”> <types:description xsi:type=”instance:Description”> Client Architecture </types:description> <types:component xsi:type=”types:Component” types:id=”WebBrowser”> Web Browser <types:interface xsi:type=”types:Interface” types:id=”WebBrowserInterface”> Web Browser Interface <types:direction xsi:type=”instance:Direction”> inout </types:direction> </types:interface> </types:component> </types:archStructure> </instance:xArch> XML visualization xArch{ archStructure{ id = “ClientArch” description = “Client Architecture” component{ id = “WebBrowser” description = “Web Browser” interface{ id = “WebBrowserInterface” description = “Web Browser Interface” direction = “inout” } 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 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 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 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 Employ metaphors like scrolling, zooming, ‘drill-down’ Editors come with various support for notations 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 Few graphical notations are purely symbolic Text labels, at a minimum Annotations are generally textual as well

Hybrid Visualizations (cont’d) 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.

Evaluating Visualizations Scope and Purpose What is the visualization for? What can it visualize? Basic Type Depiction Interaction

Evaluating Visualizations (cont’d) Fidelity How well/completely does the visualization reflect the information in the underlying model? Consistency should be a minimum requirement, but details are often left out Consistency How well does the visualization use similar representations for similar concepts? Comprehensibility 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 How well does the visualization support models that change over time (dynamic models)? View Coordination How well the visualization is connected to and kept consistent with other visualizations Aesthetics How pleasing is the visualization (look and feel) to its users? A very subjective judgment Extensibility How easy is it to add new capabilities to a visualization?

Automatically generated? Code Sonar Google Codepro AnalytiX - Webpage

Objectives Concepts What is visualization? Differences between modeling and visualization What kinds of visualizations do we use? Visualizations and views How can we characterize and evaluate visualizations? Constructing visualizations Guidelines for constructing new visualizations Pitfalls to avoid when constructing new visualizations Coordinating visualizations

Constructing New Visualizations Must answer many questions in advance Can I achieve my goals by extending an existing visualization? Can I translate into another notation and use a visualization already available there? How will my visualization augment the existing set of visualizations for this notation? How will my visualization coordinate with other visualizations?

New Visualizations: Guidelines Borrow elements from similar visualizations Leverages existing stakeholder knowledge Improves comprehensibility Be consistent among visualizations Don’t conflict with existing visualizations without a good reason (e.g., developing a domain-specific visualization where the concepts and metaphors are completely different) Give meaning to each visual aspect of elements

New Visualizations: Guidelines (cont’d) Document the meaning of visualizations Visualizations are rarely self-explanatory Focus on mapping between model and visualization Balance traditional and innovative interfaces Stakeholders bring a lot of interaction experience to the table But just because a mechanism is popular doesn’t mean it’s ideal

Common symbols

New Visualizations: Anti-Guidelines Same Symbol, Different Meaning Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

New Visualizations: Anti-Guidelines (cont’d) Differences without meaning Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

New Visualizations: Anti-Guidelines (cont’d) Decorations without meaning Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

New Visualizations: Anti-Guidelines (cont’d) Borrowed symbol, different meaning Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Coordinating Multiple Visualizations How do we keep multiple simultaneous visualizations of the same (part of the) architectural model consistent with each other and the model?

Design reconstruction

Architecture Reconstruction Process Raw view extraction Source code, execution traces, build scripts, etc. Database construction View fusion and manipulation Observe data relationships etc. from database Create a fused view to illustrate how data fit together Architecture analysis Conformance

Architecture Reconstruction Process

Discussion How do you analyze design? What do you look for to Understand structure? Understand what is going on? Understand where to add code?

How to identify design IMHO Two alternatives Top down (OverallModulesClassesCode) Follow the execution path What launches the application What happens next? Pick a specific operation (use-case) and follow the execution path for that operation (e.g. logging in or load a document)

Summary Choose the right tool for visualizing design Shareability Contributability Flexibility Expressability