Domain Modeling

Harsh Jegadeesan
Harsh JegadeesanHead of Product Management, Digital Transformation Services SAP Cloud Platform um SAP SE
Harsh Jegadeesan’s CLASSROOM




 DOMAIN MODELING




                               BITS Pilani
                               Off-Campus Work-Integrated Learning Programmes
Domain Modeling
Domain Modeling
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
1 von 65

Recomendados

UML von
UMLUML
UMLiQra Rafaqat
8.3K views30 Folien
Unified process model von
Unified process modelUnified process model
Unified process modelRyndaMaala
4.4K views24 Folien
Behavioural modelling von
Behavioural modellingBehavioural modelling
Behavioural modellingBenazir Fathima
2.5K views6 Folien
Use Case Diagram von
Use Case DiagramUse Case Diagram
Use Case DiagramKumar
27.6K views24 Folien
Interaction Modeling von
Interaction ModelingInteraction Modeling
Interaction ModelingHemant Sharma
14.4K views25 Folien
Grasp patterns and its types von
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its typesSyed Hassan Ali
19.2K views21 Folien

Más contenido relacionado

Was ist angesagt?

Software design von
Software designSoftware design
Software designSyed Muhammad Hammad-ud-Din
69K views30 Folien
Sequence diagram von
Sequence diagramSequence diagram
Sequence diagramRahul Pola
17.6K views14 Folien
Design Concept software engineering von
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
24.5K views14 Folien
Object and class relationships von
Object and class relationshipsObject and class relationships
Object and class relationshipsPooja mittal
4.6K views18 Folien
Collaboration diagram- UML diagram von
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram Ramakant Soni
9.1K views18 Folien
Uml class-diagram von
Uml class-diagramUml class-diagram
Uml class-diagramASHOK KUMAR PALAKI
24.2K views28 Folien

Was ist angesagt?(20)

Sequence diagram von Rahul Pola
Sequence diagramSequence diagram
Sequence diagram
Rahul Pola17.6K views
Design Concept software engineering von Darshit Metaliya
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya24.5K views
Object and class relationships von Pooja mittal
Object and class relationshipsObject and class relationships
Object and class relationships
Pooja mittal4.6K views
Collaboration diagram- UML diagram von Ramakant Soni
Collaboration diagram- UML diagram Collaboration diagram- UML diagram
Collaboration diagram- UML diagram
Ramakant Soni9.1K views
Coupling and cohesion von Sutha31
Coupling and cohesionCoupling and cohesion
Coupling and cohesion
Sutha314.2K views
Use case Diagram von Rahul Pola
Use case Diagram Use case Diagram
Use case Diagram
Rahul Pola5.7K views
object oriented methodologies von Amith Tiwari
object oriented methodologiesobject oriented methodologies
object oriented methodologies
Amith Tiwari13.3K views
Overview of UML Diagrams von Manish Kumar
Overview of UML DiagramsOverview of UML Diagrams
Overview of UML Diagrams
Manish Kumar13.8K views
Software Engineering : Requirement Analysis & Specification von Ajit Nayak
Software Engineering : Requirement Analysis & SpecificationSoftware Engineering : Requirement Analysis & Specification
Software Engineering : Requirement Analysis & Specification
Ajit Nayak11.4K views
Context model von Ubaid423
Context modelContext model
Context model
Ubaid42334.3K views
REQUIREMENT ENGINEERING von Saqib Raza
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
Saqib Raza13.5K views

Destacado

Sequence Diagram of Hotel Management System von
Sequence Diagram of Hotel Management SystemSequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management SystemSushil Mishra
33.7K views7 Folien
Hotel management or reservation system document von
Hotel management or reservation system document Hotel management or reservation system document
Hotel management or reservation system document prabhat kumar
92.5K views3 Folien
Software engineering von
Software engineeringSoftware engineering
Software engineeringHitesh Mohapatra
12.2K views58 Folien
Hotel Management System SRS von
Hotel Management System SRS Hotel Management System SRS
Hotel Management System SRS Paras
38.8K views23 Folien
SRS document for Hotel Management System von
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management SystemCharitha Gamage
73.5K views10 Folien
Documentation Hotel Management System von
Documentation Hotel Management SystemDocumentation Hotel Management System
Documentation Hotel Management SystemSalman Dayal
105.3K views51 Folien

