Object-Oriented Modeling of Rule-Based Programming

Size: px
Start display at page:

Download "Object-Oriented Modeling of Rule-Based Programming"

Transcription

1 Object-Oriented Modeling of Rule-Based Programming Xindong Wu and Xiaoya Lin Department of Software Development, Monash University 900 Dandenong Road, Melbourne, VIC 3145, Australia Proceedings of the 9th Intl Conference on Software Engineering and Knowledge Engineering Madrid, Spain, June 18-20, 1997, Abstract A domain expertise always comprises a set of concepts and the logical relationships between them. In rule-based programming, rules which describe logical relationships are the fundamental knowledge units, and concepts are embedded in the rules. Objectoriented programming takes the opposite way; objects or classes which are used to describe concepts are the essential knowledge units, and all operations regarding an object are bound together into the object s definition. By embedding rules within objects, this paper designs a factor-centered representation language, Factor++, which models the rule-based paradigm into object-oriented programming. We demonstrate that Factor++ provides facilities to represent all the information that can be represented in rule schema + rule body, a rule-based representation language. 1 Introduction Artificial intelligence (AI) problems are normally NP (non-polynomial) hard by nature. Different from conventional numerical computations, AI research has concentrated on the development of symbolic and heuristic methods to solve complex problems efficiently. Since the 1980 s, AI has found wide realistic applications in those areas where symbolic and heuristic computations are necessary. For example, expert systems have produced startling economic impact. Because of the need for symbolic and heuristic computation, AI has its own programming methodology [Wu 1994b], and rule-based programming has been dominant in AI research and applications. It is probably an axiom of AI that domain expertise is always rule-governed. Firstly, even in the world at large, people have a tendency to associate domain expertise with rules in behaviour and often explain behaviour by appealing to such rules. Secondly, knowledge in an AI system often depends on some domain expert(s) heuristics, which can be easily and naturally encoded into the IF THEN structure. Therefore, rule-based systems have become one of the most widely used models of knowledge representation in AI, in particular expert systems. Rather than expressing logic calculus about the world as in Prolog-like logic programming systems or computing the numeric values defined over data as in conventional programming, rule-based production systems normally determine how the symbol structures that represent the current state of the problem should be manipulated to bring the representation closer to a solution. Problems that have been solved in production systems can be usually encoded in LISP or PROLOG, but production systems and rule-based programming languages are specifically designed to solve those problems, and as a result they solve those problems more efficiently. Meanwhile, rules are the essential component for both rule-based production systems (or rule-based systems) and logic programming systems. Since heuristic knowledge is of major concern in this paper, rule-based programming is more production systems oriented. However, if we do not plan to deal with inexact rules, logic programming can be used to replace rule-based programming hereafter. Rule-based programming has many advantages, 1

2 such as: Modularity and modifiability. Rules are easily coded and added to a production system. They may be added to the rule base without changing other rules. Naturalness and simplicity. The IF THEN format of production rules is a natural and appropriate method for many kinds of human expertise. It provides an attractive simplicity for the representation of knowledge. Knowledge intensive. An expert system may be adapted for use in another problem domain by simply changing the rule base. In the meanwhile, there are also several significant disadvantages inherent in the mechanism: 1. Rules are inefficient in structural representation. Encapsulation of all relevant information of a single entity is hard with rule-based programming. 2. Rules in general lack software engineering devices such as modules, information hiding, and reuse to make them a viable choice for large programs. In contrast, object-oriented programming, a technology from software engineering, provides powerful facilities to resolve these problems. Section 2 outlines the main features of object technology and possible ways to integrate object technology with rule-based programming. Section 3 designs a factor-centered representation language, Factor++, which models the rule based paradigm into object-oriented (O-O) programming by applying knowledge object techniques [Wu et al. 1995]. 2 Object Technology Object technology in software engineering makes it easier to develop, maintain and reuse a wide range of applications. These applications are mainly concerned with data processing. Object orientation attempts to model the behaviour patterns of collections of cooperating physical entities in the real world. Objectoriented programming (OOP) provides a better way of defining data and procedures that are associated with these physical entities than conventional imperative languages such as C, Pascal and Fortran. OOP was first discussed in the late 1960 s when the so called software crisis began in large systems development. Methods have evolved since then and have shifted the emphasis from a problem of coding to object-oriented design (OOD). The primary aim of OOD is to improve productivity, increase quality and elevate the maintainability of large software systems [Coad & Yourdon 91]. The well defined and widely accepted principles are the concepts of the class, encapsulation, inheritance and polymorphism. At the core of OOD is the class which represents a real world entity by grouping all of its data attributes and procedural operations together into a neatly encapsulated package. Software productivity is improved primarily by reducing the amount of time required for detecting and removing defects from programming code. Reusing software, in the form of class libraries can produce startling increases in productivity and greatly reduce the amount of errors in a large program. However, the emphasis on productivity could have obscured the need for improvements in software quality. Processes that produce high-quality products early in development, such as analysis and design, can greatly reduce errors discovered later in development such as coding and testing and can dramatically improve software quality [Coad & Yourdon 91]. Maintainability, the final objective of OOD, is accomplished by separating the dynamic parts of a system from those parts which are stable. A robust system must be designed with the expectation of change according to the ever changing requirements of clients. Achieving all of these objectives together in a single system is always difficult to accomplish and more than often a trade-off is necessary. With appropriate use, however, the principles of OOD will assist in achieving these goals. 2.1 Abstraction and encapsulation Abstraction is the principle of capturing useful information by ignoring all the detailed features of an entity that are not relevant to understanding what it does or what it is. Rather than trying to comprehend everything about the entity all at once, we select only 2

