Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Configuration management
Configuration management
Distributed Data Processing
Database System Concepts and Architecture
Chapter 19: Network Management Business Data Communications, 4e.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 11: Monitoring Server Performance.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Database System Development Lifecycle Transparencies
Passage Three Introduction to Microsoft SQL Server 2000.
INTRUSION DETECTION SYSTEMS Tristan Walters Rayce West.
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
Sitefinity Performance and Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Section 11.1 Identify customer requirements Recommend appropriate network topologies Gather data about existing equipment and software Section 11.2 Demonstrate.
Database Planning, Design, and Administration Transparencies
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
FMEA-technique of Web Services Analysis and Dependability Ensuring Anatoliy Gorbenko Vyacheslav Kharchenko Olga Tarasyuk National Aerospace University.
1 Chapter 11 Implementation. 2 System implementation issues Acquisition techniques Site implementation tools Content management and updating System changeover.
An Introduction to Software Architecture
Integrating Security Design Into The Software Development Process For E-Commerce Systems By: M.T. Chan, L.F. Kwok (City University of Hong Kong)
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Service Transition & Planning Service Validation & Testing
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Module 9 Planning a Disaster Recovery Solution. Module Overview Planning for Disaster Mitigation Planning Exchange Server Backup Planning Exchange Server.
Computer Emergency Notification System (CENS)
Microsoft ® Business Solutions–Navision ® 4.0 Development II - C/SIDE Solution Development Day 5.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Slide 12.1 Chapter 12 Implementation. Slide 12.2 Learning outcomes Produce a plan to minimize the risks involved with the launch phase of an e-business.
Lesson Overview 3.1 Components of the DBMS 3.1 Components of the DBMS 3.2 Components of The Database Application 3.2 Components of The Database Application.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
Quality of System requirements 1 Performance The performance of a Web service and therefore Solution 2 involves the speed that a request can be processed.
Chapter 3 Installing and Learning Software. 2Practical PC 5 th Edition Chapter 3 Getting Started In this Chapter, you will learn: − What is in an application.
Continuous Backup for Business CrashPlan PRO offers a paradigm of backup that includes a single solution for on-site and off-site backups that is more.
Construction Planning and Prerequisite
ECI – electronic Commerce Infrastructure “ An application to the Shares Market ” Demetris Zeinalipour ( Melinos Kyriacou
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Cluster Consistency Monitor. Why use a cluster consistency monitoring tool? A Cluster is by definition a setup of configurations to maintain the operation.
Module 12: Responding to Security Incidents. Overview Introduction to Auditing and Incident Response Designing an Audit Policy Designing an Incident Response.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Network management Network management refers to the activities, methods, procedures, and tools that pertain to the operation, administration, maintenance,
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Software Design and Architecture
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Chapter 6: Securing the Cloud
Business System Development
Systems Analysis and Design
Component Based Software Engineering
#01 Client/Server Computing
Introduction of Week 3 Assignment Discussion
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to Databases Transparencies
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 7 –Implementation Issues
#01 Client/Server Computing
Plug-In Architecture Pattern
Presentation transcript:

Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY

Causes of Architectural Adaptation  Change is triggered when someone determines that the behavior of a system is not as desired:  User – Doesn’t like the interface  Developer – Code optimization  Manager – Sees potential improvements

Basic Techniques  State: The run time values of a program’s objects. Since the values are constantly changing, state is relative to time.  Monitoring State is useful for discovering what will be effected when a change is made.  Unrepresented features might not rely on state  Example: Adding a feature to an ATM to trigger an alarm and go into safe mode when G-forces are detected.  Platform changes  Software might have to be changed in order to work on various platforms.

Gathering the State  Techniques:  Observing the User Interface  Monitoring a program  Bolt-on – hardware analyzers to inspect program state without disturbance to run time.  Seeding a program with print statements

Analyzing and Planning a Change  Monitor for specific situations:  Example: Electronic Commerce Application: When customer transactions increase, bring additional servers online  MTAT System: Helps engineers understand event based architecture using trace connectors. Trace connectors feed copies of all messages into a relational database.  This allows the engineer to understand the relationship of components. For example, when message a from component A is sent, then message b from component B is also sent.

Proposing a Change  Types of changes:  Patches: Initially used to refer to small changes to a file.  Service Packs: Collection of changes to an application  Upgrades: Improvements to speed or quality  Releases: Different versions of the software

Analyzing a Proposed Change  Is the solution complete and appropriate for deployment to the target platforms?  Are there any unattached links in the software?  Consistency  Are all components properly licensed? Example: GPL licenses on commercial products  Does communication between components meet security requirements? If over network is it encrypted?

Applying Changes to an Architecture  Once the changes needed are listed, a person is assigned to make the changes, and are responsible for making all of the requested changes.  Changes made are reviewed and tested.  Old system is compared to the new system to make sure desired modifications were successful.

Issues with Applying Changes  If a system is required to be online at all times, deployment can be difficult.  Failures during the update process due to network and host problems.

Styles That Support Adaption  ArchStudio – supports architecture based adaption.  Uses architecture implementation framework to ensure mapping between architecture and implementation.  Calculates the difference between two architectures  Merges the original and the differences (the new model is not needed). The merging engine acts as a change client.  Supports additions, modifications, and removal of elements.

Interface Focused Architectural Solutions  APIs (one of the most common adaptation methods) – Allow the developers to extend the application. Developers use existing functions and create new modules by combining these functions.  Plug-Ins – Similar to APIs, but instead of the component calling the original application, the application calls out to the added component. They are registered with the application so the application is aware of its existence.  Component/object Architectures – Add-ons alter the behavior of the host application by adding new components that interact with the existing components.

Interface Focused Architectural Solutions (Continued)  Scripting Languages: The application provides its own language and run time environment. The architect uses this to implement add-ons and allows the user to be more creative and use the program in their own way. Scripting languages can be easy enough for non-programmers to use.

On-The-Fly Autonomous Adaption Problems  Adapting a system while it remains in operation complicates the process.  Human adaption is absent or greatly minimized.  Compared to living in a house while under renovation: Sometimes necessary but seldom pleasant. Also compared to surgery, we want to keep the patient alive (running) while the procedure takes place.  Only run what is necessary to keep running  Timing: make changes during time of least activity  Restoration or transfer of state

Conditions for When to Effect a Change  Timing: Make changes at ideal times. Example: make changes to a weather satellite while the weather is clear since weather is typically slow changing.  Make changes to a component when it is going to be down anyways.  Some systems will be much more complicated and there might not be a good time to update. For this situation, try to make changes one component at a time to reduce down time and chances of error.

Management of State  Keep track of state. If component A is replaced with component B, then component B needs to start with the same state that component A ended with.  Externalize the state: Copy the state to a third party and initialize the new component from the third party upon startup.

Conclusion  Making changes to an application can vary in difficulty  Many techniques are available for making these changes and proper planning is important.  Designing a program with change in mind can help ease the process up improving the program.  Keep in mind potential improvements even if you don’t think they are likely to be added.