SlideShare a Scribd company logo
1 of 53
5   ANALYSIS
    Examining the analysis workflow
1   INTRODUCTION
    2 METHODOLOGIES
    3 MODELS AND UML
    4 OBJECT CONCEPTS
    5   ANALYSIS
2
    6 SOFTWARE DESIGN
Our Process
3

       Reminder of object-oriented development process we are following in this
        course is that there are four phases:
           Inception
           Elaboration
           Construction
           Transition
       Each phase consists of one or more iterations of the following workflows:
           Requirements
           Analysis
           Design
           Implementation
           Test
       In this section, we are going to examine the analysis workflow principally
        in the context of the Elaboration phase.
Analysis Workflow
4

       In the requirements workflow, use case model and other
        artifacts (screen prototypes, glossary, etc) are used to
        build an initial model based on the users’ requirements.
       In the analysis workflow, the requirements are analyzed
        in more detail, so as to begin the description of the
        internal structure and behavior of the proposed system.
                                      Use Case Realizations



                     Use Case Model


                                              message()



          Glossary      Prototypes                   message2()



           Requirements Model         Analysis Model
Analysis versus Design
5

        The boundary between analysis and design can be
         quite vague; they often overlap.
        Rules of thumb for analysis modeling:
           Analysis model is always in the language of the business
           Concentrate on capturing the big picture (don’t get bogged
            down in details).
           Focus on the problem domain (business requirements), not
            the solution domain (detailed design considerations).
                 e.g., don’t worry about implementation classes such as database
                  access or user interface classes.
             Keep the model simple.


        Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 101.
Analysis Model
6


       The aim of the analysis workflow is to produce an
        analysis model.
       This is a logical model that is technology-
        independent (i.e., unconcerned with how it is to be
        implemented).
         Itallows developers to focus on the problems to be
          solved.
         Ignoring technology makes it less likely that old ways
          of doing things will be carried forward into the design
          of the new system.
Analysis is Use Case Driven
7


        The use cases defined in the requirements model
         are the basis for the entire analysis and design
         workflows.
                               Use Case Realizations     message()




                                                                message2()




        Use Case Model


                            Analysis and Design Models
Use Case Realizations
8

        Use cases are realized in subsequent analysis and design.
        That is, use-case realizations describe how a use-case is
         performed ("realized") in terms of interacting objects in the
         design model (that is, in terms of how objects collaborate).
             Use case realizations tie together the use cases with the classes
              and relationships of the domain model.
             That is, a use case realization specifies which classes must be built
              to implement each use case.
        Development of use case realizations is the main goal of
         analysis; refining these use case realizations is the main goal
         of design. Use Case
                                realizations show                                        «realize»
                                how classes                         PlaceOrder                       PlaceOrder
                                collaborate to realize
                                system functionality

        Source: Object-Oriented Analysis with UML (Rational Software Corporation, 2001), p. 3-18.
Use Case Realizations
9


        Use case realizations consists of the following elements:
             Analysis class diagrams
                 Show the analysis classes that interact to realize the use case
             Interaction diagrams
                 Show collaborations and interactions between objects that
                  realize the use case.
             Use Case refinement
                 New info may be discovered that requires the original use case
                  to be updated.
                 Activity diagrams may be used to illustrate scenarios in the use
                  case.
        Use case realization is a process of refinement.
             Take a use case and then model how the behavior
              specified in the use case will be realized by collaborations
              and interactions between instances of domain classes you
              have identified.



        Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 200-1.
Analysis Model
10


        The two key artifacts are produced in analysis
         model:
          Use   case realizations
              These illustrate how instances of the analysis classes can
               interact to realize system behavior specified by a use case.
          Analysis     class diagram
              Integrates the classes discovered in the use case realizations
               into a single diagram that shows methods and attributes
               uncovered in the realizations.
Analysis Class
11


        Analysis classes are classes that:
          Representa clear and concise abstraction in the
           problem domain.
              i.e., these classes represent the real-world things and
               concepts related to the problem the system is being design
               to solve.
          Should map directly onto real-world business concepts.
          Should NOT be concerned with design considerations
           such as performance, patterns, best practices, etc.
        Also referred to as domain classes.
Finding Classes
12


         There is no simple algorithm for finding the right
          analysis classes.
         Yet, there are techniques which can help you
          discover these classes. They are:
            Noun/verb analysis
            CRC analysis




         Source: Meyer, Object Oriented Software Construction (Prentice Hall, 1997), p.
         Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 134-5.
Discovering Domain Classes
13


        The best source for discovering these basic classes is
         a high-level (100-300 words) problem statement or
         system definition.
          Ifyou don't have this system definition, then you will
           have to write one, in conjunction with the client/users.
        You can also use other requirements model artifacts
         as sources of information, in particular:
          the use case model
          the glossary of terms.
Noun/verb analysis
14


        You can use the grammatical inspection technique of
         circling/highlighting/underling all the noun and
         noun phrases (compound nouns or adjective+noun)
         in the text.
          This   is sometimes called noun phrase identification.
        You will probably find that:
          noun and noun phrases become classes and attributes
          verbs and verb phrases become methods and relations
          possessive phrases indicate nouns should be attributes
           rather than classes.
Step 1. Noun Phrase Identification
15


      The Portfolio Manager shall be able to roll up portfolios on several levels.

      A Trader shall be able to place orders, on behalf of a portfolio, that generate one or more
      trades.

      A Portfolio Manager shall be able to select a pairoff method in conjunction with placing a
      sell order.

      The entry of a trade shall generate forecasted cashflows associated with the given trade lot.

      The system shall match up actual cashflows with forecasted cashflows.

      The system shall automatically generate appropriate postings to the General Ledger.

      The system shall allow an Assistant Trader to modify trade data and propagate the results
      accordingly.



     Identify the nouns and noun phrases in this example system definition.


      Source: Doug Rosenberg, Use Case Driven Object Modeling with UML (Addison Wesley, 1999), p. 18
