Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

Architecture Representation
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.
Introduction To System Analysis and Design
Software Testing and Quality Assurance
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
Applying Architectural Styles and Patterns
Unified Modeling (Part I) Overview of UML & Modeling
Using Architecture Frameworks
Establishing the overall structure of a software system
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
What is Software Architecture?
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Architecture
Software Architecture Classification for Estimating the Costs of COTS Integration Yakimovich, Bieman, Basili; icse 99.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
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.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural 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.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Introduction To System Analysis and Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Slide 1 Introduction to Software Architecture TV Prabhakar.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Lecture 2 Introductory Case Studies Topics Architectural Styles Key Word In Context (KWIC) Other Cases Studies Evolution of Software Engineering January.
Software Architecture and Patterns
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
An Introduction to Software Architecture Software Engineering Lab.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Krista Lozada iAcademy First Term 2009
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
John D. McGregor Class 4 – Initial decomposition
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
ANU comp2110 Software Design lecture 8 COMP2110 Software Design in 2004 lecture 8 Software Architecture 1 of 2 (design, lecture 3 of 6) Goal of this small.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Chapter : 9 Architectural Design
CS223: Software Engineering
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Software Design and Architecture
CHAPTER 3 Architectures for Distributed Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Software models - Software Architecture Design Patterns
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Applying Architectural Styles and Patterns

Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common Architectural Styles Dataflow systems Call-and-return systems Independent components Virtual machines Respositories

Introduction  Relying solely on design operators to design an architecture can be a slow process.  By utilizing existing design experience from the software engineering community design productivity can be improved.  There are two types of reusable architectural products: Product families Architectural styles and patterns

Architectural Style  It is a type of metamodel that prescribes a set of elements and their relationships that characterize a system based on the style.  These elements are expressed as components and connectors.  Their relationships are the constraints on how components and connectors may be combined.

Architectural Patterns  A pattern is a solution that strikes some balance between competing forces.  However, what makes it a pattern is the fact that it is recurring.  If a design solution in its essential distilled form is found in multiple systems and is a successful design, then this solution is a pattern.

Architectural Patterns (Cont’d)  A pattern language is a set of patterns, together with the rules for describing how patterns are created and how they must be arranged with respect to other patterns.  The patterns are the vocabulary of the language, and the rules for their implementation and combination are the grammar.  Patterns in a pattern language can be constructed from other patterns.

Architectural Styles  An architectural style is a framework for a solution and not really a solution itself.  The selection of a style limits the scope of the solution space.  According to Ivar Jacobson, the architectural style of a system is “the denotation of the modeling languages used when modeling the system.”  It includes the guiding principles and prescriptions that the other development model elements must satisfy.

Architectural Styles (Cont’d)  It is the foundation of a philosophy of building.  An architectural style defines a vocabulary of components and connector types and a set of constraints on how they can be combined.  Most applications, however, are a combination of styles, i.e., they have a heterogeneous architectural style.  There are many parameters that we can use to characterize software architecture: The way in which control is passed between components (activation model) The quality attribute emphasis (e.g., maintainability and performance)

Activation Model  This model describes how components are activated and how information is passed between them (the control principle of the architecture).  In classic procedural languages and their object-oriented derivatives, method invocation and method execution are bound, i.e., method execution follows immediately from method invocation.  In languages like Smalltalk method invocation and method execution are decoupled.

Activation Model (Cont’d)  At the design level you can simulate these activation models in the language level.  Synchronous communication means that the client component activates a server component and then waits for a response.  A variation of this is the balking model in which a component may reject a request for any reason.

Activation Model (Cont’d)  Another variation is the timeout in which a client component assumes that the server has failed to complete a request after a certain amount of time.  Asynchronous communication means that the client doesn’t wait on a response from the server before continuing.  In the delegating pattern, a client component invokes a server component and provides an address to which the response is to be sent.

Activation Model – Patterns of Information Passing  Data elements can be passed directly between processing elements (pipes and filters).  Data elements may also be shared in a central store and accessed by different processing elements (repository).

Uses of the Activation Model  To compare different architectural styles.  To identify the appropriate architectural style for the entire system or the best combination of architectural styles.

Styles and Quality Attributes  Each style emphasizes a set of quality attributes while de-emphasizing another set. Pipes and filters emphasizes reusability and adaptability but sacrifices maintainability with respect to changes in data representation. Object-oriented systems emphasize maintainability but are not easily reused

Styles and Quality Attributes (Cont’d) Repository-based systems emphasize adaptability and performance but are not highly reusable or maintainable in terms of changes to algorithms or data representations  Styles can be combined in order to exhibit different quality attributes.

Common Architectural Styles (Adapted from Shaw and Garlan)  Dataflow systems Batch sequential Pipes and filters  Call-and-return systems Main program and subroutine Object-oriented systems Hierarchical layers

Common Architectural Styles (Cont’d))  Independent components Communicating processes Event systems  Virtual machines Interpretors Rule-based systems  Repositories Databases Hypertext systems Blackboards