Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.

Slides:



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

Internetworking Pertemuan 07 Matakuliah: H0484/Jaringan Komputer Tahun: 2007.
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
Architectural Pattern: Broker
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
SS ZG653Second Semester Topic Architectural Patterns – Review of Patterns.
Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
Lecture 23: Software Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Announcement No CHC visit tomorrow Team progress / issues survey
December 9, 2001Architectural Design, ECEN Architecture – Layers, in particular ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Architectural patterns1. 2 Patterns Architectural patterns –Fundamental structural organization for software systems. –High-level subdivision of the system.
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
An Architecture for a Massively Multiplayer Online Role Playing Game Engine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1 Architectural Patterns Yasser Ganji Saffar
The Design Discipline.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
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.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Patterns in programming 1. What are patterns? “A design pattern is a general, reusable solution to a commonly occurring problem in software. A design.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
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.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Chapter 6 Architectural Design.
GRASP: Designing Objects with Responsibilities
Pertemuan 10 Enterprise Application Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
John D. McGregor Class 4 – Initial decomposition
Software Design and Architecture SEG3202 Nour El Kadri.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Interactive/Adoptable systems
Lecture VIII: Software Architecture
Intro Architectural Patterns, Mud to structure &Distributed system
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Chapter 14 Software Architecture
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Design Patterns-1 7 Hours.
IS301 – Software Engineering Dept of Computer Information Systems
Pertemuan 08 Design Patterns & Anti-Patterns
OO Methodology OO Architecture.
Software Design and Architecture
The Object Oriented Approach to Design
Ch > 28.4.
Enterprise Application Integration Styles
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture
Patterns.
Software Architecture
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Presentation transcript:

Pertemuan 09 Architectural Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010

3 Learning Outcomes Pada akhir pertemuan ini, diharapkan: Mahasiswa dapat menjelaskan beberapa high level Architectural Pattern yang biasa ditemui

4 Outline Material Software Architecture Patterns Category: –Architectural –Design –Coding Architectural Pattern Examples –First cut : Layers Pattern –Distributed Systems: Broker Pattern –Interactive Systems: MVC Pattern

Software Architecture A description of the structure of the system –Listing the software components involved, –Documenting the externally visible properties of those components –and explaining the relationships between them. The term also refers to documentation of a system's software architecture. Documenting software architecture is useful for: –facilitating communication –documents early decisions about high-level design –allows reuse of design components and patterns between projects

Patterns Category Architectural Pattern: High level patterns to help specify the fundamental structure of a system. Design Pattern: Medium scale patterns to organize subsystem functionality. Idioms: Low level patterns to solve implementation specific problems.

Architectural Patterns Definition: An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.

Arch.Pat. : From Mud To Structure The Layers Pattern –helps to structure the applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction. The Pipes and Filters Pattern –Provides a structure for systems provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems. The Blackboard Pattern –is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialised subsystems' assemble their knowledge to build a possibly partial or approximate solution.

The Layers Pattern (Example)

The Layers Pattern (Example 2)

Layers Pattern: Benefits Reuse of layers : If an individual layer embodies a well-defined abstraction and has a well-detlned and documented interface, the layer can be reused in multiple contexts. Support for standardization: Clearly-defined and commonly-accepted levels of abstraction enable the development of standardized tasks and interfaces. Different implementations of the same interface can then be used interchangeably. Dependencies are kept local: Standardized interfaces between layers usually confine the effect of code changes to the layer that is changed. Changes of the hardware, the operating system, the window system, special data formats and so on often affect only one layer. Exchangeability: Individual layer implementations can be replaced by semantically- equivalent implementations without too great an effort.

Layers Patterns: Liabilities Cascades of changing behavior: A severe problem can occur when the behavior of a layer changes. Lower efficiency: A layered architecture is usually less efficient than, say, a monolithic structure or a 'sea of objects'. Unnecessary work: If some services performed by lower layers perform excessive or duplicate work not actually required by the higherlayer, this has a negative impact on performance. Difficulty of establishing the correct granularity of layers: A layered architecture with too few layers does not fully exploit this pattern’s potential for reusability, changeability and portability.

Distributed Systems: Broker Pattern The Broker architectural pattern can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions.

Broker Pattern (Example)

Broker Pattern: Benefits Location Transparency. As the broker is responsible for locating a server by using a unique identifier, clients do not need to know where servers are located. Changeability and extensibility of components. If servers change but their interfaces remain the same, it has no functional impact on clients. Porlability of a Broker system The Broker system hides operating system and network system details from clients and servers by using indirection layers such as APIs, proxies and bridges. Interoperability between different Broker systems. Different Broker systems may interoperate if they understand a common protocol for the exchange of messages. Reusability. When building new client applications. you can often base the functionality of your application on existing services.

Broker Patterns: Liabilities Restricted efficiency. Applications using a Broker implementation are usually slower than applications whose component distribution is static and known. Lower fault tolerance. Compared with a non-distributed software system. a Broker system may offer lower fault tolerance. Testing and Debllgging. A client application developed from tested services is more robust and easier itself to test. However debugging and testing a Broker system is a tedious job because of the many components involved.

Interactive Systems: MVC Pattern The Model-View-Controller architectural pattern (MVC) divides an interactive application into three components. The model contains the core functionality and data. –Views display information to the user. –Controllers handle user input. –Views and controllers together comprise the user interface. –A change-propagation mechanism ensures consistency between the user interface and the model.

MVC Pattern (Example)

MVC Pattern: Benefits Allows Multiple views of the same Model. Synchronized Views “Pluggable” views and controllers Exchangeability of “look and feel” Framework Potential

MVC Pattern: Liabilities Increased Complexity Potential for excessive number of updates Intimate connection between view and controller Close coupling of views and controllers to a model Inefficiency of data access in view Inevitability of change to view and controller when porting Difficulty of using MVC with modern user-interface tools

21 References Software Architecture on wikipedia Pattern-Oriented Software Architecture: A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal John Wiley and Sons, 1996