© Andrew IrelandSoftware Design F28SD2 Architectural Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh.

Slides:



Advertisements
Similar presentations
Chapter 10 Architectural Design.
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
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
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
Architectural Design, Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6: Architectural Design
System Design & Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Engineering Architectural Design
Software Architecture
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 11 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Function-oriented 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
Chapter 11 Architectural Design.
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.
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
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
© Andrew IrelandSoftware Design F28SD2 Function-oriented Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
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.
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 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Architectural Design Identifying system components and their interfaces.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Engineering CSC 342/Dr. Ghazy Assassa Chapter 10, Architectural Design “Sommerville +.. “ Slide 1 CSC 342 Semester II: H ( G)
©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.
©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.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
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.
©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.
Part 3 Design What does design mean in different fields?
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Presentation transcript:

© Andrew IrelandSoftware Design F28SD2 Architectural Design Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University Edinburgh

© Andrew IrelandSoftware Design F28SD2 Outline Motivations Structure Control Decomposition

© Andrew IrelandSoftware Design F28SD2 Motivations Architectural design represents the most abstract level of design Involves the identification of subsystems and their interconnections Just like in designing a building or a bridge, sound architectural decisions are crucial to the success of a project – a bad architecture can’t be saved by good construction methods!

© Andrew IrelandSoftware Design F28SD2 Architectural Activities Systems structuring: –Subsystems –Communication between subsystems Control modelling: –Subsystems and control Subsystem decomposition: –Subsystems and modules –Module interconnections

© Andrew IrelandSoftware Design F28SD2 Repository Model Automotive Parts: repository Client Interface Invoice Subsystem Supplier Interface Stock Subsystem Note: often referred to as data-centred architecture

© Andrew IrelandSoftware Design F28SD2 Repository Model The repository model is appropriate when there exists a clear producer/consumer relationship between subsystems and data, e.g. command and control, inventory management, information management The repository imposes a data model that all subsystems will have to operate with Advantages: –Efficient mechanism for sharing large amounts of data between subsystems – no need for data to be communicated between subsystems directly –Data producers (subsystems) are decoupled from the needs of data consumers (subsystems) –Security and archive issues are centralized

© Andrew IrelandSoftware Design F28SD2 Repository Model Advantages (cont’d): –Having a clearly defined data model makes integration of new subsystems a well defined task Disadvantages: –Imposing a single data model on all systems may impact on performance, as well as adaptability, i.e. integration of new subsystems –Evolution may be impeded by the use of a standard data model, i.e. converting to a new standard, may be expensive and may lead to the lose of data (data warehousing) –Distributing a repository model over multiple machines gives rise to additional challenges, i.e. dealing with redundancy and inconsistencies

© Andrew IrelandSoftware Design F28SD2 Data-flow Model A data-flow architecture is appropriate when input data is transformed through a series of computational components, i.e. filters connected by pipes Filters operate independently of each other In its simplest form, a data-flow architecture takes the form of a single line of transformations filter pipes

© Andrew IrelandSoftware Design F28SD2 Data-flow Model Advantages: –Promotes parallelism –Promotes component style development Disadvantages: –Where parallelism is exploited, load balancing and synchronization issues may impact negatively on system performance –Deadlock is also a potential problem via parallelization –Not well suited to error handling, e.g. ignore erroneous data or restart the processing with the erroneous data eliminated – neither is very satisfactory Applications: image processing, parallel search, …

© Andrew IrelandSoftware Design F28SD2 Client-server Model Network Client 1Client M … Server 1Server N …

© Andrew IrelandSoftware Design F28SD2 Client-server Model A distributed systems model contains a: –set of servers (subsystems) providing services –set of clients (subsystems) which know the identification of the services –network which allows clients to access services via remote procedure calls Typically data is also distributed across the system with no standard data model imposed

© Andrew IrelandSoftware Design F28SD2 Client-server Model Advantages: –Ease of system evolution, e.g. new servers can be integrated incrementally and existing servers can be upgraded transparently –Having no standard data model provides opportunities for efficiency gains Disadvantages: –Having no standard data model may give rise to unforeseen integration issues –Security and archiving becomes a distributed problem

© Andrew IrelandSoftware Design F28SD2 Peer-to-Peer Model Peer-to-peer (P2P) is a distributed architecture which has a strong co-operative flavour, i.e. the architecture is constructed from a set of participants, each of whom share resources Within P2P, a participant is a supplier and a consumer, which makes it distinct from the client- server model Applications: file sharing networks, e.g. Napster, Skype, sciencenet P2P search engine, …

