1 CSC 335: Object-Oriented Programming and Design Object-Oriented Technology: A Brief Historical Perspective Rick Mercer Pictures from OOT: A Manager’s.

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
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.
Computers Are Your Future
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Introduction Class Notes How to Program in C++ By : dettle & dettle READING MATERIAL
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Object Oriented System Development with VB .NET
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Chapter 1 Program Design
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
C++ fundamentals.
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
The chapter will address the following questions:
COMPUTER PROGRAMMING. Introduction to C++ History Merges notions from Smalltalk and notions from C The class concept was borrowed from Simular67 Developed.
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
Introduction To System Analysis and design
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
OOP- OBJECT OBJECT PROGRAMMING By KRATI SHARMA 02 XI-B ✏✏✏✏ ☺☻☺☻☺☻☺ ✏✏✏✏
INFO415 Approaches to System Development: Part 2
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Introduction to Object-oriented programming and software development Lecture 1.
“Object-orientation” – what is it all about? Gill Harrison, Innovation North.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
BCS 2143 Introduction to Object Oriented and Software Development.
Two Approaches to System Development
CS101 Introduction to Computing Lecture Programming Languages.
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
C Sc 335 Course Overview Object-Oriented Technology © Rick Mercer.
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.
SE: CHAPTER 7 Writing The Program
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
1 CMPT 275 High Level Design Phase Modularization.
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.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Java Fundamentals Usman Ependi UBD
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
Introduction to OOP CPS235: Introduction.
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 22: Objects I invented the term Object-
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Chapter 4 Software. Introduction Program: is a set of sequence instructions that tell the computer what to do. Software: is a collection of programs,
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
객체지향시스템 연구실 1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 객체지향시스템 연구실 교수 김형주.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
1 THE OBJECT-ORIENTED TECHNOLOGY: An Executive Summary 서울대학교 컴퓨터공학부 Internet Database Lab 교수 김형주 Spring 2007.
Visit for more Learning Resources
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING
Objectives State the reasons for the complexity involved in the development of software Define the following terms Objects Classes Messages Methods Explain.
CSC 335: Object-Oriented Programming and Design
OBJECT ORIENTED PROGRAMMING overview
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Ada – 1983 History’s largest design effort
Presentation transcript:

1 CSC 335: Object-Oriented Programming and Design Object-Oriented Technology: A Brief Historical Perspective Rick Mercer Pictures from OOT: A Manager’s Guide, David A. Taylor

1-2 Object-Oriented Technology:  Outline  Consider a few ways in which data is protected from careless modification  Mention the key features object-oriented style of software development  Consider why object-oriented technology is important

1-3 Chapter 1: Beating the Software Crisis  Corporations continue to become more dependent on information  Their ability to manage data decreases.  The problem is the software, not the hardware  The Software crisis  How often is software delivered on time, under budget, and does what it’s supposed to?  The software is not flexible enough to handle rapid changes

1-4 How Software is Constructed  Wanted:  robust large-scale applications that evolve with the corporation  It isn’t easy!  Modular Programming (the past 40 years)  Break large-scale problems into smaller components that are constructed independently  Programs were viewed as a collection of procedures, each containing a sequence of instructions

1-5 Modular Programming  Subroutine (1950s)  Provided a natural division of labor  Could be reused in other programs  Structured Programming and Design (1960s)  It was considered a good idea to program with a limited set of control structures (no go to statements, single returns from functions)  sequence, selection, repetition, recursion  Program design was at the level of subroutines  functional decomposition

1-6 Functional Decomposition main readData mainMenu saveData addRecord deleteRecord editRecord

1-7 A Problem with Structured Design  Structured programming has a serious limitation:  It’s rarely possible to anticipate the design of a completed system before it’s implemented  The larger the system, the more restructuring takes place

1-8 And What About the Data?  Software development had focused on the modularization of code,  the data was either moved around between functions via argument/parameter associations  or the data was global  works okay for smaller programs or for big programs when there aren't to many global variables  Not good when variables number in the hundreds

1-9 Don’t use Global Variables  Sharing data (global variables) is a violation of modular programming  This makes all modules dependent on one another  this is dangerous  Global Data

1-10 Information (Data) Hiding  An improvement:  Give each subroutine it’s own local data  This data can only be “touched” by that single subroutine  Subroutines can be designed, implemented, and maintained independently  Other necessary data is passed amongst the procedures via argument/parameter associations.

1-11 Modularized Data  Localize data inside the modules  This makes modules more independent of one another.  Local Data

1-12 Data Outside of Programs  Small programs require little input and output  Large programs work with the same data over and over again  Inventory control systems  accounting systems  engineering design tools  Store data in external files

1-13 External Data  A program that accesses data stored outside of the program  Data stored on an external file

1-14 Sharing Data  Many people must access the same data stored on file  This requires a data base management system (DBMS) Data protected by a DBMS

