logging in or signing up CS124-L1-OOP anh khoa2468 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 208 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: September 30, 2010 This Presentation is Public Favorites: 1 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript OOP Review : OOP Review CS 124 Object-Oriented ProgrammingRevisited : Object-Oriented ProgrammingRevisited Key OOP Concepts Object, Class Instantiation, Constructors Encapsulation Inheritance and Subclasses Abstraction Reuse Polymorphism, Dynamic Binding Object-Oriented Design and Modeling Object : Object Definition: a thing that has identity, state, and behavior identity: a distinguished instance of a class state: collection of values for its variables behavior: capability to execute methods * variables and methods are defined in a class Class : Class Definition: a collection of data (fields/ variables) and methods that operate on that data define the contents/capabilities of the instances (objects) of the class a class can be viewed as a factory for objects a class defines a recipe for its objects Instantiation : Instantiation Object creation Memory is allocated for the object’s fields as defined in the class Initialization is specified through a constructor a special method invoked when objects are created Encapsulation : Encapsulation A key OO concept: “Information Hiding” Key points The user of an object should have access only to those methods (or data) that are essential Unnecessary implementation details should be hidden from the user In Java/C++, use classes and access modifiers (public, private, protected) Inheritance : Inheritance Inheritance: programming language feature that allows for the implicit definition of variables/methods for a class through an existing class Subclass relationship B is a subclass of A B inherits all definitions (variables/methods) in A Abstraction : Abstraction OOP is about abstraction Encapsulation and Inheritance are examples of abstraction What does the verb “abstract” mean? Reuse : Reuse Inheritance encourages software reuse Existing code need not be rewritten Successful reuse occurs only through careful planning and design when defining classes, anticipate future modifications and extensions Polymorphism : Polymorphism “Many forms” allow several definitions under a single method name Example: “move” means something for a person object but means something else for a car object Dynamic binding: capability of an implementation to distinguish between the different forms during run-time Building Complex Systems : Building Complex Systems From Software Engineering:complex systems are difficult to manage Proper use of OOP aids in managing this complexity The analysis and design of OO systems require corresponding modeling techniques Object-Oriented Modeling : Object-Oriented Modeling UML: Unified Modeling Language OO Modeling Standard Booch, Jacobson, Rumbaugh What is depicted? Class details and static relationships System functionality Object interaction State transition within an object Some UML Modeling Techniques : Some UML Modeling Techniques Class Diagrams Use Cases/Use Case Diagrams Interaction Diagrams State Diagrams Example:Class Diagram : Example:Class Diagram Borrower Book currBorr bk[] 0..3 0..1 public class Borrower { Book bk[]; … public Borrower() { bk = new Book[3]; } } public class Book { Borrower currBorr; … } Example:Use Case Diagram : Example:Use Case Diagram Facilitate Checkout Facilitate Return Search for Book LIBRARY SYSTEM Borrower Librarian Example:Interaction Diagram : Example:Interaction Diagram Checkout Screen :Borrower :Book 1: borrowAllowed() 3: borrowBook() 2: isAvailable() 4: setBorrower() Example:State Diagram (Book) : Example:State Diagram (Book) New Available Reserved Borrowed start Librarian activates book as available Borrower returns book Object-Oriented Design Models : Object-Oriented Design Models Static Model Class Diagrams Dynamic Model Use Cases, Interaction Diagrams, State Diagrams, others OO Static Model : OO Static Model Classes and Class Diagrams Relationships Association Aggregation/Composition Inheritance Dependencies Attribute and Method names OO Dynamic Model : OO Dynamic Model Goal: Represent Object behavior Object interaction Traditional/Procedural Dynamic Modeling Data Flow Diagrams (DFDs) Problem: Processes separate from data Need modeling notation that highlight tight relationship between data & processes DFD Example(Inventory Management) : DFD Example(Inventory Management) Accept and Post Delivery Item Master Transaction Delivery info OO Counterpart:Object Interaction : OO Counterpart:Object Interaction Encoder :Item Master :Transaction new (delivery info) post (item count) Building anOO Dynamic Model : Building anOO Dynamic Model Identify use cases Describe each use case through an interaction diagram For more complex objects, provide a state diagram per class Derive implied methods (and attributes) What’s Next? : What’s Next? Need to understand the notation Make sure it helps the software development process When to use the UML techniques Primarily when specifying OO design Formal means of communication across the different software development stages You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
CS124-L1-OOP anh khoa2468 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 208 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: September 30, 2010 This Presentation is Public Favorites: 1 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript OOP Review : OOP Review CS 124 Object-Oriented ProgrammingRevisited : Object-Oriented ProgrammingRevisited Key OOP Concepts Object, Class Instantiation, Constructors Encapsulation Inheritance and Subclasses Abstraction Reuse Polymorphism, Dynamic Binding Object-Oriented Design and Modeling Object : Object Definition: a thing that has identity, state, and behavior identity: a distinguished instance of a class state: collection of values for its variables behavior: capability to execute methods * variables and methods are defined in a class Class : Class Definition: a collection of data (fields/ variables) and methods that operate on that data define the contents/capabilities of the instances (objects) of the class a class can be viewed as a factory for objects a class defines a recipe for its objects Instantiation : Instantiation Object creation Memory is allocated for the object’s fields as defined in the class Initialization is specified through a constructor a special method invoked when objects are created Encapsulation : Encapsulation A key OO concept: “Information Hiding” Key points The user of an object should have access only to those methods (or data) that are essential Unnecessary implementation details should be hidden from the user In Java/C++, use classes and access modifiers (public, private, protected) Inheritance : Inheritance Inheritance: programming language feature that allows for the implicit definition of variables/methods for a class through an existing class Subclass relationship B is a subclass of A B inherits all definitions (variables/methods) in A Abstraction : Abstraction OOP is about abstraction Encapsulation and Inheritance are examples of abstraction What does the verb “abstract” mean? Reuse : Reuse Inheritance encourages software reuse Existing code need not be rewritten Successful reuse occurs only through careful planning and design when defining classes, anticipate future modifications and extensions Polymorphism : Polymorphism “Many forms” allow several definitions under a single method name Example: “move” means something for a person object but means something else for a car object Dynamic binding: capability of an implementation to distinguish between the different forms during run-time Building Complex Systems : Building Complex Systems From Software Engineering:complex systems are difficult to manage Proper use of OOP aids in managing this complexity The analysis and design of OO systems require corresponding modeling techniques Object-Oriented Modeling : Object-Oriented Modeling UML: Unified Modeling Language OO Modeling Standard Booch, Jacobson, Rumbaugh What is depicted? Class details and static relationships System functionality Object interaction State transition within an object Some UML Modeling Techniques : Some UML Modeling Techniques Class Diagrams Use Cases/Use Case Diagrams Interaction Diagrams State Diagrams Example:Class Diagram : Example:Class Diagram Borrower Book currBorr bk[] 0..3 0..1 public class Borrower { Book bk[]; … public Borrower() { bk = new Book[3]; } } public class Book { Borrower currBorr; … } Example:Use Case Diagram : Example:Use Case Diagram Facilitate Checkout Facilitate Return Search for Book LIBRARY SYSTEM Borrower Librarian Example:Interaction Diagram : Example:Interaction Diagram Checkout Screen :Borrower :Book 1: borrowAllowed() 3: borrowBook() 2: isAvailable() 4: setBorrower() Example:State Diagram (Book) : Example:State Diagram (Book) New Available Reserved Borrowed start Librarian activates book as available Borrower returns book Object-Oriented Design Models : Object-Oriented Design Models Static Model Class Diagrams Dynamic Model Use Cases, Interaction Diagrams, State Diagrams, others OO Static Model : OO Static Model Classes and Class Diagrams Relationships Association Aggregation/Composition Inheritance Dependencies Attribute and Method names OO Dynamic Model : OO Dynamic Model Goal: Represent Object behavior Object interaction Traditional/Procedural Dynamic Modeling Data Flow Diagrams (DFDs) Problem: Processes separate from data Need modeling notation that highlight tight relationship between data & processes DFD Example(Inventory Management) : DFD Example(Inventory Management) Accept and Post Delivery Item Master Transaction Delivery info OO Counterpart:Object Interaction : OO Counterpart:Object Interaction Encoder :Item Master :Transaction new (delivery info) post (item count) Building anOO Dynamic Model : Building anOO Dynamic Model Identify use cases Describe each use case through an interaction diagram For more complex objects, provide a state diagram per class Derive implied methods (and attributes) What’s Next? : What’s Next? Need to understand the notation Make sure it helps the software development process When to use the UML techniques Primarily when specifying OO design Formal means of communication across the different software development stages