George Blankenship 1

Size: px
Start display at page:

Download "George Blankenship 1"

Transcription

1 The introduction to Object Oriented Design will be based upon the design of a system written in an Object Oriented language, Java. This done for two reasons. The first reason is that Java is the language of choice at GWU for multiple reasons. The primary reason is that a free Java development environment is publicly available for both Windows and Linux (Unix) environments. It is generally the choice for Open Source development. The secondary reason is that the design patterns are stated in terms that naturally match an object oriented language; however, with understanding the design patterns can be used in all language environments. One of the objectives of this class to delve deeply the design patterns and uncover the basic intent of each pattern. By uncovering the basic intent, the pattern can then be used in all environments. It should be clear that the unspoken, but obvious objective of OOD is the creation of design elements that can be re-used in many diverse systems. The design patterns focus on reusable components that are not specific to a given application space but specific to components that exist many diverse spaces. George Blankenship 1

2 This lecture is divided into three general topics. The first topic is the rationale for the study of OOD. To be teleported into the study of an arcane subject would be relatively disturbing. OOD must be put in a perspective since it is not long before the study of OOD drops down to the examination of the basic patterns used to create a design. The good news is the examination of the patterns means that we will not spend a long period of time tripping over terms that are difficult to understand since they do not seem to have substance. The bad news is that the jump to patterns does not frame the need for the patterns. The second topic is the a discussion of Object Oriented Programming (OOP). The beginning of the road to OOD is using an object oriented approach to programming. This approach has proved to be transformative to the whole world of software development. The software development approach is now the development of components that can be reused in a diverse space and extended to create new components that meet close, but different purposes. The third topic is a short overview of Java. The overview s objective to re-affirm the intrinsic relationship between Java and OOP and thus a good basis for an investigation into OOD. George Blankenship 2

3 To many, Computer Science is the study of the art of programming. One examines various programming languages, database engines and operating system operation. This approach is a new paradigm. In the past, computer science focused on the core hardware (architecture), the internal structure and components of an operating system and the algorithms used in the generation of an executable. We are going to spend some time looking at the basis of this new paradigm. We will ignore the hardware and the operating system. We will look at a virtual environment that is created by an entity like the Java Virtual Machine (JVM) that makes objects seem real. For those familiar with Java, they will find all of this discussion somewhat familiar, even old and perhaps annoying. But it is this virtual world that we assume is real. All of our coding and eventually design is based upon the assumption that this virtual world is the real world. The movement from OOP in our discussion to OOD will be smooth and perhaps imperceptible. We will always talk about life in the virtual world, but we must be able to extend the concepts to the real world. This extension of the concepts leads to an understanding of the world of OOD. George Blankenship 3

4 The world of programming can be compared to a discussion between two human beings. The discussion is in reality one sided. One human (the controller or source) is giving instructions to the other (the machine or recipient). At times the machine responds to queries from the controller. All other communication is really from the controller to the machine. The controller speaks in a very stylized language and the questions can only elicit responses on subjects about the machine or entities that the machine touches. The exchange from controller to machine must be in a precise language since the machine is not able to ask questions eliciting clarification. Each sentence (or message) from the controller to the machine must be in the language that the machine understands. The controller has a concept of the task that must be performed by the machine. The controller must divide the task into a set of instruction units that perform smaller tasks. For example, the controller might divide a task to remove a cover into a set of unscrew the cover retaining screws tasks and then a lift the cover task. There is a transformation from the concept in the controller s mind to the language of the machine. The conversation is, thus, a sequence of sentences in the language of the machine. George Blankenship 4

5 It is of prime importance that the sentences (instructions) to the machine be given with clarity and without ambiguity. This is the same objective of any dialog in any language. The recipient of a language message (sentence) has a grammar context that must be present in order to understand the message. The grammar of a language is key to understanding during a dialog between two conversing individuals (or systems). This requirement to enable effective communication is well known. For example, every student studies the grammar of their native language throughout their formative education. The child learns basic grammar from his or her parents. This grammar allows the student to be understood; however, it not until the student s education that the exploration of effective speaking and writing leads him or her to a real exploration of grammar. In a similar manner, the first programming is much like the child. Instructions are formulated, but the machine might perform the task with a propensity for error or with unfortunate side effects such as an inefficiency in language statements or processing. It is only through the study of the grammar of programming that one begins to understand how to write more effective instructions for the machine. The first occasion to observe better grammar is the observation of code written by more experience programmers with the assumption that experience leads to some sort of improvement in the use of the language. The second occasion is the build on the experience of individuals that have studied the grammar of programming in general or an individual programming language. This class is a study of the grammar of programming. George Blankenship 5

