uml ooad concepts

Upload: piyushdhamija

Post on 07-Apr-2018

232 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/3/2019 UML OOAD Concepts

    1/129

    1

    Object Oriented Analysis andDesign Using UML

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    2/129

    2

    Course description:

    OBJECTIVE:

    The understand the Unified Modeling Language and orient towards

    Object Oriented methodology using UML for modeling software

    systems.

    TARGET AUDIENCE:

    In particular, it is intended for software professionals who have sound

    knowledge of object concepts and some experience towards analysis

    and design.

    PREREQUISITES:Good understanding of object concepts.

    Sound knowledge of any object oriented language.

    Knowledge of software engineering process.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    3/129

    3

    Course description:

    TABLE OF CONTENTS:

    Module1 Introduction

    Module2 Use case diagram

    Module3 Flow of eventsModule 4 Realization of the class diagram

    Sequence diagram and Collaboration Diagram

    Module5 Class diagram and refinement attributes

    Module6 State transition and activity diagram

    Module7 Implementation diagram

    Component diagram and Deployment diagram

    Module8 Understanding project culture

    Appendix-ASeptember 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    4/129

    4

    Module-1

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    5/129

    5

    Importance of modeling

    What is a model?

    A model is a simplification of reality

    Why do we model?help visualizing

    permit specification

    provides a templatedocument decisions

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    6/129

    6

    4 Principles of Modeling

    Choose your models well

    Every model may be expressed at various

    levels of precisionThe best models are connected to reality

    No single model is sufficient

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    7/129

    7

    What is Software Engineering?

    DEFINITION:The application of systematic, disciplined andqualifiable approach to the development, operation and maintenance ofa software system is software engineering.

    Software development life cycle has following stages:

    REQUIREMENT

    ANALYSIS

    DESIGN

    IMPLEMENTATION

    TESTINGSeptember 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    8/129

    8

    Effort Distribution for each stage:

    Analysis & design 40 %

    Development 20 %

    Testing 40 %

    Analysis - What is to be done ?

    Design - How it is to be done ?

    Two Popular methodology approaches are:

    Structured Analysis & Design

    Object Oriented Analysis & Design-OO model

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    9/129

    9

    Major benefits of OOAD:

    The object oriented approach is a way of thinking about a problem using

    real world concepts instead using adhoc function concepts.

    We intent to learn OOAD approach for the following reason:

    Promotes better understanding of user requirementsLeads cleaner design

    Design flexibility'

    Decomposition of the system is consistent

    Facilitates data abstraction & information hiding

    Software reuseEasy maintenance

    Implementation flexibility

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    10/129

    10

    Elements of OO Methodology:

    Following are three elements for every OO methodology:

    Notation

    Process / Method

    Tool

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    11/129

    11

    What is Notation?

    Notation:

    It is collection of graphical symbols for expressing model of the

    system.

    The Unified Modeling Language [UML] provides a very robust set

    of notation which grows from analysis to design.

    This brings end of the method wars as far as notation is concerned

    with adoption of the language [UML]

    By unifying the notations used by these object oriented methods, the

    unified modeling language provides the basis for a de facto standard in

    the domain of object oriented analysis and design founded on a wide

    base of user experienceSeptember 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    12/129

    12

    What is UML?

    It is a Unified Modeling Language, which is mainly a collection ofgraphical notation that methods use to express the designs.

    The UML is language for visualizing, specifying, constructing anddocumenting the artifacts of software system.

    UML is visual modeling language for modeling systems and is nonproprietary

    UML is not a radical departure from Booch, OMT, OOSE notationsbut rather legitimate successor to all three.

    It is an evolutionary step, which is more expressive and more uniform

    than individual notations. Whitehead says

    By relieving the brain of unnecessary work, a good notation, sets itfree to concentrate on more advance and creative problems UML isnot a method or process but is the means to express the same.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    13/129

    13

    Where can you use the UML?

    System of several different kinds, absolutely anywhere everywhere.

    Primarily for software intensive systems like:

    Systems software

    Business processes

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    14/129

    14

    The Evolution of the UML:

    UML1.1

    UML1.0

    UML0.9

    Beta version OOPSLA96

    Public Feedback

    Submission of OMG group

    OMG vote97

    Submission to OMG, sept97

    Unified Method 0.8

    Other method Booch OMT OOSE

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    15/129

    15

    Advantages of UML:

    Captures business processes

    Enhance communication and ensures the right communication

    Capability to capture the logical software architecture independent ofthe implementation language

    Manages the complexity

    Enables reuse of design

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    16/129

    16

    UML refers to:

    UML things:

    Class, component, node, relationship, package etc..

    UML diagrams:Use case diagram, interaction diagram, class diagram, State

    diagram,deployment diagram

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    17/129

    17

    What is Process?

    What is Process?

    It is an extensive set of guidelines that address the technical and

    organizational aspects of software development focusing on

    requirements, analysis and design.

    Process basically encapsulates the activities leading to the orderlyconstruction of system model.

    OO model supports the iterative and incremental model for theprocess.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    18/129

    18

    More about Process?

    Guidance as to the order of teams activities

    It specifies what artifacts should be developed

    It directs the task of individual developers and team as a whole

    It offers criteria for monitoring and measuring project activities

    The selection of particular process will vary greatly depending uponthings like problem domain, implementation technology and skills ofteam

    Booch,OMT,OOSE and many other methods have well definedprocess and UML supports almost all methods

    There has been some convergence on development process practicesbut there is no consensus for standardization.

    Framework for the every stage of software development life cycle.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    19/129

    19

    Best Practices followed by Rational Unified Process

    Develop software iteratively

    Manage requirements

    Use component based architectures Visually model software

    Verify S/W quality

    Control changes to software.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    20/129

    20

    What is a tool?

    It is automated support for every stage of software development

    life cycle.

    Since we are concentrating on requirement, analysis and design phase,

    following are the names of few tools which are greatly in use:

    1. Rational Rose

    2. Cayenne

    3. Platinum

    4. Select

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    21/129

    21

    Why Tool?

    Helps designer for creating designs much more quickly.

    Supports validations like:

    Consistency checking

    Completeness checkingConstrain checking.

    Time required for certain operation could be predicted .

    Code generation

    Reverse engineering.

    Round trip engineering

    Conversion from SSAD to OOAD

    Quick documentationetc

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    22/129

    22

    Triangle for Success:

    All three components play equally important role towards the success

    of the project.

    Notation

    MethodTool

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    23/129

    23

    Objective of the first module:

    Get introduced with Unified Modeling Language and know the basic

    components of software development life cycle.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    24/129

    24

    Module-2

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    25/129

    25

    OO model:

    STATIC MODEL

    DYNAMIC MODEL

    PHYSICAL MODEL

    LOGICAL MODEL

    The models of Object Oriented Development

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    26/129

    26

    Models and Views:

    4+1 view of OO model.

    Process view

    Deployment view

    Logical view

    Dynamic view

    +

    Use case view

    As shown in the model , for each dimension we define a number of

    diagrams that denote a view of the systems model.

    The use case view is central since its contents drive the developments

    of other views.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    27/129

    27

    UML diagrams:

    1. Use case diagram

    2. Class Diagram

    3. Behavioral diagrams

    - State chart diagrams

    - Object diagram

    - Activity diagrams

    - Interaction diagrams

    - Sequence diagrams

    - Collaboration diagrams

    4. Implementation diagrams- Component diagram

    - Deployment diagram

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    28/129

    28

    Semantics of Diagrams:

    Use case diagrams represent the functions of a system from the userspoint of view.

    Sequence diagrams are a temporal representation of objects and their

    interactions. Collaboration diagrams are a spatial representation of objects, links,

    and interactions.

    Object diagrams represent objects and their relationships, andcorrespond to simplified collaboration diagrams that do not representmessage broadcasts.

    Class diagrams represent the static structure in terms of classes andrelationships.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    29/129

    29

    Semantics of Diagrams:

    Contd...

    State chart diagrams represent the behavior of a class in terms of states

    Activity diagrams are to represent the parallel behavior of an operationas a set of actions.

    Component diagrams represent the logical components of anapplication.

    Deployment diagrams represent the deployment of components onparticular pieces of hardware.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    30/129

    30

    What is USE CASE diagram?

    A use case diagram establish the capability of the system as a whole.

    Components of use case diagram:

    ActorUse case

    System boundary

    Relationship

    Actor relationship

    Semantic of the components is followed.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    31/129

    31

    ACTOR:

    What is an actor?

    An actor is some one or something that must interact with the system

    under development

    UML notation for actor is stickman, shown below.

    Customer Manager Cashier

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    32/129

    32

    ACTOR:

    More about an actor:

    It is role a user plays with respect to system.

    Actors are not part of the system they represent anyone oranything that must interact with the system.

    Actors carry out use cases and a single actor may perform more

    than one use cases.

    Actors are determined by observing the direct uses of the

    system,

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    33/129

    33

    ACTOR:

    Contd

    Those are responsible for its use and maintain as well as other systems

    that interact with the developed system.

    An actor may

    - input information to the system.

    - receive information from the system.

    - input to and out from the system.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    34/129

    34

    ACTOR:

    How do we find the actor?

    Ask following questions to find the actors:

    Who uses the system?

    Who installs the system?

    Who Starts up the system?

    What other systems use this system?

    Who gets the information from the system?

    Who provides information to the system?

    Actor is always external to the system. They are never part of the

    system to be developed.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    35/129

    35

    ACTOR:

    4-Categories of an actor:

    Principle : Who uses the main system functions.

    Secondary : Who takes care of administration & maintenance.

    External h/w : The h/w devices which are part of application

    domain and must be used.

    Other system: The other system with which the system must

    interact.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    36/129

    36

    ACTOR:

    Note:

    If newly identified actor is using a system in a same way like an

    existing actor, then new actor can be dropped.

    If two actors use system in the same way they are same actors.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    37/129

    37

    USE CASE:

    What is USE case?

    A use case is a pattern of behavior, the system exhibits

    Each use case is a sequence of related transactions performed by an

    actor and the system in dialogue.

    USE CASE is dialogue between an actor and the system.

    Examples:

    Open new account Withdrawal of cash

    from ATM

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    38/129

    38

    USE CASE:

    More about USE CASE:

    It is a snapshot of one aspect of system.

    They model a dialog between actor and system.

    A use case typically represents a major piece of functionality

    that is complete from beginning to end.

    Most of the use cases are generated in initial phase, but you

    find some more as you proceed.

    A use case may be small or large. It captures a broad view of aprimary functionality of the system in a manner that can be

    easily grasped by non technical user.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    39/129

    39

    USE CASE:

    Contd

    A use case must deliver something of value to an actor.

    The use cases may be decomposed into other use cases.

    Use cases also present a good vehicle for project planning.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    40/129

    40

    USE CASE:

    How do we find the use cases?

    What functions will the actor want from the system?

    Does the system store information? What actors will create, read,

    update. Or delete that information?

    Does the system need to notify an actor about changes in its internal

    state?

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    41/129

    41

    USE CASE:

    Generic format for documenting the use case:

    - Pre condition: If any Use case : Name of the case.

    Actors : List of actors(external agents), indicating whoinitiates the use case.

    Purpose : Intention of the use case.

    Overview : Description.

    Type : primary / secondary.

    Post condition: If any

    Typical Course of Events:

    ACTOR ACTION : Numbered actions of the actor.

    SYSTEM RESPONSE : Numbered description of system responses.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    42/129

    42

    USE CASE:

    USE CASE documentation example:

    The following use case describes the process of opening a new account

    in the bank.

    Use case :Open new account

    Actors :Customer, Cashier, Manager

    Purpose :Like to have new saving account.

    Description :A customer arrives in the bank to open the new

    account. Customer requests for the new account

    form, fill the same and submits, along with theminimal deposit. At the end of complete successful

    process customer receives the passbook.

    Type :Primary use case.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    43/129

    43

    Grouping USE CASES:

    Those use case functionality which are directly dependent on the

    system environment are placed in interface objects

    Those functionality dealing with storage and handling of information

    are placed in entity objects

    Functionality's specific to one or few use cases and not naturally

    placed in any of the other objects are placed in control objects

    By performing this division we obtain a structure which helps us to

    understand the system from logical view

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    44/129

    44

    OOAD --- USE CASE driven

    Capture,clarify

    & validate use cases

    Analysis Design &

    Implementation

    Implementuse cases

    Use cases make up the glue

    Test

    Verify that use cases

    are satisfied

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    45/129

    45

    SYSTEM BOUNDARY:

    What is System Boundary?

    It is shown as a rectangle.

    It helps to identify what is external verses internal, and what the

    responsibilities of the system are.

    The external environment is represented only by actors.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    46/129

    46

    RELATIONSHIP:

    What is Relationship?

    Relationship between use case and actor.

    Communicates

    Relationship between two use cases

    Extends

    Uses

    Notation used to show the relationships:

    >

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    47/129

    47

    RELATIONSHIP:

    Relationship between use case and actor is often referred as

    communicates .

    Relationship between two use cases is refereed as either uses

    or extends.

    USES:

    - Multiple use cases share a piece of same functionality.

    - This functionality is placed in a separate use case rather thandocumenting in every use case that needs it.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    48/129

    48

    RELATIONSHIP:

    Contd...

    A uses relationship shows behavior that is common to one or

    more use cases.

    EXTENDS:

    It is used to show optional behavior, which is required only

    under certain condition.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    49/129

    49

    USE CASE diagram:

    Use case diagram for the shown functionality.

    Balance status

    report

    Withdraw cash

    Validation

    uses

    CustomerClerk

    Manager

    extends

    ATM

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    50/129

    50

    Objective of the second module

    To understand and capture the detailed specification of a system to be

    developed, from user perspective.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    51/129

    51

    Module-3

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    52/129

    52

    Beginning Analysis and Design

    Completion of first version of use case diagram initiates the processes

    of analysis and design.

    UML provides the framework to carry out the process of analysis and

    design in form of set of diagrams.

    Every diagram and notation used in the diagram carries the semantics.

    First step towards analysis and design is to specify the flow of events.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    53/129

    53

    Flow of Events:

    A flow of events document is created for each use case.

    Details about what the system must provide to the actor when the useis executed.

    Typical contents

    How the use case starts and ends Normal flow of events

    Alternate flow of events

    Exceptional flow of events

    Typical Course of Events has:

    Actor Action(AA)

    System Response(SR)

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    54/129

    54

    Normal Flow of Events:

    For withdrawal of cash:

    1.(SR) The ATM asks the user to insert a card.

    2.(AA) The user inserts a cash card.

    3.(SR) The ATM accepts the card and reads its serial number.

    4.(SR) The ATM requests the password.

    5.(AA) The user enters 1234.

    6.(SR) The ATM verifies the serial number and password with the

    bank and gets the notification accordingly.

    7.(SA)The ATM asks the user to select the kind of transaction.

    8.(AA)User selects the withdrawal.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    55/129

  • 8/3/2019 UML OOAD Concepts

    56/129

    56

    Normal Flow of Events:

    Contd...

    15.(SR) The ATM prints a receipt, ejects the card and asks the user to

    take them

    16.(AA) The user takes the receipt and the card.

    17.(SR) The ATM asks a user to insert a card.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    57/129

    57

    Alternative Flow of Events:

    For withdrawal of cash use case:

    9. The ATM asks for the amount of cash; the user has change of mind

    and hits the cancel.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    58/129

    58

    Exceptional Flow of Events:

    For withdrawal of cash use case:

    3 Suspicious pattern of usage on the card.

    10 The machine is out of cash.

    11 Money gets stuck in the machine.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    59/129

    59

    Why flow of events?

    It helps in understanding the functionality of a system to be developed.

    Flow of events helps in finding objects of the system to be developed.

    Happens to be most important and very first step towards analysis and

    design.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    60/129

    60

    What is Scenario?

    The functionality of the use case is captured in flow of the

    events.

    A scenarios is one path through the flow of events for the use

    case.

    Scenarios are developed to help identify objects, classes and

    object interactions for that use case.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    61/129

    61

    Objective of the third module

    To understand the flow of each functionality and find out the objects

    and methods required to build the system.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    62/129

    62

    Module-4

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    63/129

    63

    USE CASE Realizations:

    The use case diagram presents an outside view of the system

    Interaction diagrams describe how use cases are realized as

    interactions among societies of objects.

    Two types of interaction diagrams

    Sequence diagrams

    Collaboration diagrams

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    64/129

    64

    What is Interaction diagram?

    Interaction diagrams are models that describe how groups of objects

    collaborate in some behavior

    There are 2 kinds of interaction diagrams

    Sequence diagram

    Collaboration diagram

    Sequence diagrams are a temporal representation of objects and their

    interactions

    Collaboration diagrams are spatial representation of objects, links and

    interrelations

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    65/129

    65

    What is sequence diagram?

    Typically these diagrams capture behaviors of the single

    scenario.

    Shows object interaction arranged in time sequence.

    They show sequence of messages among the objects.

    It has two dimensions, vertical represents time & horizontal

    represents objects.

    Components of sequence diagram:

    -objects

    -object lifeline-Message

    -pre/post conditions.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    66/129

    66

    OBJECT & OBJECT LIFE LINE:

    Object are represented by rectangles and name of the objects are

    underlined.

    Object life line are denoted as dashed lines. They are used to

    model the existence of objects over time.

    Name:Class

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    67/129

    67

    MESSAGES:

    They are used to model the content of communication between objects.

    They are used to convey information between objects and enable

    objects to request services of other objects.

    The message instance has a sender, receiver, and possibly other

    information according to the characteristics of the request.

    Messages are denoted as labeled horizontal arrows between life lines.

    The sender will send the message and receiver will receive the

    message.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    68/129

    68

    MESSAGES:

    Contd

    May have square brackets containing a guard conditions. This is a

    Boolean condition that must be satisfied to enable the message to be

    sent.

    May have have an asterisk followed by square brackets containing aniteration specification. This specifies the number of times the message

    is sent.

    May have return list consisting of a comma -separated list of names

    that designate the values of returned by the operation.

    Must have a name or identifier string that represents the message.

    May have parentheses containing an argument list consisting of a

    comma separated list of actual parameters passed to a method.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    69/129

    69

    :Customer :ATM :Bank Request password

    Verify accountEnter the password

    Account o.k.Request option

    Enter option

    Request amount

    Enter the amountUpdate transaction

    Transaction commit

    Insert card

    Dispense cash

    Request take cash

    Take cash

    Request continuation

    Terminate

    Print receipt ,eject card

    Request take cardTake card

    Display main screen and prompt for the card.

    :TransactionCreate

    Transaction

    Transaction

    complete

    Sequence diagram [for withdrawal of cash, normal flow]

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    70/129

    70

    What is Collaboration diagram?

    Collaboration diagrams illustrate the interaction between the objects,

    using static spatial structure.

    Unlike sequence diagram the time is not explicitly represented in these

    diagrams

    In collaboration diagram the sequence of messages is indicated bynumbering the messages. The UML uses the decimal numbering

    scheme.

    In these diagrams, an actor can be displayed in order to represent the

    triggering of interaction by an element external to the system.

    This helps in representing the interaction, without going into thedetails of user interface.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    71/129

    71

    Components of collaboration diagram:

    Named objects

    Links: Links are represented by a continuous line between objects, and

    indicates the exchange of messages.

    Messages has following attributes:

    Synchronization --thread name, step within thread.

    Sequence number

    Message labels : The name of the message often corresponds to an operation

    defined in the class of the object that is the destination of the message.

    Message names may have the arguments and return values.

    *[iteration].

    It uses decimal notation.

    Message direction.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    72/129

    72

    Semantics of components:

    Object names identify which objects are participating and the links

    show which objects collaborate

    A link between two objects must exist for one object to send message

    to another and vice a versa.

    Messages in the collaboration diagram get transformed to more

    detailed signature.

    They use the decimal notation system for numbering the messages.

    The direction of the message defines the sender and receiver of

    the message

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    73/129

    73

    The elements of message:

    Predecessor

    Role names

    Message qualifiers

    Iteration expression

    Parameters

    Return values

    Guard

    Message stereotypes

    Concurrent thread sequencing

    Thread dependencies Message expression

    [Pre] A1:*(expression):doIt(p,r):return value

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    74/129

    74

    The examples of message:

    4:Display(x,y) Simple

    message

    3.3.1:Display(x,y) Nested

    message

    4.2:subtract[Today,Birthday]:age Nested

    message with

    return value

    [Age >=18] 6.2:Vote() Conditional

    message

    4.a,b.6/c.1:Turnon(Lamp) Synchro. with

    other flow of

    execution

    1*:wash() Iteration

    3.a,3.b/4*||[i:=1..n]:Turnoff() Paralleliteration

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    75/129

    75

    Collaboration diagram [for withdrawal of cash, normal flow.]

    1. Insert card

    Enter password, Enter kind

    Enter amount,

    Take cash, Take card

    cancel,Terminate, Continue

    Display main screenunreadable card message,

    request password,

    request kind, request amount,

    canceled message, eject card, failure message,

    dispense cash, request take cash

    request continuation,

    print receipt, request take card

    bad account message,

    bad bank account messageVerify account,

    process transaction

    Transaction succeed

    Transaction failed

    account o.k.

    bad account,bad password,

    bad bank code

    Create Transaction

    Transaction completeCUST-

    OMER

    BANK

    ATM

    TRANSA-

    CTION

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    76/129

    76

    Objective of the fifth module

    To know the interaction among the objects in temporal and spatial

    form.

    To know how objects collaborate among each other and hence delegate

    the responsibility to the respective objects.

    To understand how the messages get matured with more information.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    77/129

    77

    Module-5

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    78/129

    78

    What is Class diagram?

    A class diagram shows the existence of classes and their relationshipsin the logical view of a system

    UML modeling elements in class diagrams are:

    Classes, their structure and behavior.

    relationships components among the classes like association,aggregation, composition, dependency and inheritance

    Multiplicity and navigation indicators

    Role names or labels.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    79/129

    79

    Major Types of classes:

    Concrete classes

    A concrete class is a class that is instantiable; that is it can have

    different instances.

    Only concrete classes may be leaf classes in the inheritance tree.

    Abstract classes

    An abstract class is a class that has no direct instance but whose

    descendants classes have direct instances.

    An abstract class can define the protocol for an operation without

    supplying a corresponding method we call this as an abstract

    operation.

    An abstract operation defines the form of operation, for which each

    concrete subclass should provide its own implementation.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    80/129

    80

    RELATIONSHIP:

    Association

    Aggregation

    Composition

    Inheritance

    Dependency

    Instantiation

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    81/129

    81

    ASSOCIATION:

    These are the most general type of relationship:

    It denotes a semantic connection between two classes

    It shows BI directional connection between two classes

    It is a weak coupling as associated classes remain somewhat

    independent of each other

    Example:

    CUSTOMERATM system

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    82/129

    82

    AGGREGATION:

    This is a special type of association

    The association with label contains or is part of is an

    aggregation

    It represents has a relationship

    It is used when one object logically or physically contains other

    The container is called as aggregate

    It has a diamond at its end

    The components of aggregate can be shared with others It expresses a whole - part relationships

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    83/129

    83

    AGGREGATION:

    Example:

    Customer ATM card

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    84/129

    84

    COMPOSITION:

    This is a strong form of aggregation

    It expresses the stronger coupling between the classes

    The owner is explicitly responsible for creation and deletion of

    the part

    Any deletion of whole is considered to cascade its part

    The aggregate has a filled diamond at its end

    Window Client Area

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    85/129

    85

    INHERITANCE:

    The inheritance relationship helps in managing the complexity by

    ordering objects within trees of classes with increasing levels of

    abstraction. Notation used is solid line with arrowhead,shown below.

    Generalization and specialization are points of view that are based on

    inheritance hierarchies.Account

    SavingAccountCurrentAccount

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    86/129

    86

    DEPENDENCY:

    Dependency is semantic connection between dependent and

    independent model elements.

    This association is unidirectional and is shown with dotted

    arrowhead line.

    In the following example it shows the dependency relationshipbetween client and server.

    The client avails services provided by server so it should have

    semantic knowledge of server.

    The server need not know about client.

    Client Server

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    87/129

    87

    INSTANTIATION

    This relationship is defined between parameterized class and

    actual class.

    Parameterized class is also referred as generic class.

    A parameterized class cant have instances unless we first

    instantiated itExample:

    Queue

    Queue

    Element

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    88/129

    88

    What is Cardinality? :

    Definition: Number of instances of each class involved in the dialogue

    is specified by cardinality.

    Common multiplicity values:

    Symbol Meaning

    1 One and only one

    0..1 Zero or one

    MN From M to N (natural integer)

    0..* From zero to any positive integer

    1..* From one to any positive integer

    Also thought can be given about navigability to every applicable

    relationship.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    89/129

    89

    Reaching the class diagram:

    In collaboration diagram we have shown the objects, their interaction

    and detailed message signature.

    This information is carried forward to the class diagram.

    At this point,we group the similar objects and form classes.

    Messages get mapped to responsibilities for respective classes.

    Find the attributes for every class.

    Transform the links to appropriate relationships.

    Relationship is further refined with respect to multiplicity and

    navigability.

    This complete procedure brings the minimal class diagram [for withdraw cashuse case, normal flow.]

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    90/129

    90

    Class diagram [for withdrawal of cash, normal flow]

    Customer

    Transaction

    1

    0..*

    1

    0..*ATMSystem

    1..*

    1..*

    1..*

    1..*

    Bank[Branch]1

    1..*

    1

    1..*1

    11

    1

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    91/129

    91

    What more to the Class Diagram?

    Till this slide we have worked out the essentials of class diagram for

    withdrawal of cash use case, normal flow of events.

    Similar exercise required to be carried out for every scenario and

    clubbed all in the class diagram.

    At this point, we refine this integrated class diagram to add further finedetails. Approximate sketch for this class diagram has been shown at

    the end of this module.

    Refinement attributes should be updated right from sequence diagram

    to class diagram.

    Next few slides will take into the discussion of refinement attributes.

    This process of iterative and incremental development will continue till

    there is no change in two consecutive iteration.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    92/129

    92

    OOAD---Iterative & Incremental Approach

    Identify objects

    Identify Messages

    Group Objects

    into classes

    Identify & classify

    Class relationshipsIdentify class

    behavior

    Group classes

    into domains

    Validate Classes

    & Objects

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    93/129

    93

    Refinement attributes:

    Stereotypes:

    Stereotypes are part of the range of extensibility mechanism provided

    by UML

    It permits user to add new model element classes on top of the kernel

    predefined by UML

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    94/129

    94

    Refinement attributes:

    Contd

    Constraints:

    Constraints are functional relationship between the entities and object

    model. The entities include objects, classes, attributes, association,

    links. A constraint restricts the values that entities can assume.

    UML doesn't specify a particular syntax for constraints, other than they

    should appear between braces, so they may therefore be expressed

    using natural language, pseudo code, navigation expression or

    mathematical expression

    UML1.2 does prefer the use of a constraint language OCL i.e. Object

    Constraint Language, which is subset of UML.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    95/129

    95

    Refinement attributes:

    Transaction

    Window

    length/width

    {No. of transaction

  • 8/3/2019 UML OOAD Concepts

    96/129

    96

    Refinement attributes:

    Qualifier:

    UML provides a role of constraint notation to indicate different kind of

    collections that may be inherent in the analysis model

    Common role constraints for multi valued roles include{ordered} Collection is maintained in sorted manner

    {bag} Collection may have multiple copies of same item.

    {set} Collection may have at most one copy of given item.

    Some constraints may be combined such as: {ordered set}

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    97/129

    97

    Refinement attributes:

    Qualifier:

    Another common design scheme is to use a key value to retrieve an

    item from the collection. This is called as qualified association and the

    key value as qualifier.

    A qualified association is the UML equivalent of a programmingconcept variously known as associative arrays, maps,dictionaries

    A qualified association relates two object classes and a qualifier

    The qualifier is a special attribute that reduced the effective

    multiplicity of an association.

    One to many and many to many association may be qualified.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    98/129

    98

    Refinement attributes:

    Check for many to many relationship, if any, normalize with qualifier

    or association class.

    Check for the scope forming abstract classes and template classes.

    Check for helper functions.

    Thought can be given for using the design patterns.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    99/129

    99

    Objective of the fifth module:

    Learn to build the architecture, which contains the entire information

    of the system to be developed.

    It is this architecture which is called as BLUE PRINT is handed over

    for coding.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    100/129

    100

    Refined Class diagram [for withdrawal of cash]

    SavingAccount

    AccountAccessor

    TellerScreen

    ATMScreenBankAssociates

    CashierStation

    person

    Cash

    BatchJob

    NoteHelpForBankCard

    ATMSystem

    BankComputer

    Area

    BankCard

    Bank[Branch]11

    1..*1..*

    Customer

    1

    0..1

    1

    0..1

    11

    Account

    1

    1

    1

    1

    1..*

    1

    1..*

    1

    Transaction

    11..*

    11..*

    Slips

    CurrentAccount

    Few more relationship can be further added to the shown diagram:

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    101/129

    101

    Module-6

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    102/129

    102

    What is state transition diagram?

    A state transition diagram shows the states of a single object, the

    events or the messages that cause a transition from one state to another

    and the action that result from a state change.

    A state transition diagram will not be created for every class in the

    system.Components of State Diagram:

    Start State

    Stop state

    State Transition

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    103/129

    Semantics of every components:

  • 8/3/2019 UML OOAD Concepts

    104/129

    104

    Semantics of every components:

    Contd...

    State transition: A state transition represents a change from an

    originating to a successor state.

    Transition label: event name[guard condition] / action

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    State Transition Diagram [for Account class ]

  • 8/3/2019 UML OOAD Concepts

    105/129

    105

    State Transition Diagram [for Account class. ]

    Operational

    Dormant

    Open

    seized

    transaction request[ validate ] / update()

    close

    no transaction / Transfer_to_Dormant_Ledger

    fill_the_request_form / update()

    Fraud or authorized instruction[Validate]/ lockAccount()

    matter_resolved[ validate ] / unlockAccount()

    request and fill the form for new saving account[ validate ] / process

    fill_the_request_form/update()

    transactionStrart / Transfer_to_main_ledger ()

    Note:Account can be closed from open state as well

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    106/129

    106

    More about State Diagram:

    A state diagram will not be created for every class.

    state diagrams are used only for those classes that exhibit interesting

    behavior.

    State diagrams are also useful to investigate the behavior of user

    interface and control classes. State diagram are used to show dynamics of a individual class

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    Wh t i ti it di ?

  • 8/3/2019 UML OOAD Concepts

    107/129

    107

    What is activity diagram?

    It is a special kind of state diagram and is worked out at use case level.

    These are mainly targeted towards representing internal behavior of a

    a use case.

    These may be thought as a kind of flowchart.

    Flowcharts are normally limited to sequential process; activitydiagrams can handle parallel process.

    Activity diagrams are recommended in the following situations:

    Analyzing use case

    Dealing with multithreaded application

    Understanding workflow across many use cases.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    108/129

    Obj i f h i h d l

  • 8/3/2019 UML OOAD Concepts

    109/129

    109

    Objective of the sixth module

    Understand the dynamic behavior of a class

    Way to find the parallel processes at use case level.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    110/129

    Wh t i t di ?

  • 8/3/2019 UML OOAD Concepts

    111/129

    111

    What is component diagram?

    COMPONENT DIAGRAM:

    Component diagrams illustrate the organizations and dependencies

    among software components.

    A component may be

    A source code component

    A run time components

    An executable component

    Dependency relationship.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    112/129

    Wh t i d l t di ?

  • 8/3/2019 UML OOAD Concepts

    113/129

    113

    What is deployment diagram?

    A deployment diagram shows the relationship among software and

    hardware components in the delivered system.

    These diagram include nodes and connections between nodes.

    Each node in deployment diagram represents some kind of

    computational unit, in most cases a piece of hardware. Connection among nodes show the communication path over which

    the system will interact.

    The connections may represent direct hardware coupling line RS-232

    cable, Ethernet connection, they also may represent indirect coupling

    such as satellite to ground communication.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    D l t di

  • 8/3/2019 UML OOAD Concepts

    114/129

    114

    Deployment diagram

    ATM_machine

    Bank_server

    BranchBank_

    EthernetEthernet

    Bank.exe

    BankServer.exeATM.exe

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    115/129

  • 8/3/2019 UML OOAD Concepts

    116/129

    116

    Module-8

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    Understanding the project culture

  • 8/3/2019 UML OOAD Concepts

    117/129

    117

    Understanding the project culture

    It may be:

    1.Calendar Centric

    2.Requirement Centric

    3.Documentation Centric

    4.Quality Centric

    5.Architecture Centric

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    Understanding the projects culture

  • 8/3/2019 UML OOAD Concepts

    118/129

    118

    Understanding the projects culture

    Architecture driven projects represent the most mature style of

    development.

    These projects are characterized by a focus on creating a frame

    work that satisfies all known requirement, yet is resilient enough toadapt to those requirements, that are not yet known or well

    understood.

    In every sense of the word, architect-driven policies are in

    evolutionary step beyond requirement driven policies.

    Architecture driven style of development is usually the best approach

    for the creation of most complex software intensive systemsSeptember 10 Created by : ITS,kkr (All Rights

    Reserved)

    Understanding the projects culture

  • 8/3/2019 UML OOAD Concepts

    119/129

    119

    Understanding the project s culture

    Architecture driven style of development typically observe thefollowing process:

    1. Specify the systems desired behavior through a collection of

    scenarios. (Analysis)

    2. Create, then validate, an architecture. (Design)

    3. Evolve that architecture, making mid-course corrections as

    necessary to adopt to new requirements as they are uncovered.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    OOAD Architecture Centric

  • 8/3/2019 UML OOAD Concepts

    120/129

    120

    OOAD---Architecture Centric

    What exactly is nature of the well structured object oriented

    architecture??

    1. A set of classes, typically organized into multiple hierarchies.

    2. A set of collaboration that specify how those classes co-operate

    to provide various system function.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    ESSENCE OF OOAD AND UML

  • 8/3/2019 UML OOAD Concepts

    121/129

    121

    ESSENCE OF OOAD AND UML

    Use case driven

    Architecture centricIncremental and iterative approach.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    Desire for good Architecture

  • 8/3/2019 UML OOAD Concepts

    122/129

    122

    g

    Those of us who have been trained as architects have this desire

    perhaps at the very center of our lives,that one day, some where

    somehow, we shall build one building which is wonderful, beautiful,

    breathtaking, a place where people can walk and dream for centuries.

    CHRISTOPHER ALEXANDER

    Same desire should also be applicable in creating software architecture as

    well.

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    123/129

    St d ti

  • 8/3/2019 UML OOAD Concepts

    124/129

    124

    Object Technology

    David A. Taylor

    Object Oriented Analysis and design with Applications

    Grady Booch

    UML distilled

    Martin Fowler

    Instant UML

    Pierre - Alain Muller

    Software EngineeringRoger S Pressman

    Strong recommendation

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

    REFERENCES

  • 8/3/2019 UML OOAD Concepts

    125/129

    125

    REFERENCES

    Contd...

    Object Oriented Modeling and Design

    James Rumbaugh

    Object Oriented Software Engineering

    Ivar Jacobson

    Clouds to code

    Jesse Liberty

    Applying use cases

    Geri Schneider

    Jason p. WintersUML Toolkit

    Hans-Eriksson and Magnus PenkerVersion1.1

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    126/129

    126

    THANK-U!

    September 10 Created by : ITS,kkr (All Rights

    Reserved)

  • 8/3/2019 UML OOAD Concepts

    127/129

  • 8/3/2019 UML OOAD Concepts

    128/129

    Course description:

  • 8/3/2019 UML OOAD Concepts

    129/129

    Course description:

    INSTRUCTION TO THE FACULTY:

    Course should emphasize on OO modeling.

    Focus should be primarily on understanding UML[1.2] and UML

    diagrams and then applying to a problem.

    Several excellent references are given in Appendix-A. Following are

    strongly recommended reading and should be used as supplementary

    with this power point courseware.

    1.UML toolkit by Eriksson and Magnus Penker

    2.Object oriented analysis and design with applications by Grady Booch

    Note: UML toolkit should be refereed for UML notations their syntax and semantics