Noun Phrase Identification
16


      The Portfolio Manager shall be able to roll up portfolios on several levels.

      A Trader shall be able to place orders, on behalf of a portfolio, that generate one or
      more trades.

      A Portfolio Manager shall be able to select a pairoff method in conjunction with placing
      a sell order.

      The entry of a trade shall generate forecasted cashflows associated with the given trade
      lot.

      The system shall match up actual cashflows with forecasted cashflows.

      The system shall automatically generate appropriate postings to the General Ledger.

      The system shall allow an Assistant Trader to modify trade data and propagate the
      results accordingly.


     Identify the nouns and noun phrases in this example system definition.


      Source: Doug Rosenberg, Use Case Driven Object Modeling with UML (Addison Wesley, 1999), p. 18
Step 2. Noun Phrase
17
     Consolidation
        After identifying nouns and noun phrases,
          make  plural terms singular
          eliminate duplicate terms

          consolidate synonyms into single term

          place list in alphabetic order
Noun Phrase Consolidation
18


     actual cashflow             order               sell order
     Assistant Trader            pairoff method      system
     entry                       portfolio           trade
     forecasted cashflow         Portfolio Manager   trade data
     General Ledger              posting             trade lot
     level                       results             Trader

     After the consolidating noun phrases
Step 3. Noun Phrase Analysis
19


        Now, remove:
          references to the system itself or to its context
          nouns which appear out of the scope of the project

          nouns which are too vague

          nouns which represent actions.

        Actors might be removed from our list of candidate
         classes, and placed instead on the use case diagrams.
         actual cashflow       order               sell order
         Assistant Trader      pairoff method      system
         entry                 portfolio           trade
         forecasted cashflow   Portfolio Manager   trade data
         General Ledger        posting             trade lot
         level                 results             Trader
         Analyze the list
Noun Phrase Analysis
20

     actual cashflow              order               sell order
     Assistant Trader             pairoff method      system
     entry                        portfolio           trade
     forecasted cashflow          Portfolio Manager   trade data
     General Ledger               posting             trade lot
     level                        results             Trader



                    actors

                    actions

                    out of the scope of the project

                    too vague
Step 4. Draw Initial Analysis Class
     Model
21

        If you can, draw an initial analysis class model showing just class
         names, generalizations, associations, and aggregation.
            At this stage, don't worry especially about multiplicity or composition,
             since further analysis is often required to address questions about
             multiplicity and composition.
            The classes in your analysis class model are sometimes referred to as
             entity classes.
        Just as noun phrase analysis helped identify candidate classes, verb
         phrase analysis can help identify class relationships.
            The result can be a table showing each candidate associations with your
             candidate classes.
            e.g.,
             Student enrolls in Course
             Professor teaches Course
CRC Cards
22

         Another way of discovering your analysis classes is to use CRC (Class
          Responsibility Collaboration) cards.
         CRC cards are often used within a team to brainstorm the allocation of
          responsibilities to domain classes as well as for the discovery of relationship for
          domain classes.

     Class Name: Class name here

     Responsibilities                          Collaborations

     Responsibilities of a class              Collaborations with other
     are listed in this section.              classes are listed here,
                                              together with a brief
                                              description of the purpose of
                                              the collaboration.
CRC Cards
         Class Name              Client
23       Responsibilities                              Collaborations

       Provide client
       information.
       Provide list of                              Campaign provides
       campaigns.                                   campaign details.

         Class Name              Campaign

        Responsibilities                               Collaborations

       Provide campaign
       information.
     Provide list of adverts.                       Advert provides advert details.
     Add a new advert.                              Advert constructs new object.

         Class Name              Advert
         Responsibilities                              Collaborations

     Provide advert details.
     Construct adverts.

      Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 193.
Digression on UML Class & Object Notation
24




       Customer
                        Customer                 Customer             Name compartment
                     m_name
                                             m_name
                     m_address
                     m_phone
                                             m_address                Attribute compartment
                                             m_phone
                                             getName()
                                             getPhone()               Operation compartment




         «entity»                  stereotype
        Customer




                         fred:Customer
     fred:Customer
                     m_name=Randy
                     m_address=123 Any Ave                  Objects
                     m_phone=123-4567
UML Attribute Compartment
25

      visibility              name       multiplicity: type=initialValue


        optional             mandatory               optional




           Customer

      -m_name
      -m_address
      -m_phone: String
      -m_age:int=0
      +Children[]
      #salary
      +numCustomers               static attribute




       +                 public visibility
       -                 private visibility
       #                 protected visibility
UML Operation Compartment
26

      visibility             name ( parameterName: parameterType, ...): returnType


       optional           mandatory               optional                       optional



                  Customer

       m_name
       m_address
       m_phone
       numCustomers

       getName()                                              Customer
       getPhone(): String
       setName(name: String)
       setPhone(phone: String): void                  Customer()
       getNumCustomers(): int                         Customer(name: String)


                                                      constructors




       Note: at the analysis level, you should not be worried about details like constructors,
       parameters, data types, etc. These will show up in the design stage.
Reflexive Associations
27


         A reflexive association is one in which a class has
          an association with itself.
            This    means that a class has links to other objects of the
                  same class.
         -subfolder       0..*


                      Directory                   File
                                     1     0..*
               -parent           1



                      Directory
         -m_parent[1] : Directory
         -m_subfolders[0..*] : Directory




         Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 152.
Navigability
28


         Navigability refers to ability to traverse from
          object of one class to an object of another class.
         Means messages can only be sent in the direction of
          the arrow.                            Thus, a Product
                                         not navigable                                    object does not
                                   1                        *                             contain an Order link,
                  Order                                           Product                 but an Order object
                                                                                          does contain a
                                                                                          collection of Product
                                           navigable                                      links.




                                   1                        *                           If no arrows, then
                  Order                                           Product               the relationship is
                                                                                        bidirectional.
         Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 154-5.
Dependency
29

         A dependency is a relationship between two elements where a change in
          one, affects the other.
         Typically used to indicate that one class uses another, but the usage is not
          really an association.
         Dependencies generated (in class diagrams) by:
               An operation of class A needs a parameter of class B
               An operation of class A returns a value of class B
               An operation of class A uses an object of class B somewhere in its
                implementation, but not as an attribute.

                          A                                                    B


               +someMethod(in value : B)
               +otherMethod() : B
               +doSomething()                  void doSomething() {
                                                  ...
                                                  B myB = new B();
                                                  // use myB in some way
                                                  ...
                                               }

         Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 162-3.
