B.1 Subsystem ProductSpecification


The ProductSpecification subsystem contains those classes that describe the organization of products offered by the bookstore.

The class diagram for this subsystem is shown in Figure B.1.

Figure B.1. ProductSpecification Subsystem Class Diagram

graphics/bfig01.gif

Product

A Product is an item available for sale by the online store. The online store currently offers books (hardcover and paperback), CDs, tapes, videotapes, and DVDs (all classified as "Recordings"), and computer software.

Attributes

productID: UniversalProductCode

The UPC code of the product. These are provided by the manufacturer based on a coding scheme established by a consortium of manufacturing organizations.

productName: string

The official name of the product. Since some kinds of Product have the same title for a number of different products (e.g., the VHS videocassette and the DVD of the same movie have the same title), this is a derived attribute.

copyright: Year

The copyright date for the product as it is listed on the product. If a product has more than one copyright date, we record the most recent copyright date.

unitPrice: Money

The price at which the product is sold to customers. Note that this price can change over time. Each time a customer makes a product selection, the "unit price per selection" for that selection is set to the unit price currently in effect for the product. In that way, even if there are price changes, we keep track of the actual price at which an item was sold at the time it was sold.

description: string

A short description of the product, usually provided by the publisher as part of its marketing program.

website: WebsiteURL

A website associated with the product. Many authors now create websites to provide supplemental information related to their books, including downloadable software and utilities. Similarly, recordings and software products also have their own websites.

Associations & Relationships

R1

IS PRODUCED AND MARKETED BY 1 Publisher

A publisher is responsible for contracting with an author to produce a book and then handles the work of marketing the book to customers and retailers.

Every book we sell is produced by some publisher. We do not sell books directly produced by authors. In a few cases an author will sell books directly; in those cases we use the author or the author's company as the publisher.

R11

IS A SUPERCLASS OF BookProduct

IS A SUPERCLASS OF RecordingProduct

IS A SUPERCLASS OF SoftwareProduct

The bookstore offers three basic types of publications for sale: books, recordings, and computer software. Products are divided into these three different subclasses because each subclass has distinct attributes and associations that are not meaningful for all products. For example, Books have Authors, but computer software is generally not credited to an Author. However, software is offered to run on a particular Platform (e.g., Macintosh), but books do not require a particular configuration of hardware and software.

(Note: eBooks are somewhere in between they run on computers like software but have Authors like Books. At present, the bookstore is classifying all eBooks as Books. This is made reasonable by the fact that all eBooks that we offer follow a single standard format that is platform-independent.)

R12

IS A SUPERCLASS OF SpecialOrderProduct

IS A SUPERCLASS OF StockedProduct

To provide a broad appeal, the bookstore often offers products for sale that are not actually kept in stock. Generally, rare, expensive, or low-volume items are listed as special order items.

A stocked product may become a special order product if it is discontinued by the publisher. Discontinued products are generally not widely available. Likewise, a popular special order product may be converted into a stocked product. The decision to migrate a product between stocked and special order is made by the marketing department.

R15

IS CLASSIFIED ACCORDING TO 1 ProductCategory

Each product offered for sale is assigned to a particular category that most reasonably characterizes the content or subject matter of the product. Categories provide a way to find similar products or to find products more specialized or more general in nature.

Product categorizations are sometimes provided by the product's publisher, but the final decision as to a product's category rests with the bookstore's marketing department.

R4

SELECTIONS ARE ADDED TO 0..* ShoppingCart

Each time a customer makes a selection, the customer's cart is linked to the corresponding selection, creating an instance of a ProductSelection.

Publisher

A publisher is an organization that is responsible for producing and marketing ("publishing") books and other products sold by the store.

Attributes

groupCode: ISBNGroupIdentifier

A code that identifies a country, area, or language area participating in the ISBN system. Each group has an agency that is responsible for assigning unique codes to publishers within its group.

The group code, together with the publisher code, uniquely identifies a publisher anywhere in the world.

publisherCode: ISBNPublisherPrefix