6 John von Neumann defined the world of computers. (Understand that the computer, as we know it, did not exist during his life.) He described the computer as a stored program device that could solve problems. The solution to the problem was achieved by dividing the problem into a sequence of steps that when completed solved the problem. Turning this statement around, a problem is solvable on a computer if it can be divided into a sequence of finite steps that lead to its solution. If this cannot be done, the problem is (at least probably) not solvable on a computer (or computable). This basic truth is the fundamental impetus for OOP (and thus OOD). The solution to a problem is described as a sequence of tasks that when performed properly lead to a solution. The tasks are a decomposition of the problem into manageable entities that are individually performed. The tasks can also be decomposed into smaller tasks that are focused on smaller pieces of the problem (computation). One might generalize a task such that it is able to be adapted to a set of similar computations. The generalized task is the class in a object oriented (or based) language. A task is an object; that is, an instance of a class. The introduction of the class concept allows the programmer to focus on the tasks that define the computation rather than becoming overwhelmed with the complete computation. The actual processing is encapsulated in the class (task). With the encapsulation one can focus on the overall computation thread and maintain separation between tasks. George Blankenship 6

7 The trick in OOP is the definition of an object. Most of the programming lessons focus on an object is a item to be manipulated and, especially, real like a person. Let s call these objects as in class real. These objects are defined in terms of the real world attributes such as employee identification, personal identification or physique. The attributes are changed or read by passing messages to the object requesting a change to an attributes or the current status (value) of an attribute. When an employee joins a company, an object representing the employee would be created with the attributes that describe the real individual. The would be passed to other system components so that the employee is joined to (establishes a relationship with) the component. For example, the employee object might be passed to a manager object to establish a manager/managed relationship. There is another class of objects is those objects that represent purely program processing. An object is something that can store information (the attributes of the object) and perform an operation on the stored information (classically the object moves ). A programmatic object might be something like a relationship chain. For example, one might desire to sort a set the real objects into those with a particular attribute value (green objects). Another programmatic object might perform a computation on real object. For example, a context object might examine a number of objects (environmental attributes of a number of sensors) and set the operational context of the system to night. The context object is examined when video camera objects are activated. The programmatic object does not represent something that can be perceived (seen, touched, or heard); however, these objects are fundamental to a system. George Blankenship 7

8 With these notions of an object, we need to ask the question, What is an object? (exactly). An object is a simple entity that has state and behavior. State is the aggregation of all the characteristics of the object or the values stored in the object. For example, the state of a human being is the aggregation of the physical characteristics, the mental characteristics, the emotional characteristics, and any other characteristics that are stored within the human. One of the states of a human is asleep. Another is running. And yet another is speaking. Within a system, the object representing the human might only store a small subset of the actual human s characteristics. The characteristics of stored in the object are call the attributes of the object. Another type of attribute is a relationship (programmatic object). The manager object is related to all of the managed objects. Behavior is set of actions that the object is able to perform. All actions that an object performs can only affect or involve the object attributes. For example, an object may have the ability to reveal its attributes; that is a behavior. An object may have the ability to change its attributes or perform a computation based upon its attributes. The manager object might be able to reveal the total salary of all of the managed objects. George Blankenship 8

9 This brings us to the real reason for exploring this orientation (or focus) on objects. The use of objects in software may not seem reasonable or useful, at least at first. It may seem to be outright bizarre. It does position us to discover those components of the computation that might be generalized and re-used within the system or in another system. The most expensive component of a computation is not the electricity consumed performing the computation. It is not the cost of designing and building the computation engine. It is the cost of the design of the computation. In reality, cost is not just a function of design or creation, but design, creation and re-use. If the reuse is high, it will overwhelm the design and creation (manufacture) costs. An automobile manufacturer amortizes the design and manufacturing costs across the manufacturing of many, many automobiles. A computer manufacturer amortizes the development and manufacturing costs across many, many computers. If we can generalize an object and use in many times in an individual system, the cost to code (manufacture) the object is lessen. If one can use the object in multiple systems, the cost drops again (through amortization). George Blankenship 9

