OBJECT ORIENTED DESIGN Mohammad Amin Kuhail M.Sc. (York, UK)  Introduction to Object Oriented Design & Analysis  University of Palestine  Faculty of.

Slides:



Advertisements
Similar presentations
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Advertisements

1 OBJECT-ORIENTED CONCEPTS. 2 What is an object?  An object is a software entity that mirrors the real world in some way.  A software object in OOP.
Chapter 10 THINKING IN OBJECTS 1 Object Oriented programming Instructor: Dr. Essam H. Houssein.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Classes & Objects Computer Science I Last updated 9/30/10.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
Object-Oriented Design & Programming Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented System Development with VB .NET
1 Basic Object-Oriented Concepts  Object-Oriented Paradigm What is an Object?  What is a Class?  Constructing Objects from a class Problem Solving in.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
1 Introduction to C++ Programming Concept Basic C++ C++ Extension from C.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
C++ fundamentals.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
The chapter will address the following questions:
Introduction To System Analysis and design
Object Oriented Software Development
UFCEUS-20-2 : Web Programming Lecture 5 : Object Oriented PHP (1)
Introduction to Object-oriented programming and software development Lecture 1.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
Welcome to OBJECT ORIENTED PROGRAMMIN Date: 10/09/2014 Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Introduction To System Analysis and Design
CSCI-383 Object-Oriented Programming & Design Lecture 13.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Kal Bugrara, Ph.DSoftware Engineering Northeastern University Fundamentals Of Software Engineering Lecture V.
Part VII: Design Continuous
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Learners Support Publications Object Oriented Programming.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Programming Paradigms Lecturer Hamza Azeem. What is PP ? Revision of Programming concepts learned in CPLB Learning how to perform “Object-Oriented Programming”
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Chapter 19: Interfaces and Components [Arlow and Neustadt, 2005] University of Nevada, Reno Department of Computer Science & Engineering.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Business Applications with Object-Oriented Paradigm (Modeling Concepts) Professor Chen School of Business Gonzaga University Spokane, WA
Lecture 2: Review of Object Orientation. © Lethbridge/La ganière 2005 Chapter 2: Review of Object Orientation What is Object Orientation? Procedural.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Before Object Oriented Programming (OOP) was popular, computer software was written in a Procedural style. This meant that the application/program was.
Welcome to OBJECT ORIENTED PROGRAMMING Prepared By Prepared By : VINAY ALEXANDER PGT(CS) KV jhagrakhand.
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Programming paradigms
Object Oriented Programming
CHAPTER 5 GENERAL OOP CONCEPTS.
OBJECT ORIENTED PROGRAMMING overview
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Chapter 19: Interfaces and Components
Chapter 20 Object-Oriented Analysis and Design
Chapter 19: Interfaces and Components
Chapter 19: Interfaces and Components
Object-Oriented PHP (1)
Interfaces and Components
Chapter 19: Interfaces and Components
Presentation transcript:

OBJECT ORIENTED DESIGN Mohammad Amin Kuhail M.Sc. (York, UK)  Introduction to Object Oriented Design & Analysis  University of Palestine  Faculty of Applied Engineering and Urban Planning  Software Engineering Department  Lecture #: 1  Week: 2  Date: SAT,  Location: KB112

Introduction to Object Oriented Analysis and Design  Outline  History of Object Oriented Programming.  Object Oriented Programming.  Procedural Vs. Object Oriented Programming.  Advantages

History of Object Oriented Programming Simula  Objects as programming entities were introduced in the 1960s in Simula 67, a programming language designed for making simulations, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo.  Such an approach was a simple extrapolation of concepts earlier used in analog programming. On analog computers, such direct mapping from real-world phenomena/objects to analog phenomena/objects (and conversely), was (and is) called 'simulation'. Simula not only introduced the notion of classes, but also of instances of classes, which is probably the first explicit use of those notions.

History of Object Oriented Programming Smalltalk  The Smalltalk language, which was developed at Xerox PARC in the 1970s, introduced the term Object-oriented programming to represent the pervasive use of objects and messages as the basis for computation.  Smalltalk creators were influenced by the ideas introduced in Simula 67, but Smalltalk was designed to be a fully dynamic system in which classes could be created and modified dynamically rather than simply using static ones as in Simula 67.

History of Object Oriented Programming C++  Object-oriented programming developed as the dominant programming methodology during the mid-1990s, largely due to the influence of C++[citation needed]. Its dominance was further cemented by the rising popularity of graphical user interfaces, for which object-oriented programming is well-suited.  An example of a closely related dynamic GUI library and OOP language can be found in the Cocoa frameworks on Mac OS X, written in Objective C, an object- oriented, dynamic messaging extension to C based on Smalltalk

History of Object Oriented Programming Java,.NET, UML  Object-oriented features have been added to many existing languages during that time, including Ada, BASIC, Lisp, Fortran, Pascal, and others. Adding these features to languages that were not initially designed for them often led to problems with compatibility and maintainability of code.  More recently, a number of languages have emerged that are primarily object- oriented yet compatible with procedural methodology, such as Python and Ruby. Besides Java, probably the most commercially important recent object-oriented languages are Visual Basic.NET and C# designed for Microsoft's.NET platform.  Just as procedural programming led to refinements of techniques such as structured programming, modern object-oriented software design methods include refinements such as the use of design patterns, design by contract, and modeling languages (such as UML).

