Software Architecture Transformation Jan Bosch Professor of Software Engineering University of Groningen, Netherlands

Slides:



Advertisements
Similar presentations
A component- and message-based architectural style for GUI software
Advertisements

9.5 Software Architecture
Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems.
System Design: Decomposing the System
Lecture 23: Software Architectures
1 SYSTEM and MODULE DESIGN Elements and Definitions.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CSE 300: Software Reliability Engineering Topics covered: Software architecture styles.
SWE Introduction to Software Engineering
Announcement No CHC visit tomorrow Team progress / issues survey
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Architectural Transformations Architectural Transformations Vincenzo Ambriola Alina Kmiecik Javier Reyes COMP 685 Professor Lingard Fall 2007.
11/5/01OO Design1 Design Object-Oriented Design. 11/5/01OO Design2 Object-Oriented Design  The process of determining the architecture, and specifying.
SWE Introduction to Software Engineering
Course Instructor: Aisha Azeem
Architectural Styles SE 464 / ECE 452 / CS 446 Chang Hwan Peter Kim Based on slides prepared by Michał Antkiewicz June 24, 2006.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 6: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
1 Architectural Patterns Yasser Ganji Saffar
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
9/2/2015 | 1 Neil B. Harrison Paris Avgeriou University of Groningen Groningen, The Netherlands Incorporating Fault Tolerance Tactics in Software Architecture.
Chapter 10 Architectural Design
© 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.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
An Introduction to Software Architecture
9.4 Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
POAD Book: Chapter 8 POAD: Analysis Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 6 Architectural Design.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
1 5/18/2007ã 2007, Spencer Rugaber Architectural Styles and Non- Functional Requirements Jan Bosch. Design and Use of Software Architectures. Addison-Wesley,
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Software Architecture Design Processes
Secure middleware patterns E.B.Fernandez. Middleware security Architectures have been studied and several patterns exist Security aspects have not been.
CS223: Software Engineering Lecture 14: Architectural Patterns.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
IS301 – Software Engineering Dept of Computer Information Systems
POAD Book: Chapter 8 POAD: Analysis Phase
SOFTWARE DESIGN AND ARCHITECTURE
Software Design and Architecture
Part 3 Design What does design mean in different fields?
Software Quality Engineering
Software Architecture
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 8, Design Patterns Introduction
Presentation transcript:

Software Architecture Transformation Jan Bosch Professor of Software Engineering University of Groningen, Netherlands Copyright © 2001 Jan Bosch

Software architecture transformation2 Overview ARCS/ADM requirement specification functionality-based architectural design application architecture OK architecture assessment QA optimizing solutions architecture transformation not OK FR QR

Software architecture transformation3 Method three main phases: functionality-based design assessment of QAs architecture transformation

Software architecture transformation4 Architecture Transformation architecture transformation process: identify unfulfilled quality attributes for each quality attribute  identify locations where QA is inhibited  select the most appropriate transformation  perform the transformation on the architecture

Software architecture transformation5 Architecture Transformation transformations (primarily) change the structure of the architecture affect quality attributes, but not application domain functionality

Software architecture transformation6 Architecture Transformation transformation techniques impose architectural style impose architectural pattern apply design pattern convert QR to functionality

Software architecture transformation7 Example: Fire Alarm System

Software architecture transformation8 Impose Architectural Style reorganize functionality according to architectural style architectural style predominant in (sub)system each style has an associated suitability for different QAs example layered architecture for HW dependent and independent functionality blackboard in fire-alarm system

Software architecture transformation9 Impose Architectural Style pipes and filters layers blackboard object-orientation implicit invocation performance maintainability reliability safety security

Software architecture transformation10 Example

Software architecture transformation11 Impose Architectural Pattern not predominant, but affects complete (sub)system deals with aspects of a system (AOP), e.g. concurrency, distribution example concurrency, e.g. periodic objects transaction management

Software architecture transformation12 Impose Architectural Pattern concurrency operating system processes operating system threads non-preemptive threads application-level scheduler persistence database management system application-level persistence and transaction handling

Software architecture transformation13 Impose Architectural Pattern distribution brokers remote method invocation graphical user interface model-view-controller presentation-abstraction-control

Software architecture transformation14 Example

Software architecture transformation15 Apply Design Pattern affects a limited number of classes traditionally focussed on development QAs, e.g. flexibility and reusability (now extending) example strategy pattern (flexibility ++, performance --) abstract factory (extensibility++, performance-)

Software architecture transformation16 Apply Design Pattern Façade Abstract factory Strategy Observer performance maintainability reliability safety security

Software architecture transformation17 Example

Software architecture transformation18 Convert QR to Functionality each QR has several possible solutions select one solution and extend architecture functionality with QR related functionality example introduce redundant objects mutual consistency checking algorithm

Software architecture transformation19 Convert QR to Functionality self-monitoring top-level monitoring layer entity-based monitoring redundancy N-version programming recovery blocks acceptance tests

Software architecture transformation20 Example

Software architecture transformation21 Example

Software architecture transformation22 Distribute Requirements decompose system requirement to requirement for multiple components example fault-tolerance divided into FT- communication and FT-computation response-time requirement divided into shorter component response times

Software architecture transformation23 Example

Software architecture transformation24 Conclusion transformation techniques impose architectural style impose architectural pattern apply design pattern convert QR to functionality

Software architecture transformation25 Conclusion