Use vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse.
|
|
- Kerry Ray
- 5 years ago
- Views:
Transcription
1 Learning Object-Oriented Programming and Design with TDD Use vs. Inheritance Stéphane Ducasse W6S06
2 W6S06 2 / 20 Outline An exercise Some criteria Solutions Comparing solutions
3 Exercise Set Up Imagine the TextEditor class and several algorithms formatwithtex (t TextEditor) formatfastcoloring (t TextEditor) formatslowbutprecisecoloring (t TextEditor) How can we create an editor that will format differently texts? W6S06 3 / 20
4 W6S06 4 / 20 Next step Propose one solution Propose different solutions Define some criteria Compare the approaches using such criteria
5 Solution 1: Inheritance W6S06 5 / 20 TextEditor subclass: #SlowFormatingTextEditor SlowFormatingTextEditor >> format self formatslowbutprecisecoloring: text TextEditor subclass: #FastFormatingTextEditor SlowFormatingTextEditor >> format self formatfastcoloring: text TextEditor subclass: #NullFormatingTextEditor NullFormatingTextEditor >> format ^ self "do nothing"
6 Inheritance W6S06 6 / 20 TextEditor text format NullFormatingTextEditor format FastFormatingTextEditor format SlowFormatingTextEditor format
7 Solution 2: With conditionals W6S06 7 / 20 TextEditor text formatslowbutprecise: t formatfastcoloring: t formatwithtex: t TextEditor >> format currentselection = #slow iftrue: [ self formatslowbutprecisecoloring: text] iffalse: [ currentselection = #fast iftrue: [self formatfastcoloring: text]...]
8 Alternate with Registry and Meta Programming W6S06 8 / 20 Object subclass: #TextEditor currentselection formatters text TextEditor class >> initialize self formatters at: #slow put: #slowformat: ; at: #fast put: #fastformat: ; at: #null put: #nullformat: ; at: #tex put: #texformat: TextEditor >> format self perform: (formatters at: currentselection) with: text What are your criterias to compare these and other solutions?
9 Criteria W6S06 9 / 20 Yes what are they?
10 W6S06 10 / 20 Criteria Adding a new formatting algo what is the cost to define a new formatting algorithm Dynamically use a formatter can I switch dynamically to a new formatting algorithm Packaging can I deploy a new formatting algorithm separately from others
11 W6S06 11 / 20 Analysing Solution 1: Inheritance? Adding a new formatting algo: we can add a new formatter Packaging: we can package a new formatter Not the best solution since: you have to create objects of the right class it is difficult to change the policy at run-time. we do not want to have and reopen the texteditor
12 W6S06 12 / 20 Analysing Solution 1: Inheritance? You can get an explosion of classes bloated with functionalities we do not want a hierarchy for each text editor features to be multiplied with previous ones TextEditor API can get large: no clear identification of responsibility NullFormatingTextEditor format MultipaneNull... TextEditor text format SlowFormatingTextEditor format FastFormatingTextEditor format MultipaneFast... SinglepaneFast... SinglepaneNull... SinglepaneSlow... MultipaneSlow... SpellMultipaneSlow... ExtraSpellMultipaneSlow...
13 Analysing Solution 2: Conditionals W6S06 13 / 20 Dynamic use: we can use a different formatter dynamically Adding a new formatting algo: adding a version requires to edit and recompile the conditionals Packaging: we cannot package a new algorithm separately
14 Another solution... W6S06 14 / 20 Delegating to a formatter Sketch the solution
15 Delegating to a formatter W6S06 15 / 20 Editor Client formatter: formatter text format(text) Formatter format: (Text) format: text self formatter format: text FastFormatter format: t #formatfastcoloring: t SlowFormatter format: t #formatslowbutpreci secoloring: t format: text NullFormatter format: t self formatfastcoloring: text myeditor formatter: FastFormatter new. myeditor format. myeditor formatter: SlowFormatter new.
16 Delegating to a formatter W6S06 16 / 20 Dynamic use: we can use a different formatter dynamically. Just create a new instance and set it. Adding a new formatting algo: adding a version is just adding a new class Packaging: we package a new algorithm separately
17 W6S06 17 / 20 Strategy Design Pattern Uniformize the communication (API) between the Editor and the Formatter all formatters should understand format: Modular Incremental
18 W6S06 18 / 20 But there is nothing like a free lunch The formatter should access the state (i.e. the text, positions... contained in the text editor) Information should flow between the texteditor and the formatter API of texteditor should be opened to support it
19 W6S06 19 / 20 Conclusion Inheritance is about incremental static definition It can lead of static design It can help build dynamic solutions structure abstractions It supports late binding Delegation (Use) can bring runtime flexibility can be combined with inheritance
20 A course by Stéphane Ducasse Reusing some parts of the Pharo Mooc by Damien Cassou, Stéphane Ducasse, Luc Fabresse Except where otherwise noted, this work is licensed under CC BY-NC-ND 3.0 France
About Double Dispatch
Learning Object-Oriented Programming and Design with TDD About Double Dispatch Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W8S02 W8S02 2 / 31 Outline Some fun exercises Thinking
More informationLearning From Real Examples
Learning Object-Oriented Programming and Design with TDD Learning From Real Examples Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W7S05 W7S05 2 / 21 What You Will Learn Thinking
More informationSeaside: An Innovative Web Application Framework
Seaside: An Innovative Web Application Framework Damien Cassou, Stéphane Ducasse and Luc Fabresse W4S08 http://www.pharo.org W4S08 2 / 24 Seaside A powerful, innovative and flexible framework Dedicated
More informationAbout Instance Initialization
Learning Object-Oriented Programming and Design with TDD About Instance Initialization Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W5S06 W5S06 2 / 26 How to ensure that an instance
More informationAn Overview of Essential Collections
Learning Object-Oriented Programming and Design with TDD An Overview of Essential Collections Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W2S08 W2S08 2 / 32 What You Will Learn
More informationIterators. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W3S09
Iterators Damien Cassou, Stéphane Ducasse and Luc Fabresse W3S09 http://www.pharo.org W3S09 2 / 24 What You Will Learn Understand the power of iterators Offer an overview of iterators W3S09 3 / 24 Pharo
More informationAn Overview of Essential Collections
An Overview of Essential Collections Damien Cassou, Stéphane Ducasse and Luc Fabresse W3S07 http://www.pharo.org W3S07 2 / 31 What You Will Learn Some basic collections Essential API to program collections
More informationVoyage. NoSQL Object Database. Damien Cassou, Stéphane Ducasse and Luc Fabresse. W4S11
Voyage NoSQL Object Database Damien Cassou, Stéphane Ducasse and Luc Fabresse W4S11 http://www.pharo.org W4S11 2 / 27 Goal To let you build a real little application Show you a nice way to store objects
More informationPowerful Exceptions: an Overview
Powerful Exceptions: an Overview Damien Cassou, Stéphane Ducasse and Luc Fabresse W5S04 http://www.pharo.org W5S04 2 / 21 Exceptions Really powerful Can be resumed, restarted, and signaled as new exception
More informationPharo Syntax in a Nutshell
Pharo Syntax in a Nutshell Damien Cassou, Stéphane Ducasse and Luc Fabresse W1S06, 2015 W1S06 2 / 28 Getting a Feel About Syntax In this lecture we want to give you the general feel to get started: Overview
More information2. Classes & Inheritance. Classes. Classes. Éric Tanter Objects and Design in Smalltalk. How do you create objects?
Objects and Design in Smalltalk 2. Classes & Inheritance Éric Tanter etanter@dcc.uchile.cl 1 Classes How do you create objects? Ex-nihilo in prototype-based languages With a class in class-based languages
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2018 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationEfficient Proxies in Smalltalk
Efficient Proxies in Smalltalk Mariano Martinez Peck 12 Noury Bouraqadi 2 Marcus Denker 1 Stéphane Ducasse 1 Luc Fabresse 2 1 RMoD Project-Team, Inria Lille Nord Europe / Université de Lille 1 2 Université
More informationData Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1
Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing
More informationCAP - Advanced Programming Concepts
Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus
More informationPatterns in Software Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 14 Reengineering Patterns Part 2 1 Reengineering Patterns: Detecting Duplicated Code 2 Detecting Duplicated Code: Compare Code Mechanically
More informationChapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language
Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented
More informationDynamic Object-Oriented Programming with Smalltalk 1. Introduction
Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Autumn Semester 2009 LECTURE TITLE What is surprising about Smalltalk > Everything is an object > Everything happens
More informationLanguage-side Foreign Function Interfaces with NativeBoost
Language-side Foreign Function Interfaces with NativeBoost IWST 2013 Camillo Bruni, Luc Fabresse, Stéphane Ducasse, Igor Stasenko Outline 1. Context 2. Existing Solutions 3. NativeBoost 4. Speed Comparison
More informationComparing graphical DSL editors
Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in
More informationA simple reflective object kernel
A simple reflective object kernel S. Ducasse The Pharo Booklet Collection edited by S. Ducasse November 20, 2017 master @ d4e4b4f* Copyright 2017 by S. Ducasse. The contents of this book are protected
More informationSoftware Evolution from the Field: An Experience Report from the Squeak Maintainers
Software Evolution from the Field: An Experience Report from the Squeak Maintainers Marcus Denker SCG University of Berne Switzerland Stéphane Ducasse LISTIC Université de Savoie France Roadmap > A little
More informationLecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction
Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO
More informationWhy using Smalltalk for Teaching Object- Oriented Design
Why using Smalltalk for Teaching Object- Oriented Design N. Bouraqadi - Ecole des Mines de Douai S. Ducasse - University of Berne S. Stinckwich - University of Caen R. Wuyts - Université Libres de Bruxelles
More informationObject Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia
Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing
More informationThe major elements of the object-oriented model
The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction
More informationInside Smalltalk MVC: Patterns for GUI Programming
Inside Smalltalk MVC: Patterns for GUI Programming Chien-Tsun Chen Department of Computer Science and Information Engineering National Taipei University of Technology, Taipei 106, Taiwan ctchen@ctchen.idv.tw
More informationDistributed Orchestration v.s. Choreography: The FOCAS Approach
Distributed Orchestration v.s. Choreography: The FOCAS Approach Gabriel Pedraza, Jacky Estublier Grenoble University. France ICSP May 2009 1 Abstract Process Engine Language (APEL) X x, y, z t t B x y,
More informationPolymorphism. Object Orientated Programming in Java. Benjamin Kenwright
Polymorphism Object Orientated Programming in Java Benjamin Kenwright Quizzes/Labs Every single person should have done Quiz 00 Introduction Quiz 01 - Java Basics Every single person should have at least
More informationPharo s Tips and Tricks
Pharo s Tips and Tricks Stéphane Ducasse Square Bracket tutorials October 28, 2017 master @ d69dc78* Copyright 2017 by Stéphane Ducasse. The contents of this book are protected under the Creative Commons
More informationAn object oriented application for corporate networks design
An object oriented application for corporate networks design Erik Chrisment France Telecom Cnet 06921 Sophia Antipolis Cedex - FRANCE chrismen@sophia.cnet.fr (+33) 92 94 53 10 1.0 Introduction For several
More informationVIRTUAL FUNCTIONS Chapter 10
1 VIRTUAL FUNCTIONS Chapter 10 OBJECTIVES Polymorphism in C++ Pointers to derived classes Important point on inheritance Introduction to virtual functions Virtual destructors More about virtual functions
More informationComponents vs. Objects
Components vs. Objects Luigia Petre Turku Centre for Computer Science & Abo Akademi University, FIN-20520 Turku, Finland (Presented at Nordic Workshop on Programming Theory, Bergen, Norway, Oct 11-13,
More informationComposite Pattern. IV.4 Structural Pattern
IV.4 Structural Pattern Motivation: Compose objects to realize new functionality Flexible structures that can be changed at run-time Problems: Fixed class for every composition is required at compile-time
More informationSUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional
SUN 311-232 Java Platform Enterprise Edition 6 Web Services Developer Certified Professional Download Full Version : http://killexams.com/pass4sure/exam-detail/311-232 QUESTION: 109 What are three best
More informationScl : a Simple, Uniform and Operational Language for Component-Oriented Programming in Smalltalk
Scl : a Simple, Uniform and Operational Language for Component-Oriented Programming in Smalltalk Luc Fabresse Christophe Dony Marianne Huchard LIRMM Université Montpellier 2 France September 3, 2006 Fabresse,
More informationPillar: A Versatile and Extensible Lightweight Markup Language
Pillar: A Versatile and Extensible Lightweight Markup Language Thibault Arloing Yann Dubois Damien Cassou Stéphane Ducasse thibault.arloing@etudiant.univ-lille1.fr yann1.dubois@etudiant.univ-lille1.fr
More informationPillar: A Versatile and Extensible Lightweight Markup Language
Pillar: A Versatile and Extensible Lightweight Markup Language Thibault Arloing, Yann Dubois, Damien Cassou, Stéphane Ducasse To cite this version: Thibault Arloing, Yann Dubois, Damien Cassou, Stéphane
More informationObjects as Session-Typed Processes
Objects as Session-Typed Processes Stephanie Balzer and Frank Pfenning Computer Science Department, Carnegie Mellon University AGERE! 2015 The essence of object-orientation 2 The essence of object-orientation
More informationGenerating system documentation augmented with traceability information, using a central XML-based repository
Generating system documentation augmented with traceability information, using a central XML-based repository Master s thesis presentation Thomas U. Kraus Department of Software Engineering Faculty of
More informationJVA-117A. Spring-MVC Web Applications
JVA-117A. Spring-MVC Web Applications Version 4.2 This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container,
More informationInternal Classes and Exceptions
Internal Classes and Exceptions Object Orientated Programming in Java Benjamin Kenwright Outline Exceptions and Internal Classes Why exception handling makes your code more manageable and reliable Today
More informationCS 403/503 Exam 4 Spring 2015 Solution
CS 403/503 Exam 4 Spring 2015 Solution Each problem initially scored out of 10 points possible. CS 403 Best 5 answers doubled. (5*20 + 2*10 = 120 possible) CS 503 Best 4 answers doubled. (4*20 + 3*10 =
More informationCall Stack Management
Call Stack Management Clément Béra with Stéphane Ducasse Square Bracket tutorials January 23, 2018 master @ 9343841* Copyright 2017 by Clément Béra with Stéphane Ducasse. The contents of this book are
More informationAn Inheritance System for Structural & Behavioral Reuse in Component-based Software Programming
GPCE 12 An Inheritance System for Structural & Behavioral Reuse in Component-based Software Programming Petr Spacek, Christophe Dony, Chouki Tibermacine LIRMM, CNRS and Montpellier II University 161, rue
More informationClasses and Objects. Object Orientated Analysis and Design. Benjamin Kenwright
Classes and Objects Object Orientated Analysis and Design Benjamin Kenwright Outline Review Previous Weeks Object Model, Complexity,.. What do we mean by Classes and Objects? Summary/Discussion Review
More information9. Understanding Classes and Metaclasses
9. Understanding Classes and Metaclasses ST Introduction Birds-eye view Reify your metamodel A fully reflective system models its own metamodel. 1.2 Roadmap > Metaclasses in 7 points > Indexed Classes
More informationST Introduction. Birds-eye view
6. Debugging ST Introduction Birds-eye view It can be easier to talk to objects than to read classes The system is alive. Talk to it. The debugger can be your best friend. Donʼt be afraid of it. 1.2 Roadmap
More informationTutorial notes on. Object relational structural patterns
Tutorial notes on Object relational structural patterns Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University Page 1 of 14 Exercise 1. a) Briefly describe what is
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
More informationSoftware Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015
Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close
More informationChapter 10 Object-Oriented Programming
Chapter 10 Object-Oriented Programming Software Reuse and Independence Objects, Classes, and Methods Inheritance and Dynamic Binding Language Examples: Java, C++, Smalltalk Design Issues and Implementation
More informationRESTful Web service composition with BPEL for REST
RESTful Web service composition with BPEL for REST Cesare Pautasso Data & Knowledge Engineering (2009) 2010-05-04 Seul-Ki Lee Contents Introduction Background Design principles of RESTful Web service BPEL
More information6. Pointers, Structs, and Arrays. 1. Juli 2011
1. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 50 Outline Recapitulation Pointers Dynamic Memory Allocation Structs Arrays Bubble Sort Strings Einführung
More informationWA1278 Introduction to Java Using Eclipse
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java
More informationFOR0383 Software Quality Assurance
This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks
More informationCompositional Design Principles
Chapter 16 Compositional Design Principles Learning Objectives In this chapter, I will more formally introduce the three principles that form the 3-1- 2 process. The learning focus is understanding how
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationRefactorings. Refactoring. Refactoring Strategy. Demonstration: Refactoring and Reverse Engineering. Conclusion
Refactorings Refactoring What is it? Why is it necessary? Examples Tool support Refactoring Strategy Code Smells Examples of Cure Demonstration: Refactoring and Reverse Engineering Refactor to Understand
More informationDynamic Parameter Configuration of SystemC Models
Dynamic Configuration of SystemC Models Shruti Baindur Simranjit Singh Anand Patil Accellera Systems Initiative 1 Index Motivation Traditional Approach and its Drawbacks Solution Approach Dynamic Configurator
More information<Partner Name> RSA NETWITNESS Intel Feeds Implementation Guide. Anomali STAXX 3.0. <Partner Product>
RSA NETWITNESS Intel Feeds Implementation Guide Anomali Jeffrey Carlson, RSA Partner Engineering Last Modified: 09/28/2017 Solution Summary Anomali STAXX is a free client
More informationClasses and Inheritance in Actor- Oriented Models
Classes and Inheritance in Actor- Oriented Models Stephen Neuendorffer Edward Lee UC Berkeley Chess Review May 8, 2003 Berkeley, CA Introduction Component-based design Object-oriented components Actor-oriented
More informationCall Doctor Search Service with GET Method
Call Doctor Search Service with GET Method SCENARIO: Invoking a Web Service with GET Method to Retrieve Information 1 Scenario Description Case: Invoking a web service with GET method in order to search
More informationSCA Tools project Creation Review. July
SCA Tools project Creation Review July 23 2008 2008 by Obeo made available under the EPL v1.0 July 2008 Contents In a nutshell Goals and scope Architecture Code contribution Committers Contributors Interested
More informationDesign Patterns. David Talby
Design Patterns David Talby Contents Representing Data Structures Composite Flyweight Decorator Traversing Data Structures Iterator Visitor May 27, 2008 Object Oriented Design Course 2 Design Patterns
More informationProgramming for the Web with PHP
Aptech Ltd Version 1.0 Page 1 of 11 Table of Contents Aptech Ltd Version 1.0 Page 2 of 11 Abstraction Anonymous Class Apache Arithmetic Operators Array Array Identifier arsort Function Assignment Operators
More informationPart I: Programming Access Applications. Chapter 1: Overview of Programming for Access. Chapter 2: Extending Applications Using the Windows API
74029c01.qxd:WroxPro 9/27/07 1:43 PM Page 1 Part I: Programming Access Applications Chapter 1: Overview of Programming for Access Chapter 2: Extending Applications Using the Windows API Chapter 3: Programming
More informationOutline. Subtype Polymorphism, Subtyping vs. Subclassing, Liskov Substitution Principle. Benefits of Subtype Polymorphism. Subtype Polymorphism
Subtype, Subtyping vs. Subclassing, Liskov Substitution Principle Outline Subtype polymorphism Subtyping vs. subclassing Liskov Substitution Principle (LSP) Function subtyping Java subtyping Composition:
More informationBCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus
BCS Higher Education Qualifications Diploma in IT Object Oriented Programming Syllabus Version 3.0 December 2016 This is a United Kingdom government regulated qualification which is administered and approved
More information20/12/12. X86_64 Architecture: NUMA Considerations
20/12/12 X86_64 Architecture: NUMA Considerations X86 Architecture Outline: X86_64 basic Architecture NUMA and ccnuma Architectures NUMA performance issues Memory allocation mechanisms NUMA Policy NUMA
More informationAn extensible monitoring framework for measuring and evaluating tool performance in a service-oriented architecture
An extensible monitoring framework for measuring and evaluating tool performance in a service-oriented architecture Christoph Becker, Hannes Kulovits, Michael Kraxner, Riccardo Gottardi, Andreas Rauber
More informationCreating a robot program
The simplest way to create a robot program, is to start from one of the four supplied templates (Sample, Iterative, Timed, or Command). Sample is best used for very small sample programs or advanced programs
More informationJava Object Oriented Design. CSC207 Fall 2014
Java Object Oriented Design CSC207 Fall 2014 Design Problem Design an application where the user can draw different shapes Lines Circles Rectangles Just high level design, don t write any detailed code
More informationDeveloping Microsoft.NET Applications for Windows (Visual Basic.NET)
Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Course Number: 2565 Length: 5 Day(s) Certification Exam This course will help you prepare for the following Microsoft Certified Professional
More informationProblems and Challenges when Building a Manager for Unused Objects
Problems and Challenges when Building a Manager for Unused Objects Mariano Martinez Peck 1,2,, Noury Bouraqadi 2, Marcus Denker 1, Stéphane Ducasse 1, Luc Fabresse 2 Abstract Large object-oriented applications
More informationExercise 6 Multiple Inheritance, Multiple Dispatch and Linearization November 4, 2016
Concepts of Object-Oriented Programming AS 2016 Exercise 6 Multiple Inheritance, Multiple Dispatch and Linearization November 4, 2016 Task 1 Consider the following C++ program: class X X(int p) : fx(p)
More informationJava Magistère BFA
Java 101 - Magistère BFA Lesson 3: Object Oriented Programming in Java Stéphane Airiau Université Paris-Dauphine Lesson 3: Object Oriented Programming in Java (Stéphane Airiau) Java 1 Goal : Thou Shalt
More informationIntroduction to Object- Oriented Programming
Introduction to Object- Oriented Programming Reusing this material This work is licensed under a Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International License. http://creativecommons.org/licenses/by-nc-sa/4.0/deed.en_us
More informationJava Overview An introduction to the Java Programming Language
Java Overview An introduction to the Java Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhan Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/
More informationFinal Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format
Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your
More informationProblems and Challenges when Building a Manager for Unused Objects
Problems and Challenges when Building a Manager for Unused Objects Mariano Martinez Peck, Marcus Denker, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse To cite this version: Mariano Martinez Peck, Marcus
More informationTop Down Design vs. Modularization
6.170 Quiz Review Topics: 1. Decoupling 2. 3. AF & RI 4. Iteration Abstraction & Iterators 5. OMs and Invariants 6. Equality, Copying, Views 7. 8. Design Patterns 9. Subtyping 10. Case Studies Decomposition
More informationCourse Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++
Introduction to Programming in C++ Course Text Programming in C++, Zyante, Fall 2013 edition. Course book provided along with the course. Course Description This course introduces programming in C++ and
More informationREVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION
c08classandmethoddesign.indd Page 282 13/12/14 2:57 PM user 282 Chapter 8 Class and Method Design acceptance of UML as a standard object notation, standardized approaches based on work of many object methodologists
More informationGhost: A Uniform and General-Purpose Proxy Implementation
Ghost: A Uniform and General-Purpose Proxy Implementation Mariano Martinez Peck 1,2,, Noury Bouraqadi 2,, Luc Fabresse 2,, Marcus Denker 1,, Camille Teruel 1, Abstract A proxy object is a surrogate or
More information1.00 Lecture 13. Inheritance
1.00 Lecture 13 Inheritance Reading for next time: Big Java: sections 10.5-10.6 Inheritance Inheritance allows you to write new classes based on existing (super or base) classes Inherit super class methods
More informationTool Support for Refactoring Duplicated OO Code
Tool Support for Refactoring Duplicated OO Code Stéphane Ducasse and Matthias Rieger and Georges Golomingi Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10,
More informationCS 209 Sec. 52 Spring, 2006 Lab 6 - B: Inheritance Instructor: J.G. Neal
CS 209 Sec. 52 Spring, 2006 Lab 6 - B: Inheritance Instructor: J.G. Neal Objectives. To gain experience with: 1. The creation of a simple hierarchy of classes. 2. The implementation and use of inheritance.
More informationExtensibility, Componentization, and Infrastructure
Extensibility, Componentization, and Infrastructure Ted Slupesky (slupesky@us.ibm.com) Copyright 2006 IBM Corp. Available under terms of the Eclipse Public License http://www.eclipse.org/legal/epl-v10.html
More informationQUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?
QUIZ Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? Or Foo(x), depending on how we want the initialization
More informationSoftware Engineering Fall 2014
Software Engineering Fall 2014 (CSC 4350/6350) Mon.- Wed. 5:30 pm 7:15 pm ALC : 107 Rao Casturi 11/03/2014 Re Cap - Object Design Close the gap between the application objects and the off-the shelf components.
More informationMenus and Printing. Menus. A focal point of most Windows applications
Menus and Printing Menus A focal point of most Windows applications Almost all applications have a MainMenu Bar or MenuStrip MainMenu Bar or MenuStrip resides under the title bar MainMenu or MenuStrip
More informationOBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe
OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++
More informationJava 8 Programming for OO Experienced Developers
www.peaklearningllc.com Java 8 Programming for OO Experienced Developers (5 Days) This course is geared for developers who have prior working knowledge of object-oriented programming languages such as
More informationarxiv: v1 [cs.pl] 17 Sep 2013
Representing Code History with Development Environment Events Martín Dias Damien Cassou Stéphane Ducasse RMoD Inria Lille Nord Europe University of Lille Lifl arxiv:1309.4334v1 [cs.pl] 17 Sep 2013 Abstract
More informationWhy attend a Lianja training course? Course overview. Course Details
These courses will be arranged periodically in different geographic regions or can be arranged on-site at customer premises by customer request. They can also be customized for individual customers needs
More informationEXTRACTION OF RELEVANT WEB PAGES USING DATA MINING
Chapter 3 EXTRACTION OF RELEVANT WEB PAGES USING DATA MINING 3.1 INTRODUCTION Generally web pages are retrieved with the help of search engines which deploy crawlers for downloading purpose. Given a query,
More informationModule Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation
Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language
More informationReflective Middleware. INF Tommy Gudmundsen
Reflective Middleware INF5360 11.03.2008 Tommy Gudmundsen tommygu@ifi.uio.no Papers presented Grace, P., Blair, G.S., Samual, S., "ReMMoC: A Reflective Middleware to Support Mobile Client Interoperability"
More informationBuilding Java Persistence API Applications with Dali 1.0 Shaun Smith
Building Java Persistence API Applications with Dali 1.0 Shaun Smith shaun.smith@oracle.com A little about Me Eclipse Dali JPA Tools Project Co-Lead Eclipse Persistence Services Project (EclipseLink) Ecosystem
More information