1 Chapter 6: Structured Vs. Object Oriented Analysis and Design 2 Overview Why do we need Modelling ”Blue prints” ? Object Oriented Analysis and Design (OOAD) vs. Structured Oriented Analysis and Design (SAD). Steps to SAD and OOAD. Object Oriented Analysis and Design - OOAD. Unified Modelling Language - UML. 3 By the end of this chapter, you will.. Understands what Structured Analysis and Design is. Understands what Object Oriented Analysis and Design is. Understands what is Unified Modeling Language “UML” and the UML models. Distinguishes between the analysis oriented and design oriented. 4 The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary but not sufficient in order to create object software. In between a nice idea and a working software, there is much more than programming. Analysis and design provide software “blueprints”, illustrated by a modeling language. Blueprints serve as a tool for thought and as a form of communication with others. These blueprints can then be transferred into code using any specific OO language. 5 Object Oriented Analysis and Design (OOAD) Vs. Structured Analysis and Design (SAD) OO Analysis expresses Requirements and Specs expressed as Population of interacting objects of a system as opposed to The traditional data or functional views. 6 OOAD Vs. SAD OOAD Catalog Book SAD Library System Librarian Library Record Loans Add Resource Report Fines 7 OOAD Vs. SAD • Structured Analysis • Divide and Conquer • At the function level • Object-Oriented Analysis • Partition • At the level of concepts (objects) OOAD Vs. SAD 8 OOAD Vs. SAD Structured Approach Object-Oriented Approach • • • • • • • • • Use-case Diagram • Use-cases’ descriptions (expanded for major Use Case Diagram Context level DFD Level-0 DFD Subsequent levels DFDs ER Diagram if needed DB Schema & Dictionary Architectural Design Structured Tables/Decision Trees/Flowcharts ( for major processes only) (Component Design) • Interface design use cases only) • • • • • • • Conceptual Diagram Sequence Diagrams Class Diagram ER Diagram if needed DB Schema & Dictionary Architectural Design Pseudo code/Algorithms/Flowcharts (Component Design) • Interface design 9 10 Object Oriented Analysis OOAD essential for creating well-designed, robust & maintainable software system using OO Programming Language (e.g. C++, Java, smalltalk, etc…). It is the latest and most used way of design now. UML (Unified Modeling Language) is a modeling language for OOS. An investigation of the problem (rather than how a solution is defined). During OO analysis, there is an emphasis on finding and describing the objects (or concepts) in the problem domain. Example: Concepts in a Library Information System include; Book and Catalog. 11 Object Oriented Design Emphasizes a conceptual solution that fulfills the requirements specified in the analysis. Need to define software objects and how they collaborate to fulfill the requirements. Designs are implemented in a Programming Language. Example: in the Library Information System, a Book software object may have a title attribute and a display() method. And implemented using any OO programming language; e.g. Java. 12 From Analysis to Implementation Analysis Design Construction Investigation of the problem Logical Solution Code Domain Concept Ex: Book (Concept) Logical Software Objects Book Attribute: Title Method: Display() Representation in an OO Programming Language Public Class Book { Private String Title; Public void Display(); } 13 Unified Modeling Language A notational system aimed at modeling systems using object oriented concepts. 14 Steps to OOAD 1-Define use cases 2-Conceptual Model 3-Collaboration Diagrams 4-Design Class Diagram 15 Analysis and Design Activities More Analysis Oriented Analysis Oriented What Requirements Investigation of Domain More Design Oriented Design Oriented How Logical Solution