1 / 14

Object Oriented Paradigm

COMP 350: Object Oriented Analysis and Design Lecture 1 Introduction References: Craig Larman Chapter 1. Object Oriented Paradigm. A set of techniques for analyzing, decomposing, and modularizing software systems

roth-mullen
Download Presentation

Object Oriented Paradigm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP 350: Object Oriented Analysis and DesignLecture 1 IntroductionReferences: Craig Larman Chapter 1

  2. Object Oriented Paradigm • A set of techniques for analyzing, decomposing, and modularizing software systems • Characterized by structuring the system on the basis of its objects rather than the actions it performs

  3. Benefits of OO • OO enhances key software quality factors of a system and its constituent components • Correctness • Robustness • Reliability • Extensibility • Reusability • Compatibility (via standard/uniform interfaces) • Maintainable • More?

  4. OOA, OOD, OOP • Object-oriented methods may be applied to different phases in the software life- cycle • e.g., analysis, design, implementation, etc. • OO analysis (OOA) is a process of discovery • Where a development team models and understands the system and its requirements • OO design (OOD) is a process of invention and adaptation • where the development team creates the abstractions and mechanisms necessary to meet the system's behavioral requirements determined during analysis • OOP is primarily concerned with programming language and software implementation issues

  5. Object vs. Function Oriented Approach

  6. What is Object Oriented Analysis? • The emphasis is on finding and describing the objects (or concepts) in the problem domain. • Example: In a Library Information System, some of the concepts include Book, Library, and Patron.

  7. What is Object Oriented Design? • The emphasis is defining software objects and how they collaborate to fulfill the requirements. • Example: In a Library Information System, a Book software object may have a title attribute and a get Chapter method.

  8. Division between Analysis and Design • Fuzzy; A & D activities exist on a continuum • Some practitioners can classify an activity as analysis while others put it into design category

  9. Summary: OO Analysis and Design • The essence of OOAD is to consider a problem domain and logical solution from the perspective of objects (things, concepts, or entities) • OO Analysis emphasizes finding and describing the objects –or concepts-in the problem domain • OO Design emphasizes defining logical software objects (things, concepts, or entities) that have attributes and methods

  10. OOA, OOD, OOP

  11. Unified Modeling Language (UML) • “A visual language for specifying, constructing and documenting the artifacts of systems” [Booch, Jacobson, Rumbaugh] • Uses OO concepts • Not a methodology • Not a process

  12. UML Diagrams • Use case diagrams • Class diagrams • Interaction diagrams: Sequence diagrams, Collaboration diagrams • Package diagrams • State Machine diagrams • Activity diagrams • Component diagrams • Deployment diagrams

  13. Skills to Master • “Think in objects” • Analyze requirements with use cases • Create domain models • Apply an iterative & agile process • Relate analysis and design artifacts • Read and write UML • Assign responsibilities to objects • Design collaborations • Design with patterns • Design with architectural layers

  14. Harmful is knowing how to read and draw UML diagrams, but not being an expert in design and patterns. Important is object and architectural design skills, not UML diagrams, drawing, or CASE tools.

More Related