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
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.
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.
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.
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.
An Introduction to Software Architecture
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.
Lecture 9: Chapter 9 Architectural Design
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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
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.
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.
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Documenting an Architecture 10 pages, half pictures.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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
Analysis of Software Architectures
Software Architecture
Object-Oriented Software Engineering Using UML, Patterns, and Java,
SysML v2 Formalism: Requirements & Benefits
OO Methodology OO Architecture.
Today in OOAD Today in Lab Review EU-Lease Assignment (Vision)
Lecture 3 – Designing and Visualizing Software Architecture
Software Architecture Lecture 2
Software Connectors – A Taxonomy Approach
Informatics 121 Software Design I
Documenting an Architecture
CSCI 578 Software Architectures
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
Architecture Description Languages
An Introduction to Software Architecture
Chapter 9 Architectural Design.
Object Management Group (OMG) Unified Profile for DoDAF & MODAF (UPDM)
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Analysis of Software Architectures
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 through intro to Architectural Analysis (Week 8) 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

Material Review Architectural Analysis The activity of discovering important system properties using the system’s architectural models. Early, useful answers about relevant architectural aspects Available prior to system’s construction Formal/Informal Largely dependent on the underlying architectural model’s expressivity Concerns Goals, Scope, Primary architectural concern, level of formality, Type, Level of automation, System stakeholders

Material Review Architectural analysis Completeness Consistency Does the architectural analysis take all the system elements (components/connectors/etc.) into account? Does it take the other aspects (requirements, etc.) into account? Consistency Do the results of analysis on one subset of a software system produce non contradictory results with respect to the analysis of another (perhaps non-disjoint) subset? Name, Interface, Behavior, Interaction, Refinement Compatibility Do the results of analysis conform to the expected properties/results of the specific domain, style, or reference architecture? Correctness Does the architectural analysis really represent properties of the full system specification? Does the system implementation represent the predicted analysis?

Material Review Architectural analysis Scope Techniques for analysis Component/Connector System/Subsystem Data Refinement/Abstraction levels Comparing architectures/analysis Techniques for analysis Inspection-based, Model-based, Simulation-based