CS223: Software Engineering

Slides:



Advertisements
Similar presentations
1 Note content copyright © 2004 Ian Sommerville. NU-specific content copyright © 2004 M. E. Kabay. All rights reserved. Application Architectures IS301.
Advertisements

Chapter 6 – Architectural Design
Chapter 6 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 SWE Introduction to Software Engineering Lecture 21 – Architectural Design (Chapter 13)
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Application architectures
Establishing the overall structure of a software system
Course Instructor: Aisha Azeem
Application architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
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.
Figure – Chapter 6. Figure 6.1 The architecture of a packing robot control system.
Chapter 6 – Architectural Design Edited by Dr. Issam Al-Azzoni Software Engineering - Sommerville 1Chapter 6 Architectural design.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©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.
CSc 461/561 Software Engineering Lecture 7 – Architectural Design.
Chapter 6 Architectural Design.
Lecture 1 Chapter 6 Architectural design1. Topics covered Architectural design decisions Architectural views Architectural patterns Application architectures.
Chapter 6 – Architectural Design 1Chapter 6 Architectural design.
Chapter 6 – Architectural Design 1Chapter 6 Architectural design CS 425 October 29, 2013 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 6 – Architectural Design Chapter 6 Architectural Design1 CS 425 October 29, 2015 Note: These are a slightly modified version of Chapter 6 slides.
Chapter 6 Architectural design Chapter 6 – Architectural Design Lecture 1 1.
SE Fundamentals 4 – Architectural Design 1Chapter 6 Architectural design CS 791Z February 19, 2013 Ian Sommerville, Software Engineering, 9 th Edition.
Slide 1 Ch 13 Application architectures Generic architectures that can be configured and adapted to create a system that meets specific requirements Can.
Software Architectural Design 1. Topics covered  Architectural design decisions  Architectural views  Architectural patterns  Application architectures.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
Sommerville, Software Engineering, Chapter 6 Architectural design1.
Application architectures 1. Topics covered In the previous chapter, the discussion of system arcitectures focused on architectural issues such as control,
Chapter 6 – Architectural Design 1Chapter 6 Architectural design CS 425 October 20, 2011 Ian Sommerville, Software Engineering, 9 th Edition Pearson Education,
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
A PPLICATION ARCHITECTURES Chapter 13. O BJECTIVES To explain the organisation of two fundamental models of business systems - batch processing and transaction.
Lecture 6 – Architectural Design
CS223: Software Engineering
Software architecture
CompSci 280 S Introduction to Software Development
Chapter 6 – Architectural Design
Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Chapter 6 – Architectural Design
Software Architecture
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
CS385 T&D Software Engineering Dr.Doaa Sami Khafaga
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Chapter 6 – Architectural Design
Presentation transcript:

CS223: Software Engineering Lecture 15: Architectural Patterns

Recap Specific examples of software architecture MVC Layered Repository

Objective After completing this lecture the students will be able to Specific examples of software architecture Client-server Pipe-and-filter Types of application software

Client-server architecture Distributed system model It shows how data and processing is distributed across a range of components. Can be implemented on a single computer. Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services. Network which allows clients to access servers.

The Client–server pattern Name Client-server Description The functionality of the system is organized into services Each service delivered from a separate server. Clients are users of these services and access servers When used Used when data in a shared database has to be accessed from a range of locations. The load on a system is variable. Advantages Servers can be distributed across a network. General functionality can be available to all clients and does not need to be implemented by all services. Disadvantages Each service is a single point of failure so susceptible to denial of service attacks or server failure. Performance may be unpredictable because it depends on the network as well as the system. May be management problems if servers are owned by different organizations.

A client–server architecture for a film library

Pipe and filter architecture Functional transformations process their inputs to produce outputs. May be referred to as a pipe and filter model (as in UNIX shell). Variants of this approach are very common. Transformations are sequential, this is a batch sequential model extensively used in data processing systems. Not really suitable for interactive systems.

The pipe and filter pattern Name Pipe and filter Description The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flows (as in a pipe) from one component to another for processing. When used Data processing applications (both batch- and transaction-based). Advantages Easy to understand and supports transformation reuse. Workflow style matches the structure of many business processes. Evolution by adding transformations is straightforward. Can be implemented as either a sequential or concurrent system. Disadvantages The format for data transfer has to be agreed upon between communicating transformations. Each transformation must parse its input and un-parse its output to the agreed form.

An example of the pipe and filter architecture

Application architectures Application systems are designed to meet an organizational need. As businesses have much in common, their application systems also tend to have a common architecture that reflects the application requirements. A generic application architecture is An architecture for a type of software system that may be configured and adapted to create a system that meets specific requirements.

Use of application architectures As a starting point for architectural design. As a design checklist. As a way of organizing the work of the development team. As a means of assessing components for reuse. As a vocabulary for talking about application types.

Examples of application types Data processing applications Data driven applications that process data in batches without explicit user intervention during the processing. E.g. payroll, billing, accounting, and publicity Transaction processing applications Data-centred applications that process user requests and update information in a system database. E.g. e-commerce systems, information systems and booking systems.

Examples of application types Event processing systems Applications where system actions depend on from the system’s environment. interpreting events E.g. games, editing systems, real time systems. Language processing systems Applications where the users’ intentions are specified in a formal language that is processed and interpreted by the system. E.g. compilers

Transaction processing systems Process user requests for information from a database to update the database. From a user perspective a transaction is: Any coherent sequence of operations that satisfies a goal; For example - find the times of flights from London to Paris. Users make asynchronous requests for service Processed by a transaction manager.

The structure of transaction processing applications input-process-output structure

The software architecture of an ATM system

Middleware for transaction management

Language processing systems Accept a natural or artificial language as input and generate some other representation of that language. May include an interpreter to act on the instructions in the language that is being processed. Used in situations where the easiest way to solve a problem is to describe an algorithm or describe the system data Meta-case tools process tool descriptions, method rules, etc and generate tools.

The architecture of a language processing system

Compiler components A lexical analyzer takes input language tokens and converts them to an internal form. A symbol table holds information about the names of entities (variables, class names, object names, etc.) used in the text that is being translated. A syntax analyzer checks the syntax of the language being translated. A syntax tree an internal structure representing the program being compiled.

Compiler components A semantic analyzer uses information from the syntax tree and the symbol table to check the semantic correctness of the input language text. A code generator walks’ the syntax tree and generates abstract machine code.

A pipe and filter compiler architecture

A repository architecture for a language processing system

Key points Models of application systems architectures help us understand and compare applications, validate application system designs and assess large-scale components for reuse. Transaction processing systems are interactive systems that allow information in a database to be remotely accessed modified by a number of users. Language processing systems are used to translate texts from one language into another to carry out the instructions specified in the input language. They include a translator and an abstract machine that executes the generated language.

Thank you Next Lecture: Software Construction