Each publisher is assigned a unique code (one or more digits) that is used to uniquely identify the publisher in an International Standard Book Number (ISBN).

The U.S. ISBN Agency (www.isbn.org) is responsible for the assignment of the ISBN Publisher Prefix to those publishers with a residence or office in the U.S. that are publishing their titles within the U.S.

name: string

The common name of the publisher, e.g., "Addison-Wesley" or "Prentice-Hall."

address: MailingAddress

The address at which the publisher receives mail. It can be a legal or common-use street address recognized by the post office, or a post office box.

website: WebsiteURL

The publisher's public website, if one exists.

Associations & Relationships

R1

PRODUCES AND MARKETS 0..* Product

A publisher is responsible for contracting with an author to produce a book and then handles the work of marketing the book to book customers and retailers.

Every book we sell is produced by some publisher. We do not sell books directly produced by authors. In a few cases an author will sell books directly; in those cases we use the author or the author's company as the publisher.

Author

An author is an individual who is credited with writing or contributing to a book.

There are no good mechanisms for ensuring that two people with the same name who write different books are represented as different authors.

Attributes

name: PersonalName

The name of the author as presented on the book.

website: WebsiteURL

The author's personal website, if available. This is distinct from the publisher's website and the book's website.

email: InternetEmailAddress

The author's personal e-mail address.

Associations & Relationships

R2

WRITES 1..* BookProduct

Books are generally written by Authors. Some books, however, do not have any authorship credits. For that reason, this association is conditional: Book IS WRITTEN BY 0..* Author. However, every Author has written at least one book.

Authorship

An Authorship is an individual credit for writing or otherwise contributing to a book. Many people may contribute to a book in different ways; each Authorship identifies the person and his or her role (preCredit and postCredit) on the book.

Examples: Foreword By Ivar Jacobson ("Foreword By" is the preCredit) Grady Booch, editor (", editor" is the postCredit)

Attributes

preCredit: string

The wording that precedes the name of the author on an Authorship, e.g. "Foreword by."

postCredit: string

The wording that follows the name of an author on an Authorship, e.g., Grady Booch, editor.

Associations & Relationships

R3

PRECEDES 0..1 Authorship

FOLLOWS 0..1 Authorship

Authors and other contributors are credited on a book in a specific order. This order is generally preserved in all promotional material, including the bookstore's website.

R2

formalizes association between Author and BookProduct

Books are generally written by Authors. Some books, however, do not have any authorship credits. For that reason, this association is conditional: Book IS WRITTEN BY 0..* Author. However, every Author has written at least one book.

BookProduct

A Book is a product that can be ordered through the online bookstore.

New books can be made available by Marketing at any time. Likewise, the descriptions and prices of these books can be changed as well. If a price change is made, it does not cause current orders to be re-priced. For that reason, when a ProductSelection is created (a customer selects product for an order), the price of the product at the time the selection was made is recorded as part of the ProductSelection (attribute unitPriceForOrder). See the description of ProductSelection for more detail on this matter.

Books are generally never deleted, since we always need the reference to the book for historical tracking. Instead, a book may be discontinued and as such no longer available for ordering. The attribute "currentlyAvailable" tracks whether the book can be added to the order. The only time a book is actually deleted is if the book was created incorrectly and has not yet been made available for sale.

Attributes

bookNumber: ISBNBookNumber

The International Standard Book Number, a globally unique identifier assigned to every book in print. For a complete description of the role of the ISBN, go to www.isbn.org.

titleCode: ISBNTitleCode

The unique code assigned by the publisher that becomes part of the ISBN for the book.

title: string

The title of the book. Note that many books have both a title ("Executable UML") and a subtitle ("A Foundation for Model Driven Architecture").

subtitle: string

The subordinate title of the book. Not all book have subtitles, but when a book does have a subtitle, it is generally listed along with the main title of the book.

Associations & Relationships

R11

IS A SUBCLASS OF Product

