01 OOAD Intro by P673Y8I

VIEWS: 31 PAGES: 20

									Object-Oriented Analysis and Design


“Software development is an exciting
but messy business.”
                 - Derek Coleman




                                       OOA&D - v 3.2 - En
Object-Oriented Analysis and Design
    Introduction

   Welcome!
   Let me introduce:
      Myself.

      Valtech.

      Related courses.


   What about each of you?
      Related experience.

      Objectives.




                              Chapter 1 - Introduction   v3.2   2
Object-Oriented Analysis and Design
 Legend

           Orientation

           Educational objectives of the chapter

           Presentation

           Summary, key points

           Resources to go further

           Exercise question

           Example



                                Chapter 1 - Introduction   v3.2   3
Object-Oriented Analysis and Design
 Environment




                           Chapter 1 - Introduction   v3.2   4
Object-Oriented Analysis and Design
 Course Overview

                     Method of softw are
                     development based on
   Object-           decom position by
   oriented          objects.
 analysis and
   design?           Has many steps and
                     artifacts.



                               steps                    practice


                                              Course


                             artifacts                 guidelines




                           Chapter 1 - Introduction                v3.2   5
Object-Oriented Analysis and Design
    Course Flow

   Information and skills are:
       Interleaved with practice.

       Introduced incrementally.




    Skills
                    Skill A          exercise               Skill B    exercise
    Introduction




     Skills
                    Skill A          exercise               Skill B    exercise
     Refinement




                                 Chapter 1 - Introduction             v3.2        6
Object-Oriented Analysis and Design
    Course Objectives

   Create analysis and design artifacts using UML notation.
   Follow an iterative, incremental use-case driven process.
   Develop complete use cases.
   Create conceptual models.
   Define contracts for system operations.




                              Chapter 1 - Introduction          v3.2   7
Object-Oriented Analysis and Design
    Course Objectives

   Assign responsibilities to objects using patterns.
   Make collaboration diagrams illustrating object interactions.
   Design classes with low coupling and high cohesion.
   Create design class diagrams.
   Translate designs into an object-oriented language.




                               Chapter 1 - Introduction       v3.2   8
Object-Oriented Analysis and Design
    The Most Important Objective

   We explore many skills and objectives.
   The most important “desert-island” skill?
      How to assign responsibilities to objects using patterns.

          Mastered using the GRASP patterns.




                                 Chapter 1 - Introduction          v3.2   9
Object-Oriented Analysis and Design
    The Most Important Objective (continued)

   Why?
      No matter what other analysis and design activities are skipped,
       responsibility assignment is inevitable.
      Responsibility assignment has the greatest influence on
       robustness, maintainability, and scalability.
      Responsibility assignment makes or breaks a design.




                                Chapter 1 - Introduction         v3.2     10
Object-Oriented Analysis and Design
 Dimensions of Decomposition

 Both dimensions have validity.


                                 The Library
                                 Information
                                   System




         Object-oriented A/D                                  Structured A/D

  Decompose by objects or concepts             Decompose by functions or processes

                                                                  System
     Catalog         Librarian


                                               Record              Add          Report
      Book           Library                   Loans            Resources       Fines



                                   Chapter 1 - Introduction                    v3.2      11
Object-Oriented Analysis and Design
    Object-Orientation

         Analysis            Design               Implementation




     Investigation of
                        Logical solution.        Code.
     the problem.



   Object-oriented analysis.
      Investigation that is object-centric.


   Object-oriented design.
      Solution in terms of interacting software objects.


   Object-oriented programming.
      Coding in an object-oriented programming language.




                                      Chapter 1 - Introduction     v3.2   12
Object-Oriented Analysis and Design
    What the UML is — and is not

   UML — Unified Modeling Language.
      De jure (OMG) and de facto standard diagramming notation for
       object-oriented analysis and design diagrams.
      Just a notation, not a “method” or development process.

      Not that important—it is just a diagramming standard.



                       OMT 2                      Booch


                                   UML
                                notation is
                   Objectory   drawn from...
                                                     Others...



                                      Fusion



                               Chapter 1 - Introduction          v3.2   13
Object-Oriented Analysis and Design
    What the UML is — and is not (continued)

   Knowing how to read and write UML does not mean we are skilled
    in OOA&D.
   It is equivalent to knowing how to read and write blueprints.
       It does not make us engineers or architects.




                               Chapter 1 - Introduction       v3.2   14
Object-Oriented Analysis and Design
    What the UML is — and is not (continued)

   Much more important:
      How to do OOA&D and “think in objects.”

      Judgement and best-practices in design.

      Skill in assigning responsibilities to objects.

      This is what this course is really about!




                                  Chapter 1 - Introduction   v3.2   15
Object-Oriented Analysis and Design
    Development Process

   Steps and management of development.
   Wide variety is appropriate depending on:
      Project.

          Modification? Small? Real-time?

      People.

          Expertise? Experience?


   This course (and the text) illustrate a sample process.
       Take what works for you...




                               Chapter 1 - Introduction       v3.2   16
Object-Oriented Analysis and Design
  A Partial Sample Process



               Explore            Refine Plan                 Build              Deploy




                           Build -                 Build -            Build - System
   Plan and
                         Exploratory           Infrastructure           Functions
   Elaborate
                          Emphasis               Emphasis               Emphasis




                                       Chapter 1 - Introduction                   v3.2    17
Object-Oriented Analysis and Design
 Iterative Development


     Plan and
                         Refine Plan                 Build             Deploy
     Elaborate




    Dev Cycle       Dev Cycle
                                         ...
        1               2




                Refine     Sync.                                  Con-
                                         Analyze        Design                  Test
                 Plan     Artifacts                               struct




                                       Chapter 1 - Introduction                 v3.2   18
Object-Oriented Analysis and Design
    Time Boxing

   In time boxing, a development cycle is fixed in length.
   The development team should choose the work to accomplish
    within the time frame.



      Refine     Update                                    Con-
                             Analyze         Design                 Test
       Plan      Artifacts                                 struct




                               2 weeks to 2 months




                                Chapter 1 - Introduction            v3.2   19
Object-Oriented Analysis and Design
    What We Learned; Reflection

   Object-oriented analysis and design is an approach to software
    development based on decomposition by objects.
   UML.
      Standard notation.


   Process.
      Steps and management of development.


   Reflection.
      What are you going to do with these skills?

      What is the motivation?

      When?




                                Chapter 1 - Introduction    v3.2     20

								
To top