Week 4- SWE202.pdf
Document Details
Uploaded by RichTourmaline9881
Yakın Doğu Üniversitesi Dişhekimliği Fakültesi
Tags
Full Transcript
SWE202 SOFTWARE CONSTRUCTION WEEK 3 Introduction to Object Oriented Analysis and Design (Cont’d) Oluwaseun Priscilla Olawale (MSc.) Objectives Why OO? What is OOAD? How to do OOAD? How to do OOAD - notat...
SWE202 SOFTWARE CONSTRUCTION WEEK 3 Introduction to Object Oriented Analysis and Design (Cont’d) Oluwaseun Priscilla Olawale (MSc.) Objectives Why OO? What is OOAD? How to do OOAD? How to do OOAD - notation vs. process UML is a notation. So are English, Elvish, Ku, … ⚫ But as yet I can’t How to Do OOAD – Where to Use OO? Systems Engineering Quality Assurance Requirements Analysis Project Planning Maintenance Architectural Design Detailed Design Implementation Something missing? Release What’s yours like? Artificial problem Accidental design Traceability! Specifications are important too How to Do OOAD – OMT as Object-Oriented Methodology Object Model: describes the static structure of the objects in the system and their relationships -> Object Diagrams. OMT (Object Modeling Technique) by James Rumbaugh Dynamic Model: describes the interactions among objects in the system -> State Diagrams. Functional Model: describes the data transformation of the system -> DataFlow Diagrams. Traceability! Introduction to OOAD - Summary Why Once Software Crisis due to Communication and Complexity Languages, Concepts, Models OO for Conceptual Modeling What Fundamental OO Concepts A little taste of UML How OO development processes & (Design) Patterns How to Do OOAD - Historical Perspective OO Technology Process Perspective OO Prog. Languages just program! (C++) OO Design design then (Booch) program Analyze (use case) first, OO Analysis then design, (Rumbaugh, Jacobson) then program Where are we heading? How to Do OOAD - OO Development Processes Some Popular OOAD Processes (for reference only) Fusion ○ Hewlett Packard Recommended Process and Models ○ ObjectSpace best practices ○ Larman’s experiences ○ … The Rational Unified Process (RUP) ○ Rational; Booch, Jacobson, and Rumbaugh How to Do OOAD – One Good Way: Use (OO) Design Patterns Reusable solutions to typical problems. “Each design pattern systematically names, explains, and evaluates an important and recurring design in object-oriented systems.” [Gamma] ⚫ Name — identifies a particular pattern, creating a vocabulary. ⚫ Problem — identifies context when pattern should be applied. ⚫ Solution — an abstract description of a design problem along with a template object design that solves the problem. ⚫ Consequences — results and trade-offs of applying the pattern. Why Object-Oriented - Who’s Behind Object-Orientation w. Diff. Concerns Knowledge Databases Emphasis in Persistent Data Representation (in A.I.) (and now ACID properties) Psychological Validity RelationalDB Philosophical Validity ERD Network DB Computational Validity Hierarchical DB OODB CM SDM ADT ERD: Entity Relationship Programming Languages Diagram System/Softwa Emphasis in Efficiency re SDM: Semantic Data Model Engineering Simula, SmallTalk, C++, Protel, ADT: Abstract Data Type Java CM: Conceptual Model Where does Unified Modeling Language come into this? Why Object-Oriented – A New Paradigm with Evolving Object Orientation OOP: Object-Oriented Programming ○ Simula (1967), Smalltalk (70’s), C++ (mid 80’s), Eiffel, Ada95, Turing, … OOD: Object-Oriented Design ○ Taxis (1976), Adaplex, …, Grady Booch (1980) OOA: Object-Oriented Requirements ○ RML (1981), James Rumbaugh (late 80’s) OO-Databases (OODBs): 1980-90’s OLE/DCOM, VisualBasic, CORBA, Java: mid 90’s.Net, C#, (eb/voice…/-)XML, J2EE: into 2000+ UML: mid 90’s and still evolving Introduction to OOAD - Points to Ponder 1. How do you think your mental image is represented? 2. What kinds of languages are used for what purpose in our daily life? 3. What are the differences among a concept, a model and a language? 4. What are the differences between a language and a methodology? 5. Can we use C# for analysis? 6. If C++ is a language, does it model anything? If so, what? 7. What does a concept in C++ refer to (i.e., semantics)? 8. What does a concept in a (OO) design refer to? 9. What does a concept in an (OO requirements) analysis refer to? 10. Is the current OOAD for Functional Analysis and Design, or Non-Functional Analysis and Design? 11. What is the relationship between OO (Object-Orientation) and GO (Goal-Orientation), between OO and AO (Agent-Orientation), and between GO and AO? 12. Can you prove you and I communicate with each other perfectly?