10 The generalization of an object is a class. An object is an instance of the class. Multiple objects can be instances of the same class. Each object is an independent entity and is not aware of other instances. In order to become aware, a relationship object (programmatic object) must be created (from a programmatic class). The class defines both the attributes of any object that can be an instance of the class and the behavior that can be exhibited by any object. The behavior of an object that is an instance of the class is initiated through the methods defined by the class. To clarify, a class defines the attributes of each object that is an instance of the class and the methods defined by the class are the access points to the behavior of the object instance. For example, if one wishes for an object to have a behavior that reveals the value of an attribute, the class must define a method that would be the access point to initiate the behavior. Each behavior that an instance object is to exhibit must have a method defined in the class. A class defines the attributes for each instance object and the methods that are used to affect the instantiated object s behavior. George Blankenship 10

11 The attributes of the class define the information stored within an instance object. There are two approaches to the definition of the attributes in a class. One approach allows the attributes on an instance object to be directly accessed; that is, the scope of the attributes is public (visible outside the object). This affords an efficiency of access. It has a tendency to globalize the data space. The other approach is to not allow public access to instance object attributes. All access is defined by the behavior of the instance objects; that is, the class must define a method to perform any direct manipulation of the attributes. The class must define a get method to read the current value of an attribute and a set method to change the current value of an attribute. Without these methods the attribute is not accessible. The first approach (public attributes) defeats the concept of encapsulation. Encapsulation principle hides the interior of an instance object and only exposes its behavior (public methods). Encapsulation allows the programmer to focus on the computation steps. The object s behavior is initiated by passing a message through a public entrance (method). The object s behavior is computation that was defined by task created in the decomposition of the overall computation. George Blankenship 11

12 The methods defined by the class are used to initiate the behavior of instance objects of the class. If one considers a decomposition of a computation (problem solution), the instance objects are steps in the decomposition. The methods (or the behavior initiated by a method) are the actual processing performed during the decomposed task. The invocation of a method includes a set of parameter values that are input to the method processing; the set of parameter values are described as a message. This approach allows one to describe the computation as a communication between the objects of a system. This approach continues the concept of decomposing a problem into a set of distinct tasks. The tasks communicate with each other via messages. With this approach, the problem space can be expanded to cover problems that require the use of distributed systems. With strict enforcement of encapsulation rules one can now describe the component classes by the public entrance (application program interface API) of the class. The API defines the behavior of all instance objects of the class. The set of classes now becomes a toolkit with the behavior of each tool defined by its API. George Blankenship 12

13 A system is now defined by the classes that are used to create the system. The coding focus is on the class. The actual processing is done by instances of the classes that are the system. In an completely object world even the system (program) is an instance object. An instance object is instantiated. The OS instantiates the program and invokes the method that starts the execution. The OS sends the program a message that defines the context for the execution (start up parameters). The commonly accepted procedure for instantiation of an object is the use of the special operator new. The new operator creates an instance of a class; an instance is created using the notation new <class name>(<object initialization message>). Once an instance object (object) has been created, the public attributes can be referenced using the notation object.<attribute name> and the public methods can be accessed using the notation object.<method name>(<input message>). While this notation is the Java syntax, it is also the syntax of most of the other OOP programming languages. George Blankenship 13

14 A simple example of instantiation notation is: Test testing = new Test(); Creates an instance object of the class Test with the object using the <null> message for initialization. The name of the object is testing. A simple example of the invocation of a behavior action is: testing.behaviorone(7, testing ); Invokes the method behaviorone passing the message 7, testing. This would cause the processing (behavoir) defined in the behaviorone message of the class to be performed. George Blankenship 14

15 Through inheritance a class B is able to inherit the characteristics of another class A. If class A has five attributes (A 1, A 2, A 3, A 4 and A 5 ), then B also has the attributes. If class A has three methods (M 1, M 2, and M 3 ), then B also has the methods. The class A is a proper subclass of B; all of the attributes and methods of class A are also attributes of B. The class B has the same behavior as the class A. Through inheritance we can build a class tree with all classes in the tree having the characteristics of the root of the tree. While this capability of creating a class tree with uniform characteristics, some implementations of OOP allow a class to redefine the inherited attributes and methods. This re-definition is call overloading. When a method is overloaded, the behavior of the new class changes. Thus the fact that class B has a sub-signature of class A, it may have a completely different behavior. The overload capability may lead to confusion when one is performing a code analysis. One of the objectives of the object oriented approach was to remove the need to inspect the code of every sub-component. George Blankenship 15

