Interfaces Design by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base Class Problems Mixins and View-Based Composition

Size: px
Start display at page:

Download "Interfaces Design by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base Class Problems Mixins and View-Based Composition"

Transcription

1 TDDD05 Coponent-Based Software DF14900 Software Engineering CUGS Interfaces Design by Contract Syntactic Substitutability Inheritance Considered Harful Fragile Base Class Probles Mixins and View-Based Coposition Christoph Kessler, IDA, Linköpings universitet. 2.2 TDDD05 / DF14900

2 Interfaces = eans by which coponents connect: Set of naed operations that can be called by clients With specified seantics To be respected both by coponent provider and by client Direct interfaces Procedural interfaces of traditional libraries Directly (explicitly) provided by a coponent Static ethod dispatch Indirect interfaces Object interfaces Provided by the objects instantiated fro the coponent Dynaic ethod dispatch potentially routed to a third coponent Procedural interface ay be odeled as object interface for a static object within the coponent (singleton) 2.3 TDDD05 / DF14900 Coponent (a specialized class) Dictionary spellcheck synonys suppleent Provided interfaces Required interface spellcheck Dictionary synonys suppleent WordProcessor 2.4 TDDD05 / DF14900

3 2.5 TDDD05 / DF14900 copatible 2.6 TDDD05 / DF14900

4 2.7 TDDD05 / DF14900 Given a declaration of a variable or paraeter of type X: X x; or (, X x, ) { } Any instance of a class Y that is a descendant of X (including X itself) ay be used as the actual value of x without violating the seantics of the declaration of its use: Y y; x = y; or call (, y, ); Because an Y instance understands all ethods that an X instance ust have. But x.(..) and y.(..) do not necessarily call the sae ethod! (polyorphis) -> syntactic, but not seantic substitutability X ust be sae or a supertype of Y Y ust be sae or a subtype of X (e.g., a superclass) (e.g., a subclass) ACM - Turing Award 2009! Also called Liskov substitutability (attr. to B. Liskov, MIT) 2.8 TDDD05 / DF14900

5 Subclass as subcontractor : Conforance rules for polyorphic ethod interfaces in OO languages Provider of a subclass ( ) ay expect less than the contract guarantees For input paraeters (foral paraeters): Contravariance and invariance is possible but not covariance Provider of subclass can substitute a supertype (e.g., superclass paraeter type -> ore general type accepted, overfulfills contract For output paraeters (return values, thrown exceptions): Covariance and invariance is possible but not contravariance Provider of subclass can substitute a subtype (e.g., subclass result type -> ore specific type returned, overfulfills contract Workaround ay require downcasts with dynaic type checking ) for a ) for a 2.9 TDDD05 / DF TDDD05 / DF14900

6 Deanding a as input paraeter type would break the contract set by the base class TDDD05 / DF14900 Seantic substitutability = conforant types +? Hoare triplets: {precondition} operation {postcondition} [Hoare 69] Preconditions of an operation: True on invocation Callee s / provider s requireents Postconditions of an operation: True on return Callee s / provider s proise to caller / client May be forulated e.g. in UML-Object Constraint Language OCL Deand no ore, provide no less : Contract precondition ust iply provider s precondition Provider s postcondition ust iply contract postcondition 2.12 TDDD05 / DF14900

