SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
Harsh Jegadeesan’s CLASSROOM




 DOMAIN MODELING




                               BITS Pilani
                               Off-Campus Work-Integrated Learning Programmes
AGENDA
 Visualization
 Adding Association
 Adding Attributes
SETTING DIRECTION
 Now that we are starting to look at diagrams, I
 want to emphasize that this is a class on analysis
 and design, not diagramming. While it may look
 good on your resume that you can use UML, your
 career depends on being able to translate ideas
 into good systems.

That is much more difficult.

                                      All the best!
DOMAIN MODEL RELATIONSHIPS

            Business Model
                                         Domain Model


Classes, attributes,                                    Elaboration on some terms
associations




                                      Domain                       Glossary
         Use Case Model               objects


              Requirements


                                         Interaction Diagrams

                             Design
WHAT IS A DOMAIN MODEL ?
A domain model:

 Illustrates meaningful conceptual classes in a problem
 domain.
 Is a representation of real-world concepts, not software
 components.
 Is NOT a set of diagrams describing software classes, or
 software objects and their responsibilities.
A DOMAIN MODEL IS THE MOST IMPORTANT OO
ARTIFACT

   Its development entails identifying a rich set of
   conceptual classes, and is at the heart of object
   oriented analysis.
   It is a visual representation of the decomposition of a
   domain into individual conceptual classes or objects.
   It is a visual dictionary of noteworthy abstractions.
DOMAIN MODEL UML NOTATION

  Illustrated using a set of class diagrams for which no
  operations are defined.
It may contain:
  Domain Objects or Conceptual Classes
  Associations between conceptual classes
  Attributes of conceptual classes
AD       M                    S
ARTIFACT

  A Conceptual class:         Software Artifacts:
        Sale                      SalesDatabase

 Date
                        vs.
 Time                                   Sale
                                  Date
                                  Time
                                  Print()
THINK OF CONCEPTUAL CLASSES IN TERMS OF:

   Symbols – words or images
   Intensions – its definition
   Extensions – the set of examples to which it applies
   Symbols and Intensions are the practical
   considerations when creating a domain model.
DECOMPOSITION:
 A central distinction between Object-oriented analysis
 and structured analysis is the division by objects
 rather than by functions during decomposition.
 During each iteration, only objects in current scenarios
 are considered for addition to the domain model.
CONCEPTUAL CLASS IDENTIFICATION:
  It is better to over-specify a domain with lots of fine-
  grained conceptual classes than it is to under-specify
  it.
  Discover classes up front rather than later.
  Unlike data modeling, it is valid to include concepts for
  which there are no attributes, or which have a purely
  behavioral role rather than an informational role.
IDENTIFY CONCEPTUAL CLASSES BY CATEGORY
LIST:


 Common Candidates for classes include:
   Tangible objects, Descriptions, Roles,
   Places, Transactions, Containers,
   Systems, Abstract nouns, Rules,
   Organizations, Events, Processes,
   Written Materials, Catalogs, Records,
   Financial Instruments and Services
IDENTIFY CONCEPTUAL CLASSES BY NOUN
PHRASE:
   Identify Nouns and Noun Phrases in textual
   descriptions of the domain.
   Fully dressed Use Cases are good for this type of
   linguistic analysis.
 It’s not strictly a mechanical process:
   Words may be ambiguous
   Different phrases may represent the same concepts.
SALES DOMAIN EXAMPLE –
‘PURCHASE ITEMS’ USE CASE

  We find concepts such as Register, Sale, Item,
  Customer, Receipt etc. in this use case.

 Should we include Receipt in the Model?
  Con: As a report of a sale, it’s duplicate info.
  Pro: Business Rules for a Return require that
  the customer has a receipt.
  Suggestion: Include it in the iteration where
  the Return Use Case is covered.
STEPS TO CREATE A DOMAIN MODEL
 Identify Candidate Conceptual classes
 Draw them in a Domain Model
 Add associations necessary to record the relationships
 that must be retained
 Add attributes necessary for information to be
 preserved
 Apply existing Analysis Patterns
APPLY THE MAPMAKER STRATEGY

  Use existing names for things, the vocabulary of the
  domain
  Exclude irrelevant features
  Do not add things that are not there
A COMMON MISTAKE - CLASSES AS ATTRIBUTES
  Rule: If we do not think of a thing as a number or text
  in the real world, then it is probably a conceptual
  class.
  If it takes up space, then it is likely a conceptual
  class.
 Examples:
  A Store is not an attribute of a Sale
  A Destination is not an attribute of a flight