16 Through encapsulation one is able to hide the complexity of a class. A class A is able to define objects that will reside inside instantiations of the class A. The interior objects are completely hidden from the public view. The behavior of the class A includes the behavior of the interior objects. Through encapsulation one is able to build an extremely complex computational engine with a specialized interface tailor to a particular task. This allows the instantiation of a complex object with a simple interface. On the class web page in the section for Lesson 3, there is a link to the GCB Application Framework. This link will open the javadoc for the framework. The class MainGUI builds a simple window with a menu bar, text display area and the room for a panel that can be tailored for an individual application or not even present. The has a simple interface for the components of an application (system). The components can add to the menu bar, display text in the text display area and get the system clock in a standard form. The objective of this encapsulation is to supply a useful GUI for a diverse set of applications with a minimal investment. This approach does force the developer of the application to use the simple widgets of the GUI rather than (perhaps) more elegant widgets. George Blankenship 16

17 Since the objective of OOP is to reduce the coding of an application to the decomposition of the computation into tasks (objects), the design of an object oriented system can be reduced to addresses the relationships between object and the reuse of an approach that implements a relationship. That is the design objective is to create a design that has reusable and extendable components. Later in this class I will discuss an application that I developed for another class. This application (SerialLink) is used to help students validate their code to handle a serial communications link. This application s design uses the a set of object orients design concepts to create reusable components; these design concepts are focus in the GCB Application Framework that I mentioned earlier. For example, the GUI software is design to be embellished by a snap-in; in the case of SerialLink, the snap in is the class ConfigurationPanel. This snap-in add a panel to the GUI that includes a set of widgets to define the operating parameters. The actual validation engine uses a finite state machine (FSM) to control the processing of messages that move across the communication line. There are three snap-in to the FSM component that define analysis machines tailored to special conditions. The class AnswerConnection defines a snap-in to process incoming calls, while the class DialConnection defines a snap-in to generate an outgoing call. The class EchoConnection defines a snap-in to echo messages received on an active call. The class SerialConnection is a controlling component that interrogates the ConfigurationPanel for operating parameters and starts appropriate FSMs. The design of this system reuses classes that would answer the classic design issues in any system. George Blankenship 17

18 The use of OOD reduces the specifics of a system design to a set of templates (or approaches) to three fundamental aspects of every system. The first aspect is the creation of objects. On the surface this does not seem to a significant issue of a design, but in reality the creation of objects is a critical design component. There are objects within every system that have unique features that are imparted at creation. Unless these features are taken into consideration, the implementation of the design becomes convoluted and difficult with trap-doors that may cause issues at execution time. The creation of objects will be the first design aspect to be considered after we finish the overview lectures. The second aspect is the structure of system components. Selected objects within a system may form a set of objects with a special relationship. Once again, unless these special relationships are taken into consideration with classes supporting the relationships, the design and its implementation become tedious. The structure of system components is the second area of design to be considered. The third aspect is the behavior of system components. There are accepted approaches computational engines that are the best approach. The computational components of a system should use these approaches and, if possible, use computational classes to simplify the addition of these components. The SerialLink application above uses a FSM as the core computational component. A standard class StateMachine was included in GCB Application Framework to allow an application to use an FSM as the core of its computational approach. George Blankenship 18

19 Java is an object-based programming language. As with an language Java defines the form (syntax) and meaning (semantics) of the statements in the language. Java uses the C syntax and semantics, but extended them for use in a OOP environment. Java, unlike C++, is intrinsically object oriented. While C++ has object oriented statement constructs, it supports normal C constructs; one can float in and out of OOP when using C++. Every element of a Java program is a class; every executable component is an object. I must admit that Java supports class level code (static methods and attributes), but static methods are not really the same as C code. There is a discussion on the Java heritage that I m ignoring. Java was developed by Sun as a OOP language that required a system specific environment (JVM). The result is that Java is now available on just about every system and the Java applications are transportable from system to system without modification. This objective has been a focus of the computer industry for decades. Sun placed Java in the public domain, but had and has a major influence on the Java standard. It has been claimed that Java was really Sun s pin to pierce the Microsoft/Intel lock of computer systems. Paranoia has taken over and various software and hardware suppliers have reacted with alternatives to Java. The alternatives to Java close enough to be ignored in our study of OOD. George Blankenship 19

20 Java is a very special language in its approach to computation. Most languages create an executable that is specific to a particular hardware platform or OS/hardware platform. Java uses a variation of a interpreted language such as Perl or VB. The Java compiler generates an intermediate code called byte code. This is the model used by the early C compilers when they generated machine independent code so that a single C compiler could be mated up with a machine specific link editor. It is also the model set by Pascal with its p-code. The Java byte code is interpreted by the JVM. The JVM is OS/machine specific. With the JVM as an interpreter, the Java byte code is machine and OS independent. The byte code is packaged in a class file which may be free standing or in a compress file (jar file). A Java application may be transported from system to system just by copying the class or jar files. The downside to the JVM is that interpretation carries a performance cost. The early Java applications were notoriously slow. The JVM now includes a JIT compiler (Just In Time) that compiles Java classes before use so that the second use of a class will not require the interpretation component of the JVM. George Blankenship 20