The bookstore offers three basic types of publications for sale: books, recordings, and computer software. Products are divided into these three different subclasses because each subclass has distinct attributes and associations that are not meaningful for all products. For example, Books have Authors, but computer software is generally not credited to an Author. However, software is offered to run on a particular Platform (e.g., Macintosh), but books do not require a particular configuration of hardware and software.

(Note: eBooks are somewhere in between they run on computers like software but have Authors like Books. At present, the bookstore is classifying all eBooks as Books. This is made reasonable by the fact that all eBooks that we offer follow a single standard format that is platform-independent.)

R2

IS WRITTEN BY 1..* Author

Books are generally written by Authors. Some books, however, do not have any authorship credits. For that reason, this association is conditional: Book IS WRITTEN BY 0..* Author. However, every Author has written at least one book.

RecordingProduct

A Recording Product is a commercially available recording of a performance. This class encompasses videotapes, audio tapes, CDs, phonograph records, and similar products.

Attributes

runningTime: integer

The total playing time of the recording. If a recording consists of multiple tracks (e.g., an audio tape or a CD), this is the sum of the running times of the individual tracks.

Associations & Relationships

R11

IS A SUBCLASS OF Product

The bookstore offers three basic types of publications for sale: books, recordings, and computer software. Products are divided into these three different subclasses because each subclass has distinct attributes and associations that are not meaningful for all products. For example, Books have Authors, but computer software is generally not credited to an Author. However, software is offered to run on a particular Platform (e.g., Macintosh), but books do not require a particular configuration of hardware and software.

(Note: eBooks are somewhere in between they run on computers like software but have Authors like Books. At present, the bookstore is classifying all eBooks as Books. This is made reasonable by the fact that all eBooks that we offer follow a single standard format that is platform-independent.)

R16

formalizes association between Recording Format and Recording

Each recording is available in one or more formats. Each of these combinations of title and format is a separate product.

SoftwareProduct

A Software Product is a commercially available computer program available for sale in the store. Each title sold by the store may be available on multiple platforms and multiple versions; these may have different prices and are generally represented by different product codes.

Attributes

productVersion: VersionString

A string identifying the product version. Since there is no industry standard for representing this information, the version string as we use it is merely the commonly used text that the product publisher uses to identify the version.

Note that in some cases different "versions" of the same software title may be cataloged as different titles, e.g. "Windows 95" vs. "Windows ME."

Associations & Relationships

R11

IS A SUBCLASS OF Product

The bookstore offers three basic types of publications for sale: books, recordings, and computer software. Products are divided into these three different subclasses because each subclass has distinct attributes and associations that are not meaningful for all products. For example, Books have Authors, but computer software is generally not credited to an Author. However, software is offered to run on a particular Platform (e.g., Macintosh), but books do not require a particular configuration of hardware and software.

(Note: eBooks are somewhere in between they run on computers like software but have Authors like Books. At present, the bookstore is classifying all eBooks as Books. This is made reasonable by the fact that all eBooks that we offer follow a single standard format that is platform-independent.)

R19

IS AVAILABLE ON 1 Platform

Each software product is capable of running on a particular configuration of computer hardware and software a Platform. This association captures the product's compatibility.

Some products are compatible with several platforms. In the future, we may make this association many-to-many and/or add a concept of one platform presuming compatibility with other platforms (e.g., if it runs on Windows NT, it is presumed compatible with Windows 2000).

R20

IS AN INSTANCE OF 1 ComputerSoftware

The same software title may be available for several platforms. For example, BridgePoint is published for Microsoft Windows, HP/UX, and Solaris. Since the product contains different executables and may be priced differently, each platform availability is treated as a distinct product.

SpecialOrderProduct

Special order products are products offered for sale by the store that are not stocked but are ordered from the publisher when the customer requests them. These products are directly shipped to the customer.

Attributes

specialOrderInstructions: string

Additional instructions for placing the special order with the publisher. At the moment, all special orders are sent to a separate back-office system that actually places the order with the publisher.

daysToDeliver: Count

