©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.

Slides:



Advertisements
Similar presentations
Chapter 10 Architectural Design.
Advertisements

IS301 – Software Engineering Dept of Computer Information Systems
Chapter 10 Architectural Design.
©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
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Course Instructor: Aisha Azeem
©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.
©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 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
Topic 7Summer ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 7 Partially based on lecture.
Chapter 11 Architectural Design.
Chap 8. Architectural Design
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Programming Or Software Engineering?
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.
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.
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.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #9.
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.
Software architecture
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.
Presentation transcript:

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 2 Objectives u To introduce architectural design and its role in the software process u To describe a number of different types of architectural model u To show how the architecture of a system may be modelled in different ways u To discuss how domain-specific reference models may be used to compare software architectures

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 3 Topics covered u System structuring u Control models u Modular decomposition u Domain-specific architectures

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 4 Architectural parallels u Architects are the technical interface between the customer and the contractor building the system u A bad architectural design for a building cannot be rescued by good construction; the same is true for software u There are specialist types of building and software architects u There are schools or styles of building and software architecture

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 5 Architectural design process u System structuring The system is decomposed into several principal sub-systems and communications between these sub-systems are identified u Control modelling A model of the control relationships between the different parts of the system is established u Modular decomposition The identified sub-systems are decomposed into modules

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 6 Sub-systems and modules u A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems. u A module is a system component that provides services to other components but would not normally be considered as a separate system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 7 Architectural models u Structure, control and modular decomposition may be based on a particular model or architectural style u However, most systems are heterogeneous in that different parts of the system are based on different models and, in some cases, the system may follow a composite model u The architectural model used affects the performance, robustness, distributability and maintainability of the system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 8 System structuring u Concerned with decomposing the system into interacting sub-systems u The architectural design is normally expressed as a block diagram presenting an overview of the system structure u More specific models showing how sub-systems share data, are distributed and interface with each other may also be developed

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 9 Packing robot control system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 10 The repository model u Sub-systems must exchange data. This may be done in two ways: Shared data is held in a central database or repository and may be accessed by all sub-systems Each sub-system maintains its own database and passes data explicitly to other sub-systems u When large amounts of data are to be shared, the repository model of sharing is most commonly used

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 11 CASE toolset architecture

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 12 Repository model characteristics u 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 u 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

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 13 Client-server architecture u Distributed system model which shows how data and processing is distributed across a range of components u Set of stand-alone servers which provide specific services such as printing, data management, etc. u Set of clients which call on these services u Network which allows clients to access servers

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 14 Film and picture library

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 15 Client-server characteristics u 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 u 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

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 16 Abstract machine model u Used to model the interfacing of sub-systems u Organises the system into a set of layers (or abstract machines) each of which provide a set of services u Supports the incremental development of sub- systems in different layers. When a layer interface changes, only the adjacent layer is affected u However, often difficult to structure systems in this way

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 17 Version management system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 18 Control models u Are concerned with the control flow between sub-systems. Distinct from the system decomposition model u Centralised control One sub-system has overall responsibility for control and starts and stops other sub-systems u Event-based control Each sub-system can respond to externally generated events from other sub-systems or the system’s environment

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 19 Centralised control u A control sub-system takes responsibility for managing the execution of other sub-systems u Call-return model Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downwards. Applicable to sequential systems u Manager model Applicable to concurrent systems. One system component controls the stopping, starting and coordination of other system processes. Can be implemented in sequential systems as a case statement

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 20 Call-return model

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 21 Real-time system control

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 22 Event-driven systems u Driven by externally generated events where the timing of the event is outwith the control of the sub-systems which process the event u Two principal event-driven models Broadcast models. An event is broadcast to all sub-systems. Any sub-system which can handle the event may do so Interrupt-driven models. Used in real-time systems where interrupts are detected by an interrupt handler and passed to some other component for processing u Other event driven models include spreadsheets and production systems

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 23 Broadcast model u Effective in integrating sub-systems on different computers in a network u Sub-systems register an interest in specific events. When these occur, control is transferred to the sub-system which can handle the event u Control policy is not embedded in the event and message handler. Sub-systems decide on events of interest to them u However, sub-systems don’t know if or when an event will be handled

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 24 Selective broadcasting

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 25 Interrupt-driven systems u Used in real-time systems where fast response to an event is essential u There are known interrupt types with a handler defined for each type u Each type is associated with a memory location and a hardware switch causes transfer to its handler u Allows fast response but complex to program and difficult to validate

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 26 Interrupt-driven control

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 27 Modular decomposition u Another structural level where sub-systems are decomposed into modules u Two modular decomposition models covered An object model where the system is decomposed into interacting objects A data-flow model where the system is decomposed into functional modules which transform inputs to outputs. Also known as the pipeline model u If possible, decisions about concurrency should be delayed until modules are implemented

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 28 Object models u Structure the system into a set of loosely coupled objects with well-defined interfaces u Object-oriented decomposition is concerned with identifying object classes, their attributes and operations u When implemented, objects are created from these classes and some control model used to coordinate object operations

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 29 Invoice processing system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 30 Data-flow models u Functional transformations process their inputs to produce outputs u May be referred to as a pipe and filter model (as in UNIX shell) u Variants of this approach are very common. When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems u Not really suitable for interactive systems

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 31 Invoice processing system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 32 Domain-specific architectures u Architectural models which are specific to some application domain u Two types of domain-specific model Generic models which are abstractions from a number of real systems and which encapsulate the principal characteristics of these systems Reference models which are more abstract, idealised model. Provide a means of information about that class of system and of comparing different architectures u Generic models are usually bottom-up models; Reference models are top-down models

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 33 Generic models u Compiler model is a well-known example although other models exist in more specialised application domains Lexical analyser Symbol table Syntax analyser Syntax tree Semantic analyser Code generator u Generic compiler model may be organised according to different architectural models

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 34 Compiler model

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 35 Language processing system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 36 Reference architectures u Reference models are derived from a study of the application domain rather than from existing systems u May be used as a basis for system implementation or to compare different systems. It acts as a standard against which systems can be evaluated u OSI model is a layered model for communication systems

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 37 OSI reference model

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 38 Key points u The software architect is responsible for deriving a structural system model, a control model and a sub-system decomposition model u Large systems rarely conform to a single architectural model u System decomposition models include repository models, client-server models and abstract machine models u Control models include centralised control and event-driven models

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 39 Key points u Modular decomposition models include data-flow and object models u Domain specific architectural models are abstractions over an application domain. They may be constructed by abstracting from existing systems or may be idealised reference models