21 When one looks at a Java program one sees that every line of code in defined in a class. Java does not allow for any code outside a class. The initial entry is a static method in one of the classes. That method must create the first object that will actually start the application s computation. The computation of a Java application only exists in the use of the objects created during execution. This approach injects Java deep into the OOP paradigm. All of the advantages that result from an object orientation are present in Java along with any of the constraints and difficulties. We will look at Java in the next section of this lecture and the next two sections. George Blankenship 21

22 One of the benefits of being object oriented is that the elements of a system are clearly defined; they are the classes. When documenting a system, the documentation can be reduced to the documentation of the classes. With encapsulation, the interior of the class is not (normally) germane to the documentation of the class. The documentation is based upon the signature of the class (the public attributes and the public methods). With the appropriate stylized comments, the documentation can be automatically generated as a set of web pages; earlier in this session, I reference the documentation (javadoc) web site for the GCB Application Framework. The web site was automatically generated from the source. The end result of basing all of the code on classes and the automatic generate of the documentation is that code reuse (class reuse) is encouraged. The next section is the first of three sections devoted to a review of Java. George Blankenship 22

CSCI 253. Outline. Background. George Blankenship 1

CSCI 253. Outline. Background. George Blankenship 1 CSCI 253 Object Oriented Design: Object Oriented Design and Programming in Java George Blankenship George Blankenship 1 Outline Background Rationale for the course Why object oriented programming? OOP

More information

Class object initialization block destructor Class object

Class object initialization block destructor Class object In this segment, I will review the Java statements and primitives that relate explicitly to Object Oriented Programming. I need to re-enforce Java s commitment to OOP. Unlike C++, there is no way to build

More information

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1 CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain

More information

What are the characteristics of Object Oriented programming language?

What 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 information

Forth Meets Smalltalk. A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman

Forth Meets Smalltalk. A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman Forth Meets Smalltalk A Presentation to SVFIG October 23, 2010 by Douglas B. Hoffman 1 CONTENTS WHY FMS? NEON HERITAGE SMALLTALK HERITAGE TERMINOLOGY EXAMPLE FMS SYNTAX ACCESSING OVERRIDDEN METHODS THE

More information

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University Introduction to Computers and Programming Languages CS 180 Sunil Prabhakar Department of Computer Science Purdue University 1 Objectives This week we will study: The notion of hardware and software Programming

More information

An Introduction to Software Engineering. David Greenstein Monta Vista High School

An Introduction to Software Engineering. David Greenstein Monta Vista High School An Introduction to Software Engineering David Greenstein Monta Vista High School Software Today Software Development Pre-1970 s - Emphasis on efficiency Compact, fast algorithms on machines with limited

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 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 information

Introduction to OOP. Procedural Programming sequence of statements to solve a problem.

Introduction to OOP. Procedural Programming sequence of statements to solve a problem. Introduction to OOP C++ - hybrid language improved and extended standard C (procedural language) by adding constructs and syntax for use as an object oriented language. Object-Oriented and Procedural Programming

More information

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

Chapter 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 information

LESSON 13: LANGUAGE TRANSLATION

LESSON 13: LANGUAGE TRANSLATION LESSON 13: LANGUAGE TRANSLATION Objective Interpreters and Compilers. Language Translation Phases. Interpreters and Compilers A COMPILER is a program that translates a complete source program into machine

More information

Microsoft Visual Basic 2005: Reloaded

Microsoft Visual Basic 2005: Reloaded Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 1 An Introduction to Visual Basic 2005 Objectives After studying this chapter, you should be able to: Explain the history of programming languages

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

More information

Atelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Atelier Java - J1. Marwan Burelle.  EPITA Première Année Cycle Ingénieur. marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.

More information

Data Structures (list, dictionary, tuples, sets, strings)

Data Structures (list, dictionary, tuples, sets, strings) Data Structures (list, dictionary, tuples, sets, strings) Lists are enclosed in brackets: l = [1, 2, "a"] (access by index, is mutable sequence) Tuples are enclosed in parentheses: t = (1, 2, "a") (access

More information

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci)

Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Object-Oriented Concepts and Principles (Adapted from Dr. Osman Balci) Sung Hee Park Department of Mathematics and Computer Science Virginia State University September 18, 2012 The Object-Oriented Paradigm