Destacado(8)

Sequence Diagram of Hotel Management System von Sushil Mishra
Sequence Diagram of Hotel Management SystemSequence Diagram of Hotel Management System
Sequence Diagram of Hotel Management System
Sushil Mishra33.7K views
Hotel management or reservation system document von prabhat kumar
Hotel management or reservation system document Hotel management or reservation system document
Hotel management or reservation system document
prabhat kumar92.5K views
Hotel Management System SRS von Paras
Hotel Management System SRS Hotel Management System SRS
Hotel Management System SRS
Paras 38.8K views
SRS document for Hotel Management System von Charitha Gamage
SRS document for Hotel Management SystemSRS document for Hotel Management System
SRS document for Hotel Management System
Charitha Gamage73.5K views
Documentation Hotel Management System von Salman Dayal
Documentation Hotel Management SystemDocumentation Hotel Management System
Documentation Hotel Management System
Salman Dayal105.3K views
Software project management von R A Akerkar
Software project managementSoftware project management
Software project management
R A Akerkar69.3K views
Software engineering presentation von MJ Ferdous
Software engineering presentationSoftware engineering presentation
Software engineering presentation
MJ Ferdous16.9K views

Similar a Domain Modeling

Ooa 1 Post von
Ooa 1 PostOoa 1 Post
Ooa 1 PostRajesh Kumar
496 views23 Folien
UNIT II STATIC UML DIAGRAMS.pptx von
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptxanguraju1
13 views64 Folien
Writing good C# code for good cloud applications - Draft Oct 20, 2014 von
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
999 views132 Folien
uml2-1214558329929112-8.ppt von
uml2-1214558329929112-8.pptuml2-1214558329929112-8.ppt
uml2-1214558329929112-8.pptAleksandarUrdarevski
4 views70 Folien
Unit-2.pptx von
Unit-2.pptxUnit-2.pptx
Unit-2.pptxPoozaSunuwar
3 views69 Folien
Interfaces & Packages V2 von
Interfaces & Packages V2Interfaces & Packages V2
Interfaces & Packages V2Dr Anjan Krishnamurthy
2.5K views24 Folien

Similar a Domain Modeling(20)

UNIT II STATIC UML DIAGRAMS.pptx von anguraju1
UNIT II STATIC UML DIAGRAMS.pptxUNIT II STATIC UML DIAGRAMS.pptx
UNIT II STATIC UML DIAGRAMS.pptx
anguraju113 views
Writing good C# code for good cloud applications - Draft Oct 20, 2014 von Marco Parenzan
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
Marco Parenzan999 views
Object Oriented Design von Aravinth NSP
Object Oriented DesignObject Oriented Design
Object Oriented Design
Aravinth NSP1.5K views
Uml - An Overview von Raj Thilak S
Uml - An OverviewUml - An Overview
Uml - An Overview
Raj Thilak S15.4K views
DDD Strategic Design - Context Maps - Paulo Clavijo - April 2018 von Paulo Clavijo
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
Paulo Clavijo5.9K views
Introduction to UML von yndaravind
Introduction to UMLIntroduction to UML
Introduction to UML
yndaravind105 views
Lecture9 domain model visualizing von Shahid Riaz
Lecture9 domain model visualizingLecture9 domain model visualizing
Lecture9 domain model visualizing
Shahid Riaz477 views
April 2016 - USG Web Tech Day - Let's Talk Drupal von Eric Sembrat
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
Eric Sembrat361 views
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT von leela rani
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
leela rani550 views
A Practical Guide to Domain Driven Design: Presentation Slides von thinkddd
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
thinkddd11.4K views
Gof Design Pattern von guesta4d934
Gof   Design PatternGof   Design Pattern
Gof Design Pattern
guesta4d9341.4K views