3 part of it. Abstraction consists of data abstraction and procedural abstraction. Procedural abstraction can already be found in most imperative programming languages in the form of functions and procedures, which can be used to reduce the complexity of programming code. In OOD, data abstraction is carried out by the definitions of abstract data types (ADTs) commonly called classes or types [Atkinson et al. 92]. An ADT is defined in terms of data items and the operations, called methods in OOP, that can be applied to these data items. The data within the ADT can only be modified and manipulated by these methods. The resulting notion of encapsulation leads to a separation of interface and implementation. The data of an ADT can only be accessed via the specified interface, while the implementation details such as the operations are hidden and at the discretion of the class implementor or the dynamic decisions of the ADT. By encapsulation in OOD, each component of a program should hide a single design decision. The interface to each module should be designed so as to reveal as little as possible about its internal implementation details. A language which provides this feature enables the designer to keep related components of a program together in the form of a package in the hope that later changes can be carried out within this package. 2.2 Classes When using an ADT in an imperative language with constructs such as records (used in Pascal) or structs (used in C) the designer will normally create routines which manipulate the structure. Operations or routines defined for the data structure in one construct cannot be used for another structure in these languages. In an object-oriented programming language (OOPL) such as C++, the data structure and the operations are bound together into one package, called a class. A class can have private and public data. The private data cannot be seen or modified by the user without using the public interface, known as member functions in C++. This prevents accidental modification of the data and improves code quality by reducing the amount of bugs evident in the code [Eckel 93]. Variables or instances of a class are called objects. There is a fundamental difference between an object and a class: the class is the definition for the data structure, and an object is an instance of that data structure. More than one object can be created from a class definition. This distinction has also led to distinguish objectbased programming languages from object-oriented (OO) ones. In OO languages, objects encapsulate a concrete data structure and a behavior, and they do not need a type. In OO languages, objects are classified and all objects of the same class share the same behavior. Therefore in an OO language the procedures and functions defined on a data structure are described as part of a class and the class is considered as a generic device for instantiating objects. In this case, the user can use the member functions provided by the public interface of a class to pass messages to objects of the class, and the objects control their own actions and can remember their current state. Two special member functions, called constructors and destructors in C++, are provided in many OO languages to allow the user to pass a message to a class and create or destruct an object. A constructor is used to initialise an instance of a class by allocating memory for an array, for instance. Destructors on the other hand are used for clean-up operations, such as freeing any memory the object may have been explicitly allocated. 2.3 Inheritance In an OOPL a user-defined class can inherit features of another, thus promoting a much higher level of code re-use. The most common view of inheritance within the OOP field is that the subclass inherits all the properties and operations defined for the superclass and will probably add more [Snyder 1986]. Inheritance allows a designer to specify common attributes and services in one class, and then specialise and extend those attributes and services into specific cases. One class may also inherit the properties of more than one other class, and this is called multiple inheritance. Single and multiple inheritance is supported by C++ by means of derived classes. A derived class is declared by following its name with the names of its base classes. A derived class can inherit either the base classes public parts or both their private and public parts. This is still an issue left open-ended, to be used at the discretion of the designers of individual OOPLs. To support multiple inheritance the derived class may 3

