1 / 45

Chap 1. Introduction

OBJECT-ORIENTATION by Khoshafian and Abnous. Chap 1. Introduction. 서울대학교 컴퓨터공학부 객체지향시스템 연구실 SNU OOPLSA LAB 교수 김형주. Contents. 1. Introduction to Object Orientation Object Orientation for All Users What is Object Orientation? PLs, DBs, and UIs 2. History and Evolution

berget
Download Presentation

Chap 1. Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OBJECT-ORIENTATION by Khoshafian and Abnous Chap 1. Introduction 서울대학교 컴퓨터공학부 객체지향시스템 연구실 SNU OOPLSA LAB 교수 김형주

  2. Contents 1. Introduction to Object Orientation • Object Orientation for All Users • What is Object Orientation? • PLs, DBs, and UIs 2. History and Evolution • The Evolution of Object Orientation in PLs • The Evolution of Object-Oriented DBs • The Evolution of Object Orientation in UIs SNU, OOPSLA Lab

  3. 1. Intro to Object Orientation • OO provides better paradigms and tools • Modeling the real world • Interacting easily with a computer • Constructing reusable SW components and easily extensible libraries of SW modules • Easily modifying and extending implementations of components SNU, OOPSLA Lab

  4. The SW development effort Conventional OO Technology Effort: Labor-Months Effort: Labor-Months Size or Functionality Size or Functionality SNU, OOPSLA Lab

  5. Object-Oriented Software • Can model problems better. • Is more understandable. • Is more repairable. • Is more reusable. Productivity ! Quality !

  6. Object-Oriented Programming Languages Some Example Smalltalk, C++, Java, Eiffel, Objective-C, Simula, Object Pascal, Turbo Pascal, CLOS, Actor Self, Emerald, Oberon, COB, Trellis/Owl, Beta, Flavors, Modula-3, POOL, Hybrid, ABCL Ada 9X, PL/X, Object COBOL, ORYX, OO CHILL

  7. Object-Oriented Paradigm Computation Computation is viewed as message passing among a collection of self-contained, autonomous objects Programming Programming is a process of defining objects and message. Objects are classified according to their behaviors. Existing Object definitions may be reused when new objects are defined.

  8. Object Orientation for All Users(1) • End users • Executives, secretaries, ATM users • Friendlier user interfaces • Multimedia data support • Plug-and-use/plug-and-play • Example: PowerPoint and Web, Web browser and Email SNU, OOPSLA Lab

  9. Object Orientation for All Users(2) • Customized application developers • Application programmers, consultants • Easier-to-use tools • Object-oriented hypermedia tools • Object-oriented DB design tools • Example: Rational Rose, Oracle’s Developer 2000, Powerbuilder, Java Visual Cafe SNU, OOPSLA Lab

  10. Object Orientation for All Users(3) • Independent software vendors • SW developers: DBMS, O/S, Intranet • Power user group • Enhanced engineering and configuration management tools • Build complex systems rapidly • Example: Apache web server, Nacho OS Kernel, MySQL DBMS SNU, OOPSLA Lab

  11. PL DB UI Object Orientation for All Users(4) Object Orientation user requirements SNU, OOPSLA Lab

  12. What Is Object Orientation? • Software modeling and development (engineering) disciplines that make it easy to construct complex systems from individual components • Provide better concepts and tools to model and represent the real world -> modeling • Provide better methodologies to construct complex SW systems out of modularized reusable SW units -> development SNU, OOPSLA Lab

  13. Abstract Data Types(ADTs) • ADTs extend the notion of a data type through hiding the implementation of the user-defined operations associated with the data type. • All manipulations of instances of the data type are done exclusively through operationsassociated with the data type. SNU, OOPSLA Lab

  14. M4 M3 M1 M2 M3 M2 Object 3 M4 M1 Message Passing Paradigm message 2 Object 1 M2 M3 Object 2 M1 M4 message 1 message 3 SNU, OOPSLA Lab

  15. Inheriting behavior enables code sharing among software modules. Inheriting representation enables structure sharing among data objects. Inheritance Ford Mustang Base Model: 4 cylinder engine vanilla chassis standard interior specialization Mustang LX: better interior v6 or v8 engine Base Model + luxury interior Mustang GT: sport suspension sport v8 engine special body work SNU, OOPSLA Lab

  16. Object Identity • Object identity distinguishes each object from all others. • With object identity, objects can contain or refer to other objects. • Object identity organizes objects of object space. • ADT and inheritance organizes the classes of objects. SNU, OOPSLA Lab

  17. Tim-rec-object: oid1 Terry-rec-object: oid2 Tim Terry 34 35 Partner Name Name Partner Age Age Department Department Toy-dept-rec-object: oid3 Dept Name Budget Toy $1,000,000 SNU, OOPSLA Lab

  18. Object-Oriented Analysis and Design Requirements Waterfall Model Analysis Design Programming Integration Testing SNU, OOPSLA Lab

  19. Object-Oriented Analysis • Provide a detailed description of a system • Identify WHAT • Identify objects, classes, operations • Identify object relationships, object interations • Build real-world models using OO view of the world • Goals of OOA • understand the problem domain • increase correctness, consistency, completeness SNU, OOPSLA Lab

  20. Object-Oriented Design • Provide the blueprint for implementation • Specify HOW • Specify class definitions, class categories • Specify subsystems, system architectures • OOA + Implementation details • Goals of OO Design • Optimize maintainability, reusability, enhancebility and reliability SNU, OOPSLA Lab

  21. What is Object-Oriented Programming ? A programming style which relies on the notion of object, class and inheritance. PeterWegner in “Dimensions of OOPLs” Object Class Inheritance Object-Oriented Programming Many varying definitions exist as will be seen later.

  22. 2. History and Evolution • The Evolution of Object Orientation in Programming Language • The Evolution of Object-Oriented Databases • The Evolution of Object Orientation in User Interfaces SNU, OOPSLA Lab

  23. 2.1 The Evolution of OO in PL(1) • Assemblers(mid 1950s): IBM 650, IBM 704 • FORTRAN(mid 1950s) • The first milestone of high-level language • PL/1, COBOL(late 1950s) • Algol(1960) • Block structure => encapsulation • Algol60(Randll and Russell): Begin-End blocks SNU, OOPSLA Lab

  24. TheEvolution of OO in PL(2) • Simula-67 (Dahl and Nygaard 1966) • Introduced the concepts of an object • Intended as a simulation language • Incorporated the notion of classes • Supported class inheritance • Laid the foundation of OO language • A “strongly typed” language SNU, OOPSLA Lab

  25. The Evolution of OO in PL(3) • LISP (MaCarthy 1965) • Functional programming language • The language of choice for many AI applications • Data abstraction (Parnas,1972) • Grouping of structure and operations • Information hiding • Alphard (1976), CLU (1977) • Ada (late 1970, DoD) • The most important PL supporting ADT SNU, OOPSLA Lab

  26. The Evolution of OO in PL(4) • Smalltalk(XEROX PARC 1970-1980) • One of the most influential OO language • Not just a language • A programming environment • A menu-based interactive user-interface • An initial class hierarchy • Not a typed language • Everything is an object SNU, OOPSLA Lab

  27. The Evolution of OO in PL(5) • Another thing: Concurrency • Modeling concurrent processes of objects • Actor (Hewitt 1977) • ABCL/1 (Yonezawa 1990) • Concurrnt C++ (Gehani 1988) • Eiffel II (Camerol 1993) SNU, OOPSLA Lab

  28. The Evolution of OO in PL(6) • The strategic direction of object-oriented PL development • Extensions, dialects, and versions of Smalltalk • Smalltalk/V, Smalltalk80 • Object-oriented extensions of conventional PLs • C++, Objective-C, Object-Pascal, • Strongly typed object-oriented languages • Eiffel, Trellis/Owl • Object-oriented extensions of LISP • CommonLoops, Common Lisp Object System(CLOS) SNU, OOPSLA Lab

  29. The Evolution of OO in PL(7) • 1970s • Structured programming • 1980s • The decade that launched the OO era • 1990s • The decade of the proliferation of OO languages and technologies: C++ and relatives • 2000s • Moving toward Internet and Web Technology SNU, OOPSLA Lab

  30. 2.2 The Evolution of OODB • OO Concepts + DB functionalities • RDB Model + OO Features -> OR-DBMS • System/R Engineering Extension (IBM SanJose) • PostGres(UC Berkley) • OO Languages + DB capabilities • providing class hierarchies for persistent DB • OODB standard: ODMG 1993 SNU, OOPSLA Lab

  31. Network and Hierarchical Models(1) • File management systems • In the 1950s and 1960s • Data definition products • CODASYL-DBTG • COBOL + DB • DDL, DML -> foundation for network DBMS SNU, OOPSLA Lab

  32. Network and Hierarchical Models(2) • Network data model • record types and one-to-many relationships • A record type is involved in more than one relationship • Hierarchical data model • A tree-structured hierarchical relationship among record types • A record type is involved in only one relationship SNU, OOPSLA Lab

  33. Network and Hierarchical Models(3) • Both the hierarchical and network data models were primarily navigational • start from “parent” or “owner” record • navigate through “get next,” “get first,” or “get last” SNU, OOPSLA Lab

  34. Network and Hierarchical Models(4) • Do not have physical data independence • The owner-member relationship(for the network model) or parent-child relationship(for the hierarchical model) was explicitly stored in the DB records. • User’s view is dependent on physical storage SNU, OOPSLA Lab

  35. The Relational Model(1) • In the early 1970s, by Ted Codd • SQL(Structure Query Language) • Declarative • Specify what is to be accessed from DBs • Based on relational algebra and first-order predicate calculus • Simple and elegant SNU, OOPSLA Lab

  36. The Relational Model(2) • Early Relational DB System • System/R(IBM), INGRES(U.C. Berkeley) • SQL standard • SQL92, SQL3 • Major vendor • DEC, Informix, Oracle, Sybase, etc. SNU, OOPSLA Lab

  37. Semantic and Functional Data Models • Semantic data model(early 1980) • Motivation: Model the real world as closely as possible • ER data model • Functional data model(early 1980) • Data manipulation capability • Attributes are treated as functions • Values are retrieved through applying functions to entities SNU, OOPSLA Lab

  38. Extended and Object-Relational Models • Extended(or object) relational model(mid 1980) • Incorporated some object-oriented features as incremental extension to relational systems • Illustra, UniSQL, Matisse • SQL3 (ISO-ANSI, 1993) • SQL + OO(ADT,inheritance..) SNU, OOPSLA Lab

  39. Nested Relational and Complex Object Models • Nested relational model • Have a relation valued attribute • Complex object model • More general • Arbitrary composition hierarchies with sets and tuples • tree structured object spaces SNU, OOPSLA Lab

  40. DBMS Market Trend • 1990 이후 OODBMS 와 ORDBMS 등장 • OODBMS: Versant, Object Store, Objectivity • ORDBMS: Illustra, UniSQL, Mattisse • 3 Big RDBMS: Oracle, Informix, Sybase • 1997년 Major Big 3 의 ORDBMS 출시 • 2000년 이후: Internet and Web 지원 ORDBMS 체재 SNU, OOPSLA Lab

  41. 2.3 The Evolution of OO in User Interfaces(1) • Means of communicating with the computer in early computer systems • Batch system: Paper tapes, cards, and batch jobs • Time-sharing system: CRT terminals • Command-driven user interface • Users had to memorize commands and options SNU, OOPSLA Lab

  42. The Evolution of OO in User Interfaces(2) • Graphical User Interface • In early 1970s -> mouse • Menubar, pulldown menu, dialog box • Desktop metaphor and direct manipulation • End user data object (ex. icon) • data + procedure required to modify it • Automatizing user-interface design • Class hierarchy + new screen object design SNU, OOPSLA Lab

  43. The evolution of OO in User Interfaces(3) • The concept of Metaphor • Alan Kay: Smalltalk User Interface • The physical mthaphor is a way of saying that the visual displays of a computer system should present the images of real physical objects with some degree of abstraction • Ex. Wastebasket icon, folder icon,... SNU, OOPSLA Lab

  44. References(1) • Randell, b., and Russel, L.(1964) ALGOL 60 Implementation • Dahl and Nygaard(1966) Simula - an Alogol-based simulation language. CACM, 9 • Goldberg and Robson(1983) Smalltalk-80: The Language and its Implementation • Shipman(1981) The functional data model and the data language DAPLEX, ACM TODS, 6(1) SNU, OOPSLA Lab

  45. References(2) • Keene(1988), Object-Oriented Programming In COMMONLISP • Astrahan(1976), System-R: A relational approach to data management, ACM TODS, 1(2) • Stonebraker(1976), The design and implementation of INGRES, ACM TODS, 1 SNU, OOPSLA Lab

More Related