Software Design and Architecture

Slides:



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

Technical Architectures
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Software Architecture Design Instructor: Dr. Jerry Gao.
Lecture 23: Software Architectures
SWE Introduction to Software Engineering
Interpret Application Specifications
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Chapter 10 Architectural Design
The Design Discipline.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
What is Enterprise Architecture?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Personal Computer - Stand- Alone Database  Database (or files) reside on a PC - on the hard disk.  Applications run on the same PC and directly access.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Pearson Education, Inc. Slide 2-1 Data Models Data Model: A set.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Chapter 2 Database System Concepts and Architecture Dr. Bernard Chen Ph.D. University of Central Arkansas.
John D. McGregor Class 4 – Initial decomposition
Layered Systems Rahul Nabar CS 551 Fall ’02. Layered or Hierarchical Designs A layered system is organized hierarchically, each layer providing service.
REST By: Vishwanath Vineet.
Lecture VIII: Software Architecture
CS223: Software Engineering
CS223: Software Engineering Lecture 14: Architectural Patterns.
Software architecture
Web Engineering CS-4513 Prepared By: Junaid Hassan Lecturer at UOS M.B.Din Campus
CS 325: Software Engineering
N-Tier Architecture.
Chapter 2 Database System Concepts and Architecture
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Distributed Systems CS
Part 3 Design What does design mean in different fields?
The Client/Server Database Environment
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Introduction to Cloud Computing
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Lecture 1: Multi-tier Architecture Overview
Software Architecture
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
Software Design Lecture : 8
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Internet Protocols IP: Internet Protocol
Distributed Systems CS
ICS 52: Introduction to Software Engineering
Chapter 5 Architectural Design.
SOFTWARE DEVELOPMENT LIFE CYCLE
Message Passing Systems Version 2
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Message Passing Systems
Presentation transcript:

Software Design and Architecture Architectural Styles and Patterns Muhammad Nasir m.nasir@iiu.edu.pk

Goals Give an introduction to the world of architectural styles and patterns. Show you some of the most common styles and patterns. Show how different styles affect the non-functional attributes of a system.

Architectural Styles and Patterns An architectural style, sometimes called an architectural pattern, is a set of principles—a coarse grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. You can think of architecture styles and patterns as sets of principles that shape an application.

Benefits of Architecture Styles/Patterns A pattern addresses a recurring design problem Patterns… Document existing, well-proven design experience Identify and specify abstractions Provide a common vocabulary and understanding for design principles Are a means of documenting software architectures Support the construction of software with defined properties Help you build complex and heterogeneous software architectures Help you manage software complexity

What is an architectural style? A Pattern for software architecture. Imposes a set of rules on a software architecture. Typical architectural styles are: Client Server Pipes and filters Layers Centralized vs. Distributed And many more…

Client Server Problem: Solution: Client Server Architecture Users on different machines Do not want to distribute business logic Solution: Client Server Architecture The client/server architectural style describes distributed systems that involve a separate client and server system, and a connecting network.

Client Server

Client Server The simplest form of client/server system involves a server application that is accessed directly by multiple clients. Today, some examples of the client/server architectural style include Web browser—based programs running on the Internet or an intranet, e.g., http://www.google.com

Client Server However, the traditional 2-Tier client/server architectural style has numerous disadvantages. Including the tendency for application data and business logic to be closely combined on the server. Negatively impact system’s extensibility and scalability. Its dependence on a central server, which can negatively impact system reliability. Extensibility : In software engineering, extensibility is a system design principle where the implementation takes into consideration future growth Scalability: In software engineering, scalability is a desirable property of a system, a network, or a process, which indicates its ability to either handle growing amounts of work in a graceful manner Reliability: The ability of a system or component to perform its required functions under stated conditions for a specified period of time

Layered Software Architecture Problem: Application consists of several subtasks that operate on different abstraction levels. Solution: A layered system is organized hierarchically, each layer providing service to the layer above it and serving as a client to the layer below.

Layered Software Architecture Layered approach offers increasing level of abstraction. This allows implementers to partition a complex problem into a sequence of incremental steps It supports re-usability It supports Enhancement

Layered Software Architecture

Layered Software Architecture Open Systems Interconnection model

Layered Software Architecture

Layered Software Architecture Good maintainability Low coupling between layers. Low reliability If a layer crashes, more might follow. Good security Easy to add a security layer. No User Interaction in lower layers

Pipes and Filters Problem: Solution: Pipe and Filter Need to process a stream of data Several processing steps Solution: Pipe and Filter A very simple, yet powerful architecture. It consists of any number of components (filters) that transform or filter data, before passing it on via connectors (pipes) to other components.

Pipes and Filters

Pipes and Filters

Pipe and Filter Vs Layered Pipe and Filter was a great improvement over the Layered Model Pipe and Filter Model allowed user interaction at each Filter level Besides that Pipe and Filter doesn’t contain any Hierarchy of Abstraction layers

Pipes and Filters The filter transforms or filters the data it receives via the pipes with which it is connected. A filter can have any number of input pipes and any number of output pipes. The pipe is the connector that passes data from one filter to the next.

Pipes and Filters It is a directional stream of data, that is usually implemented by a data buffer to store all data, until the next filter has time to process it. The pump or producer is the data source. It can be a static text file, or a keyboard input device, continuously creating new data. The sink or consumer is the data target. It can be a another file, a database, or a computer screen.

Pipes and Filters The filters are all working at the same time. The architecture is often used as a simple sequence, but it may also be used for very complex structures. Example Compilers. The consecutive filters perform lexical analysis, parsing, semantic analysis, and code generation Online Transaction Processing

Pipes and Filters Good maintainability Low reliability. Good security. …but only if changes are local to one filter. Supports Reusability. Low reliability. If one filter fails, all filters fail. Good security. Security filters are easy to add.

The End Thanks for listening Questions would be appreciated. Book Path: \\192.168.20.10\FacultyMaterial\Nasir-SE\Software Design and Architecture