Object Oriented Programming Definition  The idea behind the approach was to build software systems by modeling them based on the real-world objects that they were trying to represent. For example, banking systems would likely contain customer objects, account objects, etc.  Today, object-oriented design has been widely adopted by businesses around the world. When done properly, the approach leads to simpler, concrete, robust, flexible and modular software. When done badly, the results can be disastrous.

Object Oriented Programming Definition  Object-oriented analysis is concerned with developing an object-oriented model of the application domain. The identified objects reflect entities and operations that are associated with the problem to be solved.  Object-oriented design is concerned with developing an object-oriented model of a software system to implement the identified requirements. The objects in an object-oriented design are related to the solution to the problem that is being solved. There may be close relationships between some problem objects and some solution objects but the designer inevitably has to add new objects and to transform problem objects to implement the solution.  Object-oriented programming is concerned with realizing a software design using an object-oriented programming language. An object-oriented programming language, such as Java, supports the direct implementation of objects and provides facilities to define object classes.

Break… Software Engineering Jokes!! For a software engineer, what is the difference between work and prison? IN PRISON... you spend the majority of your time in an 8x10 cell. AT WORK... you spend the majority of your time in a 6x8 cubicle. IN PRISON... you get three meals a day. AT WORK... you only get a break for one meal and you pay for it. IN PRISON... you get time off for good behaviour. AT WORK... you get more work for good behaviour. IN PRISON... the guard locks and unlocks all the doors for you. AT WORK... you must carry around a security card and open all the doors for yourself.k…

Procedural Vs. Object Oriented Procedural Programming  Most people think in top-down structured design (Procedural Programming )  approach decomposition  simple matter of algorithmic decomposition  each module in system denotes a major step (action) in some overall process

Procedural Vs. Object Oriented Procedural Programming  Is a programming paradigm that is based on procedure call.  Procedures, also known as routines, subroutines, methods, or functions simply contain a series of computational steps to be carried out. Any given procedure might be called at any point during a program's execution, including by other procedures or itself.  The focus of procedural programming is to break down a programming task into a collection of data structures and subroutines.

Procedural Vs. Object Oriented Procedural Programming  Especially in large, complicated programs, modularity is generally desirable. Inputs are usually specified syntactically in the form of arguments and the outputs delivered as return values.  Scoping is another technique that helps keep procedures strongly modular. It prevents the procedure from accessing the variables of other procedures (and vice- versa), including previous instances of itself, without explicit authorization.

Procedural Vs. Object Oriented Procedural Programming  A module interface expresses the elements that are provided and required by the module. The elements defined in the interface are visible to other modules.  The implementation contains the working code that corresponds to the elements declared in the interface.  The differences between classes and modules are:  Classes can be instantiated to create objects,  Classes can inherit behavior and data from another class,  Polymorphism allows relationships between class instances to change at run-time, while relations between modules are static.  The similarities between classes and modules are:  Both can be used to hide implementation details from public view  Both can form a hierarchy of modules/classes.

Procedural Vs. Object Oriented OO Programming  With OO decompose, key abstractions in problem domain are considered  move knight (bridge game)  shoot i.e. bet (playing craps)  Roll  identify objects such as  knight, pawn, rook,...  Dice  weapon

Procedural Vs. Object Oriented Procedural Programming  In OO decomposition, the world is viewed as set of autonomous agents  objects collaborate to perform some higher level behavior  role doesn’t exist as an independent algorithm  it is an operation associated with the object: i.e. dice

Procedural Vs. Object Oriented OO Programming  The class concept combines data and operation (e.g. card, dice, bishop, monster, …)  Better possibilities of abstraction. OO methods shift the focus of modeling from the solution area towards the problem area.  Methodology uniformity. All phases of software development operate with the same concepts (classes, objects, relationships,...)

Procedural Vs. Object Oriented OO Programming  An object is simply a real entity, which exhibits some well-defined behavior.  objects do things  we ask objects to perform actions by sending a messages  Decomposition based upon objects (not algorithms), thus we call this an object-oriented decomposition.

Advantages Encapsulation, Inheritance  Encapsulation: Achieved through:  Data hiding: Every object encapsulates its attributes, and methods.  Other objects don’t need to worry how each method is implemented.  objects interact with each other through messages.  Inheritance: Achieved through:  The derived class can inherit the properties of its base class and also adds its own data and routines.  Overloading, in OOP, means the ability to assign multiple meanings to the names of operators and functions.

Advantages  simplicity: software objects model real world objects, so the complexity is reduced and the program structure is very clear.  modularity: each object forms a separate entity whose internal workings are decoupled from other parts of the system.  modifiability: it is easy to make minor changes in the data representation or the procedures in an OO program. Changes inside a class do not affect any other part of a program, since the only public interface that the external world has to a class is through the use of methods.  extensibility: adding new features or responding to changing operating environments can be solved by introducing a few new objects and modifying some existing ones;  maintainability: objects can be maintained separately, making locating and fixing problems easier;  re-usability: objects can be reused in different programs.

Thanks… Break…

Introduction to Object Oriented Analysis and Design  References     Software Engineering, Summorville  