Scenarios
30


        The process of realization often begins by looking
         at use case scenarios.
        A scenario is an instance of a use case.
          It is one flow through a use case
          It is some combination of basic and alternate flows.
               "this happened, then this, then this …"
        Some people even write scenarios first, then write
         the use cases.
        Written scenarios can also be a way of
         documenting test behaviors for the testing phase.
Scenarios
31


        Ways of describing (not realizing) scenarios:
          using textual descriptions
          using activity diagrams
Activity Diagram
32


        Scenarios can be graphically described by using an
         activity diagram.
          These diagrams are the UML equivalent of a flow chart.
          They visually capture the step-by-step flow of a typical use
           case description.
          Are also used in business process modeling
                This is a preliminary requirements step in some methodologies. It is
                 used to help the analysts better understand how a business
                 operates.
            Not as useful for illustrating message communication
             between objects (we will use interaction diagrams for that).
Activity Diagrams
33


        This diagram shows:
          action  states, which represent the execution of a step
           within the flow of a use case.
          Transitions between those action states

          decisions for which guard conditions are defined

          forks, where flow of control is split into two or more
           concurrent flows
          joins, where separate flows are joined.
action                                             join
           state           Check Schedule




           Select Course




                             Check Pre-                                 guard
                             requisites                                 expression
 initial
 state
                    fork
                                              [checks completed]     [checks failed]


                                             Assign to               Resolve
                                              Course                 Conflicts


                                   [student added to the course]



                                          Update Schedule




34
Exercise
35


         Draw the activity diagram for the following use
          case scenario:
           Use Case: Place Order
           Step 1. Enter the order (includes getting info about order
             and payment method from customer)
           Step 2. Authorize the purchase (requires verification that
             the requirement funds can be obtained from customer
             using the specified payment method).
           Step 3. Allocate the order items from the inventory.
           Step 4. Ship the order.


         Source: Charles Richter, Designing Flexible Object-Oriented Systems with UML (Macmillan, 1999), p. 27.
Exercise
36

                                               [pending]
                 Enter Order
     [aborted]
                                                                            [approved]
                                                   Authorize Purchase                       Allocate Order Items         Ship Order

                               [declined]




                                                                  «trace»
                                                                                                     This activity diagram is a
                                    Place Order
                                                                                                     refinement of the use case




                                               [pending]
                    Enter Order
        [aborted]
                                                                        [approved]
                                                   Authorize Purchase                    Allocate Order Items      Ship Order

                                  [declined]
