Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer © Prentice Hall, 2007 2-1 Chapter Objectives After studying this chapter you should be able to: – Define an object. – Understand the terms class, attribute, and operations. – Explain generalization, polymorphism, and inheritance. – Define association. – Describe modeling and the Unified Modeling Language. Chapter 2 © Prentice Hall, 2007 2-2 Unified Modeling Language (UML) A standard notation for representing objectoriented systems Boxes represent classes, components, packages, objects – Containing attributes and operations – Provide interfaces to external entities Lines represent generalization and other relationships Chapter 2 © Prentice Hall, 2007 2-3 Sample UML Diagram Chapter 2 © Prentice Hall, 2007 2-4 What Is an Object? An entity that encapsulates data and behavior - Objects are categorized into classes - Each individual object is an instance of a class Chapter 2 © Prentice Hall, 2007 2-5 What Is Encapsulation? The characteristic of object-orientation in which data and behavior are bundled into a class and hidden from the outside world Access to the data and behavior is provided and controlled through an object’s interface Chapter 2 © Prentice Hall, 2007 2-6 What Is a Class? • A category of objects that share the same attributes, operations, relationships, and semantics • All objects are instances of classes Chapter 2 © Prentice Hall, 2007 2-7 Name Attributes Operations Chapter 2 © Prentice Hall, 2007 2-8 What Is an Attribute? • Attribute- a named property of a class that describes a range of values that instances of the attribute might hold • Attributes are the way classes encapsulate data Chapter 2 © Prentice Hall, 2007 2-9 Minus sign indicates these are private (hidden) Attributes are properties containing values Chapter 2 © Prentice Hall, 2007 2-10 What Is an Operation? A behavior of an object Implemented in classes are methods Methods are identified and invoked by their signatures, including name, parameters, and return type Chapter 2 © Prentice Hall, 2007 2-11 Signature has name, parameters, return type Method implements the behavior Chapter 2 © Prentice Hall, 2007 2-12 Plus sign indicates these are public (accessible) Chapter 2 © Prentice Hall, 2007 2-13 What Is Generalization? A relationship between a more general (or parent) class and a more specific (or child) class The more specific class has additional attributes and operations Chapter 2 © Prentice Hall, 2007 2-14 What Is Inheritance? The mechanism by which the more specific class in a generalization relationship includes the attributes and operations of the more general class Chapter 2 © Prentice Hall, 2007 2-15 Generalization represented by arrows from subclass to superclass Subclasses inherit all attributes and operations of superclasses Chapter 2 © Prentice Hall, 2007 2-16 What Is Polymorphism? The ability for different classes of objects to respond to identical messages in different ways Polymorphism = “having many forms” Different behaviors for the same message Chapter 2 © Prentice Hall, 2007 2-17 Here, each type of vehicle has its own version of calcPrice() Chapter 2 © Prentice Hall, 2007 2-18 What Is a Component? A replaceable part of a system providing a clearly defined function through a set of interfaces Group of classes working together toward a common end; a subsystem Chapter 2 © Prentice Hall, 2007 2-19 What Is an Interface? The mechanism by which users of a component invoke its behaviors and manipulate its properties The interface is implemented by method signatures Chapter 2 © Prentice Hall, 2007 2-20 Interfaces are represented as small rectangles Chapter 2 © Prentice Hall, 2007 2-21 What Is a Package? A logical grouping of related analysis or design elements Group of classes sharing similar characteristics or purposes Chapter 2 © Prentice Hall, 2007 2-22 Package is to component as folder is to file Chapter 2 © Prentice Hall, 2007 2-23 What Is an Association? A relationship or link between instances of (or objects) of classes Three types: – Simple associations: no ownership – Aggregations: part-whole relationships where the part can exist independently of the whole – Compositions: part-whole relationships where the part and the whole are fully dependent on each other Chapter 2 © Prentice Hall, 2007 2-24 This is a binary association, showing roles and multiplicities roles multiplicities Chapter 2 © Prentice Hall, 2007 2-25 Systems Modeling Systems modeling – creating an abstraction of a system Abstraction – focusing on the relevant aspects and ignoring other details UML is a modeling approach, involving these diagrams: – Use-case, sequence, communication, class, object, activity, state, composite structure, package, component, deployment Chapter 2 © Prentice Hall, 2007 2-26 UML Diagrams – Use-case diagram – shows use cases, actors, and – – – – – relationships describing user interactions with system Sequence diagram – shows interactions of objects via message-passing in time-ordered manner Communication diagram – similar to sequence diagram, but without the time-ordering Class diagram – shows set of classes and relationships (generalizations and associations) Object diagram – shows specific instances of a class diagram Activity diagram – shows flow of activities, or wokflow of objects Chapter 2 © Prentice Hall, 2007 2-27 UML Diagrams (cont.) – State diagram – shows transitioning of an object from – – – – state to state in response to events Composite structure diagram – shows how a component whole is made up of its parts Package diagram – shows logical grouping of analysis or design elements Component diagram – shows software components or modules and their relationships Deployment diagram – shows configuration of runtime processing nodes and their components Chapter 2 © Prentice Hall, 2007 2-28