Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina,

Slides:



Advertisements
Similar presentations
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
16.35 Midterm Debrief October 30, 2002 Malia Kilpinen.
Software Architecture Design Instructor: Dr. Jerry Gao.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Establishing the overall structure of a software system
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
CSC450 Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Engineering Architectural Design
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©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
Chap 8. Architectural Design
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.
Programming Or Software Engineering?
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Architectural Design, Distributed Systems Architectures
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Architectures of distributed systems Fundamental Models
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Architectural Design Identifying system components and their interfaces.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Architectural.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1 Prof. Leonardo Mostarda University of Camerino Distributed Systems – Architectures Prof. Leonardo Mostarda-- Camerino,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
IS301 – Software Engineering Dept of Computer Information Systems
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Part 3 Design What does design mean in different fields?
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Chapter 6 – Architectural Design
Software models - Software Architecture Design Patterns
ICS 52: Introduction to Software Engineering
Presentation transcript:

Devon M. Simmonds Computer Science Department, CSC592 1 CSC550 Software Engineering Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington Introduction to Software Architectures

Devon M. Simmonds Computer Science Department, CSC592 2 Architectural Design Lecture Outline – Architectural styles Layered Client-server Event-based Shared repository Class exercise – Other topics on Architectures Interceptors, adaptive software, failure models, design requirements – Summary

Devon M. Simmonds Computer Science Department, CSC592 3 What is Software Architecture? A model describing the overall structure of the software in terms of components/subsystems, their interrelationships and behaviors. MM BB CC AA PP KK 3

Devon M. Simmonds Computer Science Department, CSC592 4 General Architecture of Distributed Systems An architectural model defines structure - system components and their relationships as well as behaviour – how components interact. The goal of architectural design is to meet present and future demands on the architecture. Each architectural style defines a class of architectures. MM BB CC AA PP KK

Devon M. Simmonds Computer Science Department, CSC592 5 Architectural styles An architecture style is a specification of how subsystems in a software may be structured. – Specification of architectural components – Specification of architectural connectors – Specification of constraints on how components can be combined Specification of component interaction (data exchange) – Specification of component configuration to form a system Specification of one or more semantic models that specify how a system’s overall properties can be determined from the properties of its parts 5 Component N Component N-1 Component 2 Component 1 Architectural Styles

Devon M. Simmonds Computer Science Department, CSC592 6 What is an architectural component/subsystem? – A modular unit with well defined provided and required interfaces that is replaceable. What is an architectural connector? – A mechanism that mediates communication, coordination or cooperation among components. E.g. remote procedure calls, message passing Architectural Styles, cont. Component N Component N-1 Component 2 Component 1

Devon M. Simmonds Computer Science Department, CSC592 7 Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller Architectural Styles, cont.

Devon M. Simmonds Computer Science Department, CSC592 8 A Layered Architectural Style Figure 2-1. Tanenbaum et al. Layered Architectures, cont.

Devon M. Simmonds Computer Science Department, CSC592 9 Classical Three-Tiered Architecture Layered Architectures, cont. Figure 2-4 (Tanenbaum). The simplified organization of an Internet search engine into three different layers.

Devon M. Simmonds Computer Science Department, CSC Characteristics of layered Architectures Advantages – Clear separation of parts/roles/subsystems. – Easy to plug and play components. – Relatively simple to implement as either a concurrent or sequential system. 10 Layered Architectures, cont.

Devon M. Simmonds Computer Science Department, CSC Architectural Styles Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller

Devon M. Simmonds Computer Science Department, CSC Client-server (“two-tier”) architectures A network architecture in which each computer or process on the network is either a client or a server. 12

Devon M. Simmonds Computer Science Department, CSC Fig. 2.2 Coulouris et al.: Clients invoke individual servers The client/Server Model Architectural Styles

Devon M. Simmonds Computer Science Department, CSC Client-server characteristics Advantages – Distribution of data is straightforward; – Makes effective use of networked systems. May require cheaper hardware; – Easy to add new servers or upgrade existing servers. Disadvantages – No shared data model so sub-systems use different data organisation. Data interchange may be inefficient; – Redundant management in each server; – No central register of names and services - it may be hard to find out what servers and services are available. 14 Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Client/Server Model, cont.