More information

Overview of OOP. Dr. Zhang COSC 1436 Summer, /18/2017

Overview 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 information

Sri Vidya College of Engineering & Technology

Sri Vidya College of Engineering & Technology UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

More information

After a lecture on cosmology and the structure of the solar system, William James was accosted by a little old lady.

After a lecture on cosmology and the structure of the solar system, William James was accosted by a little old lady. Introduction After a lecture on cosmology and the structure of the solar system, William James was accosted by a little old lady. Your theory that the sun is the centre of the solar system, and the earth

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4(b): Inheritance & Polymorphism Lecture Contents What is Inheritance? Super-class & sub class The object class Using extends keyword

More information

New Programming Paradigms

New Programming Paradigms New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and

More information

A Guide to CMS Functions

A Guide to CMS Functions 2017-02-13 Orckestra, Europe Nygårdsvej 16 DK-2100 Copenhagen Phone +45 3915 7600 www.orckestra.com Contents 1 INTRODUCTION... 3 1.1 Who Should Read This Guide 3 1.2 What You Will Learn 3 2 WHAT IS A CMS

More information

Classes and Methods לאוניד ברנבוים המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Classes 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 information

Structured Programming

Structured Programming CS 170 Java Programming 1 Objects and Variables A Little More History, Variables and Assignment, Objects, Classes, and Methods Structured Programming Ideas about how programs should be organized Functionally

More information

For example, let's say that we have the following functional specification:

For example, let's say that we have the following functional specification: FRAME IT: THE NUTS AND BOLTS OF RAD Marty Brown, CommScope, Inc., Claremont, NC INTRODUCTION The road to finishing a quality application does not have to be a long and confusing one. With the advent of

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Lecture 1 CGS 3416 Spring 2017 1/9/2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer ISA - Instruction Set Architecture: the specific

More information

An Overview of Visual Basic.NET: A History and a Demonstration

An Overview of Visual Basic.NET: A History and a Demonstration OVERVIEW o b j e c t i v e s This overview contains basic definitions and background information, including: A brief history of programming languages An introduction to the terminology used in object-oriented

More information

An Overview of the BLITZ System

An Overview of the BLITZ System An Overview of the BLITZ System Harry H. Porter III Department of Computer Science Portland State University Introduction The BLITZ System is a collection of software designed to support a university-level

More information

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1

Object-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 information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Lecture Notes on Programming Languages

Lecture 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 information

Chapter. Relational Database Concepts COPYRIGHTED MATERIAL

Chapter. Relational Database Concepts COPYRIGHTED MATERIAL Chapter Relational Database Concepts 1 COPYRIGHTED MATERIAL Every organization has data that needs to be collected, managed, and analyzed. A relational database fulfills these needs. Along with the powerful

More information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object 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 information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

Programming. Loriano Storchi.

Programming. Loriano Storchi. Programming Loriano Storchi loriano@storchi.org http:://www.storchi.org/ Algorithms Algorithms describe the way in which information is transformed. Informatics takes care of their theory, analysis, planning,

More information

CPS 506 Comparative Programming Languages. Programming Language

CPS 506 Comparative Programming Languages. Programming Language CPS 506 Comparative Programming Languages Object-Oriented Oriented Programming Language Paradigm Introduction Topics Object-Oriented Programming Design Issues for Object-Oriented Oriented Languages Support

More information

Advanced Object-Oriented Programming Introduction to OOP and Java

Advanced Object-Oriented Programming Introduction to OOP and Java Advanced Object-Oriented Programming Introduction to OOP and Java Dr. Kulwadee Somboonviwat International College, KMITL kskulwad@kmitl.ac.th Course Objectives Solidify object-oriented programming skills

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Inheritance and Polymorphism Inheritance (Continued) Polymorphism Polymorphism by inheritance Polymorphism by interfaces Reading for this lecture: L&L 10.1 10.3 1 Interface Hierarchies Inheritance can

More information

Lecture Contents CS313D: ADVANCED PROGRAMMING LANGUAGE. What is Inheritance?

Lecture Contents CS313D: ADVANCED PROGRAMMING LANGUAGE. What is Inheritance? CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 5: Inheritance & Polymorphism Lecture Contents 2 What is Inheritance? Super-class & sub class Protected members Creating subclasses

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

2 rd class Department of Programming. OOP with Java Programming

2 rd class Department of Programming. OOP with Java Programming 1. Structured Programming and Object-Oriented Programming During the 1970s and into the 80s, the primary software engineering methodology was structured programming. The structured programming approach