© Andrew IrelandSoftware Design F28SD2 Peer-to-Peer Model

© Andrew IrelandSoftware Design F28SD2 Peer-to-Peer Model

© Andrew IrelandSoftware Design F28SD2 Peer-to-Peer Model Advantages: –As new nodes arrive resources increase, as well as the demands on the available resources. In contrast, as new clients join a client server architecture typically the demand increases without any additional resources (so performance decreases) –Distributed nature of the architecture brings with it robustness benefits, i.e. no single point of failure Disadvantage: –Security, e.g. without encryption and proper verification mechanisms a P2P network will be vulnerable to malicious code and viruses

© Andrew IrelandSoftware Design F28SD2 Layered Model Kernel Device Drivers Service Processes User Processes

© Andrew IrelandSoftware Design F28SD2 Layered Model Each layer represents an abstract machine, providing a well defined set of services Advantages: –promotes an incremental style of development –promotes portability and change Disadvantages: –cross cutting services, e.g. file handling, do not fit the layered model –multiple layers may lead to performance issues

© Andrew IrelandSoftware Design F28SD2 Control Models Centralized control: –A single subsystem is responsible for controlling the operation of all the other subsystems –Other subsystems may be given control on a temporary basis Event-based control: –Control is distributed, each subsystem is responsible for its actions –Subsystems react to external events generated by other subsystems or the operational environment, e.g. sensor input

© Andrew IrelandSoftware Design F28SD2 Centralized Control main program subroutine Z.1 subroutine Z.N subroutine A.N subroutine A.1 subroutine A subroutine Z … …… call-return model

© Andrew IrelandSoftware Design F28SD2 Centralized Control manager process process 2 process 1 process 3process N manager model …

© Andrew IrelandSoftware Design F28SD2 Centralized Control Call-return model: –Hierarchical subroutine model –Control is passed down through the hierarchy –Applicable to sequential systems –Less flexible and thus easier to analyse Manager model: –Central control process which provides coordination between subprocesses –Processes are executed in parallel –Applicable for concurrent systems –More flexible and thus harder to analyse

© Andrew IrelandSoftware Design F28SD2 Event-driven Control System behaviour is driven by events, e.g. –external stimuli - sensors –user interactions - mouse clicks, key strokes –process communications - messages from process threads Example event-driven models: –Broadcast control –Interrupt-driven control

© Andrew IrelandSoftware Design F28SD2 Broadcast Control Event and message handler subsystem-1subsystem-N …

© Andrew IrelandSoftware Design F28SD2 Broadcast Control Subsystems are associated, or registered, with specific events – subsystems decide which events to react to Event & message handler broadcasts events to: –All subsystems OR –Only those subsystems registered for a given event Advantages: –Ease of system evolution –No need for explicit identification for subsystems Disadvantages: –Potential conflicts arising from multiple responses to events –Not appropriate for hard real-time systems, i.e. systems which require a response within a fixed time frame

© Andrew IrelandSoftware Design F28SD2 Interrupt-driven Control Handler 1 Handler 2 Handler N … Process NProcess 1Process 2 … … interrupt vector

© Andrew IrelandSoftware Design F28SD2 Interrupt-driven Control System involves pre-defined kinds of interrupts, i.e. events that cause processing to be interrupted Each interrupt is mapped onto a special area of memory known as the interrupt vector The interrupt vector references interrupt handlers, hardware ensures that control is passed to the relevant interrupt handler when an interrupt occurs – a handler will typically start or stop processes Advantages: –Good for hard real-time systems, i.e. fast & predictable response times Disadvantages: –Hard to program and validate –Limited by hardware, i.e. upper bound on interrupt vector

© Andrew IrelandSoftware Design F28SD2 Subsystem Decomposition Subsystems typically require further decomposition, i.e. decomposition into modules This level of decomposition lies on the boundary of architectural design Two principal decomposition approaches: –Data-flow –Object-oriented Both are expanded upon in the next couple of lectures …

© Andrew IrelandSoftware Design F28SD2 Summary Learning outcomes: –Motivations for architectural design –Systems structuring and control Recommended reading: –M. Shaw, D. Garlan, “Software Architecture: Perspectives on an Emerging Discipline”, Prentice-Hall 1996 –I. Sommerville, “Software Engineering”, Addison-Wesley 2007