Devon M. Simmonds Computer Science Department, CSC Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller Architectural Styles, cont. Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Devon M. Simmonds Computer Science Department, CSC Object-Based Architectural Style Figure 2-1. (b) The object-based architectural style.

Devon M. Simmonds Computer Science Department, CSC Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller Architectural Styles, cont. Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Devon M. Simmonds Computer Science Department, CSC Event-Based Architectural Style Figure 2-2. (a) The event-based architectural style

Devon M. Simmonds Computer Science Department, CSC Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller Architectural Styles, cont. Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Devon M. Simmonds Computer Science Department, CSC Shared repository Architectural Style Figure 2-2. (b) The shared data-space architectural style.

Devon M. Simmonds Computer Science Department, CSC Shared Repository Characteristics Advantages – Efficient way to share large amounts of data; – Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc. – Sharing model is published as the repository schema. Disadvantages – Sub-systems must agree on a repository data model. Inevitably a compromise; – Data evolution is difficult and expensive; – No scope for specific management policies; – Difficult to distribute efficiently. 21

Devon M. Simmonds Computer Science Department, CSC Important architectural styles for distributed systems Layered architectures Client/Server architectures Object-based architectures Data-centered architectures Event-based architectures Model View Controller Architectural Styles, cont. Coulouris etal.Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Devon M. Simmonds Computer Science Department, CSC The Model-view-controller architecture Separates the application object (model) from The way it is presented to the user (view), from The way in which the user controls it (controller). 23 User Interface Functionality Data Model View Controller change notifies query

Devon M. Simmonds Computer Science Department, CSC Lets do an example!

Devon M. Simmonds Computer Science Department, CSC Architectural Design Example Draw layered, client-server, and data-centric architectures using this description. – A school video library tracking system is to be developed. Videos can be scientific, religious or general. General videos are classified as miscellaneous, sports or entertainment. Students and professors can belong to research groups. A research group must have at least 2 professors. Every student must belong to some research group. Professors that belong to a research group are called research professors. Research professors do not teach courses every semester. Each semester, a student must register for at least one course offered by a professor in his research group. A student cannot register for courses outside the subject areas of the research groups in his academic department. A research group can consist of members with various subject area interests. However, subject areas are only classified as an area of interest for the group if at least two members have interest in the area. In general, professors can check out any number of videos, however, visiting professors can check out at most seven videos. Unlike regular professors, visiting professors can check out videos for the duration of only two weeks. Students can check out any number of religious videos and at most 2 scientific videos. Students can check out only scientific videos in the subject areas represented in their research groups.

Devon M. Simmonds Computer Science Department, CSC Summary: What an architectural model does Simplify and abstract the functions of individual components Consider the placement of components across a network of computers, seeking to define useful patterns for the distribution of data and workload Consider the interrelationships between the components, i.e., the functional roles and patterns of communication between them

Devon M. Simmonds Computer Science Department, CSC TheEnd CSC550, Devon M. Simmonds, Computer Science Department, University of North Carolina Wilmington ??????????????? …CSC550 … Q u e s t i o n s ?

Devon M. Simmonds Computer Science Department, CSC Architectural Design Example Draw layered, client-server, and data-centric architectures using this description. – The Exotic Sunshine Corporation needs software to aid the management of its business. The corporation is made up of several different companies each having at least three of the seven divisions. The corporation classifies divisions as either production, sales or marketing. The sales and marketing divisions are given jurisdiction for a specific geographic region. This region must include the company that owns the division. Regions have managers, however, an employee may only manage two or more regions if he/she has in excess of ten years experience with the company, or ten years in a comparable position. Managers with more than ten years service and managers in the head office are allowed thirty days of paid vacation per year. In addition, they may have up to three company vehicles assigned and one of the vehicles may be a luxury vehicle. Other managers are not allowed luxury vehicles and cannot be allocated in excess of one vehicle. The corporation manufactures and sells boats, electronic equipment, fruit juices and paper.