More information

Programmazione. Prof. Marco Bertini

Programmazione. Prof. Marco Bertini Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable

More information

Java. Classes 3/3/2014. Summary: Chapters 1 to 10. Java (2)

Java. Classes 3/3/2014. Summary: Chapters 1 to 10. Java (2) Summary: Chapters 1 to 10 Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University of Texas at Arlington, Arlington, TX 76019 Email: sharma@cse.uta.edu

More information

Matrex Table of Contents

Matrex Table of Contents Matrex Table of Contents Matrex...1 What is the equivalent of a spreadsheet in Matrex?...2 Why I should use Matrex instead of a spreadsheet application?...3 Concepts...4 System architecture in the future

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

Object-oriented Compiler Construction

Object-oriented Compiler Construction 1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 5: Inheritance & Polymorphism Lecture Contents 2 What is Inheritance? Super-class & sub class Protected members Creating subclasses

More information

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות

Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות Classes and Methods עזאם מרעי המחלקה למדעי המחשב אוניברסיטת בן-גוריון מבוסס על השקפים של אותו קורס שניתן בשנים הקודמות 2 Roadmap Lectures 4 and 5 present two sides of OOP: Lecture 4 discusses the static,

More information

Some doubts about the objectivity of logical determination of the uniqueness of the elementary process in the Function Point Analysis

Some doubts about the objectivity of logical determination of the uniqueness of the elementary process in the Function Point Analysis Some doubts about the objectivity of logical determination of the uniqueness of the elementary process in the Function Point Analysis Table of Contents Marian Zalcman, Ph.D. ASSECO Poland, Rzeszów 1. Introduction

More information

Managing Change and Complexity

Managing Change and Complexity Managing Change and Complexity The reality of software development Overview Some more Philosophy Reality, representations and descriptions Some more history Managing complexity Managing change Some more

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/06-6 revision 2 Date: May 22, 2006 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular documentation

More information

Practical Object-Oriented Design in Ruby