SPECIFICATION OR DESCRIPTION
CONCEPTUAL CLASSES

  A Class that records information about an item.
  Even if all Instances of the item are sold out, the
  description remains.
  Avoids duplication of recording the descriptive
  information with each instance of the item.
DESCRIPTION OF A SERVICE EXAMPLE (FLIGHT)

      Flight
  Date                     Flies-to          Airport
  Time                                     Name
  Number                     vs.


   Flight                  FlightDesc                  Airport
               Described                Describes
 Date            -by
                           Date         -flights-to   Name
 Time                      Time
MONOPOLY CONCEPTS (CANDIDATES)

  Monopoly Game   Player    Piece




  Die              Board    Square
AGENDA
  Visualization
  Adding Association
  Adding Attributes
OBJECTIVES

Identify associations for a domain model.
 Distinguish between need-to-know and
     comprehension-only associations.
INTRODUCTION
Identify associations of conceptual classes needed to
satisfy the information requirements of current
scenarios.
 Also identify the aid in comprehending the domain
model.
ASSOCIATIONS

An association is a relationship between instances of
types that indicates some meaningful and interesting
connection
ASSOCIATIONS

                                           association




                     Records-current
      Register                               Sale
                 1                     1
USEFUL ASSOCIATIONS
Associations for which knowledge of the relationship
needs to be preserved for some duration.
Associations derived from the Common Associations
List.
UML ASSOCIATION NOTATION
An association is represented as a line between classes
with an association name.
Associations are inherently bidirectional.
Optional reading direction arrow is only an aid to the
reader of the diagram.
UML ASSOCIATION NOTATION

                                                                         -   “ re a d in g d ire c tio n a rro w ”
                                                                         -   it h a s n o m e a n in g e x c e p t to
                                                                             in d ic a te d ire c tio n o f re a d in g th e
                                                                             a s so c ia tio n la b e l
                                                                         -   o fte n e x c lu d e d




                                              R e c o rd s-c u rre n t
      R e g is te r                                                                                       S a le
                                   1                                                 1




                  a s so c ia tio n n a m e                       m u ltip lic ity
FINDING ASSOCIATIONS
-COMMON ASSOCIATIONS LIST

The common categories that are worth considering are:
  A is a physical part of B . Eg: Wing-Airplane
  A is a logical part of B. Eg: SalesLineItem-Sale.
  A is physically contained in B . Eg: Register- Store.
COMMON ASSOCIATIONS LIST 2



  A is logically contained in B. Eg:ItemDescription-
  Catalog.
  A is a description of B.Eg:ItemDescription-Item.
  A is a line item of a transaction or report
  B.Eg:SalesLineItem-Sale.
  A is a member of B .Eg: Cashier-Store.
  A uses or manages B.Eg:Cashier-Register.
COMMON ASSOCIATIONS LIST 3

  A is known/logged/recorded/reported/captured in B.Eg:
  Sale-Register.
  A is an organizational subunit of B .
  Eg:Department-Store.
  A communicates with B. Eg:Customer-Cashier.
  A is next to B. Eg:City-City.
COMMON ASSOCIATIONS LIST 4


  A is related to a transaction B. Eg: Customer-
  Payment.
  A is a transaction related to another transaction B.
  Eg:Payment-Sale.
  A is next to B. Eg:City-City.
  A is owned by B. Eg:Register-Store.
  A is an event related to B. Eg:Sale-Customer.
HIGH-PRIORITY ASSOCIATIONS



  A is a physical or logical part of B.
  A is physically or logically contained in/on B.
  A is recorded in B.
ASSOCIATIONS GUIDELINES
  The knowledge of the relationship needs to be
  preserved for some duration.
  Identifying conceptual classes is more important than
  identifying associations.
  Avoid showing redundant or derivable associations.
ROLES



  Each end of an association is called a role.
  Roles may have
    name
    multiplicity expression
    navigability
MULTIPLICITY



  Multiplicity defines the number of instances of a class
  A ,that can be associated with one instance of class
  B,at a particular moment.
  Eg: In countries with monogamy laws,a person can be
  married to 1 person at any particular time.But over a
  span of time one person can be married to many
  persons.
MULTIPLICITY



                         Stocks
        Store                                 Item
                1                         *




                    multiplicity of the
                           role
MULTIPLICITY
                      *
                          T    zero or more;
                                  “many”



               1..*
                          T    one or more;




               1..40
                          T      one to 40




                      5
                          T      exactly 5




               3,5,8
                          T   exactly 3,5 or 8
