This document provides an introduction to object-oriented analysis and design (OOAD). It discusses why the OO approach was developed, including to address issues with communication and managing complexity. It then defines key OO concepts like objects, classes, encapsulation, inheritance, polymorphism, and the use of UML. It also briefly outlines the object modeling technique (OMT) methodology and some popular OO development processes.
8. Why Object-Oriented? … for Conceptual … Modeling Reasons What kind of language can be used to create this concept diagram, or Harry’s mental image? Water Rivers Oceans Fish Penguins Crocodiles Fresh water Salt water have have have live in have have
9.
10.
11.
12.
13.
14.
15. What is Object-Orientation - Subclass vs. Superclass A B C A B A B C A B c: C A B c: C <<instanceOf>> <<instanceOf>> A B <<instanceOf>> A B <<instanceOf>>
16. What is Object-Orientation - Subclass vs. Superclass and … A B C <<instanceOf>> A B c: C <<instanceOf>> <<instanceOf>> A B <<instanceOf>> C A B C <<instanceOf>> d: D <<instanceOf>> A C D <<instanceOf>> B 1 2 3
17.
18.
19.
20.
21. What is Object-Orientation? -State transition impossible? tom: Actor name = “Tom Cruise” katie: Actor name = “Katie Holmes” tom: Actor name = “Tom Holmes” katie: Actor name = “Katie Holmes” married/changeLastName tom: Actor name = “Tom Holmes” katie: Actor name = “Katie Holmes” suri: BabyActor name = “Suri Holmes” newArrival/getName
22.
23.
24. Harry again … What do we see here? Water Rivers Oceans Fish Penguins Crocodiles Fresh water Salt water have have have live in have have Things, Relationships, Diagram
25.
26. Systems Engineering Requirements Analysis Project Planning Architectural Design Detailed Design Implementation Release Maintenance Quality Assurance Software Lifecycle How to Do OOAD – Where to Use OO? Traceability! Something missing? What’s yours like?
30. Analysis: i) Model the real world showing its important properties; ii) Concise model of what the system will do System Design : Organize into subsystems based on analysis structure and propose architecture Object Design : Based on analysis model but with implementation details; Focus on data structures and algorithms to implement each class; Computer and domain objects Implementation: Translate the object classes and relationships into a programming language How to Do OOAD – OMT as Object-Oriented Methodology OMT (Object Modeling Technique) by James Rumbaugh Traceability!
33. How to Do OOAD - Historical Perspective OO Prog. Languages (Smalltalk, C++) OO Design (Booch) OO Analysis (Rumbaugh, Jacobson) Process Perspective OO Technology Analyze (use case) first, then design, T then program Where are we heading? just program! design then program
34.
35.
36. Why Object-Oriented - Who’s Behind Object-Orientation w. Diff. Concerns Knowledge Representation (in A.I.) Psychological Validity Philosophical Validity Computational Validity Databases Emphasis in Persistent Data (and now ACID properties) RelationalDB Network DB Hierarchical DB OODB Programming Languages Emphasis in Efficiency Simula, SmallTalk, C++, Protel, Java ERD SDM CM ADT ERD: Entity Relationship Diagram SDM: Semantic Data Model ADT: Abstract Data Type CM: Conceptual Model System/Software Engineering Where does Unified Modeling Language come into this?