larman chapter 10

Upload: akbisoi1

Post on 03-Jun-2018

257 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/12/2019 Larman Chapter 10

    1/13

    1

    Domain model: visualizingconcepts

    Chapter 10

    Applying UML and Patterns

    -Craig Larman

  • 8/12/2019 Larman Chapter 10

    2/13

    2

    Domain Model Relationships

    Domain Model

    Use Case Model

    Interaction Diagrams

    Glossary

    Design

    Requirements

    Business Model

    Classes, attributes, associations

    Domain

    objects

    Elaboration on some terms

  • 8/12/2019 Larman Chapter 10

    3/13

    3

    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.

    It may show:

    concepts

    associations between concepts attributes of concepts

  • 8/12/2019 Larman Chapter 10

    4/13

    4

    Domain Model

    UML Notation

    Illustrated using a set of class diagrams for which no operationsare defined.

    A Domain Model is a description of things

    in the real world.

    A Domain Model is not a description ofthe software design.

    A concept is an idea,

    thing, or object.

  • 8/12/2019 Larman Chapter 10

    5/13

    5

    A Domain Model is not a

    Software Artifact

    Sale

    Date

    Time

    Sales Database

    Sale

    DateTime

    Print()

    A Conceptual class: Software Artifacts:

    vs.

  • 8/12/2019 Larman Chapter 10

    6/13

    6

    Identify Conceptual Classes

    by Noun Phrase:

    Identify Nouns and Noun Phrases in textual

    descriptions of the domain.

    Fully dressed Use Cases are good for thistype of linguistic analysis.

    Its not strictly a mechanical process:

    Words may be ambiguous Different phrases may represent the same

    concepts.

  • 8/12/2019 Larman Chapter 10

    7/13

    7

    Steps to create a

    Domain Model

    Identify Candidate Conceptual classes

    Draw them in a Domain Model

    Add associations necessary to record therelationships that must be retained

    Add attributes necessary for information to

    be preservedApply existing Analysis Patterns

  • 8/12/2019 Larman Chapter 10

    8/13

    8

    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

  • 8/12/2019 Larman Chapter 10

    9/13

    9

    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

  • 8/12/2019 Larman Chapter 10

    10/13

    10

    Specification or Description

    Conceptual Classes

    A Class that records information about an

    item.

    Even if all Instances of the item are soldout, the description remains.

    Avoids duplication of recording the

    descriptive information with each instanceof the item.

  • 8/12/2019 Larman Chapter 10

    11/13

  • 8/12/2019 Larman Chapter 10

    12/13

    12

    Monopoly Concepts

    (candidates)

    Monopoly Game Player Piece

    Die Board Square

  • 8/12/2019 Larman Chapter 10

    13/13

    13

    The NextGen POS (partial) Domain

    Model