The number of days that the publisher requires in order to prepare and ship the order once the publisher receives the order.

Associations & Relationships

R12

IS A SUBCLASS OF Product

To provide a broad appeal, the bookstore often offers products for sale that are not actually kept in stock. Generally, rare, expensive, or low-volume items are listed as special order items.

A stocked product may become a special order product if it is discontinued by the publisher. Discontinued products are generally not widely available. Likewise, a popular special order product may be converted into a stocked product. The decision to migrate a product between stocked and special order is made by the marketing department.

StockedProduct

A stocked product is a product that is ordinarily kept in stock by the store and shipped from the store to a customer who orders the product. Each stocked product has a certain quantity on hand and a certain level (the reorderThreshold) at which additional stock is ordered from the publisher.

Attributes

quantityOnHand: Count

The number of units of the product currently on hand (currently in stock).

reorderThreshold: Count

The point at which product is reordered from the publisher. When the quantityOnHand reaches or falls below the reorderThreshold, an order is placed with the publisher for stock. The number of units ordered is equal to the reorderIncrement.

reorderIncrement: Count

The number of units to reorder when the bookstore needs to restock the product.

reorderInstructions: string

Special instructions for ordering the product from the publisher. Reorders are done by submitting a request to reorder through a different back office system.

Associations & Relationships

R12

IS A SUBCLASS OF Product

To provide a broad appeal, the bookstore often offers products for sale that are not actually kept in stock. Generally, rare, expensive, or low-volume items are listed as special order items.

A stocked product may become a special order product if it is discontinued by the publisher. Discontinued products are generally not widely available. Likewise, a popular special order product may be converted into a stocked product. The decision to migrate a product between stocked and special order is made by the marketing department.

ProductCategory

Products are classified into a hierarchy of categories. Each product is classified into a single category, which may be a subcategory of other categories.

Attributes

categoryID: arbitrary_id

A unique number that is assigned to each category and category in the hierarchy. This ID is necessary because several categories may all have the same name (at different places in the hierarchy, of course).

categoryName: string

A name for the category. Although no two categories with the same parent category may have the same name, two categories with different parents may certainly have the same name.

Associations & Relationships

R15

CLASSIFIES 0..* Product

Each product offered for sale is assigned to a particular category that most reasonably characterizes the content or subject matter of the product. Categories provide a way to find similar products or to find products more specialized or more general in nature.

Product categorizations are sometimes provided by the product's publisher, but the final decision as to a product's category rests with the bookstore's marketing department.

R14

IS PART OF 0..1 ProductCategory

IS DIVIDED INTO 0..* ProductCategory

Product categories are organized into a hierarchy starting with very general categories (e.g., movies, computer books) and working down to very detailed subcategories. This association captures category hierarchies. The topmost categories are not "part of" any other category. Categories at the bottom of the hierarchy are not "divided into" any other category.

Recording

A Recording Title is a particular work (sound recording, performance, movie) that is available for sale by the store. Often the same recording title is available in multiple formats (e.g., a single film, "Jaws," may be available in DVD, VHS video, and VHS video/letterboxed).

Attributes

title: string

The actual title of the recording.

Associations & Relationships

R16

IS AVAILABLE IN 1..* Recording Format

Each recording is available in one or more formats. Each of these combinations of title and format is a separate product.

R17

CREDITS 1..* Artist

A Performance Credit is a particular mention ("credit") of a performer or contributor to a recording. Generally, several different people are listed on each recording; not just the principal performer(s), but also the director, performer, etc. The Performance Credit is not intended to be a complete listing of all of the credits on a Recording, just enough to provide a way to look up the most popular performers on a recording.

Artist

An artist is an individual who is credited for a performance on a recording. This may be the "star" or a supporting individual (producer, director).

Attributes

artistID: unique_id

A unique identifier of the artist. Since several different artists and authors may have the same name (e.g., "Michael Jackson" the performer vs. "Michael Jackson" the software methodologist), we use a scheme whereby the name is not the unique identifier of an artist.