4 form a base class of another derived class permitting the construction of class hierarchies. An inheritance structure is one of the ways of offering reusability, extendibility, lower maintenance cost and of achieving the software engineering goals that designers have been aiming at for years [Henderson-Sellers 92]. 2.4 Polymorphism and dynamic/late binding Polymorphism is one of the most powerful concepts of OOD. It is the concept of sending a message from one object to other objects in an inheritance hierarchy and invoking the most appropriate behaviour for the object. Polymorphism presents the property of operator overloading. In C++ overloading allows the user to specify member functions with the same name which perform different functions according to how many, and the types of parameters passed. To allow the functionality of polymorphism the compiler of an OOPL cannot bind the operation names to programs at compile time [Atkinson et al. 92]. Therefore, operation names must be resolved at run-time. This delayed translation is known as late or dynamic binding. Similarly, overloading allows the same member function to be declared for all of the different derived classes of shape. Polymorphism and dynamicbinding are provided in C++ through the use of virtual member functions. A virtual function is provided with definition in its base class, but may be redefined in derived classes. That is, a virtual function may have different versions in different derived classes and it is the responsibility of the run-time system to find the appropriate version for each call of the virtual function. Functions that are not marked as virtual may be bound statically to the base class in which it is defined which allows for easier implementation. There are also other forms of polymorphism than the dynamic binding described above, such as parametric polymorphism, most of which are available in OOP but also in other languages. 2.5 Embedding objects into rules Given the respective features of OOP and rulebased programming, we cannot make a general statement to say whether rule-based programming or O- O languages are superior in computational strength [Wu 1996]. Rule-based programming expresses relationships between objects very explicitly. However, they don t express updates clearly. O-O programming is weak in inference power due to its procedural origin, but updates are defined clearly by assignments. It has the central ideas of encapsulation and reuse which encourage modular program development. On one hand, while the O-O paradigm provides efficient facilities for encapsulation and reuse, it does not support inference engines for symbolic and heuristic computation. A clear advantage of rule-based programming is that recursion can be easily defined within rules while difficult in objects. On the other hand, rulebased programming is very limited in structural representation and for large systems. Therefore, it would be very useful if we can integrate both of them in a seamless and natural way in order to exploit their synergism. It seems as if objects and rules are made for each other. Objects are the best way to simulate or model a problem domain. Rules can be designed to capture and encode human expertise that is applied to a problem domain. A natural way seems to be use objects for modeling the domain and rules to represent decision-making applied to the domain. In a rule-based system, data in the working memory (or database) represents the state of the system and is used to fire rules. In an O-O system, the state is characterized by the the data items in objects. Therefore, a natural integration of objects and rules is to use objects as storage for the working memory in a rule-based system, and rules execute actions depending on the values of objects in the working memory. A number of AI tools such as CLIPS [Donnell 1994], ART and KEE [Harmon & King 1985] have provided such facilities to embed objects in rules. 2.6 Incorporating rules into objects It is argued in [Wong 1990] that it is undesirable to implement objects within rule-based programming, since rule-based programming is not as portable as O-O programming. One way to get round this is to implement rules within objects. We use O-O languages as the basis and implement rules which describe relationships of objects on the top of them. Domain expertise always relates to inter-relationships between objects, therefore a declarative query language for expressing 4

5 these inter-relationships is very useful in integrated systems. In Prolog++ [Moss 1994], for example, an object layer is designed as an encompassing layer for Prolog rules. In this paradigm, objects can call Prolog rules without any special annotation, and if a Prolog predicate is redefined within the Prolog++ class hierarchy, the definition will be taken by default. Rules can be used to make an object s semantics explicit and visible [Graham 1993, Zhao 1994]. They can also provide heuristic procedural attachment in methods. Actually methods within objects can always be implemented in the form of rules. Rules can be defined in an independent rule base so that the methods in objects can call the corresponding predicates (rule heads), in the form of, e.g., obey statements in [Wong 1990]. We can of course implement a set of rules with the same rule head in the form of objects, although some of the O-O advantages like inheritance, cannot be found from such objects. Rules within objects can be divided into two categories [Odell 1993]: constraint rules and derivation rules. The former define restrictions of object structure and behavior, such as consistency and constraints, and the latter are used to infer new data from existing data. In [Kwok & Norrie 1994], for example, an object has four protocol parts: attributes, class methods, instance methods and rules. Rules can be activated by messages as methods. When heuristic rules are embedded within an object, the object can infer on these rules to provide heuristic answers when receiving queries from other objects. Such an object is called a knowledge object [Wu et al. 1995]. A knowledge object consists of at least three parts: data items, inheritance hierarchy, and rules. Methods can be implemented in forms of rules, or as a fourth component. Both rules and methods can be specified as public to allow global access or as private to prevent external visiting and modification. 3 FACTOR++: O-O Modeling of Rule-Based Programming The rule-based and object-oriented paradigms are both self-important and it is not appropriate to say that one should be the master and the other the slave in general, but depending on the application domains, choosing one of them as the basis and building the other on the top are necessary given that a seamless integration is not yet available and constructing one may well be very time consuming. Factor++ is a new representation language based on knowledge object techniques. It models rule-based programming into O-O programming, and provides facilities to represent all the information that can be represented in the rule schema + rule body language [Wu 1994a]. 3.1 Rule schema + rule body Rule schema + rule body [Wu 1994a] is a rule-based representation language. A rule base in rule schema + rule body contains a number of rule sets, each consisting of a rule schema with its corresponding rule body. Rule schemata are used to describe the hierarchy among factors or nodes in domain reasoning networks while rule bodies, which comprise computing rules as well as inference rules, are used to express specific evaluation methods for the factors and/or the certainty factors of the factors in their corresponding rule schemata. A rule schema has a rule-like structure with the general form of: If E 1 ; E 2 ; : : : ; En then A, where all of E 1 ; E 2 ; : : : ; En and A are factors. A factor in rule schema + rule body is a name involved in a domain expertise. It can be a logical assertion, a discrete set variable or a continuous, numeric variable. By representing explicitly numeric computation and inexact calculus as well as inference rules, the language supports a flexible way to process procedural knowledge and uncertainty. 3.2 Factor++: a factor-centered knowledge representation A domain expertise always comprises a set of variables and the relationships between these variables. In rule schema + rule body, the variables are referred to as factors and the relationships are divided into two levels: rule schemata and rule bodies. In an objectoriented system, every entity is encapsulated into an object, a data structure combining the data properties of the entity and the procedures on the data. The data capture the attributes of the object, and the procedures capture the object s behaviours. 5