Exercise
37


        Draw the activity diagram for the following use
         case scenario:
         Use Case: Cancel Order Item
         Step 1. Update that order item (check to see if the item is
           still pending, and if so, change its status to cancelled.
         Step 2. Credit the customer's account for that item.
         Step 3. Release the inventory request for that item.
         Note: Steps two and three can happen in either order (or
           concurrently).
Exercise
38



                      Cancel Order
                         Item



                                         [not pending]



        Update Order Item             Credit Account

                 [pending]



                                     Release Inventory
Interaction Diagrams
39

        Interaction diagrams are a graphical representation of
         how objects communicate with one another in a
         scenario.
          Static diagrams such as the class diagram and the use case
           diagram contain no dynamic or temporal information.
          It can be quite difficult proceeding from initial static class
           model to designing and implementing behaviors necessary
           for an application.
                Interaction diagrams help with this task.
        Interaction diagrams are a vital part of realizing a use
         case (along with the class diagram).
            They model the collaborations and interactions between the
             objects that realize a use case.
Interaction Diagrams
40


        Two types
          Collaboration     diagrams
              Emphasize structural relationships between objects.
          Sequence     diagrams
              Emphasize the time-ordered sequence of messages sent
               between objects.
        Both diagrams are two different representations of
         the same thing (i.e., the object interactions).
          Thusa collaboration diagram can be converted to a
           sequence diagram, and vice-versa.
Interaction Diagrams
41


        In these diagrams, focus is on communication
         between objects, not classes.
          Student     fred     fred : Student   : Student




          class                   objects
Messages
42

         How do objects communicate?
              By sending messages (i.e., invoking a method).
         A message is thus a communication between two
          objects (or within one) what results in some activity.
              This activity usually involves one or more actions.
                 Actions are executable statements that change values of the
                  attributes of an object or return a value.
                 Are calls to an object's methods or properties
              We will make use of two actions:
                 Call
                 Return



         Source: Kendall Scott, UML Explained (Addison-Wesley, 2001), p. 59-62.
UML Actions: Call and Return
43




     Object1 : Customer                   Object2 : Order



                          action name()



                                                            other action call()

     call action notation

     Object1 : Customer


        action name()
                                                                                  : Customer                            : Order



      Object2 : Order             action name()                                                       return value




                                                                                               return action notation
Call and Return Example
44


       : Order                                : Shipper


                     calcShippingCost()


                                                          lookupCost()
                       shipping cost




       : Order                                : Shipper


                 calcShippingCost("BC", 30)


                                                      lookupZone("BC")
                       return(15.50)
Sequence Diagram
45


        A sequence diagram focuses on the time ordering
         of the messages.
        Objects appear along the top margin, with each
         object having a lifeline, with an optional flow of
         control on the rectangle.
Sequence Diagram Example
46

                                 :Home Page                        :Login Page                     :UserAccount
     : Customer




                  clickLogin()
                                                                                                                  lifeline

                                                displayLogin()




                                       enterUserID()

                                                                                 validateLogin()


                                                                                   login okay
                                                                                                                  Focus of
                                                                                                                  control
                                              displayLoginOkay()
Collaboration Diagram
47


        A collaboration diagram is spatially oriented with
         an emphasis on the relationships between objects.
        Similar to sequence diagram, except no lifeline and
         focus of control.
Collaboration Diagram Example
48

                                  1: clickLogin()
                                                             :Home Page


                 : Customer

                                    3: enterUserID()
                                                                           2: displayLogin()




                                       5: displayLoginOk()




      :UserAccount                                           :Login Page


                              4: validateLogin()
Collaboration vs Sequence
49
     Diagrams
        Collaboration Diagrams
          Shows  relationships and interactions
          Better for visualizing all of the effects on a given object

          Easier to use/draw for brainstorming

        Sequence Diagrams
          Explicitlyshows time ordering of messages
          Better for visualizing overall flow in real-time systems
           and complex scenarios.
Analysis Class Model
50

        This is the final artifact of the analysis.
        This is a revised class diagram that includes all the
         responsibilities (operations) and attributes for all classes
         discovered via the use case realizations.
            You interaction diagrams indicate via the messages what
             should be the operations and attributes you need to add to
             your classes.
        Remember that this is an iterative and incremental
         process.
            The class diagram and the interaction diagrams will be
             modified repeatedly and in tandem as you work your work
             through the analysis.
Analysis in Context
51
                                                                          message()

                      «
                      »
                      «
                      »
                               realized by                                            message2()
                 «
                 »
                 «
                 »




                                                                      Analysis Model

                                 refined by




                                              implemented by
     message()




                 message2()

                              Design Model                     Implementation Model
Analysis in the big picture
52


        Recall that in the Unified Software Development
         Process, there are four phases; in each phase there
         is a analysis workflow.
        What is produced during the analysis workflow
         varies from phase to phase.
          Nonetheless,most of the analysis will occur in the
           elaboration phase.                     Inception
                                                    1     2
                                                              El aborati on
                                                                 3     4
                                                                              Construction
                                                                               5    6      7
                                                                                               Transiti on
                                                                                                 8


                                  Requirem ents



                                   Anal y s is



                                   Des i gn



                                  Implement ation



                                   T es t
Analysis in the phases
53


        Inception Phase
          CRC sessions, noun phrase analysis to create domain
           model
        Elaboration Phase
          Use case realizations
          Analysis class model

        Construction Phase
          Additionaluse case realizations for any newly
           discovered use cases.

More Related Content

Viewers also liked

Process Improvement Basics Astpl 2012
Process Improvement Basics Astpl 2012Process Improvement Basics Astpl 2012
Process Improvement Basics Astpl 2012armstrongsolution
 
Aras and Developing Deployment Use Cases and Requirements
Aras and Developing Deployment Use Cases and RequirementsAras and Developing Deployment Use Cases and Requirements
Aras and Developing Deployment Use Cases and RequirementsAras
 
3. use cases
3. use cases3. use cases
3. use casesAPU
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesRandy Connolly
 
Social Media Analysis of "Big 5"
Social Media Analysis of "Big 5"Social Media Analysis of "Big 5"
Social Media Analysis of "Big 5"quintly
 
Lecture: Ontologies and the Semantic Web
Lecture: Ontologies and the Semantic WebLecture: Ontologies and the Semantic Web
Lecture: Ontologies and the Semantic WebMarina Santini
 
7. sequence and collaboration diagrams
7. sequence and collaboration diagrams7. sequence and collaboration diagrams
7. sequence and collaboration diagramsAPU
 
Tashan - the movie in pics
Tashan - the movie in pics Tashan - the movie in pics
Tashan - the movie in pics Kapil Mohan
 
Managing Cash Flows On Construction Projects
Managing Cash Flows On Construction ProjectsManaging Cash Flows On Construction Projects
Managing Cash Flows On Construction ProjectsAGC of California
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2wahab13
 
Root cause analysis common problems and solutions
Root cause analysis common problems and solutions Root cause analysis common problems and solutions
Root cause analysis common problems and solutions ASQ Reliability Division
 
OO Development 3 - Models And UML
OO Development 3 - Models And UMLOO Development 3 - Models And UML
OO Development 3 - Models And UMLRandy Connolly
 
Stock Management System
Stock Management SystemStock Management System
Stock Management SystemShahriar Kabir
 
Cs 2352 object oriented analysis and design
Cs 2352 object oriented analysis and designCs 2352 object oriented analysis and design
Cs 2352 object oriented analysis and designandrewsasi
 
Value Engineering for Roads & Highways Project
Value Engineering for Roads & Highways ProjectValue Engineering for Roads & Highways Project
Value Engineering for Roads & Highways Projectajmal4
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentRandy Connolly
 

Viewers also liked (19)

5 why training_presentation
5 why training_presentation5 why training_presentation
5 why training_presentation
 
Process Improvement Basics Astpl 2012
Process Improvement Basics Astpl 2012Process Improvement Basics Astpl 2012
Process Improvement Basics Astpl 2012
 
Aras and Developing Deployment Use Cases and Requirements
Aras and Developing Deployment Use Cases and RequirementsAras and Developing Deployment Use Cases and Requirements
Aras and Developing Deployment Use Cases and Requirements
 
Ooad presentatin crc cards
Ooad presentatin crc cardsOoad presentatin crc cards
Ooad presentatin crc cards
 
3. use cases
3. use cases3. use cases
3. use cases
 
OO Development 2 - Software Development Methodologies
OO Development 2 - Software Development MethodologiesOO Development 2 - Software Development Methodologies
OO Development 2 - Software Development Methodologies
 
Social Media Analysis of "Big 5"
Social Media Analysis of "Big 5"Social Media Analysis of "Big 5"
Social Media Analysis of "Big 5"
 
Lecture: Ontologies and the Semantic Web
Lecture: Ontologies and the Semantic WebLecture: Ontologies and the Semantic Web
Lecture: Ontologies and the Semantic Web
 
7. sequence and collaboration diagrams
7. sequence and collaboration diagrams7. sequence and collaboration diagrams
7. sequence and collaboration diagrams
 
Tashan - the movie in pics
Tashan - the movie in pics Tashan - the movie in pics
Tashan - the movie in pics
 
Managing Cash Flows On Construction Projects
Managing Cash Flows On Construction ProjectsManaging Cash Flows On Construction Projects
Managing Cash Flows On Construction Projects
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2
 
Trait approach
Trait approachTrait approach
Trait approach
 
Root cause analysis common problems and solutions
Root cause analysis common problems and solutions Root cause analysis common problems and solutions
Root cause analysis common problems and solutions
 
OO Development 3 - Models And UML
OO Development 3 - Models And UMLOO Development 3 - Models And UML
OO Development 3 - Models And UML
 
Stock Management System
Stock Management SystemStock Management System
Stock Management System
 
Cs 2352 object oriented analysis and design
Cs 2352 object oriented analysis and designCs 2352 object oriented analysis and design
Cs 2352 object oriented analysis and design
 
Value Engineering for Roads & Highways Project
Value Engineering for Roads & Highways ProjectValue Engineering for Roads & Highways Project
Value Engineering for Roads & Highways Project
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented Development
 

Similar to OO Development 5 - Analysis

Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Jamie (Taka) Wang
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEWrizki adam kurniawan
 
fdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.pptfdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.pptRAJESH S
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software EngineeringKourosh Sajjadi
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdfSHIVAM691605
 
Architecture and design
Architecture and designArchitecture and design
Architecture and designhimanshu_airon
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit Kabra
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfganeshkarthy
 
Uml diagram assignment help
Uml diagram assignment helpUml diagram assignment help
Uml diagram assignment helpsmithjonny9876
 
Cs 2401 Unit 1
Cs 2401 Unit 1Cs 2401 Unit 1
Cs 2401 Unit 1Susan Cox
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented DatabaseMegan Espinoza
 

Similar to OO Development 5 - Analysis (20)

Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW[RPL2] Pertemuan 3 - UML dan USECASE VIEW
[RPL2] Pertemuan 3 - UML dan USECASE VIEW
 
fdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.pptfdocuments.in_unit-2-ooad.ppt
fdocuments.in_unit-2-ooad.ppt
 
Ooad
OoadOoad
Ooad
 
Chapter1
Chapter1Chapter1
Chapter1
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Design and Implementation in Software Engineering
Design and Implementation in Software EngineeringDesign and Implementation in Software Engineering
Design and Implementation in Software Engineering
 
Object-oriented modeling and design.pdf
Object-oriented modeling and  design.pdfObject-oriented modeling and  design.pdf
Object-oriented modeling and design.pdf
 
Object oriented analysis and design unit- iii
Object oriented analysis and design unit- iiiObject oriented analysis and design unit- iii
Object oriented analysis and design unit- iii
 
Elaboration
ElaborationElaboration
Elaboration
 
Architecture and design
Architecture and designArchitecture and design
Architecture and design
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
 
Design UML diagrams
Design UML diagramsDesign UML diagrams
Design UML diagrams
 
Unit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdfUnit-1_Notes(OOAD).pdf
Unit-1_Notes(OOAD).pdf
 
Uml diagram assignment help
Uml diagram assignment helpUml diagram assignment help
Uml diagram assignment help
 
Cs 2401 Unit 1
Cs 2401 Unit 1Cs 2401 Unit 1
Cs 2401 Unit 1
 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented Database
 

More from Randy Connolly

Ten-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS DegreeTen-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS DegreeRandy Connolly
 
Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)Randy Connolly
 
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...Randy Connolly
 
Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)Randy Connolly
 
