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.

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
Software Architecture Lecture 2
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.
Modeling the Architecture
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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
1 Modeling Software Architectures. 2 Introduction  Architecture is key to reducing development costs –Development focus shifts to coarse-grained elements.
Visualizing Software Architectures
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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
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.
Chapter 6 - Modeling Eduardo Felipe Zecca da Cruz.
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.
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.
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.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
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.
Software Architecture Lecture 3
CSCI 578 Software Architectures
Software Architecture
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Today in OOAD Today in Lab Review EU-Lease Assignment (Vision)
Software Architecture Lecture 3
Lecture 3 – Designing and Visualizing Software Architecture
Software Architecture Lecture 2
Software Connectors – A Taxonomy Approach
Software Architecture Lecture 3
Informatics 121 Software Design I
Documenting an Architecture
CSCI 578 Software Architectures
Architecture Description Languages
An Introduction to Software Architecture
Object Management Group (OMG) Unified Profile for DoDAF & MODAF (UPDM)
Software Architecture Lecture 7
Software Architecture Lecture 7
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 through 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 –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 –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 –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 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 ModelViz One (canonical) visualization (common) Model Viz Many visualizations for one model (common) Model Viz 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 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 Component/Connector System/Subsystem Data Refinement/Abstraction levels Comparing architectures/analysis –Techniques for analysis Inspection-based, Model-based, Simulation-based