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

Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML DiagramsManish Kumar
 
Advanced Structural Modeling
Advanced Structural ModelingAdvanced Structural Modeling
Advanced Structural ModelingAMITJain879
 
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
 
Introduction to Rational Rose
Introduction to Rational RoseIntroduction to Rational Rose
Introduction to Rational RoseMunaam Munawar
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and designjayashri kolekar
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented TestingAMITJain879
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Elaboration and domain model
Elaboration and domain modelElaboration and domain model
Elaboration and domain modelVignesh Saravanan
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns pptmkruthika
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box TestingTestbytes
 
Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling Benazir Fathima
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 

Tendances (20)

Overview of UML Diagrams
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
 
Advanced Structural Modeling
Advanced Structural ModelingAdvanced Structural Modeling
Advanced Structural Modeling
 
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
 
Introduction to Rational Rose
Introduction to Rational RoseIntroduction to Rational Rose
Introduction to Rational Rose
 
UML
UMLUML
UML
 
Object oriented modeling and design
Object oriented modeling and designObject oriented modeling and design
Object oriented modeling and design
 
Uml
UmlUml
Uml
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Elaboration and domain model
Elaboration and domain modelElaboration and domain model
Elaboration and domain model
 
Software design patterns ppt
Software design patterns pptSoftware design patterns ppt
Software design patterns ppt
 
State chart diagram
State chart diagramState chart diagram
State chart diagram
 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
Analysis modeling & scenario based modeling
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Component level design
Component   level designComponent   level design
Component level design
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 

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

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

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

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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 

Dernier (20)

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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
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.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
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
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 

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.