6 To integrate rules into objects by applying the knowledge objects, we define a factor in Factor++ by three characteristics: (a) the name of the factor (the factor identifier), (b) the names of variables and their value types that are relevant to the definition of the factor, and (c) the relationships between the factor and the relevant variables. Each of the relevant variables here is also a factor in the problem domain. The second characteristic relates to the rule schemata in rule schema + rule body, and the rule bodies in rule schema + rule body can be represented in the third characteristic. Inheritance is certainly an advantage of O-O modeling over rule-based computation, but since the main topic of this paper is to model rules into objects, we will not address inheritance in particular. A factor is an independent knowledge unit in Factor++. It can be described in extended Backus Naur form as follows. <Factor> := <Name><Type><Data Items> <Variables><Premise Links><Procedures> <Inference Status><Certainty Factor> <Name> :- <String> <Type> :- <terminal factor> <goal factor> <Data Items> :- <Data Item> <Data Item> <Data Items> <Data Item> :- <Attribute><Value> <Attribute> :- <String> <Value> :- unknown <a value of any data type> <Variables> :- <Variable> <Variable>, <Variables> <Variable> :- <Factor Name> <Factor Name> :- <String> <Premise Links> :- <Premise Link> <Premise Link>, <Premise Links> <Premise Link> :- <Factor Name> <Factor Name> and <Premise Link> <Procedures> :- <IF... THEN Rules> <Inference Status> :- unknown instantiated failed chaining <Certainty Factor> :- <Real> Definition 1. A factor combines a variable in a domain expertise, its data items, other relevant variables in the domain expertise that are used to define this variable, and the relationships between this variable and other variables. The inference status of a factor will be mentioned in Section Definition 2. A terminal factor is an evidence factor, whose possible data items are supposed to be given by the user. Definition 3. A goal factor is not a terminal factor. Some procedures in the domain expertise are required to evaluate each goal factor. Definition 4. A premise link in a factor is organized as a list structure for a collection of variables. All the variables in the premise link form a logical AND relation, and when values of these variables are all available, the factor can be evaluated. Definition 5. A procedure in a factor contains the domain expertise to evaluate the data items of the factor and/or the certainty factor of the factor. In each procedure, there may be one or more inference rules similar to those in production systems. The inputs to the procedure must be declared in a corresponding premise link of the factor. A procedure in Factor++ corresponds to a rule body in rule schema + rule body. There is no procedure in terminal factors; however, there may be more than one procedure in a goal factor to define the evaluation of the factor and/or its uncertainty factor. Rules in a traditional rule base have been divided into groups in Factor++, in a similar way as in rule schema + rule body, and have been embedded into factors. A knowledge base in Factor++ is a set of factor definitions, each of which is an independent knowledge unit Converting a rule base into Factor++ The following procedure converts a normal rule base into the Factor++ representation. Step 1 Create terminal factors. If a factor appears in the lefthand side of some rules and never appears in the righthand side of any rules, the factor is a terminal factor. Step 2 If a rule contains two or more conclusion factors, split this rule into two or more, simpler rules so that each has only one conclusion factor. Step 3 Group the rules that have the same conclusion factor into one rule set. Each rule set formed this way corresponds to a factor in Factor++. Step 4 Set up factors by filling out their components. 6

7 3.2.2 Reasoning with Factor++ Reasoning with Factor++ starts with a goal factor. With a given set of terminal factors, we can determine whether a factor is one of the premise factors of a goal factor or not when the goal factor is being visited. If a goal factor is unknown, we can infer it immediately. At each inference stage, a factor is in one of the following four states: (1) unknown, (2) instantiated, (3) failed, and (4) chaining. The unknown status indicates that the factor has not been processed. The instantiated status means that the factor has data items in the working memory. A factor being failed means that the factor cannot be evaluated, i.e., there is not enough evidence in the working memory. The last status, chaining, indicates that the factor is being processed. Before a factor is processed, the inference status of the factor is always unknown. After being processed, the factor is either instantiated or failed. When we match the factors on a premise link of a goal factor, we check the inference status of each of the factors on the premise link. If all these factors are instantiated, then we call the corresponding procedure of the premise link in the goal factor to evaluate the goal factor. If there is a factor on the premise link that is failed, the corresponding procedure is dropped immediately. If there is a factor on the premise link that is unknown, we move control to the unknown factor, try to evaluate it, and return after this factor is either instantiated or failed. The time complexity of the above process is linear to the number of factors and the number of rules, if there is no dead cycle 1 in a knowledge base in Factor++. Each factor is processed only once, and we always try a factor at the first time when it is met. After a goal factor is evaluated, it is treated as a terminal factor whether it is instantiated or failed, because its inference information is kept in the working memory. A rule within a factor is matched at most once. If a premise link in a factor fails to match the working memory, the corresponding procedure will not be called, and therefore the rules within the procedure will not be matched and executed. 1 If, for example, A is a necessary condition for B, B is also a necessary condition for A, and there is no other way to determine A or B independently, we say that A and B have formed a dead cycle. 3.3 Comparison between Factor++ and rule schema + rule body A premise link in a factor by Definition 4 corresponds to a rule schema with the factor as the conclusion factor in rule schema + rule body [Wu 1994a]. A procedure by Definition 5 corresponds to a rule body. Therefore, all information in rule schema + rule body can be represented in Factor++. In rule schema + rule body, there may be more than one rule schema with the same conclusion factor; in Factor++, these rule schemata and their associated rule bodies are encapsulated into one knowledge object, which is the conclusion factor. A factor in Factor++ is an object, and therefore all O-O features such as inheritance and polymorphism can be easily explored in Factor++. 4 Conclusions Rule-based programming is the dominant programming paradigm in AI research and applications. Since its insufficient software engineering power in structural representation and for large systems, we have discussed its integration with object technology, a powerful technology from software engineering, and have designed a factor centered representation language which models the rule-based paradigm into object-oriented programming. A factor in Factor++ is an object that holds its data items, inference information, and all the rules in which this factor is computed. Factor++ supports a linear chaining process. Inheritance and polymorphism are also supported in Factor++ because of its object orientation. When a knowledge base gets larger and larger, inheritance and encapsulation become more and more important in the design and maintenance of the knowledge base. References [Atkinson et al. 92] Atkinson, Bancilhon, De Witt, Dittrich, Maier, and Zdonok, The Object- Oriented Database System Manifesto, Building an Object-Oriented Database System: The Story of O2, F. Bancilhon, C. Delobel, and P. Kanel- 7