NAMING ASSOCIATIONS



  Name an association based on TypeName-VerbPhrase-
  TypeName format.
  Names should start with a capital letter.
  Legal formats are:
    Paid-by
    PaidBy
ASSOCIATIONS NAMES

           Store

              1
              Contains
              1..*
         Register            Captures             Sale         Paid-by           Payment
                         1                 1..*            1                 1




          Airline

              1
              Employs
              1..*
          Person             Assigned-to          Flight       Assigned-to        Plane
                         1                   *             *                 1
    1                *



        Supervises
MULTIPLE ASSOCIATIONS



  Two types may have multiple associations between
  them.
MULTIPLE ASSOCIATIONS




                      Flies-to
                  *              1
         Flight                      Airport
                  * Flies-from   1
IMPLEMENTATION

  The domain model can be updated to reflect the newly
  discovered associations.
  But,avoid updating any documentation or model
  unless there is a concrete justification for future use.
  Defer design considerations so that extraneous
  information is not included and maximizing design
  options later on.
CLEANING ASSOCIATIONS 1
  Do not overwhelm the domain model with associations
  that are not strongly required.
  Use need-to-know criterion for maintaining
  associations.
  Deleting associations that are not strictly demanded
  on a need-to-know basis can create a model that
  misses the point.
CLEANING ASSOCIATIONS 2


  Add comprehension-only associations to enrich critical
  understanding of the domain.
A PARTIAL DOMAIN MODEL
                                                         Records-sale-of
                                                        Described-by
                                                                                                                        1
                                                           Product                                            Product
                                                           Catalog                                          Specfication
                                                                                        Contains
                                                                                    1          1..*


                                                               1                                                    Describes
                                                                       Used-by

     0..1                        *                                     *                                                *
                  Sales                                        Store                                             Item
                LineItem
                                                    1                                    Stocks
                                                                                    1                 *                         1..*


                         1..*                 Logs-             1
                                            completed
  Contained-in                                                             Houses
                         1                                             1..*
                  Sale               *                     Register                                             Manager
                                     Captured-on                                        Started-by
                                     1                                              1                 1

                                     1
            1                1                             1
                                                                               Records-sales-on

   Paid-by
                                                                                                            1
                                                           Initiated-by
                                                                                                      Cashier
                                     Initiated-by                                          1
            1                                              1
       Payment                                      Customer
CONCLUSION


 When in doubt if the concept is required,keep the
 concept.
 When in doubt if the the association is required,drop
 it.
 Do not keep derivable association.
AGENDA
  Visualization
  Adding Association
  Adding Attributes
OBJECTIVES


  Learn how to identify and specify attributes in a
  domain model
  Learn to distinguish attributes correctly
ATTRIBUTES

After establishing classes based on the concepts of
use case scenarios, the scenarios are examined to
discover attributes
Attributes are logical data values of an object
UML ATTRIBUTE NOTATION
VALID ATTRIBUTE TYPES

 Keep attributes simple
 Distinguish between conceptual and
 implementation perspectives
 Identify data types
RELATE WITH ASSOCIATIONS, NOT
ATTRIBUTES
AVOID REPRESENTING COMPLEX
DOMAIN CONCEPTS AS ATTRIBUTES
NON PRIMITIVE DATA TYPE (1)
Represent what may be considered a primitive data type
 (such as a number or string) as a non primitive class if:

•   It is composed of separate sections.
         phone number, name of person
•   There are operations usually associated with it, such as
    parsing or validation.
          social security number
•   It has other attributes
         promotional price could have a start date and end
    date
NON PRIMITIVE DATA TYPE (2)
   •   It has a quantity with a unit.
           payment amount has a unit of currency
   •   It has abstraction of one or more types with some of
       these qualities.
           item identifier in the sales domain is a
       generalization of types such as Universal product
       code(UPC) or European Article Number(EAN)
NON PRIMITIVE DATA TYPE (3)

  Applying these guidelines to the POS domain model
    yields the following analysis:
  • The item identifier is an abstraction of various
    common coding codes schemes, including UPC-A,
    UPC-E, and the family of EAN schemes. These
    numeric coding schemes have subparts identifying
    the manufacturer, product and EAN
NON PRIMITIVE DATA TYPE (4)

 •   The price and the amount attribute should be non
     primitive Quantity or Money classes because they
     are quantities in a unit of currency
 •   The address attribute should be a non primitive
     Address class because it has separate sections