Practical Object-Oriented Design in Ruby Practical Object-Oriented Design in Ruby Anyone that has done a decent amount of programming in Ruby is bound hear about the book Practical Object-Oriented Design in Ruby [1] (http://www.poodr.com/) by

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

IBM Case Manager Version User's Guide IBM SC

IBM Case Manager Version User's Guide IBM SC IBM Case Manager Version 5.3.3 User's Guide IBM SC19-3274-10 IBM Case Manager Version 5.3.3 User's Guide IBM SC19-3274-10 This edition applies to Version 5 Release 3 Modification 3 of IBM Case Manager

More information

Classes and Methods גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Classes 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 information

What do Compilers Produce?

What do Compilers Produce? What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond

More information

Lesson 10B Class Design. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10B Class Design. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10B Class Design By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Encapsulation Inheritance and Composition is a vs has a Polymorphism Information Hiding Public

More information

be used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate

be used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate UNIT 4 GRASP GRASP: Designing objects with responsibilities Creator Information expert Low Coupling Controller High Cohesion Designing for visibility - Applying GoF design patterns adapter, singleton,

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design

More information

A Java-based Computer Simulator and its Applications

A Java-based Computer Simulator and its Applications A Java-based Computer Simulator and its Applications John K. Estell Bluffton College Session 2220 Abstract This paper describes a learning philosophy for computer science that is based on having students

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

ADMINISTRATIVE MANAGEMENT COLLEGE

ADMINISTRATIVE MANAGEMENT COLLEGE First Semester ADMINISTRATIVE MANAGEMENT COLLEGE BACHELOR OF COMPUTER APPLICATION COURSE OUTCOME (CO) Problem solving techniques Using C CO 1: Understand the basic concepts of programming, software and

More information

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01.

COURSE SYLLABUS. Complete JAVA. Industrial Training (3 MONTHS) PH : , Vazhoor Road Changanacherry-01. COURSE SYLLABUS Complete JAVA Industrial Training (3 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01

More information

Design Patterns Design patterns advantages:

Design Patterns Design patterns advantages: Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

Design & Implementation Overview

Design & Implementation Overview P Fall 2017 Outline P 1 2 3 4 5 6 7 P P Ontological commitments P Imperative l Architecture: Memory cells variables Data movement (memory memory, CPU memory) assignment Sequential machine instruction execution

More information

(C) Global Journal of Engineering Science and Research Management

(C) Global Journal of Engineering Science and Research Management ANDROID BASED SECURED PHOTO IDENTIFICATION SYSTEM USING DIGITAL WATERMARKING Prof.Abhijeet A.Chincholkar *1, Ms.Najuka B.Todekar 2, Ms.Sunita V.Ghai 3 *1 M.E. Digital Electronics, JCOET Yavatmal, India.

More information

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: www.studymafia.org SUBMITTED BY: www.studymafia.org 1 Acknowledgement I would like

More information

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1

OBJECT ORIENTED SIMULATION LANGUAGE. OOSimL Reference Manual - Part 1 OBJECT ORIENTED SIMULATION LANGUAGE OOSimL Reference Manual - Part 1 Technical Report TR-CSIS-OOPsimL-1 José M. Garrido Department of Computer Science Updated November 2014 College of Computing and Software

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017 Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 2 Thomas Wies New York University Review Last week Programming Languages Overview Syntax and Semantics Grammars and Regular Expressions High-level

More information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Implementing Object Equivalence in Java Using the Template Method Design Pattern

Implementing Object Equivalence in Java Using the Template Method Design Pattern Implementing Object Equivalence in Java Using the Template Method Design Pattern Daniel E. Stevenson and Andrew T. Phillips Computer Science Department University of Wisconsin-Eau Claire Eau Claire, WI

More information

COURSE 2 DESIGN PATTERNS

COURSE 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 information

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold. T0/04-023 revision 2 Date: September 06, 2005 To: T0 Committee (SCSI) From: George Penokie (IBM/Tivoli) Subject: SAM-4: Converting to UML part Overview The current SCSI architecture follows no particular

More information

Educational Fusion. Implementing a Production Quality User Interface With JFC

Educational Fusion. Implementing a Production Quality User Interface With JFC Educational Fusion Implementing a Production Quality User Interface With JFC Kevin Kennedy Prof. Seth Teller 6.199 May 1999 Abstract Educational Fusion is a online algorithmic teaching program implemented

More information

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01.

COURSE SYLLABUS ANDROID. Industrial Training (4 MONTHS) PH : , Vazhoor Road Changanacherry-01. COURSE SYLLABUS ANDROID Industrial Training (4 MONTHS) PH : 0481 2411122, 09495112288 E-Mail : info@faithinfosys.com www.faithinfosys.com Marette Tower Near No. 1 Pvt. Bus Stand Vazhoor Road Changanacherry-01

More information

Chapter 11 Object and Object- Relational Databases

Chapter 11 Object and Object- Relational Databases Chapter 11 Object and Object- Relational Databases Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 11 Outline Overview of Object Database Concepts Object-Relational

More information

Introduction to Computers and Java

Introduction to Computers and Java Introduction to Computers and Java Chapter 1 Chapter 1 1 Objectives overview computer hardware and software introduce program design and object-oriented programming overview the Java programming language

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages CS211 Lecture: Design Quality; Cohesion and Coupling; Packages Objectives: Last revised October 4, 2004 1. To introduce the notion of design quality, tradeoffs, and some principles of quality design 2.

More information

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System?

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System? Page 1 of 21 Page 2 of 21 and identity. Objects are members of a class, and the attributes and behavior of an object are defined by the class definition. The Essence of Object Oriented Programming with

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

1 Introduction. 2 Web Architecture

1 Introduction. 2 Web Architecture 1 Introduction This document serves two purposes. The first section provides a high level overview of how the different pieces of technology in web applications relate to each other, and how they relate

More information

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs

Advanced Database Applications. Object Oriented Database Management Chapter 13 10/29/2016. Object DBMSs Object Oriented Database Chapter 13 1 Object DBMSs Underlying concepts: Freely sharing data across processing routines creates unacceptable data dependencies All software should be constructed out of standard,

More information

U:\Book\Book_09.doc Multilanguage Object Programming

U:\Book\Book_09.doc Multilanguage Object Programming 1 Book 9 Multilanguage Object Programming U:\Book\Book_09.doc Multilanguage Object Programming 5 What to Read in This Part Multilanguage Object Programming... 1 1 Programming Objects In Java, VB and ABAP...

More information

Internet Application Developer

Internet Application Developer Internet Application Developer SUN-Java Programmer Certification Building a Web Presence with XHTML & XML 5 days or 12 evenings $2,199 CBIT 081 J A V A P R O G R A M M E R Fundamentals of Java and Object

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management

More information

Introduction to Computers and Java

Introduction to Computers and Java Introduction to Computers and Java Chapter 1 Objectives Overview of computer hardware and software, programs and compilers Introduce program design and objectoriented programming Overview of the Java programming

More information