8 lakis, Eds., Morgan Kaufmann Publishers, 1992, [Booch 1994] G. Booch Object Oriented Analysis and Design with Applications. Addison- Wesley. [Coad & Yourdon 91] P. Coad and E. Yourdon, Object-Oriented Design, Yourdon Press, [Donnell 1994] B.L. Donnell Object Rule Integration in CLIPS. Expert Systems, 11(1). [Eckel 93] B. Eckel, C++ Inside & Out, McGraw- Hill, [Frost 1986] R.A. Frost Introduction to Knowledge Base Systems. Collins. [Graham 1993] I. Graham Migration Using SOMA: A Semantically Rich Method of Object- Oriented Analysis. Journal of Object-Oriented Programming, 5, 9: [Henderson-Sellers 92] B. Henderson-Sellers, Object-Oriented Information Systems: An Introductory Tutorial, The Australian Computer Journal, 24(1992), 1: [Harmon & King 1985] P. Harmon & D. King Expert Systems. Wiley. [Snyder 1986] A. Snyder Encapsulation and Inheritance in Object-Oriented Programming Languages. Proc. of OOPSLA 86. ACM. [Wong 1990] L. Wong Inference Rules in Object Oriented Programming Systems. Deductive and Object-Oriented Databases. W. Kim, J.-M. Nicolas, and S. Nishio (Eds.). Elsevier Science Publishers B. V., North-Holland. [Wu 1996] X. Wu A Comparison of Objects with Frames and OODBs. Object Currents, Vol 1, Issue 1. [Wu 1994a] X. Wu Rule Schema + Rule Body: A 2-level Representation Language. International Journal of Computers and Their Applications, 1: [Wu 1994b] X. Wu, Developing an AI Curriculum for Computer Science Majors, AXIS: The UCISA Journal of Academic Computing and Information Systems, 1(1994), 3: [Wu et al. 1995] X. Wu, S. Ramakrishnan and H. Schmidt Knowledge Objects. Infomatica, 19, 4: [Zhao 1994] L. Zhao ROO: Rules and Object- Orientation. TOOLs Pacific 94 Technology of Object-Oriented Languages and Systems [Kwok & Norrie 1994] A.D. Kwok and D.H. Norrie Integrating a Rule-Based Object System with the Smalltalk Environment. Journal of Object-Oriented Programming, 6, 9: [McCabe 1992] F.G. McCabe Logic and Objects. Prentice-Hall. [Meyer 1988] B. Meyer Object-Oriented Software Construction. Prentice-hall. [Moss 1994] C. Moss Prolog++: The Power of Object-Oriented and Logic Programming. Addison-Wesley Publishing Company. [Odell 1993] J. Odell Specifying Requirements Using Rules. Journal of Object-Oriented Programming, 6(2):

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

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

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

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

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

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

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

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

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

Programming II. Modularity 2017/18

Programming II. Modularity 2017/18 Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How

More information

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright

Classes and Objects. Object Orientated Analysis and Design. Benjamin Kenwright Classes and Objects Object Orientated Analysis and Design Benjamin Kenwright Outline Review Previous Weeks Object Model, Complexity,.. What do we mean by Classes and Objects? Summary/Discussion Review