IF THE ATTRIBUTE CLASS IS A DATA TYPE,
IT MAY BE SHOWN IN THE ATTRIBUTE BOX
NO ATTRIBUTES AS FOREIGN KEY
MODELING ATTRIBUTE QUANTITIES AND UNITS
DOMAIN MODEL CONCLUSION
 A relatively useful model has been
 created for the domain of the POS
 application.
 A good domain model captures the
 essential abstractions and information
 required to understand the domain in
 context of current requirements, and
 aids people in understanding the
 domain – its concepts , terminology, and the
 relationships.
THE END

Weitere ähnliche Inhalte

Was ist angesagt?

Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12koolkampus
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented DesignSharath g
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Ramakant Soni
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its typesSyed Hassan Ali
 
Lecture-03 Introduction to UML
Lecture-03 Introduction to UMLLecture-03 Introduction to UML
Lecture-03 Introduction to UMLartgreen
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagramRahul Pola
 
T9. Trust and reputation in multi-agent systems
T9. Trust and reputation in multi-agent systemsT9. Trust and reputation in multi-agent systems
T9. Trust and reputation in multi-agent systemsEASSS 2012
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurancegopal10scs185
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagramRamakant Soni
 
Unit 3 object analysis-classification
Unit 3 object analysis-classificationUnit 3 object analysis-classification
Unit 3 object analysis-classificationgopal10scs185
 

Was ist angesagt? (20)

Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12Object Oriented Design in Software Engineering SE12
Object Oriented Design in Software Engineering SE12
 
Function Oriented Design
Function Oriented DesignFunction Oriented Design
Function Oriented Design
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
UML Diagrams
UML DiagramsUML Diagrams
UML Diagrams
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its types
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Lecture-03 Introduction to UML
Lecture-03 Introduction to UMLLecture-03 Introduction to UML
Lecture-03 Introduction to UML
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagram
 
Relational model
Relational modelRelational model
Relational model
 
T9. Trust and reputation in multi-agent systems
T9. Trust and reputation in multi-agent systemsT9. Trust and reputation in multi-agent systems
T9. Trust and reputation in multi-agent systems
 
Unit 5 testing -software quality assurance
Unit 5  testing -software quality assuranceUnit 5  testing -software quality assurance
Unit 5 testing -software quality assurance
 
Software design
Software designSoftware design
Software design
 
Activity diagram-UML diagram
Activity diagram-UML diagramActivity diagram-UML diagram
Activity diagram-UML diagram
 
Unit 3 object analysis-classification
Unit 3 object analysis-classificationUnit 3 object analysis-classification
Unit 3 object analysis-classification
 
Ooad unit – 1 introduction
Ooad unit – 1 introductionOoad unit – 1 introduction
Ooad unit – 1 introduction
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 

Andere mochten auch

Sequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management SystemSequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management SystemSushil Mishra
 
Hotel management or reservation system document
Hotel management or reservation system document Hotel management or reservation system document
Hotel management or reservation system document prabhat kumar
 
Hotel Management System SRS
Hotel Management System SRS Hotel Management System SRS
Hotel Management System SRS Paras
 
SRS document for Hotel Management System
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management SystemCharitha Gamage
 
Documentation Hotel Management System
Documentation Hotel Management SystemDocumentation Hotel Management System
Documentation Hotel Management SystemSalman Dayal
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentationMJ Ferdous
 

Andere mochten auch (8)

Sequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management SystemSequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management System
 
Hotel management or reservation system document
Hotel management or reservation system document Hotel management or reservation system document
Hotel management or reservation system document
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Hotel Management System SRS
Hotel Management System SRS Hotel Management System SRS
Hotel Management System SRS
 
SRS document for Hotel Management System
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management System
 
Documentation Hotel Management System
Documentation Hotel Management SystemDocumentation Hotel Management System
Documentation Hotel Management System
 
Software project management
Software project managementSoftware project management
Software project management
 
Software engineering presentation
Software engineering presentationSoftware engineering presentation
Software engineering presentation
 

Ähnlich wie Domain Modeling

UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxanguraju1
 
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Marco Parenzan
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented DesignAravinth NSP
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018Paulo Clavijo
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UMLyndaravind
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizingShahid Riaz
 
April 2016 - USG Web Tech Day - Let's Talk Drupal
April 2016 - USG Web Tech Day - Let's Talk DrupalApril 2016 - USG Web Tech Day - Let's Talk Drupal
April 2016 - USG Web Tech Day - Let's Talk DrupalEric Sembrat
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTleela rani
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Patternguesta4d934
 

