CSCI 578 Software Architectures

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Architectural Modeling
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Visualizing Software Architectures Software Architecture Lecture.
Visualization Kenny Inthirath.  Reviewing a Suitable Technique to Use  Scope and Purpose  What types of models can be represented?  Architectural.
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Visualizing Software Architectures. Objectives Concepts u What is visualization? u Differences between modeling and visualization u What kinds of visualizations.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
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
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
© Copyright Eliyahu Brutman Programming Techniques Course.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Course Instructor: Aisha Azeem
Introduction to Modeling
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
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.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
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.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
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.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
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.
CPSC 875 John D. McGregor Design Concept. Functional decomposition.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Basic Concepts and Definitions
Documenting an Architecture 10 pages, half pictures.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
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.
CompSci 280 S Introduction to Software Development
CSCI 578 Software Architectures
Software Architecture
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Advance Software Engineering
Software Architecture & Design Pattern
Lecture 3 – Designing and Visualizing Software Architecture
Software Architecture Lecture 2
Software Connectors – A Taxonomy Approach
Informatics 121 Software Design I
Documenting an Architecture
Chapter 5 Architectural Design.
Analysis models and design models
Architecture Description Languages
An Introduction to Software Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Object Management Group (OMG) Unified Profile for DoDAF & MODAF (UPDM)
Software Architecture Lecture 7
Software Architecture Lecture 7
Chapter 5 Architectural Design.
Software Architecture Lecture 7
Software Architecture Lecture 6
CSCI 578 Software Architectures
Presentation transcript:

CSCI 578 Software Architectures Exam #1 Review

Materials you are responsible for Chapters 1-7 in the text book All lecture material up to but not including intro to Architectural Analysis (Week 7) Homework #1 and #2

Exam Closed book, closed note Format Write in answers No multiple choice

Material Review Canonical elements of software architecture Component computation Connector communication/coordination Configuration topology and constraints

Material Review Architectural styles Architectural patterns Codify key constraints and architectural elements (components, connectors, configurations) found effective used in a family of software systems over a given time period Architectural patterns A set of architectural design decisions that are applicable to a recurring design problem, and parameterized to account for different software development contexts in which that problem appears. Compared to styles, architectural patterns are at a coarser level of granularity (design decisions versus actual architectural elements) and are inherently more domain specific

Material Review Examples of Architectural Styles Client/Server, P2P, Object Oriented, Layered, Data-Flow, Pipe and Filter, Blackboard, Rule Based Examples of Architectural Patterns 3-tier (Stage-Logic-Display), MVC, Sense Compute Control Methods of evaluating design methods like styles and patterns Vocabulary, structural patterns, computational model, invariants, common examples, disadvantages, specializations Methods of design Greenfield design (entirely fresh start, no baggage) Analogy searching, Brainstorming, Literature searching, Morphological Charts, Removing Mental Blocks, Insight from requirements/implementation

Material Review Software Connectors Benefits of first-class connectors Taxonomy 4 main roles Communication, Conversion, Facilitation, Coordination 8 main types Event, Stream, Procedure Call, Arbitrator, Data Access, Distributor, Linkage, Adaptor Benefits of first-class connectors Software evolution, separation of concerns, modularity, pluggability

Material Review Architectural Modeling How to choose what to model? An architectural model is an artifact that captures some or all of the design decisions that comprise a system’s architecture Architectural modeling is the reification and documentation of those design decisions How to choose what to model? Cost/Benefit Decision What do we model? Structure (Architectural element), static/dynamic behaviors, functional/non-functional aspects, Views/Viewpoints

Material Review Architectural Modeling Important things to “get right” Consistency, Accuracy/Precision, Ambiguity How do we evaluate modeling techniques? Scope/Purpose, Basic Elements, Style, Static/Dynamic Aspects, Dynamic Modeling, Non-functional aspects, ambiguity, accuracy/precision, viewpoints, view consistency Modeling approaches Generic, early ADLs, style-specific and domain-specific languages, extensible ADLs

Material Review Architectural Modeling Generic approaches Early ADLs Natural language, informal graphical tools (Powerpoint), semi-formal graphical tools with semantics (UML) Early ADLs Darwin, Rapide, Wright Domain/Style-specific ADLs Koala, Weaves, AADL Extensible Architecture Description Languages xADL, ACME, ADML

Material Review Architectural Visualization 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

Material Review Viz Model Viz Model Viz Model Viz Viz Model Model One (canonical) visualization (common) Viz Model Viz Model Viz Viz Model Model Many visualizations for one model (common) One visualization bringing together many models (uncommon)

Material Review Kinds of Architectural Visualizations Textual (XML in a text editor, natural language, etc.) Graphical (boxes, lines, etc.) Hybrid (combine elements of textual and graphical) Effect (depict the results or effects of design decisions, not direct design decisions) How do we evaluate architectural visualizations? Scope/Purpose, Basic Type, depiction, interaction, fidelity, consistency, comprehensibility, dynamism, view coordination, aesthetics, extensibility