A Pattern Language for Software Architecture

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Basic Concepts in Component-Based Software Engineering
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
SWE Introduction to Software Engineering
Announcement No CHC visit tomorrow Team progress / issues survey
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
System Design & Software Architecture
1 Architectural Patterns Yasser Ganji Saffar
Architectural Design.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Commercial-in-Confidence 1 Managing eBusiness - Operational Challenges of an Online Business Model.
Model-View-Controller Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
GLOMAR Adaptive Consistency Control for Distributed File Systems Issues Current Distributed File Systems (DFS) are implemented on a mix of hardware platforms,
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Interactive/Adoptable systems
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 7: Dynamically Integrable Autonomously Executable Components and Text.
Basic Concepts and Definitions
Chapter : 9 Architectural Design
Chapter 14 Software Architecture
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Engineered for Tomorrow Unit:8-Idioms Engineered for Tomorrow sharmila V Dept of CSE.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.. 本讲内容 网络系统设计模式 综合案例分析.
J2EE Platform Overview (Application Architecture)
Software Architecture Lecture 3
Architecture Brief Pepper
CompSci 280 S Introduction to Software Development
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Introduction to Design Patterns
SOFTWARE DESIGN AND ARCHITECTURE
OO Methodology OO Architecture.
Software Design and Architecture
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distribution and components
Part 3 Design What does design mean in different fields?
Software Quality Engineering
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Software Architecture Lecture 3
Model-View-Controller Design Pattern
Software Architecture Lecture 2
Chapter 13 Logical Architecture.
Service-centric Software Engineering
Software Architecture Lecture 3
Introduction to Design Patterns Part 1
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Service-centric Software Engineering 1
Lecture 1: Multi-tier Architecture Overview
Tools for Composing and Deploying Grid Middleware Web Services
Software Architecture
Software Engineering Lecture #14.
Software models - Software Architecture Design Patterns
Chapter 13 Logical Architecture.
Software Architecture Lecture 3
Software Analysis.
Software Design Lecture : 38.
Presentation transcript:

A Pattern Language for Software Architecture

The architectural patterns we have seen offer different solutions to the problem of how to organize a domain model into a software architecture.

MVC vs. PAC Both Model-View-Controller and Presentation-Abstraction-Control address the problem of support for variability in user interfaces. Model-View-Controller supports variability within one specific user interface, while Presentation-Abstraction-Control supports the use of multiple, distinct user interfaces and their independent variation. As most software systems need only one user interface paradigm, Model-View-Controller should always be your first choice. Presentation-Abstraction-Control, in contrast, is only useful if a software system is partitioned into multiple, largely independent but sometimes cooperating subsystems, each of which suggests its own user interface paradigm.

Microkernel and Reflection Microkernel and Reflection, both foster the construction of flexible software systems. Both patterns address different aspects of flexibility, however. Microkernel, in general, provides a plug-in architecture that supports flexibility in terms of what functionality a system provides to its users. Microkernel has thus evolved as a popular architecture for operating systems, middleware, and product-line architectures. Reflection, in contrast, defines an architecture that objectifies specific aspects of a system’s structure and behavior, which supports flexibility in terms of how its functionality executes and/or can be used by its clients. It is thus often used in the context of application and service integration scenarios, in which client applications must be able to use or control the functionality of other applications without having an explicit, built-in knowledge of their interfaces and internal behavior.

The Pipes and Filters pattern is suited for applications that process data streams, or whose components communicate via the exchange of data streams. Image processing is a prime example of a domain that can best be modeled in software via a Pipes and Filters architecture.

Shared Repository and Blackboard The Shared Repository and Blackboard patterns help in designing applications whose components work largely on a common set of (structured) data. By separating the data from the functionality of a system, data exchange between components of the application is simplified, and coordination of the components via Change of Value (CoV) notifications in that data becomes possible.

Domain Object Pattern The Domain Object pattern supports the encapsulation of self-contained responsibilities in an application within a defined software realization. Such encapsulation allows us to address the specific functional, operational, and developmental requirements of this responsibility explicitly, directly, and independently of other Domain Object realizations.