Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability.

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Component Oriented Programming 1 Chapter 2 Theory of Components.
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (2) Performance.
Quality Attributes Or, what’s wrong with this: Exterminator kit – place bug on block, strike with mallet.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
1 CSSE 477 – Intro to Modifiability Steve Chenoweth Friday, 9/23/2011 Week 3, Day 4 Right - A modified VW beetle, from
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
II. Middleware for Distributed Systems
The Architecture of Transaction Processing Systems
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
C++ fundamentals.
What is Software Architecture?
Achieving Qualities. Architectural Tactics  A tactic is a design decision that influences the control of a quality attribute response.  A collection.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 2.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
Design Patterns Standardized Recurring model Fits in many location Opposite of customization Fundamental types of pattern Choose and use as desired and.
Design Patterns.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
CISC6795: Spring Object-Oriented Programming: Polymorphism.
Rational Unified Process Fundamentals Module 4: Disciplines II.
An Introduction to Software Architecture
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
C O R P O R A T E T E C H N O L O G Y Siemens AG Software & Engineering Usage of Enterprise OSGi inside Siemens:  Siemens Communications, Enterprise Systems.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Vakgroep Informatietechnologie - IBCN CORBA & RMI Design of Distributed Software.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Secure middleware patterns E.B.Fernandez. Middleware security Architectures have been studied and several patterns exist Security aspects have not been.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
1 Software Architecture in Practice Architectural Design (Again, the amputated version)
Modifiability Modifiability is about change, and our interest in it centers on the cost and risk of making changes. How easy to change a component without.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Topic 5: CORBA RMI Dr. Ayman Srour
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 7: Modifiability
SOFTWARE DESIGN AND ARCHITECTURE
Achieving Qualities.
OO Methodology OO Architecture.
John D. McGregor C8 - Tactics
Service-centric Software Engineering
Quality Attributes Or, what’s wrong with this:
Quality Attributes Or, what’s wrong with this:
An Introduction to Software Architecture
Design Yaodong Bi.
Quality Attributes Or, what’s wrong with this:
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (4) Modifiability

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 2 Modifiability What can change ? Functions, Platform, Environment. Data, data representation System Qualities (performance, throughput,…) When is the change required ? Development time, build time,..runtime Who will implement the change ? Software engineers ? Users ? Administrators ? Modifiability is about the cost of changes.

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 3 Modifiability Scenario “A developer wants to change the UI code at design time; the modification is made without side effects in 3 hours.”

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 4 Modifiability Tactics Tactics to Control Modifiability Change Request Arrives Changes made, Tested and Deployed on Time, within Budget Localize Modifications Assign responsibilities to modules such that changes are limited in scope. Prevent Ripple Effect A ripple effect from a modification is the necessity of making changes to modules not directly affected by it Defer Binding Time Commit as late as possible

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 5 Localize Modifications (1/2) General rule : The fewer components to change  less cost to change Goal: Assign functionality to modules so that anticipated changes will be limited in scope Maintain semantic coherence: Responsibilities work together without excessive reliance on other modules  Abstract common services : e.g. timer services, security, encryption, …etc. Anticipate expected changes: Considering the set of envisioned changes, provides a guide to the assignment of responsibilities Do fundamentally different changes affect the same module ?

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 6 Localize Modifications (2/2) Generalize the module Making the module more general allows it to function for broader range of inputs Think of the input as a language for the module Limit possible options Modifications may have long reaching effects (especially within product lines) Reducing choices can reduce the impact  E.g., changing the OS has substantial ramifications

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 7 Ripple Effects : Module dependencies Syntax : Data: For B to compile/execute correctly the type of the data produced by A and used by B must be consistent with B’s assumptions Service: For B to compile/execute correctly the signature of services provided by A and invoked by B must be consistent with B’s assumptions Semantics : Data: For B to execute correctly the meaning of the data produced by A and consumed by B must be consistent with B’s assumptions Service: For B to execute correctly the semantics of services provided by A and used by B must be consistent with B’s assumptions

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 8 Prevent Ripple Effects (2/3) Sequence: Data: For B to execute correctly it must receive data produced by A in a fixed sequence. E.g., protocol headers before body Control: For B to execute correctly A must have executed within certain (time) constraints Identity of an interface of A: A may have multiple interfaces each of which has a definition that must remain consistent with B’s assumptions Location of A at runtime: If A is allowed to migrate B must know where it is.

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 9 Prevent Ripple Effects (3/3) Quality of service/ data provided by A Data accuracy Existence of A: Routeplanner – existence of GPS module ?  Startup scenario ! Resource behavior of A e.g., A uses the same memory as B Modifiability Tactics cannot avoid ripple effect but limit the effect of changes.

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 10 Modifiability Tactics Hide information The oldest of our tactics Uses anticipated changes as basis for decomposition Maintain existing interfaces Patterns for implementing this tactic  Adding interfaces  Adding an adapter  Providing a stub (just in case …) Restrict communication paths

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 11 Use intermediaries (1/2) Examples of Intermediaries Data(syntax):  data repositories (DB and blackboards) act as intermediary between producer and consumer of data Publish/subscribe services Service (syntax)  Patterns: façade, bridge, mediator, proxy, factory all provide intermediaries to convert from one syntax of a service to another

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 12 Use intermediaries (2/2) More intermediaries... Identity of interface of A:  A broker can be used to find the interface to perform a service, Location of A (runtime)  register with name-server Resource behavior of A or resource controlled by A  Resource manager is intermediary Existence of A:  the factory pattern can construct instances if needed

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 13 Defer Binding Time Modifiability scenarios include: Time to deploy Allowing non-developers to make changes What is binding time? Static vs dynamic: e.g. name binding in C++ & Java build time, installation, configuration or runtime. Deferring Binding Time supports both of these scenarios

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 14 Defer Binding Time Tactics Runtime registration supports plug-and-play at expense of registration overhead Configuration files allow set-up parameters to be initialized Polymorphism – late binding of method calls Component replacement allows load time binding Protocol adherence allows runtime binding of independent processes

Vakgroep Informatietechnologie – Onderzoeksgroep IBCN p. 15 Modifiability Tactics: summary Change Request Arrives Changes made, Tested and Deployed on Time, within Budget Modifiability Localize Changes Prevent Ripple Effect Defer Binding Time Hide Information Maintain existing interfaces Restrict communication paths Use an intermediary Semantic Coherence Anticipate changes Generalize Modules Limit Options Abstract Common Services Runtime Registration Configuration files Polymorphism Component Replacement Adherence to protocols