1 / 36

Object-Oriented Design

Object-Oriented Design. Keith T. Weber, GISP GIS Director, ISU. Topics. During the balance of this semester, we will pursue and follow two learning threads Object-relational databases And the Geo-Web These two threads are interwoven. To understand Object-Relational Databases….

Download Presentation

Object-Oriented Design

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-Oriented Design Keith T. Weber, GISP GIS Director, ISU

  2. Topics • During the balance of this semester, we will pursue and follow two learning threads • Object-relational databases • And the Geo-Web • These two threads are interwoven

  3. To understand Object-Relational Databases… • We need to understand both relational concepts and • Object-oriented concepts (this week)

  4. The Early Days… • Computer programming from the caveman era

  5. Why…Object-Oriented • A brief history of computer programming… The concept of encapsulation!

  6. Today’s Goals • We will dissect “Object-Oriented” to learn what it really is and how it relates to object-relational databases, specifically… • What is a class? • What is an object? • Enable you to identify inheritance, aggregation, and dependency relationships between classes • Understand class attributes and object properties • Become familiar with new terminology

  7. What is a CLASS? • A class is a computer construct representing a concept bound (encapsulated) in a cohesive package • Some are concrete (i.e., real world) • Bank account • Rental item • Database item • Others are abstract • Scanner • Stream • Math

  8. Discovering CLASSES • Simple Rule: • Look for nouns in descriptions • Obviously not all nouns are classes • But at least this method can allow one to create a list of candidate classes

  9. What is an OBJECT • An instance of a CLASS • Contains meaningful data • OBJECTS occupy memory at runtime • If not, they are CLASSES • For example: data type vs. double

  10. Dog Scooby-Doo A little Quiz… • #1 Class or Object? Dog is a generalization of Scooby-Doo

  11. Dog Animal Scooby-Doo A little Quiz (cont’d)… • #2 Class or Object? Dog is a subclass of the Animal class Animal is a generalization of Dog The concept of subclass!

  12. Dog Animal Bird A little Quiz (cont’d)… • #3 Class or Object? The concept of polymorphism!

  13. Questions…

  14. Key Points • Many classes already exist and are at our disposal when we design a database • We use inheritance to add capabilities to our projects • A subclass inherits from its superclass • i.e., a child inherits from its parent

  15. Defining our CLASS • After a class has been identified we can define: • The behavior of each class • Verbs = methods • The attributes of each class

  16. Behavior

  17. Relationships Between CLASSES • We just mentioned inheritance as a relationship between classes • How classes relate to one another is called a behavior

  18. Three Relationship Behaviors • Inheritance • Aggregation • Dependency

  19. Inheritance • Is-arelationship • Relationship between a more general class (superclass) and a more specialized class (subclass) • Every… • savings account is a bank account • DVD rental is a rental

  20. Aggregation • Has-arelationship • Each Dog has a Paw (dog is not a generalization of paw!) • Objects of one class contain references to (or need) objects of another class

  21. Inheritance vs. Aggregation • Often confused • Questions?

  22. Example • Car is a Vehicle – Inheritance • Car has aTire – Aggregation

  23. Dependency • Dependency occurs when a class uses another class • This is a Uses relationship • Example: an application may depend on the Scanner class to read input

  24. Example: BankAccountClass Diagram What BEHAVIOR does deposit and withdraw represent?

  25. Attributes

  26. Example: BankAccountClass Diagram

  27. Dog Example: Dog • Name of the class = • Methods? • Attributes?

  28. Instantiation into an OBJECT • Three features characterize objects: • Identity: specific property settings have been made for the attributes of the class. This distinguishes it uniquely from other objects. • State: Describes the data stored in the object WHERE DID THIS COME FROM? • Behavior: describes the methods in the object's interface through which the object can be used.

  29. Scooby-Doo Instantiating the Dog CLASS • CLASS (DOG) • Attributes (Properties) • NAME = Scooby-Doo • HEIGHT = 36 • WEIGHT = 145 • Methods • [Uses] bark- “Rooby roo” • etc.

  30. Applying Object Oriented Skills: Reading a Business Statement

  31. Identify Candidate Classes • A candidate class may or may not remain a class throughout the design process • A candidate class may or may not become a table • Do not focus on tables at this point

  32. Locate Nouns • Classes are nouns • A noun is a “person, place, or thing”

  33. And now…Verbs • Candidate methods are verbs • They show action • They exhibit behaviors

  34. Methods • Identifying candidate methods allows us to better understand how the business operates and how the Enterprise uses GIS. • A method is a behavior…a relationship between classes • The candidate methods describe an inheritance, aggregation, or dependency relationship

  35. Key Concepts • Understand the difference between a CLASS and an OBJECT • Understand new terms: • Encapsulation, polymorphism, superclass, subclass, behavior, attributes, instantiation • Understand --and be able to differentiate-- the three types of behaviors

  36. Questions…

More Related