More information

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods

Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods Part 7 - Object Oriented Concepts Classes, Objects, Properties and Methods Object Orientated Paradigm... 2 Abstract Data Types (ADT) & Encapsulation... 3 Encapsulation... 5 Classes and Objects... 6 Methods

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

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

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References

ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References ITCS 3160 Jing Yang 2010 Fall Class 16: Object and Object- Relational Databases (ch.11) Slides come from: References Michael Grossniklaus, Moira Norrie (ETH Zürich): Object Oriented Databases (Version

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming 1/9 Introduction to Object-Oriented Programming Conception et programmation orientées object, B. Meyer, Eyrolles Object-Oriented Software Engineering, T. C. Lethbridge, R. Laganière, McGraw Hill Design

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Object Oriented Programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore

More information

OBJECT ORIENTED PROGRAMMING

OBJECT ORIENTED PROGRAMMING 1. Programming Paradigms OBJECT ORIENTED PROGRAMMING A programming methodology defines the methodology of designing and implementing programs using the key features and other building blocks (such as key

More information

An Efficient Design and Implementation of a Heterogeneous Deductive Object-Oriented Database System

An Efficient Design and Implementation of a Heterogeneous Deductive Object-Oriented Database System An Efficient Design and Implementation of a Heterogeneous Deductive Object-Oriented Database System Cyril S. Ku Department of Computer Science William Paterson University Wayne, NJ 07470, USA Suk-Chung

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized

More information

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language

More information

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe

OBJECT ORIENTED PROGRAMMING USING C++ CSCI Object Oriented Analysis and Design By Manali Torpe OBJECT ORIENTED PROGRAMMING USING C++ CSCI 5448- Object Oriented Analysis and Design By Manali Torpe Fundamentals of OOP Class Object Encapsulation Abstraction Inheritance Polymorphism Reusability C++

More 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

PROGRAMMING IN C++ COURSE CONTENT

PROGRAMMING IN C++ COURSE CONTENT PROGRAMMING IN C++ 1 COURSE CONTENT UNIT I PRINCIPLES OF OBJECT ORIENTED PROGRAMMING 2 1.1 Procedure oriented Programming 1.2 Object oriented programming paradigm 1.3 Basic concepts of Object Oriented

More information

Lecture 23: Object Lifetime and Garbage Collection

Lecture 23: Object Lifetime and Garbage Collection The University of North Carolina at Chapel Hill Spring 2002 Lecture 23: Object Lifetime and Garbage Collection March 18 1 Fundamental Concepts in OOP Encapsulation Data Abstraction Information hiding The

More information

OBJECT-ORIENTED MODELING AND DESIGN. Introduction

OBJECT-ORIENTED MODELING AND DESIGN. Introduction OBJECT-ORIENTED MODELING AND DESIGN Introduction Contents: Introduction. Course Relevance Learning Outcomes Overview of the syllabus Introduction to Object Orientation Introduction Object Oriented Approach

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Multi-Paradigm Approach for Teaching Programming

Multi-Paradigm Approach for Teaching Programming Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate

More information

R/3 System Object-Oriented Concepts of ABAP

R/3 System Object-Oriented Concepts of ABAP R/3 System Object-Oriented Concepts of ABAP Copyright 1997 SAP AG. All rights reserved. No part of this brochure may be reproduced or transmitted in any form or for any purpose without the express permission

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

Author's Prepublication Version

Author's Prepublication Version OBJECT DATA MODELS Susan D. Urban Arizona State University http://www.public.asu.edu/~surban Suzanne W. Dietrich Arizona State University http://www.public.asu.edu/~dietrich SYNONYMS ODB (Object Database),

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

CSE 307: Principles of Programming Languages

CSE 307: Principles of Programming Languages CSE 307: Principles of Programming Languages Classes and Inheritance R. Sekar 1 / 52 Topics 1. OOP Introduction 2. Type & Subtype 3. Inheritance 4. Overloading and Overriding 2 / 52 Section 1 OOP Introduction

More information

Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer

Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer Unit - IV CHAPTER - 13 INTRODUCTION TO OOP WITH C++ Part 1 Choose the best answer 1. The term is used to describe a programming approach based on classes and objects is (A) OOP (B) POP (C) ADT (D) SOP

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

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

Object oriented programming Concepts

Object oriented programming Concepts Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be

More information

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus BCS Higher Education Qualifications Diploma in IT Object Oriented Programming Syllabus Version 3.0 December 2016 This is a United Kingdom government regulated qualification which is administered and approved

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

CS6301 PROGRAMMING AND DATA STRUCTURES II QUESTION BANK UNIT-I 2-marks ) Give some characteristics of procedure-oriented language. Emphasis is on doing things (algorithms). Larger programs are divided

More information

DEMOB - An Object Oriented Application Generator for Image Processing

DEMOB - An Object Oriented Application Generator for Image Processing DEMOB - An Object Oriented Application Generator for Image Processing N. Bryson, D.H.Cooper, J.G.Graham, D.P.Pycock, C.J.Taylor, P.W.Woods Wolf son Image Analysis Unit, Department of Medical Biophysics

More information

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation

Object-Oriented Software Engineering. Chapter 2: Review of Object Orientation Object-Oriented Software Engineering Chapter 2: Review of Object Orientation 2.1 What is Object Orientation? Procedural paradigm: Software is organized around the notion of procedures Procedural abstraction

More information

Chapter 5 Object-Oriented Programming

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

Introduction. Object-Oriented Programming Spring 2015

Introduction. 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 information

OOPs: The Harsh Realities of Programming

OOPs: The Harsh Realities of Programming Division of Mathematics and Computer Science Maryville College Outline Course Overview 1 Course Overview 2 3 4 Preliminaries Course Overview Required Materials Big C++ 2nd Edition by Cay Horstmann An Account

More information

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.

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

A Concept of Type Derivation for Object-Oriented Database Systems

A Concept of Type Derivation for Object-Oriented Database Systems in: L.Gün, R.Onvural, E.Gelenbe (eds.): Proc. 8 th International Symposium on Computer and Information Systems, Istanbul, 1993 A Concept of Type Derivation for Object-Oriented Database Systems Michael

More information

Programming Languages FILS Andrei Vasilateanu

Programming Languages FILS Andrei Vasilateanu Programming Languages FILS 2014-2015 Andrei Vasilateanu Course Master: Administration Andrei Vasilateanu, andraevs@gmail.com Teaching Assistants: Radu Serban Grading: Final exam 40% Laboratory 60% 2 Tests

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

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

More information

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module

Client Code - the code that uses the classes under discussion. Coupling - code in one module depends on code in another module Basic Class Design Goal of OOP: Reduce complexity of software development by keeping details, and especially changes to details, from spreading throughout the entire program. Actually, the same goal as

More information

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright Complexity Object Orientated Analysis and Design Benjamin Kenwright Outline Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by Complexity? How do

More information

B16 Object Oriented Programming

B16 Object Oriented Programming B16 Object Oriented Programming Michael A. Osborne mosb@robots.ox.ac.uk http://www.robots.ox.ac.uk/~mosb/teaching.html#b16 Hilary 2013 This course will introduce object-oriented programming (OOP). It will

More information

Object Oriented Finite Element Modeling

Object Oriented Finite Element Modeling Object Oriented Finite Element Modeling Bořek Patzák Czech Technical University Faculty of Civil Engineering Department of Structural Mechanics Thákurova 7, 166 29 Prague, Czech Republic January 2, 2018

More information

THE OBJECT-ORIENTED DESIGN PROCESS AND DESIGN AXIOMS (CH -9)

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

C++ Important Questions with Answers

C++ Important Questions with Answers 1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children

More information

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means

More information

Unit 1 : Principles of object oriented programming

Unit 1 : Principles of object oriented programming Unit 1 : Principles of object oriented programming Difference Between Procedure Oriented Programming (POP) & Object Oriented Programming (OOP) Divided Into Importance Procedure Oriented Programming In

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 1 Date:

More information

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN GARJE RAKESH RAMESHRAO RESEARCH SCHOLAR, DEPT. OF COMPUTER SCIENCE CMJ UNIVERSITY, SHILLONG, MEGHALAYA INTRODUCTION Object-oriented Analysis and Design is

More information

Department of Computer science and Engineering Sub. Name: Object oriented programming and data structures Sub. Code: EC6301 Sem/Class: III/II-ECE Staff name: M.Kavipriya Two Mark Questions UNIT-1 1. List

More information

BASIC CONCEPT OF OOP

BASIC CONCEPT OF OOP Chapter-6 BASIC CONCEPT OF OOP Introduction: Object oriented programmingg is the principle of design and development of programs using modular approach. Object oriented programmingg approach provides advantages

More information

CHAPTER 5 GENERAL OOP CONCEPTS

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

OOAD and UML. Prabhudeva S. Assistant professor Department of Computer Science and engineering. J N N C E, Shimoga. Downloaded from

OOAD and UML. Prabhudeva S. Assistant professor Department of Computer Science and engineering. J N N C E, Shimoga. Downloaded from OOAD and UML Prabhudeva S. Assistant professor Department of Computer Science and engineering. J N N C E, Shimoga. OBJECT ORIENTED ANALYSIS AND DESIGN WITH UML CONTENTS UNIT 1: Structured approach vs.

More information

STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING

STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING OBJECT ORIENTED PROGRAMMING STUDY NOTES UNIT 1 - INTRODUCTION TO OBJECT ORIENTED PROGRAMMING 1. Object Oriented Programming Paradigms 2. Comparison of Programming Paradigms 3. Basic Object Oriented Programming

More information

The Analysis and Design of the Object-oriented System Li Xin 1, a

The Analysis and Design of the Object-oriented System Li Xin 1, a International Conference on Materials Engineering and Information Technology Applications (MEITA 2015) The Analysis and Design of the Object-oriented System Li Xin 1, a 1 Shijiazhuang Vocational Technology

More information

Topic IV. Parameters. Chapter 5 of Programming languages: Concepts & constructs by R. Sethi (2ND EDITION). Addison-Wesley, 1996.

Topic IV. Parameters. Chapter 5 of Programming languages: Concepts & constructs by R. Sethi (2ND EDITION). Addison-Wesley, 1996. References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 5 of Programming languages: Concepts

More information

EXTRACTING RULE SCHEMAS FROM RULES, FOR AN INTELLIGENT LEARNING DATABASE SYSTEM

EXTRACTING RULE SCHEMAS FROM RULES, FOR AN INTELLIGENT LEARNING DATABASE SYSTEM EXTRACTING RULE SCHEMAS FROM RULES, FOR AN INTELLIGENT LEARNING DATABASE SYSTEM GEOFF SUTCLIFFE and XINDONG WU Department of Computer Science, James Cook University Townsville, Qld, 4811, Australia ABSTRACT

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

Object-Oriented Programming Paradigm

Object-Oriented Programming Paradigm Object-Oriented Programming Paradigm Sample Courseware Object-Oriented Programming Paradigm Object-oriented programming approach allows programmers to write computer programs by representing elements of

More information

OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado

OO Requirements to OO design. Csaba Veres Alan M. Davis (1995), Colorado OO Requirements to OO design Csaba Veres Alan M. Davis (1995), Colorado Alan Davis? Guru? Academic and professional www.omni-vista.com? Controversial article on research into requirements engineering Requirements

More information

Some instance messages and methods

Some instance messages and methods Some instance messages and methods x ^x y ^y movedx: dx Dy: dy x

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

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

Chapter 1: Object-Oriented Programming Using C++

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

Topic IV. Block-structured procedural languages Algol and Pascal. References:

Topic IV. Block-structured procedural languages Algol and Pascal. References: References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapters 10( 2) and 11( 1) of Programming

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

The major elements of the object-oriented model

The major elements of the object-oriented model The major elements of the object-oriented model Abstraction Encapsulation Inheritance Modularity Suggested Reading: Bruce Eckel, Thinking in Java (Fourth Edition) Reusing Classes Hierarchy 2 An abstraction

More information

History of object-oriented approaches

History of object-oriented approaches Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Object Oriented Programming

Object Oriented Programming Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering

More information

PROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development

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

Today s lecture. CS 314 fall 01 C++ 1, page 1

Today s lecture. CS 314 fall 01 C++ 1, page 1 Today s lecture Midterm Thursday, October 25, 6:10-7:30pm general information, conflicts Object oriented programming Abstract data types (ADT) Object oriented design C++ classes CS 314 fall 01 C++ 1, page

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

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1 Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing

More information

Chapter 8: Creating Your Own Type Classes

Chapter 8: Creating Your Own Type Classes Chapter 8: Creating Your Own Type Classes What we will learn: Object-oriented programming What is a class How to create a class Assigning values to a class What you need to know before: Data types Methods

More information

More About Objects. Zheng-Liang Lu Java Programming 255 / 282

More About Objects. Zheng-Liang Lu Java Programming 255 / 282 More About Objects Inheritance: passing down states and behaviors from the parents to their children. Interfaces: requiring objects for the demanding methods which are exposed to the outside world. Polymorphism

More information

(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University

(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University (12-1) OOP: Polymorphism in C++ D & D Chapter 12 Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University Key Concepts Polymorphism virtual functions Virtual function tables

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

More information

Programming Languages & Paradigms PROP HT Course Council. Subprograms. Meeting on friday! Subprograms, abstractions, encapsulation, ADT

Programming Languages & Paradigms PROP HT Course Council. Subprograms. Meeting on friday! Subprograms, abstractions, encapsulation, ADT Programming Languages & Paradigms PROP HT 2011 Lecture 4 Subprograms, abstractions, encapsulation, ADT Beatrice Åkerblom beatrice@dsv.su.se Course Council Meeting on friday! Talk to them and tell them

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

DEVELOPMENT THE QUARKS OBJECT-ORIENTED. Even though object-oriented development was introduced in the late 1960s

DEVELOPMENT THE QUARKS OBJECT-ORIENTED. Even though object-oriented development was introduced in the late 1960s THE QUARKS OBJECT-ORIENTED A two-construct taxonomy is used to define the essential elements of object orientation through analysis of existing literature. By Deborah J. Armstrong of DEVELOPMENT Even though

More information

Object Oriented Programming. C++ 6 th Sem, A Div Ms. Mouna M. Naravani

Object Oriented Programming. C++ 6 th Sem, A Div Ms. Mouna M. Naravani Object Oriented Programming C++ 6 th Sem, A Div 2018-19 Ms. Mouna M. Naravani Object Oriented Programming (OOP) removes some of the flaws encountered in POP. In OOPs, the primary focus is on data rather

More information

Inducing Parameters of a Decision Tree for Expert System Shell McESE by Genetic Algorithm

Inducing Parameters of a Decision Tree for Expert System Shell McESE by Genetic Algorithm Inducing Parameters of a Decision Tree for Expert System Shell McESE by Genetic Algorithm I. Bruha and F. Franek Dept of Computing & Software, McMaster University Hamilton, Ont., Canada, L8S4K1 Email:

More information

Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming Introduction to Object-Oriented Programming Objects and classes Abstract Data Types (ADT). Encapsulation OOP: Introduction 1 Pure Object-Oriented Languages Five rules [Source: Alan Kay]: Everything in

More information

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University

G Programming Languages Spring 2010 Lecture 6. Robert Grimm, New York University G22.2110-001 Programming Languages Spring 2010 Lecture 6 Robert Grimm, New York University 1 Review Last week Function Languages Lambda Calculus SCHEME review 2 Outline Promises, promises, promises Types,

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" Chapter 13 Object-Oriented Programming I am surprised that ancient and Modern writers have not attributed greater importance to the laws of inheritance..."

More information