Seminar of “CBSE” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010 Adaptation of.

Slides:



Advertisements
Similar presentations
Software Engineering Techniques for the Development of System of Systems Seminar of “Component Base Software Engineering” course By : Marzieh Khalouzadeh.
Advertisements

Introduction To System Analysis and Design
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
Software Reuse Building software from reusable components Objectives
CS 501: Software Engineering
Design Patterns Based on Design Patterns. Elements of Reusable Object-Oriented Software. by E.Gamma, R. Helm, R. Johnson,J. Vlissides.
Building software from reusable components.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Abstract Data Types and Encapsulation Concepts
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Course Instructor: Aisha Azeem
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
An Object-Oriented Approach to Programming Logic and Design
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Ch:10 Component Level Design Unit 4. What is Component? A component is a modular building block for computer software Because components reside within.
Providing Policy Control Over Object Operations in a Mach Based System By Abhilash Chouksey
Introduction To System Analysis and Design
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
TK2023 Object-Oriented Software Engineering CHAPTER 3 CASE STUDY: POS SYSTEM.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
1 Chapter 1 Introduction to Databases Transparencies Last Updated: Pebruari 2010 By M. Arief Updated by RSO Feb 2011
Illustrations and Answers for TDT4252 exam, June
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Software Architecture & Component Orientation Jose Donate CS 6362.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Chapter 2 The Origins of Software Modern Systems Analysis and Design Fifth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
1 Chapter 11 © 1998 by Addison Wesley Longman, Inc The Concept of Abstraction - The concept of abstraction is fundamental in programming - Nearly.
1 Copyright © 1998 by Addison Wesley Longman, Inc. Chapter 10 Abstraction - The concept of abstraction is fundamental in programming - Nearly all programming.
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
IS301 – Software Engineering V:
11.1 The Concept of Abstraction
Chapter 16 – Software Reuse
Chapter 7 –Implementation Issues
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 16 – Software Reuse
Chapter 5 Architectural Design.
Oriented Design and Abstract Data Type
Presentation transcript:

Seminar of “CBSE” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010 Adaptation of Software Components

 different approaches to adapting software components.  component adaptation is a highly relevant problem to CBSE.  Component adaptation is different from software evolution  adapt components after they have available for purchase.  Components Adaptation vs adaptation of object-oriented programs.  We then evaluate various approaches to component adaptation against a set of requirements for adaptation mechanisms. Adaptation of Software Components 2 of 15

 The application builder must integrate the component into the original system.  this task may be complicated by syntactic incompatibilities between the interfaces. The builder can either  modify the original system to overcome these incompatibilities;  modify the component;  introduce a component adaptor.  Component designers cannot:  foresee every possible use of their component  respond to every modification request from their users.  We need to create mechanisms, whereby application- builders can adapt components without knowledge of the code Adaptation of Software Components 3 of 15

 software evolution  component designers modify the software component they designed,  Adaptation  application builder adapts a third-party component for a (possibly radically) different use.  differentiate adaptation from customization:  an end-user customized a software component by choosing from a fixed set of options (such as OIA/D).  An end-user adapts a software component by writing new code to alter existing functionality or behavior. Adaptation of Software Components 4 of 15

 Object-Oriented Design (OOD) embodies the principle of design for change.  OOD has two mechanisms that serve this purpose  First by designing classes with a public interface and private implementation, a class supports information hiding.  The class designer can insulate the clients of the class from the internal implementation  which usually changes more frequently than the interface definition  Second, inheritance is a mechanism by which an object acquires characteristics from one or more other objects. Adaptation of Software Components 5 of 15

 we compiled from various articles requirements for component adaptation.  It may not be possible for an adaptation mechanism to satisfy each requirement.  some of the requirements are:  partly contradictory (e.g. R2 & R4)  strongly related (e.g. R5 & R7)  By evaluating component adaptation mechanisms against these requirements, we can determine those requirements that are the most useful. Adaptation of Software Components 6 of 15

R4. Embedded  The adaptation mechanism should be built into the component. R5. Language Independence  the adaptation mechanism should not specifically depend on any one programming language. R6. Composable  the adapted component should continue to be composable with other components; the actual adaptation should be composable with other adaptations. Adaptation of Software Components 7 of 15

R7. Reusable  one should be able to reuse the code written to adapt a component. R8. Architecturally Aware  A component-based application should have some global concept of architecture, and the specification and/or implementation of the adaptation should be visible at this architectural level. R9. Configurable  An adaptation mechanism should be capable of applying the same particular adaptation (a generic part) to a particular set of target characteristics (the specific parts). Synonymous with Repeatable or Template-drive. Adaptation of Software Components 8 of 15

Adaptation of Software Components 9 of 15

 The comparison matrix reveals various correlations between the requirements and mechanisms.  here is strong agreement that requirements R1-R4 are suitable for adaptation mechanisms (as shown in the upper left quadrant). Adaptation of Software Components 10 of 15

 This reflects, perhaps, the fact that requirements R1 (Black-Box), R2 (Transparent), and R4 (Embedded) relate to structural issues.  The lower right quadrant of the matrix strongly agrees that the various mechanisms (Inheritance, Wrapping, and Copy-Paste) are not satisfactory. Adaptation of Software Components 11 of 15

 Open Implementation was developed to help the designer of a component create a highly customizable component, rather than one that would be easy to adapt.  The upper right quadrant contains mixed results, and instead of being used to globally select which adaptation mechanism is "best", these results should be used to guide component designers to select the adaptation mechanism best suited to their own concerns. Adaptation of Software Components 12 of 15

 There is a direct correlation between R2 (Transparent) and R3 (Flexibility)  A strong correlation exists between R7 (Reusable) and R8 (Architecturally aware).  A negative correlation exists between R5 (Language Independence) and R9 (Configurable) Adaptation of Software Components 13 of 15

 This evaluation survey provides an interesting overview of the state- of-the-art in component adaptation and provides a good starting point for discussions on the nature of component adaptation mechanisms.  Under the Technology supporting CBSE reusable components must be discussed within the framework of how application builders will adapt them.  Integration technologies should not be limited to Run Time support; rather it should include such static mechanisms as discussed in this paper.  Finally, from a philosophical perspective, it is important to differentiate software reuse (which traditionally has been a means of reusing functional code libraries or frameworks) from reusable components (which bring in the notion of adapting behavior). Adaptation of Software Components 14 of 15

Adaptation of Software Components George T. Heineman Computer Science Department WPI Worcester, MA WPI-CS-TR Adaptation of Software Components 15 of 15