Modern Web Development (2018)
Modern Web Development (2018)Modern Web Development (2018)
Modern Web Development (2018)Randy Connolly
 
Helping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing DisciplinesHelping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing DisciplinesRandy Connolly
 
Constructing a Web Development Textbook
Constructing a Web Development TextbookConstructing a Web Development Textbook
Constructing a Web Development TextbookRandy Connolly
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for ManagersRandy Connolly
 
Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"Randy Connolly
 
17 Ways to Fail Your Courses
17 Ways to Fail Your Courses17 Ways to Fail Your Courses
17 Ways to Fail Your CoursesRandy Connolly
 
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...Randy Connolly
 
Constructing and revising a web development textbook
Constructing and revising a web development textbookConstructing and revising a web development textbook
Constructing and revising a web development textbookRandy Connolly
 
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing DisciplinesComputing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing DisciplinesRandy Connolly
 
Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...Randy Connolly
 
Thinking About Technology
Thinking About TechnologyThinking About Technology
Thinking About TechnologyRandy Connolly
 
A longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission dataA longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission dataRandy Connolly
 
Is Human Flourishing in the ICT World of the Future Likely?
Is Human Flourishing in the ICT World of the Future Likely?Is Human Flourishing in the ICT World of the Future Likely?
Is Human Flourishing in the ICT World of the Future Likely?Randy Connolly
 
Constructing a Contemporary Textbook
Constructing a Contemporary TextbookConstructing a Contemporary Textbook
Constructing a Contemporary TextbookRandy Connolly
 

More from Randy Connolly (20)

Ten-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS DegreeTen-Year Anniversary of our CIS Degree
Ten-Year Anniversary of our CIS Degree
 
Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)Careers in Computing (2019 Edition)
Careers in Computing (2019 Edition)
 
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
Facing Backwards While Stumbling Forwards: The Future of Teaching Web Develop...
 
Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)Where is the Internet? (2019 Edition)
Where is the Internet? (2019 Edition)
 
Modern Web Development (2018)
Modern Web Development (2018)Modern Web Development (2018)
Modern Web Development (2018)
 
Helping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing DisciplinesHelping Prospective Students Understand the Computing Disciplines
Helping Prospective Students Understand the Computing Disciplines
 
Constructing a Web Development Textbook
Constructing a Web Development TextbookConstructing a Web Development Textbook
Constructing a Web Development Textbook
 
Web Development for Managers
Web Development for ManagersWeb Development for Managers
Web Development for Managers
 
Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"Disrupting the Discourse of the "Digital Disruption of _____"
Disrupting the Discourse of the "Digital Disruption of _____"
 
17 Ways to Fail Your Courses
17 Ways to Fail Your Courses17 Ways to Fail Your Courses
17 Ways to Fail Your Courses
 
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
Red Fish Blue Fish: Reexamining Student Understanding of the Computing Discip...
 
Constructing and revising a web development textbook
Constructing and revising a web development textbookConstructing and revising a web development textbook
Constructing and revising a web development textbook
 
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing DisciplinesComputing is Not a Rock Band: Student Understanding of the Computing Disciplines
Computing is Not a Rock Band: Student Understanding of the Computing Disciplines
 
Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...Citizenship: How do leaders in universities think about and experience citize...
Citizenship: How do leaders in universities think about and experience citize...
 
