4081.Domain Model13 17

Embed Size (px)

Citation preview

  • 8/8/2019 4081.Domain Model13 17

    1/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    2/31

  • 8/8/2019 4081.Domain Model13 17

    3/31

    Gives a conceptual framework of the things in theproblem space

    Helps you think focus on semantics Provides a glossary of terms noun based

    It is a static view - meaning it allows us convey timeinvariant business rules

    Foundation for use case/workflow modelling Based on the defined structure, we can describe

    the state of the problem domain at any time.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    4/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    5/31

    The following features enable us to express timeinvariant static business rules for a domain:-

    o Domain classes each domain class denotes a type ofobject.

    o Attributes an attribute is the description of a named slot of aspecified type in a domain class; each instance of the classseparately holds a value.

    o Associations an association is a relationship between two(or more) domain classes that describes links between theirobject instances. Associations can have roles, describing themultiplicity and participation of a class in the relationship.

    o Additional rules complex rules that cannot be shown withsymbology can be shown with attached notes.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    6/31

    Perform the following in very short iterations:o Make a list of candidate domain classes.o Draw these classes in a UML class diagram.o If possible, add brief descriptions for the classes.o Identify any associations that are necessary.o Decide if some domain classes are really just

    attributes.o Where helpful, identify role names and multiplicity

    for associations.o Add any additional static rules as UML notes that

    cannot be conveyed with UML symbols.o Group diagrams/domain classes by category into

    packages.Concentrate more on just identifying domain classes

    in early iterations !

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    7/31

    Three Strategies to Find Conceptual Classes?

    1. Reuse or modify existing models.

    2. Use a category list.3. Identify noun phrases.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    8/31

    We can create a domain model by making a list ofcandidate conceptual classes which containsmany common categories with an emphasis on

    business information system needs.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    9/31

    Case Study: Airline Reservation Domain

    Conceptual Class Category Examples

    product or service related to a

    transaction or transaction line item

    Item, Flight, Seat, Meal

    where is the transaction recorded? Register, Ledger, Flight Manifest

    roles of people or organizations related

    to the transaction; actors in the use

    case

    Cashier, Customer, Passenger, Airline

    place of transaction; place of service Store, Airport, Plane, Seat

    physical objects Item, Register Board, Piece, Die

    Airplane

    descriptions of things Product Description, Flight Description

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    10/31

    Another useful technique (because of its

    simplicity) suggested is linguistic analysis:Identify the nouns and noun phrases intextual descriptions of a domain, and

    consider them as candidate conceptualclasses or attributes.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    11/31

    Case Study: POS Domain

    1. Customer arrives at a POS checkout with goods

    and/orservices to purchase.

    2. Cashier starts a new sale.

    3. Cashier enters item identifier.

    4. System records sale line item and presents itemdescription, price, and running total. Pricecalculated from a set of price rules.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    12/31

    The domain model illustrates conceptual classes or

    vocabulary in the domain. Informally, a

    conceptual class is an idea, thing, or object. Moreformally, a conceptual class may be considered interms of its symbol, intension, and extension

    1. Symbol words or images representing a

    conceptual class.

    2. Intension the definition of a conceptual class.

    3. Extension the set of examples to which the

    conceptual class applies.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    13/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    14/31

    Case Study: POS Domain

    From the category list and noun phrase analysis, alist is generated of candidate conceptual classesfor the domain. On the basis of category list

    guidelines that emphasize business transactionsand their relationship with other things. The list isconstrained to the requirements which is under

    consideration for scenario of Process of Sale.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    15/31

    Sale

    Cashier

    CashPayment

    Customer

    SalesLineItem

    Store

    Item

    ProductDescription

    Register

    ProductCatalog

    Ledger

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    16/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    17/31

    Some software systems are for domains that findvery little analogy in natural or business domains;

    software for telecommunications is an example.

    It is still possible to create a domain model in these

    domains, but it requires a high degree ofabstraction and stepping back from familiardesigns.

    For example, here are some candidateconceptual classes related to atelecommunication switch:

    Message, Connection, Port, Dialog, Route, Protocol.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    18/31

    The most common mistake when creating a domainmodel is to represent something as an attributewhen it should have been a conceptual class.

    Guideline

    If we do not think of some conceptual class X as anumber or text in the real world, X is probably aconceptual class, not an attribute.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    19/31

    In the real world, a store is not considered a number or text the term suggests alegal entity, an organization, and something that occupies space. Therefore,

    Store should be a conceptual class.

    As another example, consider the domain of airline reservations. Should

    destination be an attribute of Flight, or a separate conceptual class Airport?

    In the real world, a destination airport is not considered a number or text itis a massive thing that occupies space. Therefore, Airport should be a

    concept.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    20/31

    A description class contains information thatdescribes something else. For example, aProductDescription that records the price, picture,

    and text description of an Item.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    21/31

    1. An Item instance represents a physical item in astore; as such, it may even have a serial number.

    2. An Item has a description, price, and itemID, whichare not recorded anywhere else.

    3. Everyone working in the store has amnesia.

    4. Every time a real physical item is sold, acorresponding software instance of Item is deleted

    from "software land."

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    22/31

    The * means a multiplicity of "many." It indicatesthat one Product Description may describe many(*) Items.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    23/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    24/31

    Bounded by the current iteration requirements underdesign:

    1. Find the conceptual classes (see a followingguideline).

    2. Draw them as classes in a UML class diagram.

    3. Add associations and attributes.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    25/31

  • 8/8/2019 4081.Domain Model13 17

    26/31

    A domain class sounds like an attribute if: -

    o It relies on an associated class for its identity e.g.order number class associated to an order class.The order number sounds suspiciously like an

    attribute of order.

    o It is a simple data type e.g. order number is asimple integer. Now it really sounds like an attribute!

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    27/31

    An association is a relationship between classes (more

    precisely, instances of those classes) that indicatessome meaningful and interesting connection.

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    28/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    29/31

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    30/31

    Multiplicity defines how many instances of a classA can be associated with one instance of a class B.

    Multiplicity on association

    lecture 13-17, chitkara university

  • 8/8/2019 4081.Domain Model13 17

    31/31

    lecture 13-17, chitkara university