Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.

Slides:



Advertisements
Similar presentations
By Philippe Kruchten Rational Software
Advertisements

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Introduction to Software Architecture. Software Architecture Definition  Definition. A software system’s architecture is the set of principal design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
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.,
Software Architecture in Practice
Software Architecture: An Introduction
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
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
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.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Architectural Blueprints The “4+1” View Model of Software Architecture
Slide 1 Introduction to Software Architecture TV Prabhakar.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Sommerville, Mejia-Alvarez, 2009Software Engineering, Slide 1 Software Design u Deriving a solution which satisfies software requirements.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
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 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.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
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.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Software Architecture SSE. Slide 2 Typical description of software architectures l Descriptions of software systems often include a section on.
Basic Concepts and Definitions
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.
©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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture Lecture 3
CompSci 280 S Introduction to Software Development
Part 3 Design What does design mean in different fields?
Software Architecture Lecture 3
Software Architecture Lecture 3
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 425/625 Software Engineering Architectural Design
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Chapter 5 Architectural Design.
Software Architecture Lecture 3
Presentation transcript:

Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance To explain why multiple models are required to document a software architecture To describe types of architectural model that may be used

What is Architecture? A high-level model of a thing Describes critical aspects of the thing Understandable to many stakeholders Allows evaluation of the thing’s properties before it is built Provides well understood tools and techniques for constructing the thing from its blueprint Which aspects of a software system are architecturally relevant? How should they be represented most effectively to enable stakeholders to understand, reason, and communicate about a system before it is built? What tools and techniques are useful for implementing an architecture in a manner that preserves its properties?

What is Software Architecture? A software system’s blueprint Its components Their interactions Their interconnections Informal descriptions Boxes and lines Informal prose A shared, semantically rich vocabulary Remote procedure calls (RPCs) Client-Server Pipe and Filer Layered Distributed Object-Oriented

From Requirements to Architecture From problem definition to requirements specification Determine exactly what the customer and user want Specifies what the software product is to do From requirements specification to architecture Decompose software into modules with interfaces Specify high-level behavior, interactions, and non-functional properties Consider key tradeoffs Schedule vs. Budget Cost vs. Robustness Fault Tolerance vs. Size Security vs. Speed Maintain a record of design decisions and traceability Specifies how the software product is to do its tasks

Focus of Software Architectures Two primary foci System Structure Correspondence between requirements and implementation A framework for understanding system-level concerns Global rates of flow Communication patterns Execution Control Structure Scalability Paths of System Evolution Capacity Throughput Consistency Component Compatibility

Why Software Architecture? A key to reducing development costs Component-based development philosophy Explicit system structure A natural evolution of design abstractions Structure and interaction details overshadow the choice of algorithms and data structures in large/complex systems Benefits of explicit architectures A framework for satisfying requirements Technical basis for design Managerial basis for cost estimation & process management Effective basis for reuse Basis for consistency, dependency, and tradeoff analysis Avoidance of architectural erosion

What is the Problem? This is a simple software system!

The Usual Tool: Design Abstraction We have to do better!

Architectural Abstraction Components Connectors Events

Definitions of Software Architecture Perry and Wolf Software Architecture = { Elements, Form, Rationale } what how why Shaw and Garlan Software architecture [is a level of design that] involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. Kruchten Software architecture deals with the design and implementation of the high-level structure of software. Architecture deals with abstraction, decomposition, composition, style, and aesthetics.

Architectural design process System structuring The system is decomposed into several principal sub-systems Communications between these sub-systems are identified Control modelling A model of the control relationships between the different parts of the system is established Modular decomposition The identified sub-systems are decomposed into modules

Key Architectural Concepts Three canonical building blocks components connectors configurations A sub-system is a system in its own right whose operation is independent of the services provided by other sub-systems A module is a system component that provides services to other components but would not normally be considered as a separate system

Components A component is a unit of computation or a data store Components are loci of computation and state clients servers databases filters layers ADTs A component may be simple or composite composite components describe a (sub)system an architecture consisting of composite components describes a system of systems

Connectors A connector is an architectural element that models interactions among components rules that govern those interactions Simple interactions procedure calls shared variable access Complex and semantically rich interactions client-server protocols database access protocols asynchronous event multicast piped data streams

Configurations/Topologies An architectural configuration or topology is a connected graph of components and connectors that describes architectural structure proper connectivity concurrent and distributed properties adherence to design heuristics and style rules Composite components are configurations

Scope of Software Architectures Every system has an architecture. Details of the architecture are a reflection of system requirements and trade-offs made to satisfy them Possible decision factors Performance Compatibility with legacy software Planning for reuse Distribution profile Current and Future Safety, Security, Fault tolerance requirements Evolvability Needs Changes to processing algorithms Changes to data representation Modifications to the structure/functionality

Example Architecture – Compiler Sequential Parallel

CASE toolset architecture

Version management system

Packing robot control system

Film and picture library

Analogies to Software Architecture Hardware architecture small number of design elements scale by replication of (canonical) design elements Network architecture focus on topology only a few topologies considered e.g., star, ring, grid Building architecture multiple views styles

Architectural models Different architectural models may be produced during the design process Each model presents different perspectives on the architecture Static structural model that shows the major system components Dynamic process model that shows the process structure of the system Interface model that defines sub-system interfaces Deployment model shows the relationship between system elements and hosts

System structuring Concerned with decomposing the system into interacting sub-systems The architectural design is normally expressed as a block diagram presenting an overview of the system structure More specific models showing how sub-systems share data, are distributed, and interface with each other may also be developed

Key points The software architect is responsible for deriving a structural system model, a control model and a sub-system decomposition model Large systems rarely conform to a single architectural model Key architectural concepts are components, connectors, and configurations