Ähnlich wie Domain Modeling (20)

Ooa 1 Post
Ooa 1 PostOoa 1 Post
Ooa 1 Post
 
UNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptx
 
Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014Writing good C# code for good cloud applications - Draft Oct 20, 2014
Writing good C# code for good cloud applications - Draft Oct 20, 2014
 
uml2-1214558329929112-8.ppt
uml2-1214558329929112-8.pptuml2-1214558329929112-8.ppt
uml2-1214558329929112-8.ppt
 
Unit-2.pptx
Unit-2.pptxUnit-2.pptx
Unit-2.pptx
 
Interfaces & Packages V2
Interfaces & Packages V2Interfaces & Packages V2
Interfaces & Packages V2
 
Mca 504 dotnet_unit4
Mca 504 dotnet_unit4Mca 504 dotnet_unit4
Mca 504 dotnet_unit4
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Uml - An Overview
Uml - An OverviewUml - An Overview
Uml - An Overview
 
CS8592-OOAD Lecture Notes Unit-2
CS8592-OOAD Lecture Notes Unit-2CS8592-OOAD Lecture Notes Unit-2
CS8592-OOAD Lecture Notes Unit-2
 
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Lecture9 domain model visualizing
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
 
April 2016 - USG Web Tech Day - Let's Talk Drupal
April 2016 - USG Web Tech Day - Let's Talk DrupalApril 2016 - USG Web Tech Day - Let's Talk Drupal
April 2016 - USG Web Tech Day - Let's Talk Drupal
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 
7494607
74946077494607
7494607
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 
Gof Design Pattern
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
 
SMD Unit ii
SMD Unit iiSMD Unit ii
SMD Unit ii
 

Mehr von Harsh Jegadeesan

Craft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud PlatformCraft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud PlatformHarsh Jegadeesan
 
APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017Harsh Jegadeesan
 
SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar Harsh Jegadeesan
 
SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)Harsh Jegadeesan
 
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API...
SAP TechEd  2015 INT103 Enabling Digital Transformation with APIs and SAP API...SAP TechEd  2015 INT103 Enabling Digital Transformation with APIs and SAP API...
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API...Harsh Jegadeesan
 
Apply Design Thinking to enable Digital Business Transformation with SAP In...
Apply Design Thinking to enable Digital Business Transformation with SAP In...Apply Design Thinking to enable Digital Business Transformation with SAP In...
Apply Design Thinking to enable Digital Business Transformation with SAP In...Harsh Jegadeesan
 
Intelligent Business Operations for Utilities, powered by SAP HANA
Intelligent Business Operations for Utilities, powered by SAP HANAIntelligent Business Operations for Utilities, powered by SAP HANA
Intelligent Business Operations for Utilities, powered by SAP HANAHarsh Jegadeesan
 
SOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business PlatformsSOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business PlatformsHarsh Jegadeesan
 
Web Business Platforms On The Cloud An Engineering Perspective
Web Business Platforms On The Cloud   An Engineering PerspectiveWeb Business Platforms On The Cloud   An Engineering Perspective
Web Business Platforms On The Cloud An Engineering PerspectiveHarsh Jegadeesan
 
Responsibility Driven Design
Responsibility Driven DesignResponsibility Driven Design
Responsibility Driven DesignHarsh Jegadeesan
 
Writing Effective Use Cases
 Writing Effective Use Cases Writing Effective Use Cases
Writing Effective Use CasesHarsh Jegadeesan
 

Mehr von Harsh Jegadeesan (15)

Craft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud PlatformCraft and Execute your Enterprise API Strategy with SAP Cloud Platform
Craft and Execute your Enterprise API Strategy with SAP Cloud Platform
 
APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017
 
SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar
 
SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)SAP API Management and API Business Hub (TechEd Barcelona)
SAP API Management and API Business Hub (TechEd Barcelona)
 
SAP API Business Hub
SAP API Business HubSAP API Business Hub
SAP API Business Hub
 
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API...
SAP TechEd  2015 INT103 Enabling Digital Transformation with APIs and SAP API...SAP TechEd  2015 INT103 Enabling Digital Transformation with APIs and SAP API...
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API...
 
Apply Design Thinking to enable Digital Business Transformation with SAP In...
Apply Design Thinking to enable Digital Business Transformation with SAP In...Apply Design Thinking to enable Digital Business Transformation with SAP In...
Apply Design Thinking to enable Digital Business Transformation with SAP In...
 
