Object interconnections
|
|
- Joella Hancock
- 6 years ago
- Views:
Transcription
1 Object interconnections
2 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will be on how objects are connected to each other, and how one can make those connections as loose as possible Our primary tool for analyzing connectedness will be the concepts of visibility and dependency
3 3 Connections - The Bane of Large Scale Programming Difficulties in developing large scale programs are often not so much a matter of algorithmic complexity As they are of communication complexity: If several programmers are working together on a project and need to control the amount of information One programmer must have knowledge about the code being developed by a second programmer We can express interconnections in terms of visibility and dependency
4 4 Visibility Visibility is an attribute of names: Names of variables, functions, fields, whatever Mark Visibility type + Public # Protected - Private If you can't name something, you can't manipulate it Languages already have a variety of mechanisms for the control of name visibility OOP languages introduce a few new twists
5 5 Dependency Dependency describes the degree to which one software component relies on another component to perform its responsibilities A high degree of dependency obviously limits code reuse - moving one component to a new project
6 6 Coupling and Cohesion Coupling refers to the extent to which one component uses another to perform actions Generally a goal is to reduce coupling between software components Cohesion refers to the extent to which the actions of a component seem to be tied together Generally a goal is to increase cohesion within a software component
7 7 Varieties of Coupling Arranged from Bad to Better: Internal data coupling Global data coupling Control (or sequence) coupling Component coupling Parameter coupling Subclass coupling
8 This is bad because it makes it difficult to understand a single class in isolation Changing the way the second module produces data (location, type, timing) will lead to changing the dependent module. Can be mitigated by always making your data areas private or protected, and not exposing pointers to these areas 8 Internal Data Coupling class SneekyModifier { public: void sneeky () { // change my friends name myfriend->name = "Lucy"; Person * myfriend; {; class Person { public: Person () { name = "Larry"; string name; ; Occurs when one module (or class) modifies the local data values (instance variables) in another module (class).
9 9 Global Data Coupling double todaysdow class One { public: void setdow () { todaysdow = 9473; ; class Two { public: void printdow (){ cout << "Today the Dow hit " << todaysdow; ; Two or more classes that interact through a common global variable Again, makes it difficult to understand a single class in insolation Can be mitigated by making a class that manages the global area, thereby reducing global coupling to component coupling
10 10 Control, or Sequence Coupling This occurs when objects are linked by the fact that one must be manipulated before the other, but otherwise they have no connection Again, makes it difficult to understand a class in isolation Can be mitigated by making a controller class, that clearly indicates the sequence of operations: class MyClass { public: dostuff () { dofirst(); dosecond(); protected: dofirst() {... dosecond() {...
11 Control Coupling - control inversion reg_i read registration 1.1 read & check registration reg_i check 1 reg_flag registration 1.2 error_reason error-handler registration 1.3
12 11 Component Coupling Occurs when one class holds an instance of another class: class Set {... private: List data; Ideally, connection is one way Held component has no knowledge of holder This is a very weak and benign connection (weak is good)
13 12 Parameter Coupling Parameter coupling occurs when one object knows of another only through being passed as a parameter or a return value Another very weak (and therefore good) type of coupling class MyClass { public: void dosomething (Set aset) {...
14 13 Subclass Coupling Subclass coupling describes the relationship between a parent class and a child class Ideally the parent has no strong connection to the child, so the connection is one way Can understand the parent in isolation from the child class Parent {... class Child extends Parent {... A very weak form of coupling. Which makes it a good design choice
15 14 Varieties of Cohesion Also arranged from bad to better: Coincidental cohesion Logical cohesion Temporal cohesion Functional cohesion
16 15 Coincidental cohesion Coincidental cohesion is the lowest form of cohesion found in object oriented software development Methods appear to have been placed there randomly or without consideration of the proper concern of the method: public static class Utils { // A utility method that helps out with error logging. public static void LogError(String msg( { MyLogger logger = new MyLogger(); // Create instance of logger class logger.logit(msg); // A utility method that displays a message to the user. public static void ShowMsg(String msg( { MessageBox.Show(msg); This type of class necessarily leads to tight coupling as its varied functionality is used in many places
17 16 Logical Cohesion All elements of the module perform similar operations: Error handling, data input, data output, etc. An example of logical cohesion: A set of print functions to generate an output report arranged into a single module A crucial point is that only a specific subset of the functions is used in a specific context In general, logically cohesive modules should be avoided, if possible
18 16 Logical Cohesion
19 17 Temporal cohesion A temporally cohesive module is one whose elements are functions that are related in time Example: Consider a module called On_Really_Bad_Failure that is invoked when a Really_Bad_Failure happens The module performs several tasks that are not functionally similar or logically related, but all tasks need to happen at the moment when the failure occurs.: cut power to all assembly line machines notify the operator console of the failure make an entry in a database of failure records
20 20 Functional cohesion A functionally cohesive module performs one and only one problem related task. Examples of functionally cohesive modules are: Drag Drop an event triggered when a dragged object is dropped on a window Sum Elements in Array Convert Kilometers to Miles Read Customer Record Calculate Net Pay Assign Account Number Functionally cohesive modules may be simple and perform one task However, a complex module with numerous sub-modules may still be functionally cohesive if all of its subordinate modules are only performed to carry out the task of the parent module For example: Calculate Net Pay is functionally cohesive although it contains many different functions (e.g., calculate taxable deductions, calculate tax, calculate CPP deduction)
21 21 Data Cohesion Elements cooperate to present an interface to a hidden data structure: Stack Windows Communication Protocol Data Base Employee
22 22 Limiting Coupling The Law of Demeter The law of Demeter is an attempt to limit the way in which one component can interact with another component: In a method M attached to a class C, only methods defined by the following classes may be used: 1. The instance variable classes of C 2. The argument classes of method M (including C( Note that global objects or objects created inside the method M are considered arguments to M
23 23 Rewritten in terms of messages Law of Demeter (weak form). Inside a method, it is only permitted to access or send messages to the following objects: 1. The arguments associated with the method being executed (including the self object) 2. Instance variables for the receiver of the method 3. Global variables 4. Temporary variables created inside the method.
24 25 Class-Level versus Object-Level Visibility Here is another interesting way that objectoriented languages have chosen to differ from each other: Question: Are sisters and brothers allowed to look at each others private data fields? An answer of YES is class-level visibility (C++ and Java( And answer of NO is object-level visibility (Smalltalk(
25 27 Public, Subclass and Private Faces We have noted several times that object have a public and private face - inheritance introduces a third alternative, the subclass face: Public features are those aspects that users of the software component must have access to. Private features are those aspects that the implementor of the software component must have access to Protected features are those aspects that implementors of child classes can have access to There are two types of clients for the class developer: User clients (those who use an instance of the class( Subclass clients (those who will subclass from the class(
26 28 Control of Visibility The public/protected/private modifiers are the primary way to control visibility in most OO languages There are other mechanisms as well: (לא נלמד) C++ Friends in (לא נלמד ) C++ Inner classes in Java and Private Inheritance in C++ (inheritance for construction( Name Spaces, Units or Packages
27 31 Private Inheritance in C++ In a public inheritance the public features of a parent become public features of a child In a private inheritance, the public and protected features of the parent do not filter through the child; and only the public features of the child are visible The child class does not subscribe to the is-a rule We called this Inheritance For Construction
28 32 Name Spaces, Packages or Units Names Spaces (C++), Packages (Java) or Units (Delphi and Object Pascal) give the programmer another way to encapsulate names, and release only those names that are necessary: package foo; public class bar { // will be visible... class baz { // will not be visible outside package...
29 34 Chapter Summary In this chapter we have examined a variety of topics related to dependency: How classes and objects can depend upon each other How methods within a class can depend upon each other How to control visibility, as a means of controlling dependency How strong dependency can be weakened by using alternative designs
Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Object interconnections גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we move up a level of abstraction, and consider collections of objects working together Our focus will
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
More informationStatic and Dynamic Behavior לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Static and Dynamic Behavior לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון 22 Roadmap In this chapter we will examine how differences in static and dynamic features effect object-oriented programming
More informationFrom Module To Objects
From Module To Objects It is very difficult to maintain a large monolithic block of code The solution is to divide the code into smaller pieces, called modules What is a Module? A small and manageable
More informationOOPS Viva Questions. Object is termed as an instance of a class, and it has its own state, behavior and identity.
OOPS Viva Questions 1. What is OOPS? OOPS is abbreviated as Object Oriented Programming system in which programs are considered as a collection of objects. Each object is nothing but an instance of a class.
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1 Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationOverriding המחלקה למדעי המחשב עזאם מרעי אוניברסיטת בן-גוריון
Overriding עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap A method in a child class overrides a method in the parent class if it has the same name and type signature: Parent void method(int,float)
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationChapter 5 Object-Oriented Programming
Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares
More informationCGS 2405 Advanced Programming with C++ Course Justification
Course Justification This course is the second C++ computer programming course in the Computer Science Associate in Arts degree program. This course is required for an Associate in Arts Computer Science
More informationSoftware Engineering
Software Engineering CSC 331/631 - Spring 2018 Object-Oriented Design Principles Paul Pauca April 10 Design Principles DP1. Identify aspects of the application that vary and separate them from what stays
More informationSoftware Development. Modular Design and Algorithm Analysis
Software Development Modular Design and Algorithm Analysis Data Encapsulation Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using
More informationPaytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value
Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object
More informationMinistry of Higher Education Colleges of Applied Sciences Final Exam Academic Year 2009/2010. Student s Name
Ministry of Higher Education Colleges of Applied Sciences Final Exam Academic Year 2009/2010 Course Number/Name: SFDV4001 Object-Oriented Programming & U.I. Date: Time: College: Sohar[ ] Ibri[ ] Rustaq[
More informationChapter 8: Class and Method Design
Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined
More informationObject Oriented Metrics. Impact on Software Quality
Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines
More informationInheritance and Substitution גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Inheritance and Substitution גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will start to investigate the concepts of inheritance and substitution: The intuitive and practical
More informationStatic and Dynamic Behavior עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע "י ד"ר גרא וייס
Static and Dynamic Behavior עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע "י ד"ר גרא וייס 2 Roadmap In this chapter we will examine how differences
More informationClasses and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented
More informationObject-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1
Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations
More informationSoftware Design Fundamentals. CSCE Lecture 11-09/27/2016
Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -
More informationWeek 7. Statically-typed OO languages: C++ Closer look at subtyping
C++ & Subtyping Week 7 Statically-typed OO languages: C++ Closer look at subtyping Why talk about C++? C++ is an OO extension of C Efficiency and flexibility from C OO program organization from Simula
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
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 informationClasses and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון 22 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static, compile time representation of object-oriented
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationImplications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון
Implications of Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 Roadmap In this chapter we will investigate some of the implications of the principle of substitution in statically typed
More informationENCAPSULATION. private, public, scope and visibility rules. packages and package level access.
ENCAPSULATION private, public, scope and visibility rules. packages and package level access. Q. Explain the term Encapsulation with an example? Ans: The wrapping up to data and methods into a single units
More informationObject-Oriented Concepts and Design Principles
Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationUNIT II Requirements Analysis and Specification & Software Design
UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they
More informationTHE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)
THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9) By: Mr.Prachet Bhuyan Assistant Professor, School of Computer Engineering, KIIT Topics to be Discussed 9.1 INTRODUCTION 9.2 THE O-O DESIGN PROCESS
More informationInheritance and Substitution (Budd chapter 8, 10)
Inheritance and Substitution (Budd chapter 8, 10) 1 2 Plan The meaning of inheritance The syntax used to describe inheritance and overriding The idea of substitution of a child class for a parent The various
More informationL4: Inheritance. Inheritance. Chapter 8 and 10 of Budd.
L4: Inheritance Inheritance Definition Example Other topics: Is A Test, Reasons for Inheritance, C++ vs. Java, Subclasses and Subtypes 7 Forms of Inheritance Discussions Chapter 8 and 10 of Budd. SFDV4001
More informationENCAPSULATION AND POLYMORPHISM
MODULE 3 ENCAPSULATION AND POLYMORPHISM Objectives > After completing this lesson, you should be able to do the following: Use encapsulation in Java class design Model business problems using Java classes
More informationOverview. Elements of Programming Languages. Objects. Self-Reference
Overview Elements of Programming Languages Lecture 10: James Cheney University of Edinburgh October 23, 2017 Last time: programming in the large Programs, packages/namespaces, importing Modules and interfaces
More informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
More informationOOP Design Conclusions and Variations
CS108, Stanford Handout #20 Fall, 2008-09 Osvaldo Jiménez OOP Design Conclusions and Variations Thanks to Nick Parlante for much of this handout Part 1 -- Mainstream OOP Design First, we have the standard,
More informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 12 Thomas Wies New York University Review Last lecture Modules Outline Classes Encapsulation and Inheritance Initialization and Finalization Dynamic
More informationVALLIAMMAI ENGINEERING COLLEGE
VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED
More informationSoftware Design Heuristics
Software Design Heuristics Software Design Heuristics CONTENT 1. Introduction 2. Encapsulation/Information Hiding 3. Strong Cohesion 4. Loose Dr. Samira Sadaoui 1 Introduction Introduction Software Design
More informationCOURSE 2 DESIGN PATTERNS
COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract
More informationIntroduction. Object-Oriented Programming Spring 2015
Introduction Object-Oriented Programming 236703 Spring 2015 1 Course Staff Lecturer in charge: Prof. Eran Yahav Lecturer: Eran Gilad TA in charge: Nurit Moscovici TAs: Helal Assi, Eliran Weiss 3 Course
More information8. Object-oriented Programming. June 15, 2010
June 15, 2010 Introduction to C/C++, Tobias Weinzierl page 1 of 41 Outline Recapitulation Copy Constructor & Operators Object-oriented Programming Dynamic and Static Polymorphism The Keyword Static The
More informationInheritance, and Polymorphism.
Inheritance and Polymorphism by Yukong Zhang Object-oriented programming languages are the most widely used modern programming languages. They model programming based on objects which are very close to
More informationInheritance. EEC 521: Software Engineering. Dealing with Change. Polymorphism. Software Design. Changing requirements Code needs to be flexible
Inheritance EEC 521: Software Engineering Software Design Design Patterns: Decoupling Dependencies 10/15/09 EEC 521: Software Engineering 1 Inheritance is the mechanism by which one class can acquire properties/responsibilities
More informationINTERNAL ASSESSMENT TEST III Answer Schema
INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object
More informationObject-Oriented Modeling Using UML. CS151 Chris Pollett Aug. 29, 2005.
Object-Oriented Modeling Using UML CS151 Chris Pollett Aug. 29, 2005. Outline Objects and Classes Modeling Relationships and Structures Some Terms and Concepts Objects and classes are fundamental to OO
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationOverview. Elements of Programming Languages. Objects. Self-Reference
Overview Elements of Programming Languages Lecture 11: James Cheney University of Edinburgh November 3, 2015 Last time: programming in the large Programs, packages/namespaces, importing Modules and interfaces
More informationCMPT 373 Software Development Methods. Design. Nick Sumner
CMPT 373 Software Development Methods Design Nick Sumner wsumner@sfu.ca What is design? Not referring to UX (even though it s important) What is design? Not referring to UX (even though it s important)
More informationWhat is Object-Oriented Programming
www.eazynotes.com Nikhil Tibdewal Page No. 1 What is Object-Oriented Programming Object-Oriented Programming (OOP) is different from procedural programming languages (C, Pascal etc.) in several ways. Everything
More informationChapter 12. OOP: Creating Object- Oriented Programs. McGraw-Hill. Copyright 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.
Chapter 12 OOP: Creating Object- Oriented Programs McGraw-Hill Copyright 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. Objectives (1 of 2) Use object-oriented terminology correctly. Create
More informationLecture Notes on Programming Languages
Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered
More informationClasses and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות
Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static,
More informationCLASSES AND OBJECTS IN JAVA
Lesson 8 CLASSES AND OBJECTS IN JAVA (1) Which of the following defines attributes and methods? (a) Class (b) Object (c) Function (d) Variable (2) Which of the following keyword is used to declare Class
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
More informationProgramming Exercise 14: Inheritance and Polymorphism
Programming Exercise 14: Inheritance and Polymorphism Purpose: Gain experience in extending a base class and overriding some of its methods. Background readings from textbook: Liang, Sections 11.1-11.5.
More informationCSC207H: Software Design SOLID. CSC207 Winter 2018
SOLID CSC207 Winter 2018 1 SOLID Principles of Object-Oriented Design How do we make decisions about what is better and what is worse design? Principles to aim for instead of rules. e.g. there is no maximum
More informationOperating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst
Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Department of Computer Science Why C? Low-level Direct access to memory WYSIWYG (more or less) Effectively
More informationComp 249 Programming Methodology
Comp 249 Programming Methodology Chapter 7 - Inheritance Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,
More informationChapter 7. Inheritance
Chapter 7 Inheritance Introduction to Inheritance Inheritance is one of the main techniques of objectoriented programming (OOP) Using this technique, a very general form of a class is first defined and
More informationModelling with Classes. CITS1220 Software Engineering
Modelling with Classes CITS1220 Software Engineering Lecture Overview Classes and UML Associations between classes Special types of association: is-a, has-a, is-part-of Modelling Example Implementing associations
More informationComputer Science 4U Unit 1. Programming Concepts and Skills Modular Design
Computer Science 4U Unit 1 Programming Concepts and Skills Modular Design Modular Design Reusable Code Object-oriented programming (OOP) is a programming style that represents the concept of "objects"
More informationDesign Process Overview. At Each Level of Abstraction. Design Phases. Design Phases James M. Bieman
CS314, Colorado State University Software Engineering Notes 4: Principles of Design and Architecture for OO Software Focus: Determining the Overall Structure of a Software System Describes the process
More informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationCMPT Data and Program Organization
CMPT-201 - Data and Program Organization Professor: Bill Havens Office: APSC-10828 Lectures: MWF 2:30pm - 3:20pm Venue: C-9002 WWW: http://www.cs.sfu.ca/coursecentral/201 Office Hours: Monday @3:30pm January
More informationJava Programming Lecture 7
Java Programming Lecture 7 Alice E. Fischer Feb 16, 2015 Java Programming - L7... 1/16 Class Derivation Interfaces Examples Java Programming - L7... 2/16 Purpose of Derivation Class derivation is used
More informationOverview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017
Overview of OOP Dr. Zhang COSC 1436 Summer, 2017 7/18/2017 Review Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in square brackets: l = [1, 2, "a"] (access by index, is mutable
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationIntroduction to Object-Oriented Programming
Polymorphism 1 / 19 Introduction to Object-Oriented Programming Today we ll learn how to combine all the elements of object-oriented programming in the design of a program that handles a company payroll.
More informationInheritance and Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע"י ד"ר גרא וייס
Inheritance and Substitution עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מובסס על הרצאות של אותו קורס שניתן בשנים הקודמות ע"י ד"ר גרא וייס 2 Roadmap In this chapter we will start to investigate the
More informationC++ Programming: Introduction to C++ and OOP (Object Oriented Programming)
C++ Programming: Introduction to C++ and OOP (Object Oriented Programming) 2018 년도 2 학기 Instructor: Young-guk Ha Dept. of Computer Science & Engineering Contents Brief introduction to C++ OOP vs. Procedural
More informationTopic : Object Oriented Design Principles
Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities
More informationCSE351 Winter 2016, Final Examination March 16, 2016
CSE351 Winter 2016, Final Examination March 16, 2016 Please do not turn the page until 2:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 4:20. There are 125 (not 100) points,
More informationObject Relationships
Object Relationships Objects can work together in three different types of relationships: Uses: An object can use another to do some work (association). Composition: A complex object may be composed of
More informationJames Newkirk
Private Interface Class Structural James Newkirk newkirk@oma.com Intent Provide a mechanism that allows specific classes to use a non-public subset of a class interface without inadvertently increasing
More informationCmpt 135 Assignment 2: Solutions and Marking Rubric Feb 22 nd 2016 Due: Mar 4th 11:59pm
Assignment 2 Solutions This document contains solutions to assignment 2. It is also the Marking Rubric for Assignment 2 used by the TA as a guideline. The TA also uses his own judgment and discretion during
More informationCMPS 115 Winter 04. Class #10 (2004/02/05) Changes/Review Programming Paradigms Principles of OOD <break> Design Patterns
CMPS 115 Winter 04 Class #10 (2004/02/05) Changes/Review Programming Paradigms Principles of OOD Design Patterns Changes & Lecture 9 Takeaway Changes/Notices 2/26 may be guest after all, on design-with-frameworks
More informationA General Purpose Interactive Simulation System
A General Purpose Interactive Simulation System The Design Path From Specifications To An Object Oriented To Implementation Implementation Alexandru Telea Fac. Wiskunde en Informatica Alexandru Telea Fac.
More informationMaintainable Software. Software Engineering Andreas Zeller, Saarland University
Maintainable Software Software Engineering Andreas Zeller, Saarland University The Challenge Software may live much longer than expected Software must be continuously adapted to a changing environment
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should
More informationC++ Modern and Lucid C++ for Professional Programmers
Informatik C++ Modern and Lucid C++ for Professional Programmers part 13 Prof. Peter Sommerlad Institutsleiter IFS Institute for Software Rapperswil, HS 2015 Inheritance and dynamic Polymorphism base classes,
More informationCS153: Compilers Lecture 11: Compiling Objects
CS153: Compilers Lecture 11: Compiling Objects Stephen Chong https://www.seas.harvard.edu/courses/cs153 Announcements Project 3 due today Project 4 out Due Thursday Oct 25 (16 days) Project 5 released
More informationQUESTIONS FOR AVERAGE BLOOMERS
MANTHLY TEST JULY 2017 QUESTIONS FOR AVERAGE BLOOMERS 1. How many types of polymorphism? Ans- 1.Static Polymorphism (compile time polymorphism/ Method overloading) 2.Dynamic Polymorphism (run time polymorphism/
More informationObject Orientated Analysis and Design. Benjamin Kenwright
Notation Part 2 Object Orientated Analysis and Design Benjamin Kenwright Outline Review What do we mean by Notation and UML? Types of UML View Continue UML Diagram Types Conclusion and Discussion Summary
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical
More informationAbstraction. Abstraction
9/11/2003 1 Software today is more complex than it has ever been. Software controls Space shuttle systems during launch Elevators in 100-story buildings Cross-Atlantic transportation routes of freighters
More informationNested Classes in Java. Slides by: Alon Mishne Edited by: Eran Gilad, Eyal Moscovici April 2013
Nested Classes in Java Slides by: Alon Mishne Edited by: Eran Gilad, Eyal Moscovici April 2013 1 In This Tutorial Explanation of the nested class concept. Access modifiers and nested classes. The types
More informationPROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development
INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an
More informationDesign Patterns. CSC207 Winter 2017
Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe
More informationFriend Functions and Friend Classes
Friend Functions and Friend Classes C++ allows you to declare another class to be a friend of the current class to make it easier to access variables. OOP purists have criticized this feature as weakening
More informationData Abstraction. Hwansoo Han
Data Abstraction Hwansoo Han Data Abstraction Data abstraction s roots can be found in Simula67 An abstract data type (ADT) is defined In terms of the operations that it supports (i.e., that can be performed
More informationCSE331 Spring 2015, Final Examination June 8, 2015
CSE331 Spring 2015, Final Examination June 8, 2015 Please do not turn the page until 8:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 10:20. There are 158 points (not 100),
More information(5-1) Object-Oriented Programming (OOP) and C++ Instructor - Andrew S. O Fallon CptS 122 (February 4, 2019) Washington State University
(5-1) Object-Oriented Programming (OOP) and C++ Instructor - Andrew S. O Fallon CptS 122 (February 4, 2019) Washington State University Key Concepts 2 Object-Oriented Design Object-Oriented Programming
More informationJAVA MOCK TEST JAVA MOCK TEST II
http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your
More informationClasses, Objects, and OOP in Java. June 16, 2017
Classes, Objects, and OOP in Java June 16, 2017 Which is a Class in the below code? Mario itsame = new Mario( Red Hat? ); A. Mario B. itsame C. new D. Red Hat? Whats the difference? int vs. Integer A.
More information