artistName: PersonalName

The name of the artist.

Associations & Relationships

R17

IS CREDITED ON 1..* Recording

A Performance Credit is a particular mention ("credit") of a performer or contributor to a recording. Generally several different people are listed on each recording; not just the principal performer(s), but also the director, performer, etc. The Performance Credit is not intended to be a complete listing of all of the credits on a Recording, just enough to provide a way to look up the most popular performers on a recording.

Performance Credit

A performance credit is a particular mention ("credit") of a performer or contributor to a recording. Generally, several different people are listed on each recording; not just the principal performer(s), but also the director, performer, etc. The performance credit is not intended to be a complete listing of all of the credits on a recording, just enough to provide a way to look up the most popular performers on a recording.

Attributes

role: string

The role of the performer as credited on the recording (e.g., directed by, produced by) Not all Performance Credits will have a value for Role. In particular, the "stars" of the recording will simply be listed by name with no particular value for "Role."

Associations & Relationships

R17

formalizes association between Artist and Recording

A Performance Credit is a particular mention ("credit") of a performer or contributor to a recording. Generally, several different people are listed on each recording; not just the principal performer(s), but also the director, performer, etc. The Performance Credit is not intended to be a complete listing of all of the credits on a Recording, just enough to provide a way to look up the most popular performers on a recording.

R18

IS CREDITED BEFORE 0..1 Performance Credit

IS CREDITED AFTER 0..1 Performance Credit

Performance credits are typically specified in a particular order on a recording. This association captures that ordering.

R18

IS CREDITED BEFORE 0..1 Performance Credit

IS CREDITED AFTER 0..1 Performance Credit

Performance credits are typically specified in a particular order on a recording. This association captures that ordering.

Recording Format

A recording format is a format in which a recording product is available for sale. At present, most recordings are sold as VHS videotapes, compact discs (CDs), digital video discs (DVDs), and cassette tapes. Some recordings are available in other formats, such as long-playing records.

We've chosen to abstract the recording format as a specification class rather than as an enumerated type since it's quite likely that new recording formats may be introduced and we don't want to have to change the models to accommodate the new formats.

Attributes

formatID: arbitrary_id

A short code that identifies the format.

formatName: string

A more extensive name that describes the format.

Associations & Relationships

R16

IS AN AVAILABLE FORMAT FOR 1..* Recording

Each recording is available in one or more formats. Each of these combinations of title and format is a separate product.

Platform

A platform is a particular configuration of computer hardware and system software on which a particular software product can be run.

Platform names are not intended to be exhaustive enumerations of the hardware and system software requirements for a particular software product, merely enough information necessary to distinguish different variations of the same title.

Attributes

platformID: arbitrary_id

A unique ID for a Platform. This ID is only used by the store there is no general industry standard identifier for software platforms.

platformName: string

The general name of a software platform, e.g., Linux, Macintosh, Windows NT.

Associations & Relationships

R19

SUPPORTS 1..* SoftwareProduct

Each software product is capable of running on a particular configuration of computer hardware and software a Platform. This association captures the product's compatibility.

Some products are compatible with several platforms. In the future, we may make this association many-to-many and/or add a concept of one platform presuming compatibility with other platforms (e.g., if it runs on Windows NT, it is presumed compatible with Windows 2000).

ComputerSoftware

Instances of Computer Software are programs and their supporting files and documentation. A particular program title may be available on more than one program and is often available in several different versions.

Attributes

title: string

The title of the program.

Associations & Relationships

R20

IS AVAILABLE FOR SALE AS 1..* SoftwareProduct

The same software title may be available for several platforms. For example, BridgePoint is published for Microsoft Windows, HP/UX, and Solaris. Since the product contains different executables and may be priced differently, each platform availability is treated as a distinct product.



Executable UML. A Foundation for Model-Driven Architecture
Executable UML: A Foundation for Model-Driven Architecture
ISBN: 0201748045
EAN: 2147483647
Year: 2001
Pages: 161

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net