Intelligent Business Operations for Utilities, powered by SAP HANA
Intelligent Business Operations for Utilities, powered by SAP HANAIntelligent Business Operations for Utilities, powered by SAP HANA
Intelligent Business Operations for Utilities, powered by SAP HANA
 
SOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business PlatformsSOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business Platforms
 
Web Business Platforms On The Cloud An Engineering Perspective
Web Business Platforms On The Cloud   An Engineering PerspectiveWeb Business Platforms On The Cloud   An Engineering Perspective
Web Business Platforms On The Cloud An Engineering Perspective
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Responsibility Driven Design
Responsibility Driven DesignResponsibility Driven Design
Responsibility Driven Design
 
Writing Effective Use Cases
 Writing Effective Use Cases Writing Effective Use Cases
Writing Effective Use Cases
 
Case Study Guidelines
Case Study GuidelinesCase Study Guidelines
Case Study Guidelines
 
Modeling Software
Modeling SoftwareModeling Software
Modeling Software
 

Kürzlich hochgeladen

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"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
 

Kürzlich hochgeladen (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
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
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"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
 

Domain Modeling

  • 1. Harsh Jegadeesan’s CLASSROOM DOMAIN MODELING BITS Pilani Off-Campus Work-Integrated Learning Programmes
  • 2.
  • 3.
  • 4. AGENDA Visualization Adding Association Adding Attributes
  • 5. SETTING DIRECTION Now that we are starting to look at diagrams, I want to emphasize that this is a class on analysis and design, not diagramming. While it may look good on your resume that you can use UML, your career depends on being able to translate ideas into good systems. That is much more difficult. All the best!
  • 6. DOMAIN MODEL RELATIONSHIPS Business Model Domain Model Classes, attributes, Elaboration on some terms associations Domain Glossary Use Case Model objects Requirements Interaction Diagrams Design
  • 7. WHAT IS A DOMAIN MODEL ? A domain model: Illustrates meaningful conceptual classes in a problem domain. Is a representation of real-world concepts, not software components. Is NOT a set of diagrams describing software classes, or software objects and their responsibilities.
  • 8. A DOMAIN MODEL IS THE MOST IMPORTANT OO ARTIFACT Its development entails identifying a rich set of conceptual classes, and is at the heart of object oriented analysis. It is a visual representation of the decomposition of a domain into individual conceptual classes or objects. It is a visual dictionary of noteworthy abstractions.
  • 9. DOMAIN MODEL UML NOTATION Illustrated using a set of class diagrams for which no operations are defined. It may contain: Domain Objects or Conceptual Classes Associations between conceptual classes Attributes of conceptual classes
  • 10. AD M S ARTIFACT A Conceptual class: Software Artifacts: Sale SalesDatabase Date vs. Time Sale Date Time Print()
  • 11. THINK OF CONCEPTUAL CLASSES IN TERMS OF: Symbols – words or images Intensions – its definition Extensions – the set of examples to which it applies Symbols and Intensions are the practical considerations when creating a domain model.
  • 12. DECOMPOSITION: A central distinction between Object-oriented analysis and structured analysis is the division by objects rather than by functions during decomposition. During each iteration, only objects in current scenarios are considered for addition to the domain model.
  • 13. CONCEPTUAL CLASS IDENTIFICATION: It is better to over-specify a domain with lots of fine- grained conceptual classes than it is to under-specify it. Discover classes up front rather than later. Unlike data modeling, it is valid to include concepts for which there are no attributes, or which have a purely behavioral role rather than an informational role.
  • 14. IDENTIFY CONCEPTUAL CLASSES BY CATEGORY LIST: Common Candidates for classes include: Tangible objects, Descriptions, Roles, Places, Transactions, Containers, Systems, Abstract nouns, Rules, Organizations, Events, Processes, Written Materials, Catalogs, Records, Financial Instruments and Services
  • 15. IDENTIFY CONCEPTUAL CLASSES BY NOUN PHRASE: Identify Nouns and Noun Phrases in textual descriptions of the domain. Fully dressed Use Cases are good for this type of linguistic analysis. It’s not strictly a mechanical process: Words may be ambiguous Different phrases may represent the same concepts.
  • 16. SALES DOMAIN EXAMPLE – ‘PURCHASE ITEMS’ USE CASE We find concepts such as Register, Sale, Item, Customer, Receipt etc. in this use case. Should we include Receipt in the Model? Con: As a report of a sale, it’s duplicate info. Pro: Business Rules for a Return require that the customer has a receipt. Suggestion: Include it in the iteration where the Return Use Case is covered.
  • 17. STEPS TO CREATE A DOMAIN MODEL Identify Candidate Conceptual classes Draw them in a Domain Model Add associations necessary to record the relationships that must be retained Add attributes necessary for information to be preserved Apply existing Analysis Patterns
  • 18. APPLY THE MAPMAKER STRATEGY Use existing names for things, the vocabulary of the domain Exclude irrelevant features Do not add things that are not there
  • 19. A COMMON MISTAKE - CLASSES AS ATTRIBUTES Rule: If we do not think of a thing as a number or text in the real world, then it is probably a conceptual class. If it takes up space, then it is likely a conceptual class. Examples: A Store is not an attribute of a Sale A Destination is not an attribute of a flight
  • 20. SPECIFICATION OR DESCRIPTION CONCEPTUAL CLASSES A Class that records information about an item. Even if all Instances of the item are sold out, the description remains. Avoids duplication of recording the descriptive information with each instance of the item.
  • 21. DESCRIPTION OF A SERVICE EXAMPLE (FLIGHT) Flight Date Flies-to Airport Time Name Number vs. Flight FlightDesc Airport Described Describes Date -by Date -flights-to Name Time Time
  • 22. MONOPOLY CONCEPTS (CANDIDATES) Monopoly Game Player Piece Die Board Square
  • 23. AGENDA Visualization Adding Association Adding Attributes
  • 24. OBJECTIVES Identify associations for a domain model. Distinguish between need-to-know and comprehension-only associations.
  • 25. INTRODUCTION Identify associations of conceptual classes needed to satisfy the information requirements of current scenarios. Also identify the aid in comprehending the domain model.
  • 26. ASSOCIATIONS An association is a relationship between instances of types that indicates some meaningful and interesting connection
  • 27. ASSOCIATIONS association Records-current Register Sale 1 1
  • 28. USEFUL ASSOCIATIONS Associations for which knowledge of the relationship needs to be preserved for some duration. Associations derived from the Common Associations List.
  • 29. UML ASSOCIATION NOTATION An association is represented as a line between classes with an association name. Associations are inherently bidirectional. Optional reading direction arrow is only an aid to the reader of the diagram.
  • 30. UML ASSOCIATION NOTATION - “ re a d in g d ire c tio n a rro w ” - it h a s n o m e a n in g e x c e p t to in d ic a te d ire c tio n o f re a d in g th e a s so c ia tio n la b e l - o fte n e x c lu d e d R e c o rd s-c u rre n t R e g is te r S a le 1 1 a s so c ia tio n n a m e m u ltip lic ity
  • 31. FINDING ASSOCIATIONS -COMMON ASSOCIATIONS LIST The common categories that are worth considering are: A is a physical part of B . Eg: Wing-Airplane A is a logical part of B. Eg: SalesLineItem-Sale. A is physically contained in B . Eg: Register- Store.
  • 32. COMMON ASSOCIATIONS LIST 2 A is logically contained in B. Eg:ItemDescription- Catalog. A is a description of B.Eg:ItemDescription-Item. A is a line item of a transaction or report B.Eg:SalesLineItem-Sale. A is a member of B .Eg: Cashier-Store. A uses or manages B.Eg:Cashier-Register.
  • 33. COMMON ASSOCIATIONS LIST 3 A is known/logged/recorded/reported/captured in B.Eg: Sale-Register. A is an organizational subunit of B . Eg:Department-Store. A communicates with B. Eg:Customer-Cashier. A is next to B. Eg:City-City.
  • 34. COMMON ASSOCIATIONS LIST 4 A is related to a transaction B. Eg: Customer- Payment. A is a transaction related to another transaction B. Eg:Payment-Sale. A is next to B. Eg:City-City. A is owned by B. Eg:Register-Store. A is an event related to B. Eg:Sale-Customer.
  • 35. HIGH-PRIORITY ASSOCIATIONS A is a physical or logical part of B. A is physically or logically contained in/on B. A is recorded in B.
  • 36. ASSOCIATIONS GUIDELINES The knowledge of the relationship needs to be preserved for some duration. Identifying conceptual classes is more important than identifying associations. Avoid showing redundant or derivable associations.
  • 37. ROLES Each end of an association is called a role. Roles may have name multiplicity expression navigability
  • 38. MULTIPLICITY Multiplicity defines the number of instances of a class A ,that can be associated with one instance of class B,at a particular moment. Eg: In countries with monogamy laws,a person can be married to 1 person at any particular time.But over a span of time one person can be married to many persons.
  • 39. MULTIPLICITY Stocks Store Item 1 * multiplicity of the role
  • 40. MULTIPLICITY * T zero or more; “many” 1..* T one or more; 1..40 T one to 40 5 T exactly 5 3,5,8 T exactly 3,5 or 8
  • 41. NAMING ASSOCIATIONS Name an association based on TypeName-VerbPhrase- TypeName format. Names should start with a capital letter. Legal formats are: Paid-by PaidBy
  • 42. ASSOCIATIONS NAMES Store 1 Contains 1..* Register Captures Sale Paid-by Payment 1 1..* 1 1 Airline 1 Employs 1..* Person Assigned-to Flight Assigned-to Plane 1 * * 1 1 * Supervises
  • 43. MULTIPLE ASSOCIATIONS Two types may have multiple associations between them.
  • 44. MULTIPLE ASSOCIATIONS Flies-to * 1 Flight Airport * Flies-from 1
  • 45. IMPLEMENTATION The domain model can be updated to reflect the newly discovered associations. But,avoid updating any documentation or model unless there is a concrete justification for future use. Defer design considerations so that extraneous information is not included and maximizing design options later on.
  • 46. CLEANING ASSOCIATIONS 1 Do not overwhelm the domain model with associations that are not strongly required. Use need-to-know criterion for maintaining associations. Deleting associations that are not strictly demanded on a need-to-know basis can create a model that misses the point.
  • 47. CLEANING ASSOCIATIONS 2 Add comprehension-only associations to enrich critical understanding of the domain.
  • 48. A PARTIAL DOMAIN MODEL Records-sale-of Described-by 1 Product Product Catalog Specfication Contains 1 1..* 1 Describes Used-by 0..1 * * * Sales Store Item LineItem 1 Stocks 1 * 1..* 1..* Logs- 1 completed Contained-in Houses 1 1..* Sale * Register Manager Captured-on Started-by 1 1 1 1 1 1 1 Records-sales-on Paid-by 1 Initiated-by Cashier Initiated-by 1 1 1 Payment Customer
  • 49. CONCLUSION When in doubt if the concept is required,keep the concept. When in doubt if the the association is required,drop it. Do not keep derivable association.
  • 50. AGENDA Visualization Adding Association Adding Attributes
  • 51. OBJECTIVES Learn how to identify and specify attributes in a domain model Learn to distinguish attributes correctly
  • 52. ATTRIBUTES After establishing classes based on the concepts of use case scenarios, the scenarios are examined to discover attributes Attributes are logical data values of an object
  • 54. VALID ATTRIBUTE TYPES Keep attributes simple Distinguish between conceptual and implementation perspectives Identify data types
  • 55. RELATE WITH ASSOCIATIONS, NOT ATTRIBUTES
  • 56. AVOID REPRESENTING COMPLEX DOMAIN CONCEPTS AS ATTRIBUTES
  • 57. NON PRIMITIVE DATA TYPE (1) Represent what may be considered a primitive data type (such as a number or string) as a non primitive class if: • It is composed of separate sections. phone number, name of person • There are operations usually associated with it, such as parsing or validation. social security number • It has other attributes promotional price could have a start date and end date
  • 58. NON PRIMITIVE DATA TYPE (2) • It has a quantity with a unit. payment amount has a unit of currency • It has abstraction of one or more types with some of these qualities. item identifier in the sales domain is a generalization of types such as Universal product code(UPC) or European Article Number(EAN)
  • 59. NON PRIMITIVE DATA TYPE (3) Applying these guidelines to the POS domain model yields the following analysis: • The item identifier is an abstraction of various common coding codes schemes, including UPC-A, UPC-E, and the family of EAN schemes. These numeric coding schemes have subparts identifying the manufacturer, product and EAN
  • 60. NON PRIMITIVE DATA TYPE (4) • The price and the amount attribute should be non primitive Quantity or Money classes because they are quantities in a unit of currency • The address attribute should be a non primitive Address class because it has separate sections
  • 61. IF THE ATTRIBUTE CLASS IS A DATA TYPE, IT MAY BE SHOWN IN THE ATTRIBUTE BOX
  • 62. NO ATTRIBUTES AS FOREIGN KEY
  • 64. DOMAIN MODEL CONCLUSION A relatively useful model has been created for the domain of the POS application. A good domain model captures the essential abstractions and information required to understand the domain in context of current requirements, and aids people in understanding the domain – its concepts , terminology, and the relationships.