Más de Harsh Jegadeesan

Craft and Execute your Enterprise API Strategy with SAP Cloud Platform von
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
892 views32 Folien
APIs make you mobile - Mobile World Congress 2017 von
APIs make you mobile - Mobile World Congress 2017APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017Harsh Jegadeesan
1.1K views15 Folien
SAP API Business Hub - SAP Community Webinar von
SAP API Business Hub - SAP Community Webinar SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar Harsh Jegadeesan
1.2K views18 Folien
SAP API Management and API Business Hub (TechEd Barcelona) von
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
2.9K views23 Folien
SAP API Business Hub von
SAP API Business HubSAP API Business Hub
SAP API Business HubHarsh Jegadeesan
4.6K views9 Folien
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API... von
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
1.9K views31 Folien

Más de Harsh Jegadeesan(15)

Craft and Execute your Enterprise API Strategy with SAP Cloud Platform von Harsh Jegadeesan
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
Harsh Jegadeesan892 views
APIs make you mobile - Mobile World Congress 2017 von Harsh Jegadeesan
APIs make you mobile - Mobile World Congress 2017APIs make you mobile - Mobile World Congress 2017
APIs make you mobile - Mobile World Congress 2017
Harsh Jegadeesan1.1K views
SAP API Business Hub - SAP Community Webinar von Harsh Jegadeesan
SAP API Business Hub - SAP Community Webinar SAP API Business Hub - SAP Community Webinar
SAP API Business Hub - SAP Community Webinar
Harsh Jegadeesan1.2K views
SAP API Management and API Business Hub (TechEd Barcelona) von 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)
Harsh Jegadeesan2.9K views
SAP TechEd 2015 INT103 Enabling Digital Transformation with APIs and SAP API... von 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...
Harsh Jegadeesan1.9K views
Apply Design Thinking to enable Digital Business Transformation with SAP In... von 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...
Harsh Jegadeesan3.5K views
Intelligent Business Operations for Utilities, powered by SAP HANA von Harsh Jegadeesan
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
Harsh Jegadeesan2.9K views
SOA India 2009 | SOA and Web Business Platforms von Harsh Jegadeesan
SOA India 2009 | SOA and Web Business PlatformsSOA India 2009 | SOA and Web Business Platforms
SOA India 2009 | SOA and Web Business Platforms
Harsh Jegadeesan885 views
Web Business Platforms On The Cloud An Engineering Perspective von Harsh Jegadeesan
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
Harsh Jegadeesan793 views

Último

Attacking IoT Devices from a Web Perspective - Linux Day von
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day Simone Onofri
16 views68 Folien
Microsoft Power Platform.pptx von
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
53 views38 Folien
AMAZON PRODUCT RESEARCH.pdf von
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdfJerikkLaureta
26 views13 Folien
Mini-Track: Challenges to Network Automation Adoption von
Mini-Track: Challenges to Network Automation AdoptionMini-Track: Challenges to Network Automation Adoption
Mini-Track: Challenges to Network Automation AdoptionNetwork Automation Forum
12 views27 Folien
HTTP headers that make your website go faster - devs.gent November 2023 von
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
22 views151 Folien
Data Integrity for Banking and Financial Services von
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial ServicesPrecisely
21 views26 Folien

Último(20)

Attacking IoT Devices from a Web Perspective - Linux Day von Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri16 views
HTTP headers that make your website go faster - devs.gent November 2023 von Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 views
Data Integrity for Banking and Financial Services von Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely21 views
STPI OctaNE CoE Brochure.pdf von madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... von Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Empathic Computing: Delivering the Potential of the Metaverse von Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst478 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 von Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi127 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows von Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software263 views

Domain Modeling

  • 1. Harsh Jegadeesan’s CLASSROOM DOMAIN MODELING BITS Pilani Off-Campus Work-Integrated Learning Programmes
  • 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.