1-15 The Relational DBMS Model  Relational data bases store data in tables  Each table can have primary and secondary keys  For example, there is one table with complete information on all customers.  Each of these records has a primary key called custID. MillerR 123 W. Palm, Civino, CA MillerT 987 E. Orange, New York, NY  Another table stores all orders.  Each record stores all order information with a secondary key named customer ID. Icees 6/8/01 MillerR  Then you only need to store customer data once

1-16 The Procedural Approach  The procedural style of programming builds systems one subroutine at a time.  This approach doesn’t work well in large systems  The result is defective software that is difficult to maintain  There is a better way

1-17 Object-Oriented Style of Design and Programming  Three Keys to Object-Oriented Technology  Objects  Messages  Classes  Translation for structured programmers  Variables  Function Calls  Data Types

1-18 Introducing objects  OOT began with Simula 67  developed in Norway  acronym for simulation language  Why this “new” language?  to build accurate models of complex working systems  The modularization occurs at the physical object level (not at a procedural level)

1-19 What’s in the System  Simula 67 was designed for system simulation (in Norway by Nygaard and Dahl)  Caller and called subprogram had equal relationship  First notion of objects including class/instance distinctions  Ability to put code inside an instance to be executed  The class concept was first used here  In procedural programming, systems are modeled as a collection of procedures.  In object-oriented programming, the system is modeled as a collection of interacting objects.

1-20 Inside Objects  An object is:  a software “package” that contains a collection of related methods and data  an entity stored in computer memory  an excellent software module  an instance of a class  a bunch of bits in memory or on the wire  We understand an object through:  the values the object stores (state) via attributes the  operations that can be applied to that object (behavior) [Booch 92].

1-21 Modeling an Automated Vehicle  Consider how we would mode an automated guided vehicle (AGV):  Behaviors:  move from one location to another  loading and unloading contents  Must maintain information about  its inherent characteristic: pallet size, lifting capacity, maximum speed,...  its current state: contents, location, velocity,...

1-22 One instance of a vehicle  Every object has:  a name  instance variables stored in computer memory  methods-a.k.a. procedures, member functions,...

1-23 Introducing messages  Real-world objects exhibit many effects on each other.  These interactions are represented in software as messages (a.ka. method or function calls).  A message has these three things:  sender: the initiator of the message  receiver: the recipient of the message  arguments: data required by the receiver

1-24 Example messages  Smalltalk examples sender is the object sending the message--sender is not shown here vehicle104 moveTo:binB7 myAccount withdraw:  Java examples vehicle104.moveTo( binB7 ); myAccount.withdraw( );  An object-oriented program consists of objects interacting with other objects by sending messages to one another

1-25 Introducing Classes  We often need many of the same objects within a program--many numbers, Strings, BankAccounts, Employees, InventoryItems,...  We need an efficient way to redefine the same thing many times  The class mechanism provides a template to define the methods and instance variables of objects.  Each object (or instance) of a class has its own state--the set of values for that instance.

1-26 One Class can Generate Many Objects  We can create many instances (objects) of the same class.  Every object has  name (a reference to it)  state (values)  methods

1-27 Important OO languages  Simula started it all  Smalltalk was released in early 80s  Xerox Palo Alto Research Center PARC Place  Alan Kay, Adele Goldberg  It is Pure  C++ started in the mid 80s  AT&T (Bjarne Stroustrup)  Added classes to the popular C language  Hybrid -- both procedural and object-oriented  Ada became OO in 95  Java started in the mid 90s just another C extension?

1-28 The OOT mindset  Traditionally, software was developed to satisfy a specific requirements specification.  A billing system could not be made into something else even if were similar.  Let the billing system handle mailings or ticklers  OOT has a different mindset  Instead of beginning with the tasks to be performed, OO design deals with the aspects of the real world that need to modeled in order to perform the tasks

1-29 The OO approach  The OO approach is:  more flexible  more understandable -- it models the real world  more maintainable--later programmers understand it better  Basic corporate operations change more slowly than the information needs--software based on corporate models have a longer life span

1-30 A Wish for Reuse  Traditional software started from scratch  easier than converting old code--specific task  OOT stresses reuse  objects are the building blocks  majority of time spent assembling proven components: ex. Graphical User Interface (GUI):  Borland's OWL, MS's MFC, or Java Swing  But reuse is hard to obtain!  I used to predict what we might need in the future I was right 10% of the time Ron Jeffries, an eXtreme Programmer (XP)

1-31 The Promise of the Approach  OOT offers  techniques for creating flexible, natural software modules.  systems that are much easier to adapt to new demands  reuse shortens the development life cycle  systems are more understandable and maintainable  easier to remember 50 real world classes rather than 500 functions

1-32 For Next Class  Depending on your Java background, skim and/or read Chapters 3 and 4 from Core Java Volume I  reviews 127A and 217BB or C Sc 227  Have your lab access cards  Go to 737 Gould-Simpson today or tomorrow and apply for your accounts  can telnet from home: user apply password apply  you don't get new card until you sign paperwork