Software Architecture

Slides:



Advertisements
Similar presentations
Chapter 10 Architectural Design.
Advertisements

IS301 – Software Engineering Dept of Computer Information Systems
©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.
©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
Architectural Design, Distributed Systems Architectures
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
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 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
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.
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.
©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.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
CS223: Software Engineering
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.
Lecture 6 – 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
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
CS 425/625 Software Engineering Architectural Design
Princess Nourah bint Abdulrahman University
Architectural Design.
Chapter 6 – Architectural Design
ICS 52: Introduction to Software Engineering
Chapter 6 – Architectural Design
Presentation transcript:

Software Architecture

Software Architecture Describes overall system organization and structure in terms of its major constituents and their interactions Promotes independence of modules Decoupled modules can be developed and tested independently Enhances ability to change Poorly architected software is difficult to change Reduces cost/time to implement Helps formalize, organize, prioritize decisions

Architecture Defined If architecture is strategic design, then the rest of the design is the tactical design. Architecture establishes the context for further design and implementation architecture design implementation CODE Architecture focuses on significant design decisions that have a lasting impact on the performance, reliability, cost, and resilience of the system

Architecture Defined IEEE Software architecture encompasses Emphasize that the rationale for the architectural decisions is very important. IEEE Software architecture is the fundamental organization of a system, including its components, their relationships to each other and the environment, and the principles governing its design and evolution Software architecture encompasses Selection of the structural elements and interfaces by which a system is composed Decomposition of subsystems into constituent structural and behavioral elements Behavior as specified in collaborations among those elements Architectural style that guides this organization

Example 1

Example 2

Architectures Follow Patterns Common solution to a common problem Codifies specific knowledge collected from experience in a domain

Examples of Architectural Patterns Repository Data-flow Centralized Control Client-Server Event Driven Layered Systems Object Oriented Domain Specific

Repository Sub-systems exchange data A shared central database or repository can be accessed by all sub-systems Each sub-system maintains its own database elements and passes data to those for use by other sub-systems When large amounts of data are to be shared, the repository model of sharing is most commonly used

Repository Advantages Efficiency: no need for inter-subsystem communication for data transfer Transparency: sub-systems need not be concerned with how data is produced. Centralized management Standard: sharing model is published as the repository schema Disadvantages Sub-systems must agree on a repository data model (compromise) Data evolution is difficult/expensive Difficult to distribute efficiently

Data-flow Functional transformations process their inputs to produce outputs May be referred to as pipe and filter model (UNIX shell) When transformations are sequential, this is a batch sequential model which is extensively used in data processing systems Not directly suitable for interactive systems

Centralized Control A control sub-system takes responsibility for managing the execution of other sub-systems Call-return model Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downwards. Applicable to sequential systems Manager model Applicable to concurrent systems. One component controls the stopping, starting and coordination of other system processes. Can be implemented in sequential systems as a case statement

Model-View-Controller Variant of centralized control architecture; Controller processes user commands which manipulate data in the model, and calls on various views. Controller (interact with user, perform commands View (display model for user) Model (store data, e.g. text)

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

Client-server 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 organization - 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

Event-driven Driven by externally generated events where the timing of the event is outside of the control of the sub-systems which process the event Two main 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

Layered Systems Model the interfacing of sub-systems Organises the system into a set of layers (or abstract machines) each of which provide a set of services Supports incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected However, often difficult to structure systems in this way V e r s i o n m a n a g e m e n t O b j e c t m a n a g e m e n t D a t a b a s e s y s t e m O p e r a t i n g s y s t e m

Object Oriented Structure the system into a set of loosely coupled objects with well-defined interfaces Object-oriented decomposition is concerned with identifying object classes, their attributes and operations When implemented, objects are created from these classes and some control model used to coordinate object operations

Domain-Specific: e.g., Compiler Compiler model is a well-known example although other models exist in more specialized application domains Lexical analyser Symbol table Syntax analyser Syntax tree Semantic analyser Code generator Generic compiler model may be organized according to different architectural models

Exercises What architectural style would you use, and why, for the following: Software controlling an elevator Software automating a fantasy baseball league Software automating a library’s book and patron information and tasks such as check-in/check-out A company’s payroll software

Examples of Architectural Patterns Repository Data-flow Centralized Control Client-Server Event Driven Layered Systems Object Oriented Domain Specific

Example 3