SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewRajiv Kumar
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagramsbarney92
 
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
 
11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14Niit Care
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case DiagramAshesh R
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGERaval Chirag
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented DesignAMITJain879
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 

Tendances (20)

Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Domain model
Domain modelDomain model
Domain model
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Unit 4
Unit 4Unit 4
Unit 4
 
Uml class-diagram
Uml class-diagramUml class-diagram
Uml class-diagram
 
Uml diagrams
Uml diagramsUml diagrams
Uml diagrams
 
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
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
11 ooad uml-14
11 ooad uml-1411 ooad uml-14
11 ooad uml-14
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
domain model.ppt
domain model.pptdomain model.ppt
domain model.ppt
 
Class diagrams
Class diagramsClass diagrams
Class diagrams
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 
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
 

Similaire à 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
 
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
 
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
 

Plus de 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
 

Plus de 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
 

Dernier

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
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
 
"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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
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
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Dernier (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
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
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
"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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
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
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

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.