Interfaces Design by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base Class Problems Mixins and View-Based Composition
|
|
- Magnus Nicholson
- 7 years ago
- Views:
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
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 informationDesign 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 informationHistory 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 informationCase 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 informationCompiling 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 informationA 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 informationOn 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 informationCS-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 informationGlossary 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 informationJava (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 informationObject-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 informationObject 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 informationSoftware 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 informationRECURSIVE 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 informationProgramming 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 informationCSCI 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 informationChapter 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 informationFuzzy 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 informationRigorous 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 informationMachine 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 informationSafety & 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 informationIntegrating 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 information1. 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 informationDesign 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 informationSystems 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 informationAn 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 informationFormal 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 informationInfrastructure 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 informationProgramming 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 informationOverview. 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 informationAPPLE: 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 informationJOURNAL 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 informationJava 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 informationChecking 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 informationData 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 informationPERFORMANCE 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 informationSoftware 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 informationHW 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 informationForeverSOA: 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 informationUse 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 informationEvaluating 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 informationThe 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 informationA 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 informationBehavioral 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 informationMCI-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 informationObject 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 informationLink-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 informationLecture 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 informationDescription 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 informationAudio 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 informationImplementation 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 informationThe 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 informationCSE 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 informationON 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 informationCalculating 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 informationAnalyzing 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 informationManaging 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 informationPart 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 informationJava 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 informationAP 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 informationThe 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 informationIntroduction 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 informationOverview. 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 informationIngegneria 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 informationCLOSED-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 informationAspects 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 informationExamples 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 informationC++ 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 informationCooperative 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 informationLEAN 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 informationa. 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 informationThis 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 informationTo 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 informationAmbientes 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 informationComp 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 informationINHERITANCE, 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 informationWrite 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 informationAn 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 informationSoftware 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 informationHow 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 informationStack 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 informationKITES 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 informationJava 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 informationAn 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 informationC++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 informationA 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 informationAbstraction 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 informationDynamic 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 informationWORKSPACE 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 informationA 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 informationImplementing 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 informationHandout 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 informationLecture 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 informationComposing 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 informationObject 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 informationException 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 informationSensors 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 informationHabanero 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 informationObject-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 informationJava 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