7 interface TextModel { int ax(); // axiu length this text can have int length(); // current length char read ( int pos ); // character at position pos void write ( int pos, char ch ); // insert ch at pos // [ len: int, txt: array of char :: // pre len := this.length(); // (all i: 0<=i<len: txt[i] := this.read( i )); // len < this.ax() and 0 <= pos <= len // post this.length() = len + 1 // and (all i: 0<=i<pos: this.read( i ) = txt[i] ) // and this.read( pos ) = ch e x a p l e t e x t // and (all i: pos<i<this.length(): this.read( i ) = txt[i-1] ) ] pos len ax 2.13 TDDD05 / DF14900 class GreatTextModel ipleents TextModel {... // as in TextModel on previous slide e x a p l e t e x t len n pos ax void write ( int pos, char ch ); // insert ch at pos // [ len: int, txt: array of char :: Allow insertions past the end of the current // pre len := this.length(); text (i.e., beyond len) // (all i: 0<=i<len: txt[i] := this.read( i )); by padding with blanks if necessary. // len < this.ax() and 0 <= pos < this.ax() // post this.length() = ax ( len, pos ) + 1 // and (all i: 0<=i< in ( pos, len ): this.read( i ) = txt[i] ) // and this.read( pos ) = ch // and (all i: pos < i <= len: this.read( i ) = txt[i-1] ) ] // and (all i: len < i < pos: this.read(i) = ) ] 2.14 TDDD05 / DF14900

8 Superclasses (e.g., syste library classes) ay evolve Advantage: bugfixes visible to all subclasses. But... Syntactic Fragile Base Class Proble binary copatibility of copiled classes with new binary releases of superclasses release-to-release binary copatibility Ideally, recopilation should not be necessary in case of purely syntactic changes of superclasses interfaces, e.g.: Methods ay ove upwards in the class hierarchy Methods ay be reoved, replaced, added... Seantic Fragile Base Class Proble How can a subclass reain valid (keep its seantic contract) if functionality inherited fro the superclass evolves? 2.15 TDDD05 / DF14900 syntactic A A () () base class B B call call C C 2.16 TDDD05 / DF14900

9 class B { // base class int p; char x; public: B s vtable: virtual void () {...} b virtual void ( void ) {... } p 1 virtual int () {... } } b; x 2 class C : B { // subclass of B C s vtable: C s float w; c public: p 1 virtual char* tee() {... } x 2 virtual int () {...} // override w tee } c; 3 tee B s : : Translation of a virtual ethod call in C++: Sae offsets in vtable! soemethod ( B q ) { R1 := q; // self pointer for q passed in R1... // ay pass a B or C... R2 := *q; // vtable address for q s class q.(); R2 := *(R2 + 1*4); // index offset 1 by copiler call R TDDD05 / DF14900 Changed: Method oved up into superclass, new ethod ny added B s : ny class B :A { // refact. base class int p; char x; public: B s vtable: virtual char ny () {... } b virtual void ( void ) {... } p 1 ny virtual int () {... } } b; x 2 3 class C : B { // subclass of B C s vtable:? C s float w; // not recopiled c public: p 1 virtual char* tee() {... } x 2 virtual int () {...} // override w tee } c; 3 tee Stale offset values into C s vtable Not-recopiled virtual ethod call: if C is not recopiled! soemethod( B q ) { R1 := q; // self pointer for q passed in R1... // ay pass a B or C... R2 := *q; // vtable address for q s class q.(); R2 := *(R2 + 1*4); // index offset 1 by copiler call R2 : 2.18 TDDD05 / DF14900

10 Changed: Method oved up into superclass, new ethod ny added B s : ny class B { // refact. base class int p; char x; public: B s vtable: virtual char ny () {... } b virtual void ( void ) {... } p 1 ny virtual int () {... } } b; x 2 3 class C : B { // subclass of B C s vtable:? C s float w; // not recopiled c public: p 1 virtual char* tee() {... } x 2 virtual int () {...} // override w tee } c; 3 tee : Stale offset values into C s vtable Recopiled virtual ethod call: if C is not recopiled! soemethod( B q ) { R1 := q; // self pointer for q passed in R1... // ay pass a B or C... R2 := *q; // vtable address for q s class q.(); R2 := *(R2 + 2*4); // index offset 2 by copiler call R TDDD05 / DF14900 ECOOP 98, Springer LNCS Class Bag { Correct change Class Bag { char [] bag;... within Bag char [] bag;... void add ( char c ) {... } void add ( char c ) {... } void addall ( char[] ac, int n ) { void addall ( char[] ac, int n ) { evolves /* new ipleentation for (int i=...) self.add( ac[i] );...} without calling add() */... } int cardinality () { return... } int cardinality() {... } but breaks } } the contract of Class CountingBag : Bag { CountingBag Class CountingBag : Bag { int counter;... int counter;... void add ( char c ) { Unchanged void add ( char c ) { counter++; super.add( c ); } (but recopiled) counter++; super.add( c ); } int cardinality() { return counter; } } int cardinality() { return counter;} } 2.20 TDDD05 / DF14900

11 Replace ipleentation inheritance by object coposition A core coponent is extended by a view coponent Mixin: class fragent used for deriving a subclass Class vs. object level, static vs. dynaic Base class Mixin new subclass Variations on this topic: Mixin-Based Inheritance IBM SOM CoSy generated access layer to IR EJB and Corba CCM Containers + Interfaces Stata-Guttag transforation Subject-Oriented Prograing Object Coposition AOP and Invasive Software Coposition extend operation: this is etaprograing! 2.21 TDDD05 / DF14900 Software coponents need well-defined interfaces and encapsulation Interfaces and Design by Contract Syntactic substitutability, Covariance and Contravariance Operations, pre- and postconditions Deand no ore, provide no less OOP is not the silver bullet for coponent-based software engineering Classes are an overloaded concept: Type (-> super-/subtype conforance), interface/encapsulation, ipleentation inheritance, interface inheritance, object instantiation Ipleentation inheritance and dynaic ethod dispatch break encapsulation (is white-box reuse; but coponents are black boxes ) Contravariance proble for input paraeters Fragile base class proble Possible solutions/workarounds (not perfect either): Taed inheritance by Mixins / View-based Coposition / Object Coposition / SOP / AOP / TDDD05 / DF14900

12 Szyperski et al.: Coponent Software Beyond Object-Oriented Prograing. 2nd edition, Chapters 5, 6, 7. Stevens: Using UML, Software Engineering with Objects and Coponents. 2nd edition, Addison-Wesley, U. Assann: Invasive Software Coposition. Springer, B. Meyer: Applying Design by Contract. IEEE Coputer, Oct. 1992, pp B. Liskov and J. Wing. Faily Values: A Behavioral Notion of Subtyping. ACM Transactions on Prograing Languages and Systes, Nov L. Mikhajlov, E. Sekerinski: A Study of The Fragile Base Class Proble. ECOOP 98, Springer LNCS 1445: , W. Harrison, H. Ossher: Subject-Oriented Prograing (A Critique of Pure Objects). ACM OOPSLA 93 pp IBM SOP: TDDD05 / DF TDDD05 / DF14900

Implementation Aspects of OO-Languages

Implementation Aspects of OO-Languages 1 Implementation Aspects of OO-Languages Allocation of space for data members: The space for data members is laid out the same way it is done for structures in C or other languages. Specifically: The data

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk

History OOP languages Year Language 1967 Simula-67 1983 Smalltalk History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects

More information

A SOA-Based Architecture Framework

A SOA-Based Architecture Framework A SOA-Based Architecture Fraework Wil M. P. van der Aalst, Michael Beisiegel 2, Kees M. van Hee, Dieter König 3, and Christian Stahl Departent of Matheatics and Coputer Science Eindhoven University of

More information

On the Relation between Design Contracts and Errors: A Software Development Strategy

On the Relation between Design Contracts and Errors: A Software Development Strategy On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,

More information

CS-XXX: Graduate Programming Languages. Lecture 25 Multiple Inheritance and Interfaces. Dan Grossman 2012

CS-XXX: Graduate Programming Languages. Lecture 25 Multiple Inheritance and Interfaces. Dan Grossman 2012 CS-XXX: Graduate Programming Languages Lecture 25 Multiple Inheritance and Interfaces Dan Grossman 2012 Multiple Inheritance Why not allow class C extends C1,C2,...{...} (and C C1 and C C2)? What everyone

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the

More information

RECURSIVE DYNAMIC PROGRAMMING: HEURISTIC RULES, BOUNDING AND STATE SPACE REDUCTION. Henrik Kure

RECURSIVE DYNAMIC PROGRAMMING: HEURISTIC RULES, BOUNDING AND STATE SPACE REDUCTION. Henrik Kure RECURSIVE DYNAMIC PROGRAMMING: HEURISTIC RULES, BOUNDING AND STATE SPACE REDUCTION Henrik Kure Dina, Danish Inforatics Network In the Agricultural Sciences Royal Veterinary and Agricultural University

More information

Programming Languages Featherweight Java David Walker

Programming Languages Featherweight Java David Walker Programming Languages Featherweight Java David Walker Overview Featherweight Java (FJ), a minimal Javalike language. Models inheritance and subtyping. Immutable objects: no mutation of fields. Trivialized

More information

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship. CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

More information

Fuzzy Sets in HR Management

Fuzzy Sets in HR Management Acta Polytechnica Hungarica Vol. 8, No. 3, 2011 Fuzzy Sets in HR Manageent Blanka Zeková AXIOM SW, s.r.o., 760 01 Zlín, Czech Republic blanka.zekova@sezna.cz Jana Talašová Faculty of Science, Palacký Univerzity,

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

Machine Learning Applications in Grid Computing

Machine Learning Applications in Grid Computing Machine Learning Applications in Grid Coputing George Cybenko, Guofei Jiang and Daniel Bilar Thayer School of Engineering Dartouth College Hanover, NH 03755, USA gvc@dartouth.edu, guofei.jiang@dartouth.edu

More information

Safety & Security. Software Technologies. Software Technologies. Software Technologies. Safety & Security Standards

Safety & Security. Software Technologies. Software Technologies. Software Technologies. Safety & Security Standards Safety & Security Safety, Security, and OOP: Inheritance, ynamic inding, Testing Franco Gasperoni gasperoni@adacore.com Jose F. Ruiz ruiz@adacore.com SI 2006 2006 erlin, 22-25 May 2006 www.adacore.com

More information

Integrating Interface Assertion Checkers into Component Models

Integrating Interface Assertion Checkers into Component Models Integrating Interface Assertion Checkers into Component Models George T. Heineman Worcester Polytechnic Institute 100 Institute Road Worcester, MA (508) 831-5502 heineman@cs.wpi.edu ABSTRACT Run-time enforcement

More information

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms

1. What are Data Structures? Introduction to Data Structures. 2. What will we Study? CITS2200 Data Structures and Algorithms 1 What are ata Structures? ata Structures and lgorithms ata structures are software artifacts that allow data to be stored, organized and accessed Topic 1 They are more high-level than computer memory

More information

Design of Model Reference Self Tuning Mechanism for PID like Fuzzy Controller

Design of Model Reference Self Tuning Mechanism for PID like Fuzzy Controller Research Article International Journal of Current Engineering and Technology EISSN 77 46, PISSN 347 56 4 INPRESSCO, All Rights Reserved Available at http://inpressco.co/category/ijcet Design of Model Reference

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

An Integrated Approach for Monitoring Service Level Parameters of Software-Defined Networking

An Integrated Approach for Monitoring Service Level Parameters of Software-Defined Networking International Journal of Future Generation Counication and Networking Vol. 8, No. 6 (15), pp. 197-4 http://d.doi.org/1.1457/ijfgcn.15.8.6.19 An Integrated Approach for Monitoring Service Level Paraeters

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement

More information

Overview. Database Security. Relational Database Basics. Semantic Integrity Controls. Access Control Rules- Name dependent access

Overview. Database Security. Relational Database Basics. Semantic Integrity Controls. Access Control Rules- Name dependent access Database ecurity ione FischerHübner Applied ecurity, DAVC7 Overview eantic Integrity Controls Access Control Rules Multilevel ecure Databases RBAC in Coercial DBM tatistical Database ecurity Relational

More information

APPLE: Advanced Procedural Programming Language Elements

APPLE: Advanced Procedural Programming Language Elements APPLE: Advanced Procedural Programming Language Elements Christian Heinlein Dept. of Computer Structures, University of Ulm, Germany heinlein@informatik.uni ulm.de Abstract. Today s programming languages

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 3 Special issue: TOOLS USA 2002 proceedings Evaluation of Assertion Support

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

Checking Access to Protected Members in the Java Virtual Machine

Checking Access to Protected Members in the Java Virtual Machine Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/

More information

Data Abstraction and Hierarchy

Data Abstraction and Hierarchy Data Abstraction and Hierarchy * This research was supported by the NEC Professorship of Software Science and Engineering. Barbara Liskov Affiliation: MIT Laboratory for Computer Science Cambridge, MA,

More information

PERFORMANCE METRICS FOR THE IT SERVICES PORTFOLIO

PERFORMANCE METRICS FOR THE IT SERVICES PORTFOLIO Bulletin of the Transilvania University of Braşov Series I: Engineering Sciences Vol. 4 (53) No. - 0 PERFORMANCE METRICS FOR THE IT SERVICES PORTFOLIO V. CAZACU I. SZÉKELY F. SANDU 3 T. BĂLAN Abstract:

More information

Software Component Specification Using Design by Contract

Software Component Specification Using Design by Contract Software Component Specification Using Design by Contract Yi Liu and H. Conrad Cunningham Department of Computer and Information Science University of Mississippi 237 Kinard Hall University, MS 38677 USA

More information

HW 2. Q v. kt Step 1: Calculate N using one of two equivalent methods. Problem 4.2. a. To Find:

HW 2. Q v. kt Step 1: Calculate N using one of two equivalent methods. Problem 4.2. a. To Find: HW 2 Proble 4.2 a. To Find: Nuber of vacancies per cubic eter at a given teperature. b. Given: T 850 degrees C 1123 K Q v 1.08 ev/ato Density of Fe ( ρ ) 7.65 g/cc Fe toic weight of iron ( c. ssuptions:

More information

ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software

ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software Dionysis Athanasopoulos, PhD student In collaboration with A. Zarras, V. Issarny SQM 2009 Dept. of Computer Science,

More information

Use of extrapolation to forecast the working capital in the mechanical engineering companies

Use of extrapolation to forecast the working capital in the mechanical engineering companies ECONTECHMOD. AN INTERNATIONAL QUARTERLY JOURNAL 2014. Vol. 1. No. 1. 23 28 Use of extrapolation to forecast the working capital in the echanical engineering copanies A. Cherep, Y. Shvets Departent of finance

More information

Evaluating Inventory Management Performance: a Preliminary Desk-Simulation Study Based on IOC Model

Evaluating Inventory Management Performance: a Preliminary Desk-Simulation Study Based on IOC Model Evaluating Inventory Manageent Perforance: a Preliinary Desk-Siulation Study Based on IOC Model Flora Bernardel, Roberto Panizzolo, and Davide Martinazzo Abstract The focus of this study is on preliinary

More information

The Virtual Spring Mass System

The Virtual Spring Mass System The Virtual Spring Mass Syste J. S. Freudenberg EECS 6 Ebedded Control Systes Huan Coputer Interaction A force feedbac syste, such as the haptic heel used in the EECS 6 lab, is capable of exhibiting a

More information

A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization

A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization Ciprian-Bogdan Chirila *, Pierre Crescenzo **, and Philippe Lahire ** * University Politehnica

More information

Behavioral Contracts and Behavioral Subtyping

Behavioral Contracts and Behavioral Subtyping Behavioral ontracts and Behavioral Subtyping Robert Bruce Findler Rice University 6100 South Main; MS 132 Houston, TX 77006; USA Mario Latendresse Rice University Matthias Felleisen Rice University Northeastern

More information

MCI-Java: A Modified Java Virtual Machine Approach to Multiple Code Inheritance

MCI-Java: A Modified Java Virtual Machine Approach to Multiple Code Inheritance This is pre-print of a paper that will appear in the Proceedings of: 3 rd Virtual Machine Research & Technology Symposium Usenix VM 4, May 6-7, 24, San Jose, alifornia. MI-Java: Modified Java Virtual Machine

More information

Object Oriented Software Design - I

Object Oriented Software Design - I Object Oriented Software Design - I Object Oriented Design Principles Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2011 G. Lipari (Scuola Superiore Sant Anna)

More information

Link-Time Static Analysis for Efficient Separate Compilation of Object-Oriented Languages

Link-Time Static Analysis for Efficient Separate Compilation of Object-Oriented Languages Link-Time Static Analysis for Efficient Separate Compilation of Object-Oriented Languages Jean Privat Roland Ducournau LIRMM CNRS/Université Montpellier II France Program Analysis for Software Tools and

More information

Lecture L9 - Linear Impulse and Momentum. Collisions

Lecture L9 - Linear Impulse and Momentum. Collisions J. Peraire, S. Widnall 16.07 Dynaics Fall 009 Version.0 Lecture L9 - Linear Ipulse and Moentu. Collisions In this lecture, we will consider the equations that result fro integrating Newton s second law,

More information

Description of Class Mutation Mutation Operators for Java

Description of Class Mutation Mutation Operators for Java Description of Class Mutation Mutation Operators for Java Yu-Seung Ma Electronics and Telecommunications Research Institute, Korea ysma@etri.re.kr Jeff Offutt Software Engineering George Mason University

More information

Audio Engineering Society. Convention Paper. Presented at the 119th Convention 2005 October 7 10 New York, New York USA

Audio Engineering Society. Convention Paper. Presented at the 119th Convention 2005 October 7 10 New York, New York USA Audio Engineering Society Convention Paper Presented at the 119th Convention 2005 October 7 10 New York, New York USA This convention paper has been reproduced fro the authors advance anuscript, without

More information

Implementation of Active Queue Management in a Combined Input and Output Queued Switch

Implementation of Active Queue Management in a Combined Input and Output Queued Switch pleentation of Active Queue Manageent in a obined nput and Output Queued Switch Bartek Wydrowski and Moshe Zukeran AR Special Research entre for Ultra-Broadband nforation Networks, EEE Departent, The University

More information

The Best Software Testing Arie Van Deursen TU Delft, 2011

The Best Software Testing Arie Van Deursen TU Delft, 2011 Favorite Picks in Software Testing Arie van Deursen TU Delft @avandeursen Kickoff presentation Test Week Stabiplan, 2011 1 Outline 1. Background 2. Test Strategies 3. Test Week Objectives 4. Selected Strategies

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Subtypes and Subclasses (Slides bymike Ernst and David Notkin) 1 What is subtyping? Sometimes every B is an A A In a library database: every

More information

ON SELF-ROUTING IN CLOS CONNECTION NETWORKS. BARRY G. DOUGLASS Electrical Engineering Department Texas A&M University College Station, TX 77843-3128

ON SELF-ROUTING IN CLOS CONNECTION NETWORKS. BARRY G. DOUGLASS Electrical Engineering Department Texas A&M University College Station, TX 77843-3128 ON SELF-ROUTING IN CLOS CONNECTION NETWORKS BARRY G. DOUGLASS Electrical Engineering Departent Texas A&M University College Station, TX 778-8 A. YAVUZ ORUÇ Electrical Engineering Departent and Institute

More information

Calculating the Return on Investment (ROI) for DMSMS Management. The Problem with Cost Avoidance

Calculating the Return on Investment (ROI) for DMSMS Management. The Problem with Cost Avoidance Calculating the Return on nvestent () for DMSMS Manageent Peter Sandborn CALCE, Departent of Mechanical Engineering (31) 45-3167 sandborn@calce.ud.edu www.ene.ud.edu/escml/obsolescence.ht October 28, 21

More information

Analyzing Spatiotemporal Characteristics of Education Network Traffic with Flexible Multiscale Entropy

Analyzing Spatiotemporal Characteristics of Education Network Traffic with Flexible Multiscale Entropy Vol. 9, No. 5 (2016), pp.303-312 http://dx.doi.org/10.14257/ijgdc.2016.9.5.26 Analyzing Spatioteporal Characteristics of Education Network Traffic with Flexible Multiscale Entropy Chen Yang, Renjie Zhou

More information

Managing Complex Network Operation with Predictive Analytics

Managing Complex Network Operation with Predictive Analytics Managing Coplex Network Operation with Predictive Analytics Zhenyu Huang, Pak Chung Wong, Patrick Mackey, Yousu Chen, Jian Ma, Kevin Schneider, and Frank L. Greitzer Pacific Northwest National Laboratory

More information

Part I. Multiple Choice Questions (2 points each):

Part I. Multiple Choice Questions (2 points each): Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******

More information

Java Interfaces. Recall: A List Interface. Another Java Interface Example. Interface Notes. Why an interface construct? Interfaces & Java Types

Java Interfaces. Recall: A List Interface. Another Java Interface Example. Interface Notes. Why an interface construct? Interfaces & Java Types Interfaces & Java Types Lecture 10 CS211 Fall 2005 Java Interfaces So far, we have mostly talked about interfaces informally, in the English sense of the word An interface describes how a client interacts

More information

AP Computer Science Java Subset

AP Computer Science Java Subset APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall

More information

The Interface Concept

The Interface Concept Multiple inheritance Interfaces Four often used Java interfaces Iterator Cloneable Serializable Comparable The Interface Concept OOP: The Interface Concept 1 Multiple Inheritance, Example Person name()

More information

Introduction to Unit Conversion: the SI

Introduction to Unit Conversion: the SI The Matheatics 11 Copetency Test Introduction to Unit Conversion: the SI In this the next docuent in this series is presented illustrated an effective reliable approach to carryin out unit conversions

More information

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example

Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles Ingegneria del Software Corso di Laurea in Informatica per il Management Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal of design-related

More information

CLOSED-LOOP SUPPLY CHAIN NETWORK OPTIMIZATION FOR HONG KONG CARTRIDGE RECYCLING INDUSTRY

CLOSED-LOOP SUPPLY CHAIN NETWORK OPTIMIZATION FOR HONG KONG CARTRIDGE RECYCLING INDUSTRY CLOSED-LOOP SUPPLY CHAIN NETWORK OPTIMIZATION FOR HONG KONG CARTRIDGE RECYCLING INDUSTRY Y. T. Chen Departent of Industrial and Systes Engineering Hong Kong Polytechnic University, Hong Kong yongtong.chen@connect.polyu.hk

More information

Aspects for Testing Aspects?

Aspects for Testing Aspects? Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de

More information

Examples of Design by Contract in Java

Examples of Design by Contract in Java Object World Berlin 99 Design & Components Berlin, May 17th-20th 1999 Examples of Design by Contract in Java using Contract, the Design by Contract tm Tool for Java tm Reto Kramer, kramer@acm.org Java

More information

C++ INTERVIEW QUESTIONS

C++ INTERVIEW QUESTIONS C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get

More information

Cooperative Caching for Adaptive Bit Rate Streaming in Content Delivery Networks

Cooperative Caching for Adaptive Bit Rate Streaming in Content Delivery Networks Cooperative Caching for Adaptive Bit Rate Streaing in Content Delivery Networs Phuong Luu Vo Departent of Coputer Science and Engineering, International University - VNUHCM, Vietna vtlphuong@hciu.edu.vn

More information

LEAN FOR FRONTLINE MANAGERS IN HEALTHCARE An action learning programme for frontline healthcare managers

LEAN FOR FRONTLINE MANAGERS IN HEALTHCARE An action learning programme for frontline healthcare managers Course Code: L024 LEAN FOR FRONTLINE MANAGERS IN HEALTHCARE An action learning prograe for frontline healthcare anagers 6 days Green Belt equivalent Are you ready to challenge the status quo and transfor

More information

a. Inheritance b. Abstraction 1. Explain the following OOPS concepts with an example

a. Inheritance b. Abstraction 1. Explain the following OOPS concepts with an example 1. Explain the following OOPS concepts with an example a. Inheritance It is the ability to create new classes that contain all the methods and properties of a parent class and additional methods and properties.

More information

This paper should be referenced as:

This paper should be referenced as: This paper should be referenced as: Connor, R.C.H., Dearle, A., Morrison, R. & Brown, A.L. An Object Addressing Mechanism for Statically Typed Languages with Multiple Inheritance. In Proc. OOPSLA'89, New

More information

To identify entities and their relationships. To describe entities using attributes, multivalued attributes, derived attributes, and key attributes.

To identify entities and their relationships. To describe entities using attributes, multivalued attributes, derived attributes, and key attributes. CHAPTER 3 Database Design Objectives To use ER odeling to odel data. To identify entities and their relationships. To describe entities using attributes, ultivalued attributes, derived attributes, and

More information

Ambientes de Desenvolvimento Avançados

Ambientes de Desenvolvimento Avançados Ambientes de Desenvolvimento Avançados http://www.dei.isep.ipp.pt/~jtavares/adav/adav.htm Aula 5 Engenharia Informática 2006/2007 José António Tavares jrt@isep.ipp.pt 1 O que é um componente e o que não

More information

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111 Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo

More information

INHERITANCE, SUBTYPING, PROTOTYPES in Object-Oriented Languages. Orlin Grigorov McMaster University CAS 706, Fall 2006 ogrigorov@gmail.

INHERITANCE, SUBTYPING, PROTOTYPES in Object-Oriented Languages. Orlin Grigorov McMaster University CAS 706, Fall 2006 ogrigorov@gmail. INHERITANCE, SUBTYPING, PROTOTYPES in Object-Oriented Languages Orlin Grigorov McMaster University CAS 706, Fall 2006 ogrigorov@gmail.com Two kinds of OO programming languages CLASS-BASED Classes Instances

More information

Write Barrier Removal by Static Analysis

Write Barrier Removal by Static Analysis Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, rinard@lcs.mit.edu ABSTRACT We present

More information

An Architecture-Based Approach for Component-Oriented Development

An Architecture-Based Approach for Component-Oriented Development An Architecture-Based Approach for Component-Oriented Development Feng Chen, Qianxiang Wang, Hong Mei, Fuqing Yang Department of Computer Science and Technology, Peking University, Beijing 100871, P.R.China

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

Stack Allocation. Run-Time Data Structures. Static Structures

Stack Allocation. Run-Time Data Structures. Static Structures Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating

More information

An Improved Decision-making Model of Human Resource Outsourcing Based on Internet Collaboration

An Improved Decision-making Model of Human Resource Outsourcing Based on Internet Collaboration International Journal of Hybrid Inforation Technology, pp. 339-350 http://dx.doi.org/10.14257/hit.2016.9.4.28 An Iproved Decision-aking Model of Huan Resource Outsourcing Based on Internet Collaboration

More information

C++FA 5.1 PRACTICE MID-TERM EXAM

C++FA 5.1 PRACTICE MID-TERM EXAM C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer

More information

A Study of The Fragile Base Class Problem Leonid Mikhajlov 1 and Emil Sekerinski 2 1 Turku Centre for Computer Science, Lemminkaisenkatu 14A, Turku 20520, Finland; lmikhajl@aton.abo. 2 McMaster University,

More information

Abstraction Mechanisms in Theta

Abstraction Mechanisms in Theta Abstraction Mechanisms in Theta Mark Day Robert Gruber Barbara Liskov Andrew C. Myers Programming Methodology Group Memo 81 February 1994 MIT Laboratory for Computer Science 545 Technology Square Cambridge,

More information

Dynamic Placement for Clustered Web Applications

Dynamic Placement for Clustered Web Applications Dynaic laceent for Clustered Web Applications A. Karve, T. Kibrel, G. acifici, M. Spreitzer, M. Steinder, M. Sviridenko, and A. Tantawi IBM T.J. Watson Research Center {karve,kibrel,giovanni,spreitz,steinder,sviri,tantawi}@us.ib.co

More information

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER Course Outline (2015) Basic Programming With Procedural & Object Oriented Concepts (C, C++) Training Office# Road: 11, House: 1 A, Nikunja 2, Khilkhet,

More information

A Soft Real-time Scheduling Server on the Windows NT

A Soft Real-time Scheduling Server on the Windows NT A Soft Real-tie Scheduling Server on the Windows NT Chih-han Lin, Hao-hua Chu, Klara Nahrstedt Departent of Coputer Science University of Illinois at Urbana Chapaign clin2, h-chu3, klara@cs.uiuc.edu Abstract

More information

Implementing Statically Typed Object-Oriented Programming Languages

Implementing Statically Typed Object-Oriented Programming Languages Implementing Statically Typed Object-Oriented Programming Languages ROLAND DUCOURNAU LIRMM CNRS et Université Montpellier II, France Object-oriented programming represents an original implementation issue

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance

Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance Introduction to C++ January 19, 2011 Massachusetts Institute of Technology 6.096 Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance We ve already seen how to define composite datatypes

More information

Composing Concerns with a Framework Approach

Composing Concerns with a Framework Approach Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago cac@cs.luc.edu 2 Concurrent

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

Exception Handling. Overloaded methods Interfaces Inheritance hierarchies Constructors. OOP: Exception Handling 1

Exception Handling. Overloaded methods Interfaces Inheritance hierarchies Constructors. OOP: Exception Handling 1 Exception Handling Error handling in general Java's exception handling mechanism The catch-or-specify priciple Checked and unchecked exceptions Exceptions impact/usage Overloaded methods Interfaces Inheritance

More information

Sensors as a Service Oriented Architecture: Middleware for Sensor Networks

Sensors as a Service Oriented Architecture: Middleware for Sensor Networks Sensors as a Service Oriented Architecture: Middleware for Sensor Networks John Ibbotson, Christopher Gibson, Joel Wright, Peter Waggett, IBM U.K Ltd, Petros Zerfos, IBM Research, Boleslaw K. Szyanski,

More information

Habanero Extreme Scale Software Research Project

Habanero Extreme Scale Software Research Project Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead

More information

Object-Oriented Middleware for Distributed Systems

Object-Oriented Middleware for Distributed Systems Object-Oriented Middleware for Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini after Giovanni Rimassa andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di

More information

Java Programming Language

Java Programming Language Lecture 1 Part II Java Programming Language Additional Features and Constructs Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Subclasses and

More information