Thinking About Technology
Thinking About TechnologyThinking About Technology
Thinking About Technology
 
A longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission dataA longitudinal examination of SIGITE conference submission data
A longitudinal examination of SIGITE conference submission data
 
Web Security
Web SecurityWeb Security
Web Security
 
Is Human Flourishing in the ICT World of the Future Likely?
Is Human Flourishing in the ICT World of the Future Likely?Is Human Flourishing in the ICT World of the Future Likely?
Is Human Flourishing in the ICT World of the Future Likely?
 
Constructing a Contemporary Textbook
Constructing a Contemporary TextbookConstructing a Contemporary Textbook
Constructing a Contemporary Textbook
 
CSS: Introduction
CSS: IntroductionCSS: Introduction
CSS: Introduction
 

Recently uploaded

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

OO Development 5 - Analysis

  • 1. 5 ANALYSIS Examining the analysis workflow
  • 2. 1 INTRODUCTION 2 METHODOLOGIES 3 MODELS AND UML 4 OBJECT CONCEPTS 5 ANALYSIS 2 6 SOFTWARE DESIGN
  • 3. Our Process 3  Reminder of object-oriented development process we are following in this course is that there are four phases:  Inception  Elaboration  Construction  Transition  Each phase consists of one or more iterations of the following workflows:  Requirements  Analysis  Design  Implementation  Test  In this section, we are going to examine the analysis workflow principally in the context of the Elaboration phase.
  • 4. Analysis Workflow 4  In the requirements workflow, use case model and other artifacts (screen prototypes, glossary, etc) are used to build an initial model based on the users’ requirements.  In the analysis workflow, the requirements are analyzed in more detail, so as to begin the description of the internal structure and behavior of the proposed system. Use Case Realizations Use Case Model message() Glossary Prototypes message2() Requirements Model Analysis Model
  • 5. Analysis versus Design 5  The boundary between analysis and design can be quite vague; they often overlap.  Rules of thumb for analysis modeling:  Analysis model is always in the language of the business  Concentrate on capturing the big picture (don’t get bogged down in details).  Focus on the problem domain (business requirements), not the solution domain (detailed design considerations).  e.g., don’t worry about implementation classes such as database access or user interface classes.  Keep the model simple. Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 101.
  • 6. Analysis Model 6  The aim of the analysis workflow is to produce an analysis model.  This is a logical model that is technology- independent (i.e., unconcerned with how it is to be implemented).  Itallows developers to focus on the problems to be solved.  Ignoring technology makes it less likely that old ways of doing things will be carried forward into the design of the new system.
  • 7. Analysis is Use Case Driven 7  The use cases defined in the requirements model are the basis for the entire analysis and design workflows. Use Case Realizations message() message2() Use Case Model Analysis and Design Models
  • 8. Use Case Realizations 8  Use cases are realized in subsequent analysis and design.  That is, use-case realizations describe how a use-case is performed ("realized") in terms of interacting objects in the design model (that is, in terms of how objects collaborate).  Use case realizations tie together the use cases with the classes and relationships of the domain model.  That is, a use case realization specifies which classes must be built to implement each use case.  Development of use case realizations is the main goal of analysis; refining these use case realizations is the main goal of design. Use Case realizations show «realize» how classes PlaceOrder PlaceOrder collaborate to realize system functionality Source: Object-Oriented Analysis with UML (Rational Software Corporation, 2001), p. 3-18.
  • 9. Use Case Realizations 9  Use case realizations consists of the following elements:  Analysis class diagrams  Show the analysis classes that interact to realize the use case  Interaction diagrams  Show collaborations and interactions between objects that realize the use case.  Use Case refinement  New info may be discovered that requires the original use case to be updated.  Activity diagrams may be used to illustrate scenarios in the use case.  Use case realization is a process of refinement.  Take a use case and then model how the behavior specified in the use case will be realized by collaborations and interactions between instances of domain classes you have identified. Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 200-1.
  • 10. Analysis Model 10  The two key artifacts are produced in analysis model:  Use case realizations  These illustrate how instances of the analysis classes can interact to realize system behavior specified by a use case.  Analysis class diagram  Integrates the classes discovered in the use case realizations into a single diagram that shows methods and attributes uncovered in the realizations.
  • 11. Analysis Class 11  Analysis classes are classes that:  Representa clear and concise abstraction in the problem domain.  i.e., these classes represent the real-world things and concepts related to the problem the system is being design to solve.  Should map directly onto real-world business concepts.  Should NOT be concerned with design considerations such as performance, patterns, best practices, etc.  Also referred to as domain classes.
  • 12. Finding Classes 12  There is no simple algorithm for finding the right analysis classes.  Yet, there are techniques which can help you discover these classes. They are:  Noun/verb analysis  CRC analysis Source: Meyer, Object Oriented Software Construction (Prentice Hall, 1997), p. Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 134-5.
  • 13. Discovering Domain Classes 13  The best source for discovering these basic classes is a high-level (100-300 words) problem statement or system definition.  Ifyou don't have this system definition, then you will have to write one, in conjunction with the client/users.  You can also use other requirements model artifacts as sources of information, in particular:  the use case model  the glossary of terms.
  • 14. Noun/verb analysis 14  You can use the grammatical inspection technique of circling/highlighting/underling all the noun and noun phrases (compound nouns or adjective+noun) in the text.  This is sometimes called noun phrase identification.  You will probably find that:  noun and noun phrases become classes and attributes  verbs and verb phrases become methods and relations  possessive phrases indicate nouns should be attributes rather than classes.
  • 15. Step 1. Noun Phrase Identification 15 The Portfolio Manager shall be able to roll up portfolios on several levels. A Trader shall be able to place orders, on behalf of a portfolio, that generate one or more trades. A Portfolio Manager shall be able to select a pairoff method in conjunction with placing a sell order. The entry of a trade shall generate forecasted cashflows associated with the given trade lot. The system shall match up actual cashflows with forecasted cashflows. The system shall automatically generate appropriate postings to the General Ledger. The system shall allow an Assistant Trader to modify trade data and propagate the results accordingly. Identify the nouns and noun phrases in this example system definition. Source: Doug Rosenberg, Use Case Driven Object Modeling with UML (Addison Wesley, 1999), p. 18
  • 16. Noun Phrase Identification 16 The Portfolio Manager shall be able to roll up portfolios on several levels. A Trader shall be able to place orders, on behalf of a portfolio, that generate one or more trades. A Portfolio Manager shall be able to select a pairoff method in conjunction with placing a sell order. The entry of a trade shall generate forecasted cashflows associated with the given trade lot. The system shall match up actual cashflows with forecasted cashflows. The system shall automatically generate appropriate postings to the General Ledger. The system shall allow an Assistant Trader to modify trade data and propagate the results accordingly. Identify the nouns and noun phrases in this example system definition. Source: Doug Rosenberg, Use Case Driven Object Modeling with UML (Addison Wesley, 1999), p. 18
  • 17. Step 2. Noun Phrase 17 Consolidation  After identifying nouns and noun phrases,  make plural terms singular  eliminate duplicate terms  consolidate synonyms into single term  place list in alphabetic order
  • 18. Noun Phrase Consolidation 18 actual cashflow order sell order Assistant Trader pairoff method system entry portfolio trade forecasted cashflow Portfolio Manager trade data General Ledger posting trade lot level results Trader After the consolidating noun phrases
  • 19. Step 3. Noun Phrase Analysis 19  Now, remove:  references to the system itself or to its context  nouns which appear out of the scope of the project  nouns which are too vague  nouns which represent actions.  Actors might be removed from our list of candidate classes, and placed instead on the use case diagrams. actual cashflow order sell order Assistant Trader pairoff method system entry portfolio trade forecasted cashflow Portfolio Manager trade data General Ledger posting trade lot level results Trader Analyze the list
  • 20. Noun Phrase Analysis 20 actual cashflow order sell order Assistant Trader pairoff method system entry portfolio trade forecasted cashflow Portfolio Manager trade data General Ledger posting trade lot level results Trader actors actions out of the scope of the project too vague
  • 21. Step 4. Draw Initial Analysis Class Model 21  If you can, draw an initial analysis class model showing just class names, generalizations, associations, and aggregation.  At this stage, don't worry especially about multiplicity or composition, since further analysis is often required to address questions about multiplicity and composition.  The classes in your analysis class model are sometimes referred to as entity classes.  Just as noun phrase analysis helped identify candidate classes, verb phrase analysis can help identify class relationships.  The result can be a table showing each candidate associations with your candidate classes.  e.g., Student enrolls in Course Professor teaches Course
  • 22. CRC Cards 22  Another way of discovering your analysis classes is to use CRC (Class Responsibility Collaboration) cards.  CRC cards are often used within a team to brainstorm the allocation of responsibilities to domain classes as well as for the discovery of relationship for domain classes. Class Name: Class name here Responsibilities Collaborations Responsibilities of a class Collaborations with other are listed in this section. classes are listed here, together with a brief description of the purpose of the collaboration.
  • 23. CRC Cards Class Name Client 23 Responsibilities Collaborations Provide client information. Provide list of Campaign provides campaigns. campaign details. Class Name Campaign Responsibilities Collaborations Provide campaign information. Provide list of adverts. Advert provides advert details. Add a new advert. Advert constructs new object. Class Name Advert Responsibilities Collaborations Provide advert details. Construct adverts. Source: Bennett, McRobb, and Farmer, Object-Oriented Systems Analysis and Design (McGraw Hill, 2002), p. 193.
  • 24. Digression on UML Class & Object Notation 24 Customer Customer Customer Name compartment m_name m_name m_address m_phone m_address Attribute compartment m_phone getName() getPhone() Operation compartment «entity» stereotype Customer fred:Customer fred:Customer m_name=Randy m_address=123 Any Ave Objects m_phone=123-4567
  • 25. UML Attribute Compartment 25 visibility name multiplicity: type=initialValue optional mandatory optional Customer -m_name -m_address -m_phone: String -m_age:int=0 +Children[] #salary +numCustomers static attribute + public visibility - private visibility # protected visibility
  • 26. UML Operation Compartment 26 visibility name ( parameterName: parameterType, ...): returnType optional mandatory optional optional Customer m_name m_address m_phone numCustomers getName() Customer getPhone(): String setName(name: String) setPhone(phone: String): void Customer() getNumCustomers(): int Customer(name: String) constructors Note: at the analysis level, you should not be worried about details like constructors, parameters, data types, etc. These will show up in the design stage.
  • 27. Reflexive Associations 27  A reflexive association is one in which a class has an association with itself.  This means that a class has links to other objects of the same class. -subfolder 0..* Directory File 1 0..* -parent 1 Directory -m_parent[1] : Directory -m_subfolders[0..*] : Directory Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 152.
  • 28. Navigability 28  Navigability refers to ability to traverse from object of one class to an object of another class.  Means messages can only be sent in the direction of the arrow. Thus, a Product not navigable object does not 1 * contain an Order link, Order Product but an Order object does contain a collection of Product navigable links. 1 * If no arrows, then Order Product the relationship is bidirectional. Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 154-5.
  • 29. Dependency 29  A dependency is a relationship between two elements where a change in one, affects the other.  Typically used to indicate that one class uses another, but the usage is not really an association.  Dependencies generated (in class diagrams) by:  An operation of class A needs a parameter of class B  An operation of class A returns a value of class B  An operation of class A uses an object of class B somewhere in its implementation, but not as an attribute. A B +someMethod(in value : B) +otherMethod() : B +doSomething() void doSomething() { ... B myB = new B(); // use myB in some way ... } Source: Arlow and Neustadt, UML and the Unified Process (Addison-Wesley, 2002), p. 162-3.
  • 30. Scenarios 30  The process of realization often begins by looking at use case scenarios.  A scenario is an instance of a use case.  It is one flow through a use case  It is some combination of basic and alternate flows.  "this happened, then this, then this …"  Some people even write scenarios first, then write the use cases.  Written scenarios can also be a way of documenting test behaviors for the testing phase.
  • 31. Scenarios 31  Ways of describing (not realizing) scenarios:  using textual descriptions  using activity diagrams
  • 32. Activity Diagram 32  Scenarios can be graphically described by using an activity diagram.  These diagrams are the UML equivalent of a flow chart.  They visually capture the step-by-step flow of a typical use case description.  Are also used in business process modeling  This is a preliminary requirements step in some methodologies. It is used to help the analysts better understand how a business operates.  Not as useful for illustrating message communication between objects (we will use interaction diagrams for that).
  • 33. Activity Diagrams 33  This diagram shows:  action states, which represent the execution of a step within the flow of a use case.  Transitions between those action states  decisions for which guard conditions are defined  forks, where flow of control is split into two or more concurrent flows  joins, where separate flows are joined.
  • 34. action join state Check Schedule Select Course Check Pre- guard requisites expression initial state fork [checks completed] [checks failed] Assign to Resolve Course Conflicts [student added to the course] Update Schedule 34
  • 35. Exercise 35  Draw the activity diagram for the following use case scenario: Use Case: Place Order Step 1. Enter the order (includes getting info about order and payment method from customer) Step 2. Authorize the purchase (requires verification that the requirement funds can be obtained from customer using the specified payment method). Step 3. Allocate the order items from the inventory. Step 4. Ship the order. Source: Charles Richter, Designing Flexible Object-Oriented Systems with UML (Macmillan, 1999), p. 27.
  • 36. Exercise 36 [pending] Enter Order [aborted] [approved] Authorize Purchase Allocate Order Items Ship Order [declined] «trace» This activity diagram is a Place Order refinement of the use case [pending] Enter Order [aborted] [approved] Authorize Purchase Allocate Order Items Ship Order [declined]
  • 37. Exercise 37  Draw the activity diagram for the following use case scenario: Use Case: Cancel Order Item Step 1. Update that order item (check to see if the item is still pending, and if so, change its status to cancelled. Step 2. Credit the customer's account for that item. Step 3. Release the inventory request for that item. Note: Steps two and three can happen in either order (or concurrently).
  • 38. Exercise 38 Cancel Order Item [not pending] Update Order Item Credit Account [pending] Release Inventory
  • 39. Interaction Diagrams 39  Interaction diagrams are a graphical representation of how objects communicate with one another in a scenario.  Static diagrams such as the class diagram and the use case diagram contain no dynamic or temporal information.  It can be quite difficult proceeding from initial static class model to designing and implementing behaviors necessary for an application.  Interaction diagrams help with this task.  Interaction diagrams are a vital part of realizing a use case (along with the class diagram).  They model the collaborations and interactions between the objects that realize a use case.
  • 40. Interaction Diagrams 40  Two types  Collaboration diagrams  Emphasize structural relationships between objects.  Sequence diagrams  Emphasize the time-ordered sequence of messages sent between objects.  Both diagrams are two different representations of the same thing (i.e., the object interactions).  Thusa collaboration diagram can be converted to a sequence diagram, and vice-versa.
  • 41. Interaction Diagrams 41  In these diagrams, focus is on communication between objects, not classes. Student fred fred : Student : Student class objects
  • 42. Messages 42  How do objects communicate?  By sending messages (i.e., invoking a method).  A message is thus a communication between two objects (or within one) what results in some activity.  This activity usually involves one or more actions.  Actions are executable statements that change values of the attributes of an object or return a value.  Are calls to an object's methods or properties  We will make use of two actions:  Call  Return Source: Kendall Scott, UML Explained (Addison-Wesley, 2001), p. 59-62.
  • 43. UML Actions: Call and Return 43 Object1 : Customer Object2 : Order action name() other action call() call action notation Object1 : Customer action name() : Customer : Order Object2 : Order action name() return value return action notation
  • 44. Call and Return Example 44 : Order : Shipper calcShippingCost() lookupCost() shipping cost : Order : Shipper calcShippingCost("BC", 30) lookupZone("BC") return(15.50)
  • 45. Sequence Diagram 45  A sequence diagram focuses on the time ordering of the messages.  Objects appear along the top margin, with each object having a lifeline, with an optional flow of control on the rectangle.
  • 46. Sequence Diagram Example 46 :Home Page :Login Page :UserAccount : Customer clickLogin() lifeline displayLogin() enterUserID() validateLogin() login okay Focus of control displayLoginOkay()
  • 47. Collaboration Diagram 47  A collaboration diagram is spatially oriented with an emphasis on the relationships between objects.  Similar to sequence diagram, except no lifeline and focus of control.
  • 48. Collaboration Diagram Example 48 1: clickLogin() :Home Page : Customer 3: enterUserID() 2: displayLogin() 5: displayLoginOk() :UserAccount :Login Page 4: validateLogin()
  • 49. Collaboration vs Sequence 49 Diagrams  Collaboration Diagrams  Shows relationships and interactions  Better for visualizing all of the effects on a given object  Easier to use/draw for brainstorming  Sequence Diagrams  Explicitlyshows time ordering of messages  Better for visualizing overall flow in real-time systems and complex scenarios.
  • 50. Analysis Class Model 50  This is the final artifact of the analysis.  This is a revised class diagram that includes all the responsibilities (operations) and attributes for all classes discovered via the use case realizations.  You interaction diagrams indicate via the messages what should be the operations and attributes you need to add to your classes.  Remember that this is an iterative and incremental process.  The class diagram and the interaction diagrams will be modified repeatedly and in tandem as you work your work through the analysis.
  • 51. Analysis in Context 51 message() « » « » realized by message2() « » « » Analysis Model refined by implemented by message() message2() Design Model Implementation Model
  • 52. Analysis in the big picture 52  Recall that in the Unified Software Development Process, there are four phases; in each phase there is a analysis workflow.  What is produced during the analysis workflow varies from phase to phase.  Nonetheless,most of the analysis will occur in the elaboration phase. Inception 1 2 El aborati on 3 4 Construction 5 6 7 Transiti on 8 Requirem ents Anal y s is Des i gn Implement ation T es t
  • 53. Analysis in the phases 53  Inception Phase  CRC sessions, noun phrase analysis to create domain model  Elaboration Phase  Use case realizations  Analysis class model  Construction Phase  Additionaluse case realizations for any newly discovered use cases.