![]() |
|||
![]()
|
![]() |
![]() |
![]() |
3.2. ATTRIBUTES, PARTS, AND CATALOGSAn attribute is a two-tuple that consists of a name and a domain. The domain is the set of values that can be assigned to the attribute. For example, an attribute of "engine" might be <cylinders, 6>. Here, the number of cylinders, six, is typical of the most common type of domain: a number that is usually an integer or a real number, although a domain can be a string, as in, say <fuel-type, diesel>. Numeric-valued domains are generally ordered, that is, the domain elements can be ordered by the [lte] or [gte] relation. Parts are sets of attributes. A special subset of attributes is the part-function multiplicity, which is the set of functions implemented by the part. A catalog is a collection of parts, generally organized by vendor-product line. The catalog attributes are the set of attributes that define the parts in the catalog. The domain of each catalog attribute is the union of the domains of all parts in the catalog that have that domain attribute. The catalog-function multiplicity consists of the set of functions and the number of instances implemented by all parts in the catalog. The set of parts we had shown in Table 1 is an example of a catalog that we will call IC. This catalog contains five types of parts: parts that implement the {CPU, Address-Decoder, Interrupt-controller, Timer} functions, parts that implement the {CPU} function, parts that implement the {Address-Decoder} function, parts that implement the {Interrupt-controller} function, and parts that implement the {Timer} function. The part 80186 is defined by the set {<part-name, 80186>, <cost, 20.0>, <power, 3.0>}. The set of catalog attributes is ICattr = {<cost, {10, 15, 20, 25, 30, 40}>, <power, {150, 250, 260, 340, 440, 530}>}. The catalog-function multiplicity is the set ICpfm = {{CPU, Address-decoder, Interrupt-controller, Timer}, {CPU}, {Address-decoder}, {Interrupt-controller}, {Timer}}. In Table 2 we show two catalogs from the elevator-configuration domain that we will use as an example for the remainder of the chapter. The catalogs represent sets of motors and machine units. The machine-unit is an assembly that houses the motor that drives the elevator cab up and down the elevator shaft.
The design is an artifact that is the object of some design process. In configuration design, the design is a collection of parts that is evaluated with respect to constraints and preferences (defined below). A design defines when all the parts have been selected and whether or not the design process is complete. Formally, a design is an assignment of attribute values from their domains. The design space is the set of all possible assignments of values to attributes in the design, or the cross-product of all attribute domains. In other words, the design space is the set of all possible designs. In Table 2, we assume that the design is described by the set of attributes {motor part_name, motor hp, machine-unit part_name, total-weight}, where total-weight = motor.weight + machine-unit.weight. One possible design is given by {motor part_name = 10HP, motor hp = 10, machine-unit part_name = model18, total-weight = 1474}. The design space is the set of all possible motor and machine-unit selections: {{motor part_name = 10HP, motor hp = 10, machine-unit part_name = model18, total-weight = 1474}, {motor part_name = 15HP, motor hp = 15, machine-unit part_name = model18, total-weight = 1573}, ..., {motor part_name = 30HP, motor hp = 30, machine-unit part_name = model58, total-weight = 3465}}.
|
![]() |
|
Use of this site is subject certain Terms & Conditions. Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details. |