Visualizing Architectures INF 123 – Software architecture 1.

Slides:



Advertisements
Similar presentations
Object-Oriented Software Engineering Visual OO Analysis and Design
Advertisements

Executional Architecture
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
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.
Diagram review INF 123 – Software architecture 1.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Connectors Style: Main program and subroutines INF 123 – Software architecture 1.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
C OMPONENT & D EPLOYMENT D IAGRAMS Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Component-Level Design
Visualizing Software Architectures. Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations.
Visualizing Software Architectures
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
Component and Deployment Diagrams
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
© Copyright Eliyahu Brutman Programming Techniques Course.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Overview of Database Languages and Architectures.
System Architecture: Desing alternatives and methodologies.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Mobile Computing Lecture: 4.
What is Software Architecture?
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Systems Analysis and Design in a Changing World, Fifth Edition
Software Engineering CS B Prof. George Heineman.
An Introduction to Software Architecture
ITEC 370 Lecture 10 Design. Review Design –Why is it part of the process? –Who is the audience for design?
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
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.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
Programming Logic and Design Fourth Edition, Comprehensive Chapter 15 System Modeling with the UML.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
ניתוח מערכות מידע 1 Unified Modeling Language (UML) § § The Unified Modeling Language (UML) is the industry-standard language for: Specifying, Visualizing,
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
TAL7011 – Lecture 4 UML for Architecture Modeling.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 15 The Unified Modeling Language: a Primer.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
REST By: Vishwanath Vineet.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture Lecture.
4+1 View Model of Software Architecture
CS223: Software Engineering Lecture 13: Software Architecture.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 6 - Essentials of Design an the Design Activities.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 5/18/2007ã 2007, Spencer Rugaber Architectural Documentation Graphical (views) and textual Kruchten's 4+1 Views –Philippe B. Kruchten. "The 4+1 View.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
Review Business Analyst vs. Systems Analyst – A Business Analyst identifies a problem and states – in business terms -- what the solution is. They define.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Introduction to UML.
Visualizing Software Architectures
Lecture 3 – Designing and Visualizing Software Architecture
Lecture 3 – Designing and Visualizing Software Architecture
Visualizing Software Architectures
An Introduction to Software Architecture
Presentation transcript:

Visualizing Architectures INF 123 – Software architecture 1

Outline Some theory The tools Examples – Socket networking in the Linux kernel – Vivox: VOIP for Second Life 2

SOME THEORY 3

Software Architecture The set of most important design decisions “Most important” – According to the stakeholders “Design decisions” – Aware of the options – Also called constraints – More than just the code structure 4

Architectural Model Aka architectural view A subset of the design decisions Focused on a particular concern – Separation of concerns! MASC! Examples – Server-side of an online game – How the Linux kernel handles networking – Authentication process 5

Architectural Model 6 Architecture A visualization of the model “protect an entrance”

How do we choose what to model? Stakeholders decide – What should be modeled/modelled Components, connectors, configurations, rationales, constraints, behaviors, non-functional requirements, … – At what level of detail – At what level of fidelity More faithful = more expensive to maintain 7

Example: level of detail (few details) 8

More details 9

Inconsistent models Models contradicting each other 10

Reasons for inconsistencies Architects with different opinions Level of detail – High-level view has components absent in a lower- level view Static vs dynamic concerns – Component structure != protocol Functional vs non-functional concerns – Broadcast the message to everyone vs scalability Physical vs logical concerns – 2 self-contained subsystems for 3 machines 11

Visualizing models A model is abstract – Abstraction! MASC! A visualization must allow… – Architects to present their models – Stakeholders to discuss the models A visualization is concrete 12

TOOLS 13

Describing a Software Architecture “Just look at the source code!” Natural language – Easy to discuss and contract-like, but long to read XML, JSON – Good for hierarchical structures, but hard to read Images/screenshots – Good for usability arch, not for system or deploy Box-and-arrow diagrams – Back and forth with XML/JSON 14

Natural language The system has 3 components: C1, C2, and C3. C1 receives inputs from the user and forwards them to C2. C1 also receives information from C2 and displays it to the user. C2 … 15

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

JSON 17 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” }

Screenshots 18 Static, 1pt Slow, 70pts Fast, 12pts

Box and Arrow The most appropriate most of the time UML Other standard diagrams 19 Logic State Display

UML Structure – Class diagram – Component diagram Interaction – Communication diagram – Sequence diagram Behavior – State machine – Flowchart/Activity diagram 20

Other standard diagrams Control flow graph Data flow diagram Swimming lane diagram 21

Your own diagrams Use the same symbol for the same things Use standard symbols and representations Don’t use the same symbol for different things Add a legend if needed 22 Client 1Client 2 Send position Has a 2-way connection server

Tools for diagrams Dia – Not just UML ArgoUML Eclipse UML plugins Visio, PowerPoint Gliffy, Lucidchart, online tools Paint (please don’t …) 23

EXAMPLE: SOCKET NETWORKING IN THE LINUX KERNEL 24

Swimming lane diagram 25

26

Flowchart 27

Data flow diagram 28

29

30

VIVOX: VOIP FOR SECOND LIFE 31

High-level diagram 32 Why is Vivox a separate server process?

Separation of concerns! 33 Down! Still working. But chat is down. Still working Chat is down 

Sequence diagram without Vivox 34

Sequence diagram with Vivox 35 Client-side Server-side

Client-side protocol 36

Class diagram (sort of) 37

Component diagram 38

Communication diagram 39

40